diff --git a/.github/workflows/cultmesh-portability.yml b/.github/workflows/cultmesh-portability.yml index c64da8de..f8a6e5da 100644 --- a/.github/workflows/cultmesh-portability.yml +++ b/.github/workflows/cultmesh-portability.yml @@ -101,8 +101,10 @@ jobs: # pull requests: cultnet-interop.yml is windows-latest and main-only, so # until these steps existed the shared verifier's tests never ran on # Linux at all, and the browser client's never ran in CI on any OS. - # packages/cultnet-ts verifies both vector files; cultmesh-browser proves - # the browser client reads the shared rules rather than its own. + # packages/cultnet-ts verifies both vector files (content.test.ts judges both + # C# content files, the Rust one and its own); cultmesh-browser proves + # the browser client reads the shared rules rather than its own, and that its content reader releases only verified + # bytes, requesting the same URLs as the C# HTTPS connector. # No workflow ran cultcache-ts's tests, and its test script listed two files by hand while a third sat compiled # and unrun. The wiring check fails when any TypeScript test file is run by no script, and the cache's own suite # runs here beside the packages built on it. @@ -112,21 +114,29 @@ jobs: - name: Verify the CultCache document owner with the TypeScript cache run: npm run test --workspace packages/cultcache-ts + # Packs the four TypeScript packages and installs them into a clean consumer, so a package that builds but does + # not install or load fails here. + - name: Verify the packed TypeScript packages install and load from a clean consumer + run: npm run test:pack:ts + - name: Verify the CultMesh authority rules with the TypeScript verifier run: npm run test --workspace packages/cultnet-ts - - name: Verify the browser client against the shared TypeScript verifier - run: npm run test --workspace packages/cultmesh-browser - - # The realtime frame codec. Its byte parity rests on two vector files, + # cultmesh-browser's test compiles test/interop, which imports cultmesh-ts/content, so cultmesh-ts builds first, + # as in scripts/run-typescript-workspaces.mjs. + # The realtime frame codec and the HTTP content chunk provider (content.test.ts, + # its answers over node:http). The codec's byte parity rests on two vector files, # contracts/cultmesh/realtime-frame-vectors.json written by the C# # reference and decoded by this step, and realtime-frame-vectors.ts-written.json # written by this codec and decoded by the C# step below. Neither half ran # in CI on any OS until these two steps existed, so a codec that agreed # only with itself would have gone green. - - name: Verify the realtime frame codec with the TypeScript codec + - name: Verify the realtime frame codec and the content provider with the TypeScript runtime run: npm run test --workspace packages/cultmesh-ts + - name: Verify the browser client against the shared TypeScript verifier + run: npm run test --workspace packages/cultmesh-browser + # Both directions of the CultMesh authority vectors: the C#-written # file (contracts/cultmesh/authority-route-vectors.json) and the # TypeScript-signed file (authority-route-vectors.ts-signed.json) are @@ -147,3 +157,20 @@ jobs: dotnet test tests/GameCult.Mesh.Tests/GameCult.Mesh.Tests.csproj --filter FullyQualifiedName~RealtimeWireProtocol --logger "console;verbosity=minimal" + + # The content plane: the reference writes the manifest and record-key + # vectors and judges the manifests the TypeScript packer wrote + # (content-vectors.ts-written.json). This suite also holds the C#/Rust + # content parity, which no CI step ran before this one. CULTNET_WRITE_VECTORS + # is never set in CI: the committed files are the contract. + - name: Verify the content vectors with the C# reference + run: >- + dotnet test tests/GameCult.Mesh.Tests/GameCult.Mesh.Tests.csproj + --filter FullyQualifiedName~CultMeshContentVectorTests + --logger "console;verbosity=minimal" + + # The cross-process HTTPS content parity: the C# transfer service over the unmodified HTTPS connector and the + # TypeScript reader fetch from the TypeScript provider in its own process. Both refuse bytes tampered in flight, + # and the provider refuses a corrupt store. + - name: Verify HTTPS content parity across C#, the TypeScript provider and the TypeScript reader + run: npm run test:interop --workspace packages/cultmesh-browser diff --git a/contracts/cultmesh/cdn-record-key-vectors.json b/contracts/cultmesh/cdn-record-key-vectors.json new file mode 100644 index 00000000..ca7f7384 --- /dev/null +++ b/contracts/cultmesh/cdn-record-key-vectors.json @@ -0,0 +1,702 @@ +{ + "artifacts": [ + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [], + "contentHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:unversioned:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 32, + 32, + 77, + 105, + 120, + 101, + 100, + 32, + 67, + 97, + 115, + 101, + 47, + 80, + 97, + 116, + 104, + 32, + 32 + ], + "versionUnits": [ + 32, + 32, + 32 + ], + "contentHash": "SHA256:E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855", + "recordKey": "mesh:cdn:artifact:mixed-case-path:unversioned:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 304, + 115, + 116, + 97, + 110, + 98, + 117, + 108 + ], + "versionUnits": [ + 49, + 46, + 48, + 46, + 48 + ], + "contentHash": " e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ", + "recordKey": "mesh:cdn:artifact:\u0130stanbul:1.0.0:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 913, + 931 + ], + "versionUnits": [ + 86, + 50, + 32, + 66, + 101, + 116, + 97 + ], + "contentHash": " sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:\u03B1\u03C3:v2-beta:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 65279, + 98, + 111, + 109 + ], + "versionUnits": [ + 252 + ], + "contentHash": "sha256:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:bom:\u00FC:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 133, + 110, + 101, + 108, + 133 + ], + "versionUnits": [], + "contentHash": "Sha256:\u0130\u03A3\uD801\uDC00", + "recordKey": "mesh:cdn:artifact:nel:unversioned:\u0130\u03C3\uD801\uDC28" + }, + { + "artifactIdUnits": [ + 26085, + 26412, + 35486, + 47, + 36039, + 29987 + ], + "versionUnits": [ + 32, + 32, + 32 + ], + "contentHash": "sha256:", + "recordKey": "mesh:cdn:artifact:\u65E5\u672C\u8A9E-\u8CC7\u7523:unversioned:" + }, + { + "artifactIdUnits": [ + 55357, + 56898, + 32, + 115, + 109, + 105, + 108, + 101 + ], + "versionUnits": [ + 49, + 46, + 48, + 46, + 48 + ], + "contentHash": "\u017Fha256:abc", + "recordKey": "mesh:cdn:artifact:smile:1.0.0:\u017Fha256:abc" + }, + { + "artifactIdUnits": [ + 45, + 45, + 45 + ], + "versionUnits": [ + 86, + 50, + 32, + 66, + 101, + 116, + 97 + ], + "contentHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:cb3f91d54eee30e53e35b2b99905f70f169ed549fd78909d3dac2defc9ed8d3b:v2-beta:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 97, + 55296, + 98 + ], + "versionUnits": [ + 252 + ], + "contentHash": "SHA256:E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855", + "recordKey": "mesh:cdn:artifact:a-b:\u00FC:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 55296 + ], + "versionUnits": [], + "contentHash": " e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ", + "recordKey": "mesh:cdn:artifact:83d544ccc223c057d2bf80d3f2a32982c32c3c0db8e2674820da5064783fb097:unversioned:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 120, + 178, + 121 + ], + "versionUnits": [ + 32, + 32, + 32 + ], + "contentHash": " sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:x-y:unversioned:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 1635, + 100 + ], + "versionUnits": [ + 49, + 46, + 48, + 46, + 48 + ], + "contentHash": "sha256:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:\u0663d:1.0.0:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 55297, + 56320, + 65 + ], + "versionUnits": [ + 86, + 50, + 32, + 66, + 101, + 116, + 97 + ], + "contentHash": "Sha256:\u0130\u03A3\uD801\uDC00", + "recordKey": "mesh:cdn:artifact:a:v2-beta:\u0130\u03C3\uD801\uDC28" + }, + { + "artifactIdUnits": [ + 32, + 32, + 45, + 45, + 45, + 32, + 32 + ], + "versionUnits": [ + 252 + ], + "contentHash": "sha256:", + "recordKey": "mesh:cdn:artifact:fcd2a2fb27957aa9a10d2d9eca16ccbc9c35a76933b03f470211d327f6946c3f:\u00FC:" + }, + { + "artifactIdUnits": [ + 9398 + ], + "versionUnits": [], + "contentHash": "\u017Fha256:abc", + "recordKey": "mesh:cdn:artifact:7d9633ae307dae04a8b362df41dca4b38a653823d69f27a259e7b6928508d3a6:unversioned:\u017Fha256:abc" + }, + { + "artifactIdUnits": [ + 8555 + ], + "versionUnits": [ + 32, + 32, + 32 + ], + "contentHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:8c0e55c55f47de02406174ec976279a977e2e73ea5aec8ab90f94c40a6ab2d60:unversioned:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [], + "contentHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:unversioned:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [ + 32, + 32, + 32 + ], + "contentHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:unversioned:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [ + 49, + 46, + 48, + 46, + 48 + ], + "contentHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:1.0.0:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [ + 86, + 50, + 32, + 66, + 101, + 116, + 97 + ], + "contentHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:v2-beta:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [ + 252 + ], + "contentHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:\u00FC:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [], + "contentHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:unversioned:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [], + "contentHash": "SHA256:E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:unversioned:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [], + "contentHash": " e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:unversioned:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [], + "contentHash": " sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:unversioned:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [], + "contentHash": "sha256:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:unversioned:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [], + "contentHash": "Sha256:\u0130\u03A3\uD801\uDC00", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:unversioned:\u0130\u03C3\uD801\uDC28" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [], + "contentHash": "sha256:", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:unversioned:" + }, + { + "artifactIdUnits": [ + 101, + 117, + 114, + 101, + 107, + 97, + 47, + 99, + 111, + 110, + 116, + 101, + 110, + 116, + 45, + 118, + 101, + 99, + 116, + 111, + 114 + ], + "versionUnits": [], + "contentHash": "\u017Fha256:abc", + "recordKey": "mesh:cdn:artifact:eureka-content-vector:unversioned:\u017Fha256:abc" + } + ], + "chunks": [ + { + "chunkHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:chunk:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "chunkHash": "SHA256:E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855", + "recordKey": "mesh:cdn:chunk:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "chunkHash": " e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ", + "recordKey": "mesh:cdn:chunk:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "chunkHash": " sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:chunk:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "chunkHash": "sha256:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "recordKey": "mesh:cdn:chunk:sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "chunkHash": "Sha256:\u0130\u03A3\uD801\uDC00", + "recordKey": "mesh:cdn:chunk:\u0130\u03C3\uD801\uDC28" + }, + { + "chunkHash": "sha256:", + "recordKey": "mesh:cdn:chunk:" + }, + { + "chunkHash": "\u017Fha256:abc", + "recordKey": "mesh:cdn:chunk:\u017Fha256:abc" + } + ] +} \ No newline at end of file diff --git a/contracts/cultmesh/content-acceptance-vectors.json b/contracts/cultmesh/content-acceptance-vectors.json new file mode 100644 index 00000000..a938f430 --- /dev/null +++ b/contracts/cultmesh/content-acceptance-vectors.json @@ -0,0 +1,1873 @@ +{ + "cases": [ + { + "label": "base", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "short_0", + "inputBase64": "kA==", + "accepted": true, + "reencodedBase64": "mqClYXNzZXSgoAC4YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtoJCQgA==", + "recordKey": null + }, + { + "label": "short_1", + "inputBase64": "kaNhL2I=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXSgoAC4YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtoJCQgA==", + "recordKey": null + }, + { + "label": "short_2", + "inputBase64": "kqNhL2KlYXNzZXQ=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXSgoAC4YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtoJCQgA==", + "recordKey": null + }, + { + "label": "short_3", + "inputBase64": "k6NhL2KlYXNzZXShMQ==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMaAAuGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbaCQkIA=", + "recordKey": null + }, + { + "label": "short_4", + "inputBase64": "lKNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQ==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQC4YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtoJCQgA==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "short_5", + "inputBase64": "laNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQA=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQC4YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtoJCQgA==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "short_6", + "inputBase64": "lqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oJCQgA==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "short_7", + "inputBase64": "l6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXQ=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSQkIA=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "short_8", + "inputBase64": "mKNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWs=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuQgA==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "short_9", + "inputBase64": "maNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXg=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiA", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "array16_header", + "inputBase64": "3AAKo2EvYqVhc3NldKEx2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "array32_header", + "inputBase64": "3QAAAAqjYS9ipWFzc2V0oTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_nil", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdsA=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_str", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdqF4", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_nested", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdpKRoXiBoWHLAAAAAAAAAAA=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_ext", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdtQBAg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_ext8", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdscCAQcH", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_bin", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdsQCAQI=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_float", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdsoAAAAA", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_uint64", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhds8AAAAAAAAABw==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_array16", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdtwAAgEC", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_map16", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdt4AAQEC", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_str8", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdtkBQQ==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_12", + "inputBase64": "nKNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdsCheQ==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "extra_11_reserved_code", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdsE=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "extra_11_truncated", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdpIB", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "deep_extra_250", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZHA", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "deep_chunkextra_250", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRwJGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "deep_extra_253", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZHA", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "deep_chunkextra_253", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRwJGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "deep_extra_254", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRwA==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "deep_chunkextra_254", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkcCRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "deep_extra_255", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkcA=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "deep_chunkextra_255", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZHAkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "deep_extra_256", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZHA", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "deep_chunkextra_256", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRwJGheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "deep_extra_257", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRwA==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "deep_chunkextra_257", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkcCRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "deep_extra_300", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkcA=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "deep_chunkextra_300", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZHAkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunk_3", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRk9lAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoJGheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_5", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvAkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_5_nested", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuSAQKRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_map", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuCoWGhYqFjoWSRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_map16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWveAAIBAgMEkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_map32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvfAAAAAQECkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_array", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuTAQIDkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_array16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvcAAIBApGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_array32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvdAAAAAQGRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_fixext1", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvUAQKRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_fixext2", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvVAQIDkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_fixext4", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvWAQIDBAWRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_fixext8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvXAQIDBAUGBwgJkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_fixext16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvYAQAAAAAAAAAAAAAAAAAAAACRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_ext8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvHAgEHB5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_ext16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvIAAIBBweRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_ext32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvJAAAAAgEHB5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_bin8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvEAgECkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_bin16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvFAAIBApGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_bin32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvGAAAAAgECkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_str8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvZAkFCkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_str16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvaAAJBQpGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_str32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvbAAAAAkFCkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_fixstr", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuiYWKRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_f32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvKAAAAAZGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_f64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvLAAAAAAAAAAGRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_u8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvMAZGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_u16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvNAAGRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_u32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvOAAAAAZGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_u64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvPAAAAAAAAAAGRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_i8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvQAZGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_i16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvRAAGRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_i32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvSAAAAAZGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_i64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvTAAAAAAAAAAGRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_true", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvDkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_false", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvCkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_nil", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvAkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_negfixint", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWv/kaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_reserved", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvBkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunk_extra_fixint_max", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWt/kaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_negfixint_min", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvgkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_fixstr_31", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWu/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_fixmap_15", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuPAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_fixarray_15", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWufAAAAAAAAAAAAAAAAAAAAkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_extra_nested", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRldlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuSgaFhkgECkJGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_1", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRkdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NZGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoJGheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_0", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRkJGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlKAAAKCRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunk_is_map", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRgaFhoWKRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunk_is_str", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRoWGRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunks_empty_with_size", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSQkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSQkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunks_empty_size_zero", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSQkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSQkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunks_is_str", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXShYZGheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunks_is_map", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSAkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunks_gap", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQEAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "nil_artifactId", + "inputBase64": "msClYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "msClYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": null + }, + { + "label": "nil_kind", + "inputBase64": "mqNhL2LAoTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2LAoTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "nil_version", + "inputBase64": "mqNhL2KlYXNzZXTA2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXTA2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:unversioned:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "nil_contentHash", + "inputBase64": "mqNhL2KlYXNzZXShMcAAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMcAAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "recordKey": null + }, + { + "label": "nil_mimeType", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDAoXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDAoXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "nil_createdAtUtc", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10wJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10wJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "nil_chunks", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXTAkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "nil_chunk_element", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRwJGheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "nil_chunk_hash", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlMAAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlMAAAKFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "nil_chunk_recordKey", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAwJGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAwJGheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "nil_tags", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvAgaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvAgaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "nil_tag_element", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuSwKF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuSwKF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "nil_metadata", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXjA", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXjA", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "nil_metadata_value", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWvA", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWvA", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "nil_metadata_key", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBwKF2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "nil_size", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "metadata_duplicate_key", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiCoWuhMaFroTI=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "metadata_integer_like_keys", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiDojEwoWGlYWxwaGGhYqEyoWM=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiDojEwoWGlYWxwaGGhYqEyoWM=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "metadata_int_key", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBBaF2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "metadata_int_value", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWsF", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "metadata_empty_key", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoKF2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoKF2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "metadata_proto_key", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBqV9fcHJvdG9fX6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBqV9fcHJvdG9fX6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "metadata_map16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXjeAAGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "metadata_map32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXjfAAAAAaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "metadata_is_array", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiQ", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "metadata_is_str", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXihaw==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "tags_is_map", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuAgaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "tags_int_element", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRBYGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "tags_array16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWvcAAGheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "trailing_nil", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdsA=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "trailing_reserved_code", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdsE=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "trailing_truncated_array", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdpI=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "top_nil", + "inputBase64": "wA==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "top_empty", + "inputBase64": "", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "top_map", + "inputBase64": "gaFhoWI=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "top_str", + "inputBase64": "oWE=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "top_int", + "inputBase64": "BQ==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "top_truncated", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoQ==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_u8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcwAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "offset_u8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcwAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunksize_u8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDMAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "size_u16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0AAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "offset_u16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0AAACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunksize_u16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDNAACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "size_u32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc4AAAAAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "offset_u32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc4AAAAAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunksize_u32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDOAAAAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "size_u64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc8AAAAAAAAAAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "offset_u64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc8AAAAAAAAAAACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunksize_u64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDPAAAAAAAAAACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "size_i8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdAAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "offset_i8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdAAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunksize_i8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDQAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "size_i16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdEAAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "offset_i16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdEAAACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunksize_i16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDRAACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "size_i32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdIAAAAAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "offset_i32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdIAAAAAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunksize_i32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDSAAAAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "size_i64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdMAAAAAAAAAAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "offset_i64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdMAAAAAAAAAAACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunksize_i64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDTAAAAAAAAAACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "size_f32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcoAAAAAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_f32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcoAAAAAAKFrkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_f32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDKAAAAAKFrkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_f32_negzero", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcqAAAAAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_f32_negzero", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcqAAAAAAKFrkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_f32_negzero", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDKgAAAAKFrkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_f64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcsAAAAAAAAAAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_f64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcsAAAAAAAAAAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_f64", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDLAAAAAAAAAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_f64_negzero", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcuAAAAAAAAAAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_f64_negzero", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcuAAAAAAAAAAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_f64_negzero", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDLgAAAAAAAAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_f64_one", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Ncs/8AAAAAAAAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_f64_one", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Ncs/8AAAAAAAAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_f64_one", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDLP/AAAAAAAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_true", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcOvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_true", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcMAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_true", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDDoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_false", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcKvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_false", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcIAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_false", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDCoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_str", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NaEwr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_str", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NaEwAKFrkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_str", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQChMKFrkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_bin", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcQBAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_bin", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcQBAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_bin", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDEAQCha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_array", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NZCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_array", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NZAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_array", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCQoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_ext", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdQBAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_ext", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdQBAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_ext", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDUAQCha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_fixext4", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdYAAAAAAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_fixext4", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdYAAAAAAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_fixext4", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDWAAAAAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_fixext8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdcAAAAAAAAAAACvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_fixext8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdcAAAAAAAAAAAAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_fixext8", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDXAAAAAAAAAAAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_fixext16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdgAAAAAAAAAAAAAAAAAAAAAAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_fixext16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdgAAAAAAAAAAAAAAAAAAAAAAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_fixext16", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDYAAAAAAAAAAAAAAAAAAAAAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_negative", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nf\u002BvYXBwbGljYXRpb24veC10oXSQkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_u64_over_long", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc///////////69hcHBsaWNhdGlvbi94LXShdJCRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_i64_min", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdOAAAAAAAAAAK9hcHBsaWNhdGlvbi94LXShdJCRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "size_2p53_minus_1", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc8AH////////69hcHBsaWNhdGlvbi94LXShdJCRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_int_max", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc5/////r2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAzn////\u002Bha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc5/////r2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAzn////\u002Bha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunksize_2p31", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc6AAAAAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAzoAAAACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_i32_min", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDSgAAAAKFrkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunksize_i64_below_i32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQDT/////3////\u002Bha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "offset_beyond_int32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc8AAAABf////a9hcHBsaWNhdGlvbi94LXShdJOU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM5/////oWuU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1zn/////Of////6FrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc7////\u002Bzn////\u002Bha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc8AAAABf////a9hcHBsaWNhdGlvbi94LXShdJOU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM5/////oWuU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1zn/////Of////6FrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc7////\u002Bzn////\u002Bha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunks_out_of_order", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQKvYXBwbGljYXRpb24veC10oXSSlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQEBoWuU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AAGha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQKvYXBwbGljYXRpb24veC10oXSSlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQEBoWuU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AAGha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "chunks_overlap", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQKvYXBwbGljYXRpb24veC10oXSSlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQACoWuU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AQGha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "chunk_negative_size", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQD/oWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "str_bin", + "inputBase64": "mqNhL2LEAUGhMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "str_ext", + "inputBase64": "mqNhL2LUAUGhMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "str_int", + "inputBase64": "mqNhL2JBoTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "str_str16", + "inputBase64": "mqNhL2LaAAFBoTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KhQaEx2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "str_str32", + "inputBase64": "mqNhL2LbAAAAAUGhMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KhQaEx2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "str_empty", + "inputBase64": "mqNhL2KgoTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KgoTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "str_invalid_utf8", + "inputBase64": "mqNhL2Ki//6hMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2Km77\u002B977\u002B9oTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "str_lone_surrogate_cesu", + "inputBase64": "mqNhL2Kj7aCAoTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2Kp77\u002B977\u002B977\u002B9oTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "str_overlong", + "inputBase64": "mqNhL2KiwK\u002BhMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2Km77\u002B977\u002B9oTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "str_truncated_sequence", + "inputBase64": "mqNhL2Ki4oKhMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2Kj77\u002B9oTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "str_bom", + "inputBase64": "mqbvu79ib22lYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqbvu79ib22lYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:bom:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "str_nul", + "inputBase64": "mqNhAGKlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhAGKlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "id_invalid_utf8", + "inputBase64": "mqH/pWFzc2V0oTHZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqPvv72lYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:83d544ccc223c057d2bf80d3f2a32982c32c3c0db8e2674820da5064783fb097:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "hash_invalid_utf8", + "inputBase64": "mqNhL2KlYXNzZXShMaH/AK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMaPvv70Ar2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:\uFFFD" + }, + { + "label": "version_invalid_utf8", + "inputBase64": "mqNhL2KlYXNzZXSi//7ZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAAKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXSm77\u002B977\u002B92UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:52793f8dc1d85e409f8c88be99d8b31d58f676246340150f406289e04a11151e:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "id_blank", + "inputBase64": "mqIgIKVhc3NldKEx2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqIgIKVhc3NldKEx2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "recordKey": null + }, + { + "label": "hash_blank", + "inputBase64": "mqNhL2KlYXNzZXShMaIgIACvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMaIgIACvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": null + }, + { + "label": "hash_prefix_upper_long_s", + "inputBase64": "mqNhL2KlYXNzZXShMavFv2hhMjU2OmFiYwCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMavFv2hhMjU2OmFiYwCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:\u017Fha256:abc" + }, + { + "label": "truncated_string_body", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuh", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "truncated_str8_length", + "inputBase64": "kdk=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "truncated_u16", + "inputBase64": "laFhoWuhdtlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0A", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "truncated_u64", + "inputBase64": "laFhoWuhdtlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc8AAAA=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "truncated_array16", + "inputBase64": "3AA=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "extra_11_truncated_string", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdqVB", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "extra_11_truncated_str8_length", + "inputBase64": "m6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdtk=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "array_15", + "inputBase64": "n6NhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdsDAwMDA", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "metadata_15_entries", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiPomswoXaiazGhdqJrMqF2omszoXaiazShdqJrNaF2oms2oXaiazehdqJrOKF2oms5oXajazEwoXajazExoXajazEyoXajazEzoXajazE0oXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiPomswoXaiazGhdqJrMqF2omszoXaiazShdqJrNaF2oms2oXaiazehdqJrOKF2oms5oXajazEwoXajazExoXajazEyoXajazEzoXajazE0oXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "tags_fixint_then_trailing", + "inputBase64": "maNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWsBoWE=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "tags_fixmap", + "inputBase64": "maNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuBoWGhYg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "metadata_fixint_then_trailing", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXgBoWGhYg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "metadata_array_then_trailing", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiSoWGhYqFjoWQ=", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "width_u8_200", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NczIr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAzMiha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NczIr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAzMiha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_u8_200_offset", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0Aya9hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0AyKFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NczIAaFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NczJr2FwcGxpY2F0aW9uL3gtdKF0kpTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAzMiha5TZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTXMyAGha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_u16_258", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAq9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAq9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_u16_258_offset", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAgGha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAgGha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_u16_40000", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc2cQK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM2cQKFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc2cQK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM2cQKFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_u16_40000_offset", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc2cQa9hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM2cQKFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc2cQAGha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc2cQa9hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM2cQKFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc2cQAGha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_u32_258", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc4AAAECr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAzgAAAQKha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAq9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_u32_258_offset", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc4AAAECAaFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAgGha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_u64_258", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc8AAAAAAAABAq9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM8AAAAAAAABAqFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAq9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_u64_258_offset", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc8AAAAAAAABAgGha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAgGha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_i8_100", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdBkr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUA0GSha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NWSvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQBkoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_i8_100_offset", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0AZa9hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0AZKFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdBkAaFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NWWvYXBwbGljYXRpb24veC10oXSSlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQBkoWuU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1ZAGha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_i16_258", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdEBAq9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1ANEBAqFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAq9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_i16_258_offset", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdEBAgGha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAgGha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_i32_258", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdIAAAECr2FwcGxpY2F0aW9uL3gtdKF0kZTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUA0gAAAQKha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAq9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_i32_258_offset", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdIAAAECAaFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAgGha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_i64_258", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdMAAAAAAAABAq9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1ANMAAAAAAAABAqFrkaF4gaFroXY=", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAq9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrkaF4gaFroXY=", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_i64_258_offset", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdMAAAAAAAABAgGha5GheIGha6F2", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BA69hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0BAqFrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0BAgGha5GheIGha6F2", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_fixint_127", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NX\u002BvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQB/oWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NX\u002BvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQB/oWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_fixint_127_offset", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc0AgK9hcHBsaWNhdGlvbi94LXShdJKU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AM0Af6FrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NX8BoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NcyAr2FwcGxpY2F0aW9uL3gtdKF0kpTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAf6FrlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NX8BoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_u32_over_int32", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc6y0F4Ar2FwcGxpY2F0aW9uL3gtdKF0kpTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAzn////\u002Bha5TZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTXOf////84y0F4BoWuRoXiBoWuhdg==", + "accepted": true, + "reencodedBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nc6y0F4Ar2FwcGxpY2F0aW9uL3gtdKF0kpTZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUAzn////\u002Bha5TZQGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTXOf////84y0F4BoWuRoXiBoWuhdg==", + "recordKey": "mesh:cdn:artifact:a-b:1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "label": "width_negative_fixint", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1Nf\u002BvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "width_negative_fixint_min", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NeCvYXBwbGljYXRpb24veC10oXSRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAAoWuRoXiBoWuhdg==", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "width_negative_i64_safe", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdP/4AAAAAAAAa9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + }, + { + "label": "width_negative_i64_unsafe", + "inputBase64": "mqNhL2KlYXNzZXShMdlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NdP/4AAAAAAAAK9hcHBsaWNhdGlvbi94LXShdJGU2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AACha5GheIGha6F2", + "accepted": false, + "reencodedBase64": null, + "recordKey": null + } + ] +} \ No newline at end of file diff --git a/contracts/cultmesh/content-vectors.ts-written.json b/contracts/cultmesh/content-vectors.ts-written.json new file mode 100644 index 00000000..be9e1549 --- /dev/null +++ b/contracts/cultmesh/content-vectors.ts-written.json @@ -0,0 +1,120 @@ +{ + "vectors": [ + { + "label": "ts multi-chunk body", + "kind": "manifest", + "input": { + "artifactId": "Pixel Heroes/Hüt ☃", + "kind": "asset", + "version": "", + "mimeType": "application/x-cultnet-ts-vector", + "createdAtUtc": "2026-10-19T00:00:00.0000000+00:00", + "chunkSizeBytes": 131072, + "tags": [ + "a", + "b" + ], + "metadata": [ + [ + "10", + "x" + ], + [ + "alpha", + "y" + ], + [ + "2", + "z" + ] + ], + "body": { + "length": 777777, + "multiplier": 7, + "modulus": 256 + } + }, + "recordKey": "mesh:cdn:artifact:pixel-heroes-hüt:unversioned:cf8a453a36981321977355448d24df49bcefee22be6e3730b9140e87c29013f9", + "messagePackBase64": "mrVQaXhlbCBIZXJvZXMvSMO8dCDimIOlYXNzZXSg2UBjZjhhNDUzYTM2OTgxMzIxOTc3MzU1NDQ4ZDI0ZGY0OWJjZWZlZTIyYmU2ZTM3MzBiOTE0MGU4N2MyOTAxM2Y5zgAL3jG/YXBwbGljYXRpb24veC1jdWx0bmV0LXRzLXZlY3RvctkhMjAyNi0xMC0xOVQwMDowMDowMC4wMDAwMDAwKzAwOjAwlpTZQDM3N2M3YjBjYzIyOWY0NzA1NjcwZDYzZDU0NGMyNzViNjYzZGY2ZThjODMxYjA5ODQ2YTVjNDhjY2EwOGI4NDgAzgACAADZT21lc2g6Y2RuOmNodW5rOjM3N2M3YjBjYzIyOWY0NzA1NjcwZDYzZDU0NGMyNzViNjYzZGY2ZThjODMxYjA5ODQ2YTVjNDhjY2EwOGI4NDiU2UAzNzdjN2IwY2MyMjlmNDcwNTY3MGQ2M2Q1NDRjMjc1YjY2M2RmNmU4YzgzMWIwOTg0NmE1YzQ4Y2NhMDhiODQ4zgACAADOAAIAANlPbWVzaDpjZG46Y2h1bms6Mzc3YzdiMGNjMjI5ZjQ3MDU2NzBkNjNkNTQ0YzI3NWI2NjNkZjZlOGM4MzFiMDk4NDZhNWM0OGNjYTA4Yjg0OJTZQDM3N2M3YjBjYzIyOWY0NzA1NjcwZDYzZDU0NGMyNzViNjYzZGY2ZThjODMxYjA5ODQ2YTVjNDhjY2EwOGI4NDjOAAQAAM4AAgAA2U9tZXNoOmNkbjpjaHVuazozNzdjN2IwY2MyMjlmNDcwNTY3MGQ2M2Q1NDRjMjc1YjY2M2RmNmU4YzgzMWIwOTg0NmE1YzQ4Y2NhMDhiODQ4lNlAMzc3YzdiMGNjMjI5ZjQ3MDU2NzBkNjNkNTQ0YzI3NWI2NjNkZjZlOGM4MzFiMDk4NDZhNWM0OGNjYTA4Yjg0OM4ABgAAzgACAADZT21lc2g6Y2RuOmNodW5rOjM3N2M3YjBjYzIyOWY0NzA1NjcwZDYzZDU0NGMyNzViNjYzZGY2ZThjODMxYjA5ODQ2YTVjNDhjY2EwOGI4NDiU2UAzNzdjN2IwY2MyMjlmNDcwNTY3MGQ2M2Q1NDRjMjc1YjY2M2RmNmU4YzgzMWIwOTg0NmE1YzQ4Y2NhMDhiODQ4zgAIAADOAAIAANlPbWVzaDpjZG46Y2h1bms6Mzc3YzdiMGNjMjI5ZjQ3MDU2NzBkNjNkNTQ0YzI3NWI2NjNkZjZlOGM4MzFiMDk4NDZhNWM0OGNjYTA4Yjg0OJTZQGEwYmI2OWY0NDg2MWViM2RiNTYwMjZhMWFiYmY5MWZmYTYyMTMyNTA4ZDVhMDZlMGQwZGRjNWNjMjZiZTMzZmPOAAoAAM4AAd4x2U9tZXNoOmNkbjpjaHVuazphMGJiNjlmNDQ4NjFlYjNkYjU2MDI2YTFhYmJmOTFmZmE2MjEzMjUwOGQ1YTA2ZTBkMGRkYzVjYzI2YmUzM2ZjkqFhoWKDojEwoXilYWxwaGGheaEyoXo=" + }, + { + "label": "ts empty body", + "kind": "manifest", + "input": { + "artifactId": "Pixel Heroes/Hüt ☃", + "kind": "asset", + "version": "", + "mimeType": "application/x-cultnet-ts-vector", + "createdAtUtc": "2026-10-19T00:00:00.0000000+00:00", + "chunkSizeBytes": 131072, + "tags": [ + "a", + "b" + ], + "metadata": [ + [ + "10", + "x" + ], + [ + "alpha", + "y" + ], + [ + "2", + "z" + ] + ], + "body": { + "length": 0, + "multiplier": 7, + "modulus": 256 + } + }, + "recordKey": "mesh:cdn:artifact:pixel-heroes-hüt:unversioned:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "messagePackBase64": "mrVQaXhlbCBIZXJvZXMvSMO8dCDimIOlYXNzZXSg2UBlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1AL9hcHBsaWNhdGlvbi94LWN1bHRuZXQtdHMtdmVjdG9y2SEyMDI2LTEwLTE5VDAwOjAwOjAwLjAwMDAwMDArMDA6MDCRlNlAZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NQAA2U9tZXNoOmNkbjpjaHVuazplM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1kqFhoWKDojEwoXilYWxwaGGheaEyoXo=" + }, + { + "label": "ts single chunk, versioned", + "kind": "manifest", + "input": { + "artifactId": "Pixel Heroes/Hüt ☃", + "kind": "asset", + "version": "V1 Beta", + "mimeType": "application/x-cultnet-ts-vector", + "createdAtUtc": "2026-10-19T00:00:00.0000000+00:00", + "chunkSizeBytes": 4194304, + "tags": [], + "metadata": [], + "body": { + "length": 1000, + "multiplier": 7, + "modulus": 256 + } + }, + "recordKey": "mesh:cdn:artifact:pixel-heroes-hüt:v1-beta:89f4ff56a25dd1db06a4ce6033603775d705fb96f30f8693733fef602a1ca532", + "messagePackBase64": "mrVQaXhlbCBIZXJvZXMvSMO8dCDimIOlYXNzZXSnVjEgQmV0YdlAODlmNGZmNTZhMjVkZDFkYjA2YTRjZTYwMzM2MDM3NzVkNzA1ZmI5NmYzMGY4NjkzNzMzZmVmNjAyYTFjYTUzMs0D6L9hcHBsaWNhdGlvbi94LWN1bHRuZXQtdHMtdmVjdG9y2SEyMDI2LTEwLTE5VDAwOjAwOjAwLjAwMDAwMDArMDA6MDCRlNlAODlmNGZmNTZhMjVkZDFkYjA2YTRjZTYwMzM2MDM3NzVkNzA1ZmI5NmYzMGY4NjkzNzMzZmVmNjAyYTFjYTUzMgDNA+jZT21lc2g6Y2RuOmNodW5rOjg5ZjRmZjU2YTI1ZGQxZGIwNmE0Y2U2MDMzNjAzNzc1ZDcwNWZiOTZmMzBmODY5MzczM2ZlZjYwMmExY2E1MzKQgA==" + }, + { + "label": "ts whitespace version, padded kind and mime", + "kind": "manifest", + "input": { + "artifactId": "Pixel Heroes/Hüt ☃", + "kind": " build ", + "version": " ", + "mimeType": " text/plain; charset=utf-8 ", + "createdAtUtc": "2026-10-19T00:00:00.0000000+00:00", + "chunkSizeBytes": 4194304, + "tags": [], + "metadata": [], + "body": { + "length": 1000, + "multiplier": 7, + "modulus": 256 + } + }, + "recordKey": "mesh:cdn:artifact:pixel-heroes-hüt:unversioned:89f4ff56a25dd1db06a4ce6033603775d705fb96f30f8693733fef602a1ca532", + "messagePackBase64": "mrVQaXhlbCBIZXJvZXMvSMO8dCDimIOnIGJ1aWxkIKIgINlAODlmNGZmNTZhMjVkZDFkYjA2YTRjZTYwMzM2MDM3NzVkNzA1ZmI5NmYzMGY4NjkzNzMzZmVmNjAyYTFjYTUzMs0D6L0gIHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTggINkhMjAyNi0xMC0xOVQwMDowMDowMC4wMDAwMDAwKzAwOjAwkZTZQDg5ZjRmZjU2YTI1ZGQxZGIwNmE0Y2U2MDMzNjAzNzc1ZDcwNWZiOTZmMzBmODY5MzczM2ZlZjYwMmExY2E1MzIAzQPo2U9tZXNoOmNkbjpjaHVuazo4OWY0ZmY1NmEyNWRkMWRiMDZhNGNlNjAzMzYwMzc3NWQ3MDVmYjk2ZjMwZjg2OTM3MzNmZWY2MDJhMWNhNTMykIA=" + } + ] +} diff --git a/docs/cultlib-gaps-map.md b/docs/cultlib-gaps-map.md index 7227f5e3..27c848d2 100644 --- a/docs/cultlib-gaps-map.md +++ b/docs/cultlib-gaps-map.md @@ -27,6 +27,10 @@ copy of the solver and the warm/cold sweep, `suite` a scratch copy of `packages/ key tests read C#-written bytes instead of literals. 7. `decode-stack-safety` (section D): cultcache-rs's one decode door grows its stack at every container level (ruling `decode-stack-mechanism-ruled`). Independent of 5 and 6; thing2's contract-rs merge waits on it. +8. `expect-persisted-schema` (section E): an observed entry keeps the schema id it was persisted under and + conditional commit compares that (ruling `aetheria-release:ruling:expect-fix-in-cultcache`). C# only. The + release that carries it to Aetheria follows question `cultlib-gaps:question:expect-fix-release-lane`; the + Aetheria pin bump is an Aetheria follow-on, not this cut. ## B. BoundedLeastSquares stopping @@ -684,6 +688,65 @@ door-checked `rmpv::Value`s that way (follow-up `rs-redecode-outside-door-r2`). Rejected inside the ruling: the derive placement (above), and writing the wrapper by hand (D9: established tooling, one owner upstream). +## E. Expect under compatible schema drift (cut `expect-persisted-schema`) + +Pinned base: `origin/main` at `b549d731` (2026-10-21). Imagination pass `imagination-expect`, session +`self-2026-10-19-ag7`. Probe `probe1` (`ProbeExpectDrift.cs`, written into the clone by the job command, never +committed) ran on Yggdrasil, dotnet sdk 10.0, against `b549d731`. Fixture: a record written under +`DriftWide` (`tests.variant_drift.v1`) and read by a cache whose registry holds only `DriftNarrow` (v2) loads +as CompatibleDrift. + +### Body facts + +- **E1. The defect.** `CultCommitRequest.ConditionsHold` (`CultCache.cs:1677-1696`) compares the durable + record's `SchemaId` with the observed entry's `Descriptor.SchemaId` (`Expect` captures it at `:1772`; + `ExpectUnchanged` reads it at `:1694`). `ToStoredDocument` (`:3212-3268`) resolves a persisted record to the + local descriptor and drops `record.SchemaId`. So the observed side holds the local id and the durable side + the persisted id. Probe: unchanged drifted record, `Expect` + `Upsert` commits **False** on the single-file + store (P1) and on the directory store (P7). Same code at Aetheria's pin `45c2f40` (`CultCache.cs:1147-1207`). +- **E2. What must still refuse, at base.** Another cache commits a changed value (new minted `storedAt`): + Expect False (P4). Another cache reading under v3 (`DriftReused`) flushes the file, rewriting the record under + v3 with the **same** `storedAt`: Expect False (P5). +- **E3. A whole-file write rewrites every record under its local schema and keeps `storedAt`.** + `ToPersistedRecord` (`:3194-3204`) writes `entry.Descriptor.SchemaId` with `entry.StoredAt`, and both the + single-file `PushAll` (`:3361-3375`) and an unconditional or dirty `CommitBatchCore` (`:3393-3399`) write the + whole view. So the contract sentence "every write to a key mints a later storedAt" + (`Contracts/cultcache-store-composition.md:229-231`) is false for a flush: the schema id is the half of the + identity that sees it. The directory store writes only staged keys, each freshly stamped + (`DirectoryMessagePackBackingStore.cs:240-293`), so it never normalises a clean record. +- **E4. Lifetime at base.** After the cache's own `PushAll`, Expect commits True (P2): disk and descriptor now + agree. After *another* cache's normalising flush to the observer's own local schema, Expect commits True (P3); + after a re-pull, True (P6). +- **E5. Re-reads.** Both pull filters skip a record whose `storedAt` and local descriptor id are unchanged + (`CultCache.cs:3323-3327`, `DirectoryMessagePackBackingStore.cs:110-114`). A record normalised P to L by + another writer keeps `storedAt` and the local id, so with the persisted id on the entry the filter must + compare the persisted id, or a re-read never refreshes it and Expect stays a Mismatch forever. +- **E6. Other runtimes.** cultcache-rs `SingleFileMessagePackBackingStore::compare_exchange` and the snapshot + form (`packages/cultcache-rs/src/lib.rs:1352-1393`, `:1427-1450`) compare whole raw envelopes as read from + disk (`schema_id: Some(record.1)`, `:3189`); the expectation *is* the persisted envelope, and the crate has + no compatible-drift resolution, so the split cannot occur. Unchanged. cultcache-ts and cultcache-py have no + conditional commit (`cultcache-persistence-format.md:67-69`; grep finds none); nor do the cultnet and + cultmesh packages or cultmesh-kotlin. Not added here. +- **E7. Release path.** Aetheria pins `org.gamecult.cultlib#cultlib-unity-v1.0.60` and + `org.gamecult.caching.unity#caching-unity-v1.4.0`, both locked at `45c2f400` (2026-09-17). The CultCache + runtime ships as DLLs in `unity/org.gamecult.cultlib` (built by `scripts/build-unity-package.ps1`). Main is + 1363 commits past the pin with a `### Breaking` section under `[Unreleased]` + (`unity/org.gamecult.cultlib/CHANGELOG.md`). `release/cultlib-unity-1.0.x` is the pin plus one commit + (1.0.61, Win64 QUIC plugins). + +### Authority, and why + +The backing store that read or wrote a record's durable bytes owns the schema id it is persisted under. It is set +when the store builds the entry from a persisted record (`ToStoredDocument`), defaults to the descriptor's id +for an entry this cache stamps (it is about to be written under that id), and is reset to the descriptor's id, +under the hold, after a whole-file write the store completed. The commit check, `Expect` and the pull filters +only read it. `Descriptor.SchemaId` stays what the entry decodes as; it is no longer the record's durable identity. + +Consequence, recorded rather than ruled: after another writer's whole-file flush rewrites a drifted record +under a schema id this cache did not read it under, an `Expect` captured before is a Mismatch until the cache +re-reads (E4's P3 flips). That is the ruling's "compares that persisted id" applied to a rewrite that kept +`storedAt`; it is fail-closed, the standard retry (re-read, retry) recovers, and it is what refuses E2's P5. + ## Observed, not owned by these cuts - At the default tolerance the solver's answer on allocator-shaped problems depends on the start by up to the whole diff --git a/docs/cultmath-interval-ground-cut.md b/docs/cultmath-interval-ground-cut.md index 63001fd4..0eb8a5d2 100644 --- a/docs/cultmath-interval-ground-cut.md +++ b/docs/cultmath-interval-ground-cut.md @@ -1,6 +1,7 @@ # CultMath intervals and the gamecult.org ground: cut map -Status, 2026-10-04: interval-ops, glsl-lowering, snoise-tie (48aadda0) and affine-forms with +Status, 2026-10-14: the target is r2 (section "Target r2"); snoise-hessian, expr-ir and +cycles-converters are on main. Earlier status, 2026-10-04: interval-ops, glsl-lowering, snoise-tie (48aadda0) and affine-forms with affine-shaders (156782da) are on main; the as-built record is the last section. Figures quoted in Passes 1-5 at SNOISE_LIPSCHITZ 10.099261 predate the tie fix (now 7.9640074) and are conservative; design.md carries the current measurements. Map history: Imagination pass 4, 2026-10-03. Pass 1's Q1–Q3 are answered (below); @@ -8,7 +9,7 @@ the Self opened the `cultmath-tapes` campaign from pass 2; pass 3 revises the two CultLib cuts after their first Hands reports and the operator's challenge to the march, and changes the site field to envelope-then-noise; pass 4 (section "Pass 4") revises `interval-ops` to r3 after its second Hands report -and Soul's verdict, and names the one shipped void (Q9). Pass 5 (section "Pass 5") maps +and Soul's verdict, and names the one shipped void (Q9, ruled `operator-shipped-void`). Pass 5 (section "Pass 5") maps affine forms against CultLib `main` at `a7966142`. Where a later pass and an earlier section disagree, the later pass wins. Where this map and the Body disagree, the Body wins and this map is stale. @@ -86,25 +87,181 @@ pane and read back. CultLib has no GPU harness (follow-up ### Campaign -`cultmath-tapes` (Q1), repos `GameCult/CultLib` and `GameCult/gamecult-site`, -target doc `docs/cultmath-tape-target.md` unparked for step 1 only. The site -cuts cite `site-masthead:ruling:operator-chromeless-column` and depend on -`wash-home-only` landing first, because they rewrite the same lines. +`cultmath-tapes`, repos `GameCult/CultLib` and `GameCult/gamecult-site`, in the +Eureka Self area (ruling `adopted-by-eureka-self-area`). The tape target doc +`docs/cultmath-tape-target.md` has steps 1 (intervals), 2 (graph and C# +evaluator) and 4 (HLSL interpreter) unparked, with affine forms beside step 1 +(rulings `affine-forms-unparked`, `material-ir-cultmath-now`, +`tape-unparked-for-trophic-graphs`). Steps 3 (pruning) and 5 (meshing) stay +parked. The volumetric line (the culled march's proofs, the integration-native +noise domain, the site ground) leads the campaign (ruling +`volumetric-work-prioritized`). Site cuts cite +`site-masthead:ruling:operator-chromeless-column`. -### Owner, consumers, invariant +### Target r2: owners, consumers, invariants -- Owner: CultMath owns interval arithmetic and the noise bounds in C# and HLSL, - GLSL derived. The site owns its field, flow, march, TAA, stardust, DoF and - budget controller. `custom.scss` owns the brand palette the shader reads - (four nebula tokens) and the seed values of the ground tokens. `ground.js` - owns the sampled ground tokens while it runs. -- Consumers: the site ground now; Aetheria's nebula raymarch at its CultMath - pin bump; the tapes campaign's HLSL interpreter later. -- Protected invariant, **`intervals-enclose`**: every interval function returns - a `[lo, hi]` containing `f(x)` for every `x` in its input region, in C#, HLSL - and GLSL alike. A consumer that skips a region because `hi < cutoff` has - skipped nothing that was there. The domain warp does not weaken it: a warped - point lies in the ball enlarged by the warp bound, and a test says so. +**Owners.** CultMath owns every function a consumer evaluates and every bound on +it: the snoise kernel and its derivatives, the noise pins, intervals, affine +forms, the warp-chain stage functions and their span bounds, the closed-form span +integral, the Cycles converters, the trophic node primitives, and the expression +graph with its evaluator and interpreter. C# is the reference; the HLSL mirrors it; +the GLSL is generated. `GameCult.Caching.MessagePack` owns the wire shape of CultMath +values and graphs. A consumer owns its composition and nothing below it: the site +owns its field's brush, ramp, chain order and parameters, its motion, TAA, +stardust, DoF, budget controller and sampled tokens; Aetheria owns its species +graphs, their settings and when they are evaluated. `custom.scss` owns the four +nebula input tokens and the seed values of the ground tokens. + +**Consumers.** + +- The gamecult.org ground: the Span Lab framework with the void as its brush + (ruling `site-ground-field-ruled`), in WebGL2 GLSL, vendoring CultMath's + generated GLSL by CultLib commit. +- Aetheria fauna (`aetheria-fauna:target:r4`): trophic species graphs as + `CultMath.Expr` documents, evaluated by the C# evaluator in ServerShared and by + the HLSL interpreter in its presenters, over CultMath's node primitives. +- Aetheria's Cycles-matched bakes (`aetheria-release`): reference bakes compared + with CultMath's Cycles converters within the measured tolerance class. + +**Not consumers.** Asura (its field is noise-dominated and needs no tape). +AetheriaEve and AetheriaThing (archived). The material graph line until it returns +after the demo (`aetheria-release:ruling:demo-material-scope`). The brush-grammar +station, until pruning and meshing unpark. Aetheria's nebula on the +span framework is an option to try (ruling `aetheria-nebula-spans-as-option`), not +yet a consumer; until a cut makes it one, the nebula consumes CultMath noise at its +pin bump and nothing else from this line. + +**Invariants.** + +- **`intervals-enclose`**: every interval function returns a `[lo, hi]`, and every + affine form's range is an interval, containing `f(x)` for every `x` in its input + region, in C#, HLSL and GLSL alike. A domain warp bounded by `D` is enclosed by + enlarging the ball radius by `D`. A consumer that skips a region because + `hi < cutoff` has skipped nothing that was there. +- **`affine-beats-interval-on-wells`**: on the deep-well scenario (wells about an + order of magnitude larger than the fog gradient), the affine bound's combined cost + ratio exceeds the centred interval bound's at warp 0 and at warp `D`, with the + cull floor at 0.5 (rulings `wells-scale-order-of-magnitude`, + `affine-wells-contract-cheaper-than-interval`). +- **`noise-pins-measured`**: there is one snoise kernel, and its value, gradient + and Hessian come from the same tie order. `SNOISE_LIPSCHITZ`, `SNOISE_HESSIAN` + and `SNOISE_THIRD` are each measured on that kernel by a committed test (the + refined maximum times 1.10), and every runtime's copy is pinned equal to the C# + constant by a value test. A kernel change re-measures every pin in the same + merge. Consumers read the pins and the derivative functions from CultMath, + never from page-local copies. +- **`span-bounds-enclose`**: each warp-chain stage (per-component offsets, + anisotropic stretch, plain or ridged `1 − 2|n|`, curl if ruled) is a CultMath + function in C#, HLSL and GLSL returning value, Jacobian and span bounds (speed, + acceleration, curvature, fold deviation) derived only from the noise pins. Each + bound holds at every point of its span. The composition helper composes them by + the chain rule; a consumer writes its chain and never derives a bound (ruling + `span-chain-shape-ruled`). +- **`span-integration-closed-form`**: along a span, optical depth is integrated in + closed form, the clamped linear ramp by `integral_clamp_linear` (split at the + exact clamp crossings, finite for infinite clamp bounds) and a proven + constant-density body by Beer–Lambert in one step (ruling + `operator-analytic-wall-body`). The linearisation error is bounded by the + composed stage bounds, and a span proved empty or saturated by them is so at + every point. +- **`glsl-derived`**: `CultMath.glsl`, `CultMath.Phacelle.glsl`, + `CultMath.Cycles.glsl` and the golden fixture are generated by one enumerated + lowering from the HLSL and C# and pinned by tests; the Unity package's shaders + are byte-identical copies. Nobody edits them by hand, and a dialect gap is fixed + in the HLSL common subset. The site vendors the GLSL by CultLib commit, SHA in + the header, with a drift check. +- **`three-runtimes-agree`**: HLSL is a bit-for-bit mirror of C#, and the GLSL + agrees with C# on the golden fixture within each family's stated tolerance, + evaluated on a WebGL2 device. +- **`cycles-exact-to-unfused`**: CultMath's `cycles_*` functions are Cycles' + formulas with one IEEE single rounding per operation, bit-exact to the Blender + 5.2.2 Linux SSE4.2 oracle fixtures. Every other Cycles build and CultMath's own + shader lowerings are held to a per-function tolerance class measured on that + build and recorded in the oracle README; cancellation-prone functions (floored + modulo, wrap) carry an error bound relative to the operand scale and a divergence + note (ruling `cycles-kernel-reference-ruled`). +- **`one-expression-graph`**: `CultMath.Expr`'s `ExprGraph` is the one IR. One + validator admits a graph whole at build and at decode; one op table, append-only, + names every op; the graph has no loop construct, and stencils are build-time + substitution. Bytecode is derived from the graph, cache-only, and is never stored + as truth. The MessagePack resolver is the wire shape; JSON is never load-bearing. +- **`evaluator-composes-cultmath`**: the C# evaluator's result equals the direct + composition of the same CultMath calls bit for bit, one IEEE single per op; an + op's meaning is its CultMath function's, and a function's value change is a + Breaking release note. +- **`tape-interpreter-compute`**: the HLSL interpreter is one included source, + `CultMath.Tape.hlsl`, never a per-graph generated kernel. Its registers are + linear-scan allocated at lowering and live in groupshared memory, a slice per + thread, the group size shrinking as the register cap grows (64 registers: 128 + threads; 128: 64; 255: 32). It and every presenter that uses it run as compute + passes writing to a texture (ruling `tape-register-model-ruled`). +- **`interpreter-matches-evaluator`**: the HLSL interpreter agrees with the C# + evaluator on a graph corpus and on each consumer's own graph within tolerances + measured per op, compiled by dxc and run on a device. +- **`lattice-node-reads-bodies`**: the weighted lattice cellular node takes the + zone body span and a falloff and weights each candidate cell at its cell centre + inside the node. It states a supported weight-ratio range, its search window + holds every cell that can win within that range, and graph validation refuses + parameters outside it (ruling `lattice-weight-from-bodies-ruled`). +- **`site-field-span-framework`**: the gamecult.org ground's density is a + site-owned composition over CultMath stage functions, integrated span by span: + a ramp, a warp chain, and one authored brush, the void, a true 3D spherical + cavity of hollow radius 198 and ramp 50 inside a full cloud volume, a sun in its + floor and the camera orbiting low (rulings `operator-ground-void-brush`, + `operator-void-true-cavity`, `operator-shipped-void`). The site defines no noise, + derivative or bound. +- **`one-motion-owner`**: the ground has one motion law, owned by the site's field. + What moves the density is what TAA reprojection and the stardust read; nothing + evaluates motion a second way. +- **`shader-owns-ground`**: the ground is the shader's moving render. The CSS wash + tokens are sampled from its output by a non-stalling readback, carried across + page loads in `sessionStorage`, and are seed or fallback only. The shader reads + the four nebula input tokens, never an output token. +- **`dof-from-transmittance`**: the stardust's blur is driven by the cloud layer's + accumulated opacity at that pixel, so the clouds blur what lies behind them. +- **`budget-measured`**: quality steps down by measured GPU or frame time only + (samples, then resolution, then the CSS wash), never by user agent. + +**Not in scope.** + +- Pruning (tape step 3) and meshing (step 5). Interval, affine and gradient + evaluation over `ExprGraph` belong to pruning and stay parked. +- Span evaluation over the graph (`tape-span-eval`): the later generalisation of + the stage functions once the interpreter exists. +- A GLSL or WebGL2 tape interpreter: groupshared memory exists only in compute + shaders, and WebGL2 has none. The site's field is written in GLSL against the + stage functions. +- The material line (cones, frontiers, a per-graph HLSL emitter), until the + material graph returns after the demo. +- Flow laws, envelopes, brushes and chain order in CultMath: the consumer's. A + curl noise primitive waits on the operator's answer to follow-up + `curl-warp-primitives`. +- The kernel cascade, unless the operator's nebula work picks it. +- Per-depth transmittance for the stardust DoF. +- A CultMath release for the site; the site consumes a CultLib commit. + +**Canonical implementations.** Paths are under `packages/cultmath/` unless named. + +- Kernel, pins and span primitives: `src/CultMath/math.cs`, `math.Interval.cs`, + `math.Affine.cs`, `math.Span.cs`; `shaders/CultMath.hlsl`, + `CultMath.Interval.hlsl`, `CultMath.Affine.hlsl`. The stage functions land + beside them. +- Lowering and parity: `tests/CultMath.Tests/GlslLowering.cs`, + `GlslMirrorTests.cs`, `HlslMirrorTests.cs`, `fixtures/glsl-parity.json`; + generated `shaders/*.glsl`; Unity copies under + `unity/org.gamecult.cultmath/Shaders/`. +- Cycles: `src/CultMath/math.Cycles.cs`, `shaders/CultMath.Cycles.hlsl`, + `tools/cycles-oracle/` (oracle and the tolerance-class table), + `tests/CultMath.Tests/fixtures/cycles-oracle/`. +- Graph: `src/CultMath/Expr/`; wire shape + `src/GameCult.Caching.MessagePack/CultMathExprResolver.cs`; interpreter + `shaders/CultMath.Tape.hlsl` (cut `tape-interpreter`). +- Ground: gamecult-site, created by `cut-site-ground.r1` (no ground code on + `origin/main` `af6e206`); palette input the four `--gamecult-nebula-*` tokens in + `custom.scss`. +- Research behind the rulings: `docs/research/integration-native-noise-domain.md`, + `span-chain-and-site-field.md`, `tape-register-model.md`, + `lattice-site-weight.md`. ## The authority map (all four cuts) @@ -390,7 +547,9 @@ from the mobile preset, the phone's GPU time from the operator's phone. tolerance class and device named in the report. Not proved here, said plainly: tape evaluation, automatic pruning, `min`/`max` -choice tracking, affine arithmetic. Those unpark with steps 2–4. +choice tracking, affine arithmetic. Pruning and choice tracking stay parked; +the graph, its evaluator and interpreter, and affine forms have since unparked +(Target r2). ## Cut order @@ -444,8 +603,8 @@ Results against the SSE4.2 fixture: ## Standing design decisions (means; Self may overrule) -- D1. Intervals are `float2(lo, hi)`. Affine arithmetic is not taken; the - tightness number says whether it is ever worth it. +- D1. Intervals are `float2(lo, hi)`. Affine forms sit beside them (ruling + `affine-forms-unparked`); the wells contract says where they pay. - D2. No `iv_*` function has a value-only or gradient twin; the bounds take the point value only. - D3. The site vendors `CultMath.glsl` by CultLib commit, SHA in the header, a @@ -592,7 +751,7 @@ and `S` from the exponent (`e = 4` gives `S ≈ 1.3 Rh`, `e = 0.25` gives `S ≈ 0.12 Rh`), so `(Rh, S)` are the knobs and `(Rc, e)` derived. Shipped: `Rh = 198`, `S = 50`, so `Rc = Rh + S = 248` and `e = −ln CARVE / ln(1 − (Rh/Rc)²) = 0.40`, `K = 1/30` (pass 4 corrects this line's `e ≈ 0.6, Rc ≈ -220`, which did not satisfy the formula; Q9 holds the look question). +220`, which did not satisfy the formula; Q9 asked the look question and is ruled `operator-shipped-void`). Imagination's model (scratchpad `cavity_model.py`; the test confirms or refutes), 1080p, `N = 8`, per pixel for a converged frame; "ref" is the @@ -667,7 +826,7 @@ above. Everything else recovered carries over. **The site scene** (`site-ground` r3; the brush parameters in this paragraph, `Rc = 640`, `e = 4`, are superseded by pass 4's one shipped void, `Rh = 198`, -`S = 50`, `Rc = 248`, `e = 0.40`, pending Q9): the original's units. Outer volume: an +`S = 50`, `Rc = 248`, `e = 0.40`, as Q9 ruled): the original's units. Outer volume: an unbounded uniform fill (chosen over a shell: every ray then ends in a wall and the march terminates by opacity, never by a far plane; `Z1 = 2 Rc` bounds the pre-pass range only). The carve: `d = |p − c_v|`, `g(d) = (1 − @@ -806,7 +965,7 @@ answers the first; the second is content and stays. | --- | --- | --- | | `frustum-ball-float-crossing` | Medium | the radius is widened by a derived float32 bound (below); seven extreme families join the enclosure test; the strictness sentence leaves the C#, the HLSL and `design.md` | | `aetheria-far-plane-miscited` | Low | `far = 2048`, the Main Camera's (`ARPG.unity:31777`, `:31830`); the Tint camera's 1000 was the wrong camera | -| `shipped-void-two-scenes` | Medium | one shipped void, `(Rh, S) = (198, 50)`, `(Rc, e) = (248, 0.40)` derived; the map, the site-ground spec and the test agree; the look question is Q9 | +| `shipped-void-two-scenes` | Medium | one shipped void, `(Rh, S) = (198, 50)`, `(Rc, e) = (248, 0.40)` derived; the map, the site-ground spec and the test agree; the look question was Q9, ruled `operator-shipped-void` | | `lod-weights-never-exercised` | Low | configuration "LOD far" (`Rh = 4000`, `S = 50`, low camera, `f = 467`) reaches weights in `(0, 1)` and at 0; the `[w(z1), 1]` bound is recorded as a deviation with its soundness argument | | `stryker-timeout-survivor` | Low | 2525 named equivalent; ball radii to `1e3` so `L/r` dies to an enclosure test; every timeout hand-run; the report claims only demonstrated kills | @@ -853,7 +1012,7 @@ analytic body the second gains nothing: across a 442-wide ramp the optical depth exceeds 4 before the density is provably constant, so rays end inside the ramp and the body is never proven. The map's own rule says `(Rh, S)` are the knobs, so the honest choice is the first; it changes the look relative to the -site section, hence Q9 (below). For `CARVE = 1.5` the ramp width is tied to the +site section, hence Q9 (below; ruled (a), `operator-shipped-void`). For `CARVE = 1.5` the ramp width is tied to the exponent (`S/Rh = 1/√(1 − 1.5^(−1/e)) − 1`: `e = 0.4 → 0.25`, `e = 0.7 → 0.5`, `e = 1 → 0.73`, `e = 4 → 2.2`), so "pseudo-Gaussian" and "narrow" cannot both be had without a third knob, and a narrow wall at `e = 4` needs @@ -947,7 +1106,7 @@ assumption failed: the pre-band's 0-snoise steps, or a body start later than one more probe; the main pass reads it and never decides it. The Beer-Lambert step is the consumer's integration, not a CultMath function. - `(Rc, e)` are no longer authored; they are derived from `(Rh, S)`. The site - section's `Rc = 640, e = 4` is no longer an owner of the look (Q9 pending). + section's `Rc = 640, e = 4` is no longer an owner of the look (Q9 ruled (a), `operator-shipped-void`). - (c)'s contract is derived from its own run (0.90 of the ceiling); no absolute target is written for (c). - Deletion line: the false strictness sentence, the Tint camera citation, the @@ -967,6 +1126,10 @@ mind's copies need re-admission by Self. ## Questions +Q4-Q9 are all ruled; the options below are kept as the record of what was +asked. Q9: (a), ruling `operator-shipped-void` (`rh198-s50`). Q4: (a), ruling +`operator-palette-tokens`. Q5: (a), ruling `operator-wash-carry`. + **Q9. The one shipped void** (pass 4; finding `shipped-void-two-scenes`). Authored as `(Rh, S)` with `(Rc, e)` derived; `CARVE = 1.5`, `A = 20`, `F0 = 0.01`, `K = 1/30`, the camera as site-ground r3. @@ -1720,10 +1883,14 @@ Aetheria twin. ### Questions (admitted in the mind) -- `tape-register-model`: the HLSL interpreter's register model. Gates the - interpreter cut only. +- `tape-register-model`: the HLSL interpreter's register model. Ruled + `tape-register-model-ruled` (groupshared registers). - `lattice-site-weight-source`: how a weighted lattice node gets a per-site - weight (T7c). Gates fauna gap (1) only. + weight (T7c). Re-asked as `lattice-weight-from-bodies` and ruled + `lattice-weight-from-bodies-ruled` (node-reads-bodies). +- `lattice-window-sound-or-measured` (from section "lattice-weighted-cellular"): + a proven ring search or a fixed measured 7x7 window. Ruled + `lattice-ring-exit-sound` (ring by ring until no farther cell can win). Prior art in hand: `F:\Projects\aetheria-material-path-prior-art.md` section 4 (GPU interpreters: Fidget's crates, Dolphin ubershaders, Laine et al. on @@ -1733,17 +1900,18 @@ found) and section 6 (IR placement); Aetheria filaments). Neither covers a GPU tape interpreter's register storage (dynamic indexing of local arrays and scratch spill, groupshared memory, Fidget-wgpu's `tape_interpreter.wgsl`, Keeter's MPR 2020) or per-site weight fields in -lattice Voronoi. Both questions lack that prior art; Self runs Eyes before -putting them. +lattice Voronoi. Both questions have since been ruled. ### Cut sequence (Pass 7; one line each, mapped when about to run) Fauna's first cut, `fauna-trophic-habitat`, evaluates the habitat graph in C# at candidates. It needs `expr-ir` r2, gaps (2) and (4) with (3) under the strands, gap (1), and their ops registered (line 5). It does not need the interpreter or -gap (5); its presenter does. The critical path is `cycles-converters` merge, -then line 3 beside the ruling on `lattice-site-weight-source` and line 4, then -line 5; line 1 runs now, off that path. +gap (5); its presenter does. Lines 1 and 3 and `cycles-converters` are on +main (`911fc755`). The critical path is line 4a, after the ruling on +`lattice-window-sound-or-measured`, then line 5. Line 4b, the shader twins, +is not on the path to fauna's first cut; it is on the path to fauna's presenter, +with line 6. 1. `expr-ir` r2 (spec admitted): the graph, builder with substitution, decode validation, wire shape, C# evaluator. Touches no file `cycles-converters` @@ -1756,20 +1924,23 @@ line 5; line 1 runs now, off that path. `CultMath.hlsl`). Families append after the previous cut's, so these cuts map on the merged head, not beside the branch. Gap (3) folds into line 3, whose strand kernel is its only consumer. -3. `trophic-nodes` (CultLib): gap (3), an `out`-free - `distance_to_segment(float2, float2, float2)` in C# with its HLSL twin (T6; - `point` is reserved in HLSL, so the parameter is `point_value`); gap (2), a - weighted diagram over a site span (F1, F2, first-order border distance; - multiplicative and power weights); and gap (4), the soft Gabriel gate - (computed per tick on the CPU from a site span; the per-point strand kernel - over the gated edge span has the HLSL twin), with the span convention of - the model page. Waits on the `cycles-converters` merge and its map pass. -4. `lattice-weighted-cellular` (CultLib): gap (1), 2D, `pcg3d` cells, zone - time, smooth-min blend, a stated weight range sizing its window. Waits on - question `lattice-site-weight-source`. +3. `trophic-nodes` (CultLib): spec `cut-trophic-nodes.r1` admitted; see + "trophic-nodes" below for its body facts and decisions. +4. Gap (1), mapped in section "lattice-weighted-cellular" on 3's merged head + (`911fc755`), in two cuts. 4a, `lattice-weighted-cellular` + (`cut-lattice-weighted-cellular.r1`), is C#: the node reads the body span + and weights each cell at its centre through line 3's exact `power_border`. + It waits on question `lattice-window-sound-or-measured`. 4b, + `lattice-weighted-shaders` (`cut-lattice-weighted-shaders.r1`), adds the + twins of its four steps, the GLSL, the families and the lavapipe bounds. + It waits on 4a. 5. `expr-trophic-ops` (CultLib): the span input kind and ops for 2-4 in the op - table; a CultMath Unity tag for fauna. Waits on 1, 3 and 4. Fauna's first cut - waits on this. + table; the strand reduction over the gated edge span (the graph has no loop, + so a span op is a CultMath function: a C# span overload over a step with its + shader twin, the convention line 3 sets); follow-up + `expr-create-copy-then-validate` (the first cut that touches `ExprGraph`; + line 3 does not); a CultMath Unity tag for fauna. Waits on 1, 3 and 4. + Fauna's first cut waits on this. 6. `tape-interpreter` (CultLib): bytecode lowering, `CultMath.Tape.hlsl`, and the graph-parity harness (gap 5): C# evaluator against the interpreter on a graph corpus and on a consumer's graph, dxc compile plus a device run, held @@ -1783,6 +1954,110 @@ line 5; line 1 runs now, off that path. 10. `cultmath-unity-math-parity` (follow-up): square, exp2, exp10, log2, log10. 11. Pruning (tape step 3) and meshing (step 5): parked as the target says. +### trophic-nodes + +Written by Imagination (agent `imagination-ag4-trophic`, session +`self-2026-10-16-ag4`) against CultLib `origin/main` `f697e03f`, where +`cycles-converters` (`b136ad9b`), `expr-ir` and `stage-functions`/`stage-shaders` +(`d7d1bcf3`) are merged. One CultLib cut owns what fauna's map line +`cultmath-trophic-nodes` and this map's line 3 both name; fauna's consumer cut +(`fauna-trophic-habitat`) waits on line 5 and the Unity tag, not on this cut +alone. Spec: `cultmath-tapes:cut_spec:cut-trophic-nodes.r1`. + +#### Body facts (trophic-nodes) + +| # | Question | Result | +|---|---|---| +| TN1 | What does the probe compute, exactly? (Aetheria `docs/research/2026-10-14-trophic-dag-probe/trophic_probe.py:49-71`, `2026-10-14-body-voronoi-probe/body_voronoi_probe.py:36-67`, master `6b6e7c7c`) | Body diagram: every body visited, scores sorted, the two winners' `(F2 - F1) / |grad(F2 - F1)|` and its unit normal (the lattice web reads both). Power score `d^2 - sigma^2`, multiplicative `d / sigma` with `sigma` the well's Gaussian width. Gate: per pair `(i, j)`, margin = min over the other sites `k` of `(|k - mid| - r) / r`, `r = |ab| / 2`, unweighted positions; gate `smoothstep(-.15, .15, margin)`; no other site gives margin 9 (gate 1). Strands: max over gated edges of `gate * exp(-(segdist / width)^2)`, `width = 28 + .03 L`. | +| TN2 | Is the first-order power border exact? (scratch `border_probe.py`, double, 3,000 spans of 2-8 sites) | Yes: `F2 - F1` is affine in the query for power scores, so the first-order distance is the distance to the power bisector plane; worst relative error against that plane 2.2e-13. A one-pass fold (strict `<`, F1 then F2) gives the sorted order on every draw; an exact tie keeps the lower index first. Gabriel margin: a third site on the diameter circle gives 0, inside at half radius -0.5. | +| TN3 | Can the shader side take a span? | No resource in the mirror: `HlslSourceCompatibilityTests` compiles the HLSL text as C#, and `CultMath.hlsl` has no `StructuredBuffer` (0 in every `shaders/*.hlsl`). The struct-aware twin rule (`:153-161` at stage-shaders, now `:162-181`) compares struct and `int` arguments and private twins; `compared.Count` is 127 at `:181`. `GlslMirrorTests.FromScalars` (`:488-500`) decodes `int` and structs; `GlslTypes` (`:874-879`) maps names; `Resolve` (`:882-888`) binds public `math` methods only and cannot parse an empty parameter list. | +| TN4 | Wire coverage of a new public struct (`CultMathSerializationTests`, `CultMathJsonTests`, T5) | Every exported struct needs a `CultMathResolver` shape and a `CultMathJson` converter; JSON `Fields` (`CultMathJson.cs:269`) holds one scalar type per struct, so a struct mixing `float` and `int` fields needs new JSON machinery. Pattern: `52d25740` (SpanPath, SpanStage: resolver, JSON, a `Json`, a `RoundTrip` and a `Hex` pin). | +| TN5 | Who calls `distance_to_segment(.., out closest)`? | `MathTests.cs` and Aetheria `Assets/Scripts/ServerShared/Galaxy.cs`; it stays, unchanged in value. | +| TN6 | Is `CultMath` free to take `ReadOnlySpan`? | Yes: `net8.0;netstandard2.1` (`CultMath.csproj:4`); `BatchMath` already takes `ReadOnlySpan`. | + +#### Decisions (defaults, not forks) + +- **A span function is a C# loop over a step that has a shader twin.** The + shader cannot take a span in the mirror (TN3), and a buffer-taking HLSL + function would be a second, untested path. So each span function is one fold: + `site_cells_empty()`, then `site_cells_insert(cells, score, index)` per site, + read by `site_cells_border(cells)`; the per-site score is `power_score` or + `multiplicative_score`. C#'s `power_cells(p, sites)` and + `multiplicative_cells(p, sites)` are that loop and nothing else. A shader + caller (and later the tape interpreter) writes the same loop over its own + buffer. One rule, one path; the per-site functions are mirrored bit for bit. +- **Sites are `float4(position.xyz, weight)`**, the model page's span element; a + 2D consumer uses z = 0. For an explicit span every site is visited, so no + window and no weight-ratio range apply (the lattice node's range is line 4's). +- **Indices are `float` fields** (`nearestSite`, `secondSite`, -1 for none), as + `CultCellular.id` is: one scalar type keeps the MessagePack and JSON shapes on + the existing helpers (TN4), and an index is exact below 2^24, far past any + span a per-point O(N) search serves. +- **The gate is pointwise per pair**: `gabriel_margin(a, b, other)` with a + shader twin, and C#'s `soft_gabriel_gate(sites, first, second, softness)` + folding it over the span (TN1's unweighted positions; a power-weighted + Gabriel graph is not requested by any ruling). +- **The strand reduction is not in this cut.** Its Gaussian profile and width + law are fauna's composition until the graph needs it as an op; line 5 owns + that op, with the same step-and-twin convention. +- **Shader part separable.** The C# functions, struct and wire shapes land + first; the HLSL twins, the regenerated GLSL and the fixture families land in + the last commits under today's `GlslLowering`. Pass `imagination-ag4-shader-runner` + is re-posing the lowering and shader testing (question `device-run-driver`); + if that lands first, only the shader commits are re-mapped. + +### lattice-weighted-cellular + +Written by Imagination (agent `imagination-ag4-lattice-weighted`, session +`self-2026-10-16-ag4`) against CultLib `origin/main` `911fc755`, where +`trophic-nodes` is merged (`7e6881af`). Ruling `lattice-weight-from-bodies-ruled` +(node-reads-bodies). Line 4 splits into two cuts because of Hands' budget: +`cut-lattice-weighted-cellular.r1` (C#) and then `cut-lattice-weighted-shaders.r1` +(twins, GLSL, families, lavapipe bounds). One question, +`lattice-window-sound-or-measured`, gates the first cut's search loop. + +#### Body facts (lattice-weighted-cellular) + +The probes are numpy float64 scripts in +`docs/research/lattice-site-weight/weighted-node/` (`probe.py` is the node, and +each other script is one measure). They use 6 bodies orbiting with period equal to +distance and a sigma ratio of 5:1, `cellSize 260`, `falloff 120` (the body probe's +`3 * EW_U`), `KW .35` and boost 1.6, the ruled look. + +| # | Question | Result | +|---|---|---| +| LW1 | What weight does the ruled look use? (Aetheria `body_voronoi_probe.py` `lattice_web_edges`, master `4e620671`) | `base(.5..1) * (1 + 1.6 * exp(-(border(cell centre) / 120)^2))`. The border is the body diagram's first-order distance under the ruled power metric (`body-diagram-metric-ruled`). Distance is stretched by `1 + near` (up to 2x) across the body border's normal at the query point. Output `max(soft^2, exp(-((F2 - F1)/.1)^2))`, with soft from her smooth-min fold. | +| LW2 | Window sufficiency (`a.py`, 67,600 points against a 19x19 box) | 7x7 has no F1/F2 misses at ratio 5.2, 10 and 20 with stretch 1 or 2. 5x5 misses .1-.3% of points with stretch 2 (output error up to .92) and .04% at 20:1. A worst-case proof covers 7x7 only for ratio x stretch up to about 1.5. | +| LW3 | Are the weights continuous in time? (`c.py`, 576 cell centres, 300 s at 1/60 s) | First-order border: max step .68, and 113 steps over .01, where the second-nearest body changes. Exact `power_border`: max .0032, none over .01. | +| LW4 | Does her fold (from 8, row-major) depend on the window? (`d3.py`, 40,000 straddles of lattice cell boundaries) | Yes. With F1 and F2 exact, soft jumps .114 at 5x5 and .056 at 7x7 with stretch 2. It vanishes at 13x13 on this corpus, but nothing proves that. | +| LW5 | Which fold start is window-independent and continuous? (`d3.py`, `g.py`) | Start at F1 (F1 cell skipped): no window jump, but at F1 identity swaps m jumps .011 and soft .25, because the polynomial smooth min is not associative. Start at F1 + k and fold every cell: swaps jump 4e-15 and window jumps are 0 once the box holds every `d < F1 + 2k`. Its overshoot above m is at most .017k per step (computed), hence the clamp to F1 + k. | +| LW6 | Look of start F1 + k against hers (`h.py`, 40,000 points, 13x13) | Mean output difference 0.0000, max .032 (stretch 1) and .030 (stretch 2). | +| LW7 | Ring-exit cost (`e.py`) | Cells visited: at the ruled look median 25, max 49 (stretch 1) and 81 (stretch 2); at boost 4 with stretch 2, max 121; at boost 9, max 81. The worst-case sound fixed box is 19x19 to 67x67. | + +#### Decisions (defaults, not forks) + +- **The weight reads the exact power border** (`power_border`, trophic-nodes), + not the first-order one the ruled look's probe used: LW3, under + `aetheria-fauna:ruling:habitat-no-pop-ruled`. The look moves where the + first-order distance was wrong (LW3's jumps are the same places). +- **Her fold starts at F1 + k and is clamped to F1 + k**, in absolute row-major + order (LW4-LW6). The look is unchanged to within .03, and the node is + window-independent by construction, which the search's exactness needs. +- **The alignment stretch is in the node.** It is a query-point anisotropy, and + it does change winners (B41). Only the node sees the candidate sites, so a + caller cannot apply it. Stretch 1 is isotropic. +- **float4(F1, F2, smooth, id), no gradients, no struct.** fauna's composition + reads values only, and a struct would owe a wire shape (TN4). Gradients can be + added later as their own function, if a consumer asks. +- **The range is public constants**, so line 5's graph validator reads the range + from CultMath rather than restating it: boost up to 4 (10:1), stretch up to 2, + smoothing up to 1. +- **The base weight takes its own hash lane** (`pcg3d(cell).z`), not the jitter + phase the probe reused. +- **Steps for shaders, the span function in C# only**, by trophic-nodes' + convention: `lattice_site`, `lattice_weight`, `lattice_distance`, + `lattice_smooth_step`. + ## Pass 8: volumetric prioritized (ruling `volumetric-work-prioritized`) Written by Imagination (agent `imagination-volumetric-frontier`, session @@ -1832,10 +2107,11 @@ authoring framework" she will build on. The kernel cascade (the probe and the Ke Lab) is the earlier exploration, and it stays a line below. **Correction to the brief's expectation.** The next cut is not site-ground. The -site ground's field is open: the Span Lab framework, the kernel cascade, or r3's -marched void. The r3 machinery (the interval pre-pass, the centred warp, the -debug-versus-dense readback) is shaped for a marched field. Question -`site-ground-field` asks this. +site ground's field was then open between the Span Lab framework, the kernel +cascade and r3's marched void. The r3 machinery (the interval pre-pass, the +centred warp, the debug-versus-dense readback) is shaped for a marched field. +Question `site-ground-field` asked this. It is ruled `site-ground-field-ruled`: +the Span Lab framework with the void as its brush. ### `SNOISE_LIPSCHITZ`: 10.099 in the lab, 7.964 in CultMath @@ -1917,8 +2193,8 @@ is traversal, which is unmeasured. Optical depth through it is a sum of per-kern segment integrals, so it is order-independent. Additive blending of each kernel's screen footprint would give exact transmittance in WebGL2, with no compute and no sorting. Emission is not order-independent. This is a hypothesis with no probe -behind it. The cascade becomes a cut only if `site-ground-field` or the operator's -nebula work picks it. +behind it. `site-ground-field-ruled` picked the Span Lab framework, so the cascade +becomes a cut only if the operator's nebula work picks it. ### Cut sequence (volumetric line) @@ -1926,9 +2202,324 @@ nebula work picks it. on the tied kernel, `integral_clamp_linear`, in C#, HLSL and GLSL with fixture families. It touches no `expr-ir` file. Its provenance prose goes in code comments and the README, not `design.md`, which `expr-ir` edits. -2. Question `span-chain-shape`, then the warp-stage and span-bound cut it picks. +2. Ruled `stage-functions` (`span-chain-shape-ruled`), split in three for size, on one + branch `hands/cultmath-stage-functions`: + - `stage-functions` (specs `cut-stage-functions.r1`-`r3`) and `stage-shaders` (spec + `cut-stage-shaders.r1`): merged to main 2026-10-16 (verdicts cut-stage-functions.s2-s4, + cut-stage-shaders.s1). SpanPath/SpanStage inputs, float-rounding allowances, HLSL and GLSL + twins with SpanPath/SpanStage/SpanNoise as shader structs, a struct-aware mirror with no + `MirrorOnly` list (125 functions compared), `tools/compile-hlsl.ps1` (x64 dxc, `-WX`). + SpanStage.Identity has no shader form (decided in the spec: callers build the struct; a + mirror test proves the shader at a C#-built identity equals fbm_grad/ridged_grad). + - `stage-shaders-device`: a committed WebGL2 runner on Starfire (ANGLE to D3D11, Unity's + driver path; also runnable on a phone) from follow-ups `glsl-browser-parity-run` and + `affine-device-runner-seed`; fixture families across coordinate bands 1e2..1e6; a C# test + reading the device readback against the double kernel; settles follow-up + `span-allowance-gpu-margin`'s four CPU survivors (eg-abs, eh-abs, So-reach, two-en-to-one) + and the size of the 2^-14 absolute term (en-abs-halved survives every CPU test). `fold` + and the ridged sign jump at zero, so their device check is one-sided enclosure, not ulps. + - `cultmath-unity` span release: after `stage-shaders-device`; the smoke shader calls both + span twins; its own Soul pass; then Aetheria's pin bump and its spans-option lowering + (ruling aetheria-nebula-spans-as-option; a moving nebula also waits on + `span-bounds-under-flow`). + - `span-compose`: the composition helper (`span_compose`) and `span_range` for + the empty and saturated proofs, in all three runtimes, with a two-stage chain + enclosure test against dense sampling. + `trophic-nodes` (spec admitted on main after this branch merged) and then + `lattice-weighted-cellular` (waits on it): Pass 7 lines 3-4. + + Body fact (probe on Yggdrasil, scratch `edb3c1c3` over `2fd9431a`; log + `F:\Projects\eureka-handoff-aux-2026-10-14\imagination-stage-functions\probe2.log`): + the HLSL mirror that `HlslSourceCompatibilityTests` compiles exposes every + `static const` as a public static literal field of `CultMathHlsl.HlslShader` + (`CULTMATH_PI` through `CULTMATH_SNOISE_THIRD` and `CULTMATH_CYCLES_*`). So one + reflection test can pin every shader constant to its C# twin. 3. The curl primitive, once the operator rules on curl (the Aetheria flow test). -4. Question `site-ground-field`, then `cut-site-ground.r1` on the field it picks. - The marched option carries all three site follow-ups; the other options - withdraw the two marched-only ones. +4. `cut-site-ground.r1` on the Span Lab framework (`site-ground-field-ruled`). + Under that option the two marched-only site follow-ups are withdrawn, and + only the third carries. 5. The kernel cascade, if picked. + +## Pass 9: the shader pipeline (rulings `glsl-es-via-dxc-spirv-cross`, `conforming-run-lavapipe`, `real-device-native-angle`) + +Imagination `imagination-ag4-shader-pipeline`, session self-2026-10-16-ag4, 2026-10-16, on +`origin/main` f65bde6f. The evidence the operator ruled on is `docs/research/native-shader-testing.md` +(f697e03f) and `docs/research/native-shader-probes.md` with its scripts (e598c443). This pass adds +the body facts below, then sequences the three rulings. + +### Body facts (Pass 9) + +Every probe ran through `ygg-verify.sh` on Yggdrasil at f65bde6f, 2026-10-16 between about 16:30 +and 16:50 UTC (18:30 to 18:50 CEST). Logs are in the Imagination scratchpad +(`imagination-ag4-shader-pipeline/split-run1.log`, `img-run1.log`, `snap-run1.log`). + +- **SPIRV-Cross pin.** The newest SDK tag is `vulkan-sdk-1.4.363.0` (commit f11ba9f0, 2026-09-16). + Built from that tag (`-DSPIRV_CROSS_CLI=ON`, Release, 4 cores), it takes 70 s and gives the same + result as the HEAD build the earlier probe used. `tools/get-spirv-cross.ps1` clones HEAD unpinned. +- **dxc pin (Linux).** The asset is + `.../v1.9.2607/linux_dxc_2026_07_29.x86_x64.tar.gz`, sha256 + `55665c87824051ed4774ff3280a79ccbbb7d39243b9736ca5e98222134112d54`, and it reports libdxcompiler 1.9.0.1. + `get-dxc.ps1` pins the Windows zip of the same release. +- **Overloads collapse in dxc, not in SPIRV-Cross.** With `export` on the 173 non-texture definitions, + the library has 127 `OpFunction`s and 127 exports: one per name. Today's source has 22 overloaded + names, 68 definitions and 46 lost. Trophic-nodes (branch `hands/cultmath-trophic-nodes`, unmerged) adds + `cultmath_segment_closest` and `cultmath_distance_to_segment` in 2D and 3D, so 24 names and 72 definitions. + The loss comes from exporting overloaded names, and build-only wrappers avoid it (next bullet). The + source keeps its overloads (ruling `shader-overloads-stay-native`). +- **Build-only export wrappers keep every overload (Pass 9b).** Imagination `imagination-ag4-overload-wrappers`, + 2026-10-16, on 09940e20, ubuntu:24.04 on Yggdrasil, 17:40 to 17:55 UTC (19:40 to 19:55 CEST), log + `imagination-ag4-overload-wrappers/wrap-run2.log` in the session scratchpad. The probe generated one + wrapper per non-texture definition (173) in a build-only file. Each wrapper looks like + `export float3 cmw036_cultmath_lerp(float3 start, float3 end, float3 amount) { return cultmath_lerp(start, end, amount); }`. + The source was unchanged, with no `export` keyword anywhere, and it compiled with dxc `-T lib_6_3 -spirv`. + - At default optimisation dxc inlines every wrapper. The 173 wrappers hold the bodies, and no + overload survives as its own function. + - At `-Od` it keeps the call. That gives 346 functions: 173 wrappers, each with exactly one + `OpFunctionCall` to its own distinct callee. Each callee's `OpName` is already the plain source + name (`cultmath_lerp` four times), so no rename is needed. + - An instruction-level edit of the SPIR-V binary then makes the library. It keeps only the Shader + and Linkage capabilities, drops every `OpExtension`, deletes the wrapper functions with their + names and decorations, and moves each wrapper's `LinkageAttributes ... Export` onto its callee. + `spirv-val --target-env spv1.5` accepts the result. Deleting the export instead of moving it gives + a module SPIRV-Cross refuses ("no entry point"). + - SPIRV-Cross `vulkan-sdk-1.4.363.0 --es --version 310` emits 173 `cultmath_` definitions, as many + per name as the source has. There are no `_N` suffixes and no wrapper names: its own overload + handling renames only on a signature collision. The emitted text is 2621 lines, against 1497 for + today's three files, because `-Od` leaves temporaries. + - Call sites resolve. glslang compiles as a `#version 300 es` fragment shader that calls + `cultmath_lerp(float..)`, `cultmath_lerp(vec3..)`, `cultmath_saturate(vec4)` and + `cultmath_saturate(float)`. A call with `ivec2`, which has no overload, is refused ("no matching + overloaded function"). + - Same computation. All 105 families the probe generator covers ran on lavapipe through the + restored library, and every one is bit-identical to the committed GLSL route. 85 of the 105 are + also bit-identical to the HLSL route, the same 85 where the committed GLSL matches it. + - The rest of the pipeline carries over. Partitioned by origin file, the output gives 178 chunks + (125 core, 51 Cycles, 2 Phacelle). No origin is unknown and nothing calls across licences. + Every overload set lives in one file, and no signature repeats. glslang compiles all four + combinations as ES 3.00. The source has 13 `static const` lines, all of the form + `static const float CULTMATH_X = ;`. None of them reaches the output, and today's GLSL + holds 13. +- **What `-Od` leaves, and what cleans it (Pass 9c).** Imagination `imagination-ag4-od-temps`, + 2026-10-17, on e626bf26 (188 wrappers, 140 names, 117 families), ubuntu:24.04 on Yggdrasil, 10:05 to + 10:35 UTC (12:05 to 12:35 CEST), dxc v1.9.2607, SPIRV-Cross and SPIRV-Tools both built from + `vulkan-sdk-1.4.363.0` (spirv-opt v2026.4), log `od-temps/imag-od7.log` in the session scratchpad, + probe in `docs/research/native-shader-probes/od-temporaries/`. Pass 9b's route as ruled, with no + further step, emits: + - 2824 lines, 86129 bytes, 188 `cultmath_` definitions, 140 names, no suffixed names. The + committed files are 1663 lines of one-line bodies, so line counts do not compare; SPIRV-Cross + prints every body in Allman style. + - Named locals survive, so most functions read like the source. Two things do not. First, 472 + `param_var_*` copies: dxc passes every parameter as a pointer and the caller copies in. Second, + 11 functions assign to a parameter in their body (`smootherstep`, `integral_clamp_linear`, + `fbm_grad`, `ridged_grad`, both Bezier pairs, `span_stage`, `iv_fbm_ball`, `af_fbm`) and come out + `inout`. The HLSL has no `out` or `inout` anywhere. + - That `inout` is a defect in the route, not a blemish. glslang refuses a consumer call with a + value, `cultmath_smootherstep(x + 1.0)` ("l-value required"), and a call with a variable + rewrites the caller's variable. Pass 9b's bit-identical result held because the families call + through their own copies. Overloads that look native must also take values like native ones. + - NaN-safe `min` and `max` expansions (`mix(mix(max(a, b), b, isnan(a)), a, isnan(b))`) from + `NMin` and `NMax`. + - Six `spirv-opt` pass lists on the edited module alone (`--convert-local-access-chains`, + `--ssa-rewrite`, `--eliminate-local-single-block`, `--eliminate-local-single-store`, + `--eliminate-local-multi-store`, `--simplify-instructions`, `--eliminate-dead-branches`, + `--merge-blocks`, `--vector-dce`, `--redundancy-elimination`, `--scalar-replacement`, + `--copy-propagate-arrays`, each with `--eliminate-dead-code-aggressive`) are valid and keep 188 + functions, but make the text bigger (2870 to 2930 lines) and swap named locals for `_N` ids (218 + tokens become 2155 to 2517). `param_var_` and `inout` stay. They are not a cleanup. + - A by-value lowering of the SPIR-V (`od-temporaries/byvalue.py`, 50 lines) makes each Function + pointer parameter a value parameter, with the old id kept as an entry-block local stored from + it, and each call loads what it passed. It changed 187 functions and 456 parameters, validates, + and leaves `inout` at 0. On lavapipe all 117 families stay bit-identical to the committed GLSL. + - Then `spirv-opt --eliminate-local-single-store --eliminate-dead-code-aggressive` removes every + `param_var_` copy (472 to 0): 2604 lines, 79782 bytes, 188 functions, 316 distinct `_N` ids, valid. + Adding SPIRV-Cross `--relax-nan-checks` drops the `isnan` expansions: 2556 lines, 74263 bytes, + 268 `_N` ids. glslang accepts both as ES 3.00, `cultmath_smootherstep(p.x + 1.0)` included. + - That cleaned module is bit-identical to the lavapipe HLSL result on 117 of 117 families, where + the committed GLSL is on 97. It differs from the committed GLSL in 20 families. Against the C# + fixture the exact, at most 4 ulp, at most 64 ulp and over 64 buckets are 80, 11, 9, 17, where + the committed GLSL is 80, 9, 10, 18. `--relax-nan-checks` changes no lavapipe bit. So the + cleaned route is closer to the HLSL than today's GLSL is, and "bit-identical to today's + lowering" cannot be its gate. With apt's spirv-tools 2025.1~rc1 the figures for this route are the same. +- **Why `span_fbm` and `span_ridged` differ by 1 ulp (Pass 9c).** Imagination `imagination-ag4-span-ulp`, + 2026-10-17, on 23ac4e89, same image and tools as `cut-glsl-build-dxc.h1`, probes in the session + scratchpad `logs/ag4-ulp/` (`probe1.sh` to `probe4.sh`). Only the curvature word (word 4 of 6) differs, in + 41 and 42 of 1536 words. Two causes, both measured: + - **dxc's entry-point optimiser reassociates.** `cultmath_snoise_hessian` ends every entry in + `105.0 * (...)`. In the `-O3` entry module the 105 is hoisted out: nine squares are summed bare and + the sum is multiplied once (`OpFMul %11025 %sum`, then `Sqrt`), where the source squares `105 * a` + nine times. That is real arithmetic, not float arithmetic. Neither `NoContraction` nor + `--relax-nan-checks` touches it. `dxc -Gis` (IEEE strictness) stops it. + - **The driver contracts mul+add by use count.** lavapipe (NIR) fuses an `OpFMul` into the `OpFAdd` + that consumes it only when the product has one use. dxc's CSE shares the symmetric Hessian's + off-diagonal squares (two uses each), so the entry module fuses some of the nine pairs; the `-Od` + library module has nine single-use products and fuses all nine. The `OpFAdd` order is the same in + both (left fold, as the C# `span_frobenius`). + - Decorating every `OpFMul`, `OpFAdd`, `OpFSub`, `OpVectorTimesScalar` and `OpDot` `NoContraction` in + both final modules, f103 and f104: `-Od` HLSL equals the built GLSL (0 words differ); `-O3` + HLSL still differs in 31 and 44 (the hoist). `-Gis` (with `-O3`) plus `NoContraction` equals the built GLSL on + 127 of 127 families, and so does `-Od` plus `NoContraction`. Plain `-Od` HLSL differs from the built GLSL in 664 words + (contraction depends on use structure), so `-Od` alone is worse than `-O3`: your suspicion of `-Od` + on the HLSL route is not a fix. + - **Which is right.** Against the C# fixture, exact cases of 256 for f103 are 3 (HLSL) and 4 (GLSL) plain, + and 151 for both under `NoContraction`; for f104, 7 and 10 plain, 141 under it. Of the first 60 families whose + count moved, the strict form is nearer the C# in all but one, which moved by 1. Strict IEEE, no contraction, no + reassociation is what C# computes, so it is "right"; the plain routes are each one driver's + fusion pattern. The built GLSL is source-faithful (nothing in the `-Od` route reassociates). + - **What makes them agree.** The equality gate (`GLSL_DIR` mode) compares both routes in the strict + form: HLSL entry built with `-Gis`, and a harness pass that adds `NoContraction` to every float op of + both modules (about 12 lines of `spirv-dis` and `spirv-as`; `tools/device/nc.py` in the probe). That is + 127 of 127. The shipped GLSL and the C# bounds judge are unchanged. See question `glsl-gate-strict-form`. +- **The build at main, with the rename and the strict form (Pass 9d).** Imagination `imagination-ag5-glsl`, + 2026-10-17, scratch worktree `C:\cl-wt\imag-ag5-probe` (not pushed): `23ac4e89` merged with origin/main + `86cd84a3` as `69987d91` (no conflict; README.md and tools/device/gen.py auto-merged), probe commits + `575badb6` to `d14bfbbe` (`probe/p1.sh`, `p2.sh`, `spec.py`). Yggdrasil, `mcr.microsoft.com/dotnet/sdk:10.0` and + `ubuntu:24.04`; logs in the session scratchpad `imagination-ag5-glsl/p2.log` to `p4.log`. + - **Site arrays break the wrappers.** `wrappers.py` passes `sites[CULTMATH_MAX_SITES]` as the argument (its + last-token rule), and dxc refuses the three wrappers of `cultmath_power_border`, + `cultmath_lattice_cell_distance` and `cultmath_weighted_lattice_cells` ('no known conversion from float4 to + float4 [128]'). Stripping the `[..]` suffix from the argument fixes it; then the build is green: core 139 + functions over 91 names (1554 lines, 54775 bytes), cycles 51/51 (867, 21250), phacelle 1/1 (82, 3199); zero + suffixed ids and zero inout. + - **The renamed fields survive SPIRV-Cross.** With `float4 cosine; float4 sine;` in the HLSL (HLSL only, in + the job), the built phacelle.glsl declares `vec4 cosine; vec4 sine;`. + - **The strict-form gate holds at main.** With `-Gis` on the HLSL entry and NoContraction on both modules + (the text `nc.py` of Pass 9c, probe only): lavapipe-glsl equals lavapipe-hlsl on 129 of 129 work items. + The work list is 125 fixture families (123 at `774bebb0`; the lattice loop added two) plus one + reference item for each of the 4 sampled affine families, so h1's 127 was 123 + 4. + - **The built GLSL loses the capacity override.** dxc preprocesses `CULTMATH_MAX_SITES`, so built core.glsl + has no mention of it and four literal `[128]` arrays. A consumer with `#define CULTMATH_MAX_SITES 4` + passing `vec4 s[4]` fails glslang ('no matching overloaded function'); the same consumer compiles + against the committed (lowered) GLSL and through dxc against the HLSL. + - **dxc has no spec-constant array size.** `[[vk::constant_id(7)]] const int CAP = 128;` as an array + parameter's length is refused ('variable length arrays are not supported in HLSL'). + - **A SPIR-V spec constant carries it.** In the built SPIR-V exactly one constant is an array length + equal to 128 (id 1297), used by nothing but OpTypeArray. Made an OpSpecConstant with SpecId 0, it passes + spirv-val, and SPIRV-Cross ES emits `#ifndef SPIRV_CROSS_CONSTANT_ID_0` / `#define ... 128u` / + `const uint _1297 = SPIRV_CROSS_CONSTANT_ID_0;` with `vec4 sites[_1297]` in every site-array + signature. The probe's consumer defined the macro as a plain int and was refused for the uint + initializer, so the `uint(CULTMATH_MAX_SITES)` mapping that `cut-glsl-build-dxc.r2` writes is + the route, but has not been compiled yet. +- **Capability strip.** `spirv-opt --trim-capabilities` (spirv-tools 2025.1~rc1) leaves all 14 + capabilities and both extensions in place, and SPIRV-Cross still refuses ("RayQuery requires Vulkan + GLSL 460"). Stripping every capability except Shader and Linkage and every OpExtension in the + disassembly, then running `spirv-as`, gives a module that `spirv-val --target-env spv1.5` accepts. + SPIRV-Cross `--es --version 310` lowers it in 54 ms, and dxc takes 322 ms. +- **Named constants vanish.** The SPIR-V has no `OpName` for any `CULTMATH_` constant, so the output + has none. Today's GLSL has 13: 9 in CultMath.glsl and 4 in CultMath.Cycles.glsl. The HLSL source of + every one of them is a `static const float NAME = ;` line, so a build can emit them + from the source lines and should refuse any `static const` line of another form. +- **Per-file split works.** The SPIRV-Cross output was partitioned by the HLSL file that defines each + function and struct (CultMath, Interval and Affine go to core, plus Cycles and Phacelle). That gives + 132 chunks: 79 core, 51 Cycles and 2 Phacelle. No chunk's origin is unknown, no chunk is duplicated, + and no Cycles or Phacelle function calls a function outside core. The output has no `spv*` helper + functions. Its prologue is 3 lines: `#ifdef SPIRV_CROSS_LIBRARY_HEADER`, `#version 310 es` and + `#endif`. glslang compiles core, core+Cycles, core+Phacelle and core+Cycles+Phacelle as `#version 300 es` + fragment shaders. So the licence split survives the switch as a partition step of about 40 lines in the build. +- **One image runs the whole conforming job.** `mcr.microsoft.com/dotnet/sdk:10.0` is Ubuntu 24.04.5 + (noble), dotnet 10.0.401. Its apt has mesa-vulkan-drivers 25.2.8-0ubuntu0.24.04.4 (lavapipe, the + probe's device), glslang-tools 15.1.0, spirv-tools 2025.1~rc1, libvulkan-dev 1.3.275 and gcc 13.2. + `apt-get update --snapshot 20261016T000000Z` (apt 2.8.3) then installs the same versions. That pins + the package set to a date and lets the C# judge run in the same container as the device. +- **Consumer audit.** No public name changes under the wrapper route, so it shows only who reads the + committed GLSL and HLSL. It covers `origin` of Aetheria (master a8586d08 and all of its + remote branches), Asura (60fbd19), Odin (8e1de66) and gamecult-site (af6e206), and HEAD of every + other git repo under F:\Projects except the CultLib worktrees, the archived AetheriaEve and the + retired CultMath history repo. The search was for `cultmath_[a-z]` outside docs. Only one shader + calls CultMath: `Muninn` (1d0ea0b, and its + worktree `Muninn-next`) `crates/muninn-move-tracker/shaders/MoveSphereCandidate.comp.hlsl:88`, one + call to `cultmath_saturate(float)`. Aetheria uses CultMath only from C#. The operator's Span Lab + artifact (be6a9e31) embeds its own copy of the GLSL (follow-up `span-lab-pre-tie-kernel`) rather + than including the file. + +### Decisions (defaults, not forks) + +- **The fixture owner owns the work list and the verdict.** `GlslMirrorTests` writes what a device + must compute: the fixture's families, plus reference families for the four sampled-form checks, + whose reference is the device's own `snoise` or fBm at 75 points of each case. It also judges + what the device returns. The generator only spells shaders, the host only dispatches, and neither + compares anything. The lavapipe job and the later ANGLE tool share this one work list and this one judge. +- **Each device has a recorded bound.** Under `cycles-kernel-reference-ruled`'s stance, a device's + ulp-bounded and platform families are held to a bound measured on that device and committed with + the device's identity. lavapipe re-runs bit-identically, so the bound is a regression gate, and an + identity change refuses until it is re-recorded. Exact and integer families must match bit for + bit, and `check` families must pass their `Verify`. +- **Unique names for dxc live only inside the build** (ruling `shader-overloads-stay-native`). The + build owns three things here. + - The wrapper list. It is generated from the source's own definitions, one wrapper per non-texture + `cultmath_` definition, and the build refuses a definition it cannot read, just as it refuses a + `static const` line of another form. The wrappers are text in the build's temp directory and are + never committed. The source gains no `export` keyword and no `CULTMATH_EXPORT` macro. + - The compile mode. The library compiles at `-Od`, because the default optimiser's inlining is + what erases the overloads. The text it leaves is cleaned by the next two items (Pass 9c), not + shipped as is: `-Od` alone emits `inout` parameters, which native overloads must not have. + - One SPIR-V edit. A single instruction-level pass over the binary, never a regex over text, + strips capabilities and extensions, deletes the wrappers and moves their exports onto the + callees. It replaces the disassembly grep that the capability-strip probe used. It refuses a + wrapper that is not exactly one call. SPIRV-Cross then emits the overloaded names as they are, + so the build has no rename step and no name map. + - By-value parameters. The same pass makes every Function-pointer parameter a value parameter + (`byvalue.py` in the probe), so no emitted function can be `inout`. The build then runs exactly + `spirv-opt --eliminate-local-single-store --eliminate-dead-code-aggressive`, never an inliner + and never `--simplify-instructions` or `--ssa-rewrite`, which turn named locals into `_N` ids, + and SPIRV-Cross runs with `--relax-nan-checks`, so `min` and `max` are the plain intrinsics. + - The gate is the HLSL, not the old text. A cleaned route's lavapipe-glsl result must equal the + lavapipe-hlsl result bit for bit in every family (117 of 117 measured), and the C# judge's + bounds are re-recorded only where a family moved and equals its HLSL result. + +- **CultPhasor's JSON keys (model page row).** Named by `CultMathJson`; written as `cosine`/`sine` from + `phasor-field-rename` on, and read as either those or the legacy `cos`/`sin`, forever unless a later + Breaking change removes the legacy names. Decided by ruling `phasor-fields-renamed-at-source`. The + MessagePack wire is positional and never named the fields, so `.cc` documents are untouched both ways. + A reader from before the rename skips the new keys and decodes zeros (its unknown-property rule), which + is why the change is Breaking in both changelogs: upgrade readers before writers. +- **The capacity through the build.** dxc cannot keep a macro and refuses spec-constant array sizes, so + the build turns the one array-length constant into a SPIR-V spec constant and `partition.py` maps + `CULTMATH_MAX_SITES` onto SPIRV-Cross's `SPIRV_CROSS_CONSTANT_ID_0` with source-copied header lines. + Rejected: building the GLSL per capacity (a consumer would run the build to change one number), and + rewriting `[128]` in the emitted text (the forbidden text post-pass). Pass 9d. + +### Cut sequence (Pass 9; one line each, mapped when about to run) + +1. `shader-conforming-run`: spec admitted. The lavapipe job with the C# device judge, run against + today's committed HLSL and GLSL, so the next cut is verified against a running check. +2. `glsl-build-dxc` (spec `cut-glsl-build-dxc.r2` admitted; r1's h1 left the gate red, Pass 9d): the build, not yet the switch. r2 merges main, carries site arrays and their capacity (a spec constant mapped to `CULTMATH_MAX_SITES`), the strict-form gate and the renamed phasor fields, and waits on `phasor-field-rename` (spec admitted: `cosine`/`sine` in C#, HLSL, GLSL and CultMathJson, legacy keys read; CultMath's next release is 0.5.0, a release cut of its own). `packages/cultmath/tools/glsl/` + holds `build-glsl.sh`, which pins dxc v1.9.2607 (the sha above), SPIRV-Cross and SPIRV-Tools + `vulkan-sdk-1.4.363.0`, plus one SPIR-V tool in Python. The build generates the export wrappers into + its temp directory (never committed), compiles source plus wrappers with `-T lib_6_3 -spirv -Od`, + and runs the one SPIR-V edit (strip, wrapper delete, export move, by-value parameters; Pass 9c). + It runs the pinned `spirv-opt` pair, `spirv-val`, and SPIRV-Cross ES 3.10 with `--relax-nan-checks`, + then partitions by origin file and emits the 13 constants. Output goes to a directory the caller + names. The committed GLSL, `GlslLowering.cs` and its tests are untouched, and the lavapipe job gains + one switch to run a built directory in place of `shaders/*.glsl`. Waits on 1, which is merged. + 2b. `glsl-switch` (mapped when 2 is verified): commits the build's output with the licence lines and + guards, deletes `GlslLowering.cs` and the lowering contract tests, makes the lavapipe job check + the committed files against the build, re-records the lavapipe bounds for moved families + (Pass 9c's gate), and pins `get-spirv-cross.ps1`. If `trophic-nodes` merges first, the build + covers its four new overloads with nothing extra. +3. `angle-capture` (stage-shaders-device part 2): the Starfire native-ANGLE tool on the shared work + list (ES 3.00 fragment flavour, RGBA32UI readback), loading a pinned ANGLE build rather than Docker + Desktop's copy. Captures carry the renderer, ANGLE version and revision, the shader sha and per-family + argument hashes and bits, and the ordinary test run judges them. A shader-sha change marks them stale. + It settles `span-allowance-gpu-margin`'s six CPU survivors, `iv-exp-gpu-widening`'s measurement and + `device-p2-pin-notes`, and closes `glsl-browser-parity-run` and `affine-device-runner-seed`. It waits + on 2b, because a capture of the old lowering goes stale at the switch. + +### shader-lattice-loop (follow-ups `shader-weighted-lattice-loop`, `lattice-shader-pins`) + +Written by Imagination (agent `imagination-ag4-shader-loop`, session `self-2026-10-16-ag4`) against `origin/main` +`e2051c5a` and the build branch at `23ac4e89`. Research and probes: `docs/research/shader-variable-inputs.md`. +Spec: `cultmath-tapes:cut_spec:cut-shader-lattice-loop.r1`. Question: `shader-site-capacity` (gates the spec). + +- **Bodies reach the shader as `float4 sites[CULTMATH_MAX_SITES]` plus `int count`, by value.** A caller accessor + macro cannot survive the library build (the built GLSL has no consumer macros), and library-owned uniforms would + take a binding the consumer owns. dxc, the SPIR-V edit, SPIRV-Cross and a WebGL2-style uniform-array consumer all + accept the array form (probes P1-P3). +- **The shader owns the whole search.** `cultmath_weighted_lattice_cells` and `cultmath_power_border` replace the two + comment recipes; the four steps stay public. The box pass recomputes distances (no shader cache), the ring loop is + bounded by 37 with C#'s exit. +- **The lavapipe run kills the exit and the normaliser** (probe table, research section 3): M1-M6 fail the C# device + judge; M7, a late exit, is equivalent by the window-independence proof. M1 needs several far-ring points. +- **Smooth-step cap point** joins its family (m = f1 + smoothing, d past it, smoothing >= 0.5). +- **Yggdrasil's sdk:10.0 Ubuntu image owns `glsl-parity.json`'s platform values** with the lavapipe bounds; a write + on another OS is refused. +- Left: `shader-span-functions-array-form` (power_cells, multiplicative_cells, soft_gabriel_gate array forms). diff --git a/docs/cultmath-tape-target.md b/docs/cultmath-tape-target.md index e752cc0e..74eae11b 100644 --- a/docs/cultmath-tape-target.md +++ b/docs/cultmath-tape-target.md @@ -108,15 +108,18 @@ source. - Asura does not need this campaign. Its field is noise-dominated, and its `A_max` shell and band-limiting already give the cheap culling. -## Open before unparking +## Decided since the unpark, and what stays open -- Run the (a) spike first, or go straight to (c)? -- Pick the interval representation (plain intervals or affine arithmetic) and - the noise bound strategy. - Affine forms for noise and warp were unparked on 2026-10-03 (ruling - `cultmath-tapes:ruling:affine-forms-unparked`): one shared symbol, mapped in - `docs/cultmath-interval-ground-cut.md`, "Pass 5". -- Choose the bytecode register model for the HLSL interpreter, given GPU - register pressure. -- Decide whether the brush-grammar station project lives in Aetheria or in - its own repo. +- The spike-or-(c) choice was settled by the operator's unpark: the tape + unparked for Aetheria's trophic species graphs (ruling + `cultmath-tapes:ruling:tape-unparked-for-trophic-graphs`). +- Interval representation: affine forms for noise and warp, unparked on + 2026-10-03 (ruling `cultmath-tapes:ruling:affine-forms-unparked`): one + shared symbol, mapped in `docs/cultmath-interval-ground-cut.md`, "Pass 5". +- Register model: the HLSL interpreter keeps its registers in groupshared + memory, a slice per thread, linear-scan allocated at lowering (ruling + `cultmath-tapes:ruling:tape-register-model-ruled`; research in + `docs/research/tape-register-model.md`). +- Open: whether the brush-grammar station project lives in Aetheria or in + its own repo (follow-up `cultmath-tapes:follow_up:brush-grammar-station-repo`, + raised as an operator question when a station cut reaches the frontier). diff --git a/docs/cultmesh-ts-content-map.md b/docs/cultmesh-ts-content-map.md new file mode 100644 index 00000000..9aae6eba --- /dev/null +++ b/docs/cultmesh-ts-content-map.md @@ -0,0 +1,286 @@ +# TypeScript CultMesh Content Plane: Map + +Campaign `cultmesh-ts-content`. Imagination wrote this on 2026-10-19 at CultLib +`8990bd46` (origin/main `a88c629e` plus the target doc), and refreshed it the +same day at `2de07065` for C2 and C3, reading C1 from `b8b825e1`. The target +is `docs/cultmesh-ts-content-target.md`. The HTTP prior art is +`docs/research/2026-10-19-content-addressed-http-answers.md` (cited below as +**R**, with its section number). This page holds the body facts, the model +page, the rationale and the cut sequence. Specs and questions live in the +typed mind, not here. + +## 1. Body facts + +F1-F18 were probed by running code or read from source at `8990bd46`. F19-F27 +were probed or read at `b8b825e1` (C1's head) and `2de07065`. F28-F33 were +probed on 2026-10-19 over the C2+C3 merge tree (`7adbf3cb` merged with C3's +head, extracted by `git archive`), on Windows and in a Linux container. Scratch probes +ran under the session scratchpad (`imagination/`), not in the repo. + +| # | Fact | Evidence | +|---|---|---| +| F1 | A C#-packed manifest is a MessagePack **fixarray of 10** (`0x9a`): `[artifactId, kind, version, contentHash, sizeBytes, mimeType, createdAtUtc, chunks[], tags[], metadata{}]`. Each chunk ref is a 4-array `[chunkHash, offset, sizeBytes, recordKey]`. The fixture manifest is 1,111 bytes: 6 chunks (5 x 262,144 + 4,831), content hash `f4ae2a7c…2af1`. The empty body packs to 315 bytes with one zero-size chunk whose hash is `e3b0c442…b855` (the SHA-256 of nothing). | probe: `@msgpack/msgpack` 3.1.3 decode of `contracts/cultmesh/content-vectors.cs-written.json`, kind `manifest` | +| F2 | `@msgpack/msgpack` 3.1.3 re-encodes all four C# manifest vectors **byte-identically**, metadata included (`zeta, alpha, mid` keep insertion order). Integers come out minimal (`4831` is `cd12df`, `262144` is `ce00040000`), as MessagePack-CSharp writes them. | same probe, `encode(decode(bytes))` equals the input for all four | +| F3 | Three decoder hazards for a TS manifest reader. (a) JS objects put integer-like keys first (`{zeta,"2",alpha,"1"}` iterates `1,2,zeta,alpha`), so metadata must be ordered entries, not an object, or a `{"10":…,"2":…}` manifest re-encodes in another order. (b) Plain `decode` takes the last of duplicate map keys silently (`{"a":"2"}`); C# `Dictionary` and Rust `ordered_map` refuse duplicates. `new Decoder({ mapKeyConverter })` can refuse them: probed. (c) Plain `decode` rounds int64 above 2^53 (`…993` reads as `…992`); `useBigInt64: true` keeps it exact. | probe (node) | +| F4 | `@msgpack/msgpack`'s decoder is iterative: a 1,000,000-deep `0x91` input decodes in 160 ms but costs about 158 MB of heap. So nesting does not crash it but amplifies memory about 150 times. `checkPayloadDepth` (the owner of ruling `payload-depth-limit-256`) is not exported from any `@gamecult/cultcache-ts` entry: `document.ts:108` exports only the error and the constant. | probe (node); source `packages/cultcache-ts/src/document.ts:2,108,123` | +| F5 | The C# HTTPS connector sends `GET ?chunkHash=&recordKey=`, **without** a `sha256:` prefix, because `BuildChunkUri` runs `NormalizeHash` first. Probed URIs: `https://ygg.example/content?chunkHash=5993ac…&recordKey=mesh%3Acdn%3Achunk%3A5993ac…`. An existing endpoint query is kept and joined with `&` (`?tenant=sp&chunkHash=…`). A null record key sends `recordKey=` (empty). Other characters use `Uri.EscapeDataString`, so on the wire `k with space/ü&=?#` becomes `k%20with%20space%2F%C3%BC%26%3D%3F%23`. | probe: `BuildChunkUri` lines copied into a net10.0 console (`CultMeshHttpsContentTransport.cs:114-122`) | +| F6 | The connector calls `EnsureSuccessStatusCode` and fails on any status outside 2xx. When `Content-Length` is present and is not the chunk's `SizeBytes`, it throws before reading. With no `Content-Length` it copies the stream without checking the length. Verification belongs to the caller's transfer owner. `CanConnect` admits only `https`. The constructor takes a `Func`, so a test can pin a self-signed certificate without modifying the connector. | source `CultMeshHttpsContentTransport.cs:18-29,92-104` | +| F7 | `NormalizeHash` (C#) strips a case-insensitive `sha256:` prefix *before* trimming, then `Trim().ToLowerInvariant()`. It never checks for hex or a length of 64. So the record-key grammar accepts any non-blank string, and a provider must add its own hex check before a hash can become a file name. | source `CultMeshCdn.cs:549-560` | +| F8 | `StableToken` (the token in a manifest record key) is a C# rule with no Rust mirror: `cultnet-rs/src/content.rs` builds no artifact record key. Its Unicode semantics differ from the naive JS spelling in four probed ways. .NET `ToLowerInvariant` leaves `U+0130` unchanged, while JS gives `i` plus `U+0307`. .NET `Trim` keeps `U+FEFF` (and trims `U+0085`, per `char.IsWhiteSpace`), while JS `trim` drops `U+FEFF` and keeps `U+0085`. JS whole-string lowercasing applies final-sigma (`ΑΣ` becomes `ας`), while per-unit lowercasing gives `ασ`. `char.IsLetterOrDigit` is false on a lone surrogate and on `U+00B2`, which JS `\p{L}\p{Nd}` agrees with only when it is tested per UTF-16 unit. | probe (net10.0 console and node); source `CultMeshCdn.cs:562-580` | +| F9 | `CreatedAtUtc` defaults to `DateTimeOffset.UtcNow.ToString("O")`, which looks like `2026-10-19T12:07:25.5235579+00:00`: 7 fractional digits and `+00:00`, never `Z`. | probe (net10.0) | +| F10 | `contracts/cultmesh/content-vectors.cs-written.json` and `.rs-written.json` are written by `tests/GameCult.Mesh.Tests/CultMeshContentVectorTests.cs` and `packages/cultnet-rs/tests/content.rs`, under `CULTNET_WRITE_VECTORS=1`. Each side judges both files. Kinds are `request`, `response` and `manifest`. Rust panics on an unknown kind (`tests/content.rs:302`), and C# requires the Rust labels to equal its own (`CultMeshContentVectorTests.cs:54`). **So a new kind or label in the cs-written file breaks both siblings.** A TS file must be a separate file. | source | +| F11 | **Neither content-vector suite runs in CI.** `cultmesh-portability.yml` filters `dotnet test` to `AuthorityProof`, `RealtimeWireProtocol` and a lease churn test. `cultnet-interop.yml` runs `cargo test … rudp` (a name filter) and the Networking `Rudp` filter. The C#/Rust content parity has only ever been run by hand. | grep of `.github/workflows/*.yml` | +| F12 | TS→C# vector precedent: `scripts/write-cultmesh-realtime-frame-vectors.mjs` writes `realtime-frame-vectors.ts-written.json` from built `dist`, deliberately from **different inputs** than the C# file. `CultMeshRealtimeWireProtocolTests` judges it, and `cultmesh-portability.yml:145-149` runs it. | source | +| F13 | Cross-process precedent for C# against a Node provider exists. `packages/cultnet-ts/test/interop/cultnet-interop.test.ts:536-560` spawns the TS QUIC provider, then runs `dotnet test --filter NativeConnectorReceivesFromExternalProvider` with the endpoint in `CULTMESH_NATIVE_EXTERNAL_ENDPOINT`. The C# test skips without the variable (`tests/GameCult.Mesh.Quic.Native.Tests`, line 21). | source | +| F14 | `cultnet-ts` is CommonJS. Its `./wire`, `./contracts` and `./authority` subpaths import only `@msgpack/msgpack`, `ajv` and `cultcache-ts/document`, so they are browser-safe. Its root `index` pulls `node:` modules (`peer`, `rudp`, `transport`, `security` and others). `cultmesh-browser` (ESM) already imports `cultnet-ts/wire`, `/contracts` and `/authority`. `cultmesh-ts` loads `koffi` lazily, inside a function (`realtime-quic-native.ts:139`), so a new subpath of it pays no native load. The root has `esbuild` ^0.28.1 as a devDependency. | source, grep | +| F15 | TS packages build with `tsc` and test with `node --test dist-test/test/*.test.js` per workspace. `scripts/run-typescript-workspaces.mjs` runs them in order `cultcache-ts, cultnet-ts, cultmesh-ts, cultmesh-browser`, after `check-typescript-tests-wired.mjs`. No StrykerJS config exists in CultLib (`docs/mutation-testing.md:156-159`). | source | +| F16 | **No CultLib TS package except `cultcache-ts` has a publish job.** `publish-packages.yml` triggers on `cultcache-ts-v*`, `cultcache-py-v*`, `cultnet-py-v*` and `cultmesh-py-v*` only. Tags `cultnet-ts-v0.1.1` and `cultmesh-ts-v0.1.1` exist, but no workflow consumes them. `npm view` returns 404 anonymously for `cultnet-ts`, `cultmesh-ts`, `cultmesh-browser` and even `@gamecult/cultcache-ts` (`@gamecult/cultcache-ts` may be private; unverified). The doctrine's rule of at most three tags per push stands (SKILL.md:674). | source; `npm view` | +| F17 | StreamPixels consumes CultLib as the git submodule `vendor/CultLib` (gitlink `30ee8b97`) with `file:` deps and `pnpm.overrides`. Its CI and Idunn recipes build the vendored workspaces (`npm ci --ignore-scripts`, then build `cultcache-ts`, `cultnet-ts` and `cultmesh-ts`). `apps/web` depends only on `cultnet-ts` today, not on `cultmesh-browser`. | StreamPixels `.gitmodules`, `apps/*/package.json`, CI workflow lines 62-95 | +| F18 | The Rust reader sets two guards that the TS reader should match. A caller cap `max_bytes` is checked before any request. And a zero-size chunk is refused unless it is the only one, because a manifest of zero-size chunks would be a request flood. | source `cultnet-rs/src/content.rs:364-385` | +| F19 | `BuildChunkUri` on more endpoint shapes, as `AbsoluteUri` (what `HttpClient` sends). `https://h` and `https://h/` both give `https://h/?chunkHash=…&recordKey=k`. `https://h:443/x` drops the default port. `https://H.Example/X/` lowercases the host and keeps the path's case. `https://h/x#frag` keeps the fragment after the query. `https://h/x?a=%20b+c` keeps the existing query verbatim and joins with `&`. **`https://h/x?` (an empty query) gives `https://h/x?&chunkHash=…`**, because `UriBuilder.Query` is `?`, which is not blank. `https://[::1]:8443/c` keeps the bracketed host. `Uri.EscapeDataString("!'()*~-._ +é𐐀")` is `%21%27%28%29%2A~-._%20%2B%C3%A9%F0%90%90%80`: unlike JS `encodeURIComponent`, it escapes `!'()*`. | probe: `dotnet fsi` on .NET 10, the three lines of `BuildChunkUri` (`CultMeshHttpsContentTransport.cs:114-122`) copied verbatim | +| F20 | Node 24.15 global `fetch` (undici) against a raw-socket server. A gzip body (`Content-Encoding: gzip`, `Content-Length: 29`) arrives as 1,000 decoded bytes, while `headers.get("content-length")` still says `29`. A body shorter than its `Content-Length` (400 of 1,000) rejects while reading: `TypeError: terminated`, cause code `UND_ERR_RES_CONTENT_LENGTH_MISMATCH`. A body longer than its `Content-Length` (1,000 against 400) is cut silently to 400 by HTTP framing. With no `Content-Length`, all 1,000 bytes arrive. So a reader that trusts the header refuses valid gzipped content, and it learns nothing the received bytes do not tell it (R §6: Fetch decodes content codings, and its own note calls `Content-Length` unreliable). | probe: `imagination/fetchprobe.mjs` | +| F21 | The C# TCP content server is the reference for what a provider does per request (`SendChunkAsync`, `CultMeshTcpContentTransport.cs:384-430`). It runs `NormalizeHash` on the requested hash, refuses a non-blank `RecordKey` that is not `CreateRecordKey(hash)` (ordinal compare, message "record key disagrees with its content hash"), resolves the chunk **by hash** (`_resolveChunk(hash)`), and runs `CultMeshCdn.ValidateChunkPayload` before it sends a byte. So **verify-before-serve on every request is the reference behaviour**. C# chunk storage is one record per chunk, keyed by the chunk record key (`CultMeshDatabaseContentProvider`, `CultMeshContentTransfer.cs:41-71`). Per-chunk storage is the reference layout. | source | +| F22 | C1's exports at `b8b825e1` (`packages/cultnet-ts/src/content.ts`): `normalizeHash`, `parseSha256Hex`, `sha256Hex`, `chunkRecordKey`, `artifactRecordKey` (async), `validateManifest`, `encodeManifest`, `decodeManifest`, `packContent`, `CULTMESH_CDN_MANIFEST_SCHEMA`, `DEFAULT_CHUNK_SIZE_BYTES` (4,194,304), `EMPTY_SHA256`, and the types `CultMeshCdnChunkRef`, `CultMeshCdnArtifactManifest`, `CultMeshCdnPackOptions` and `CultMeshCdnPackedChunk`. `sha256Hex` throws a plain `Error` ("WebCrypto SHA-256 is unavailable.") when `crypto.subtle` is missing. `validateManifest` takes the whole manifest (it reads `metadata`). `cultnet-ts/authority` already exports `isLoopbackEndpoint` (`cultmesh-authority.ts:377`: `localhost`, `loopback`, `::1`, `::ffff:7f00:1`, `127.x.x.x`), and `cultmesh-browser` already imports it (`index.ts:23`). | `git show b8b825e1:…`; cut report `cut-c1-shapes.h1` landed names | +| F23 | The consumer (StreamPixels `dfbe2a6`, `docs/web-character-customization-map.md`) stores one whole-artifact file per content hash at `/srv/streampixels/content/`, builds manifests at service boot, and hashes every referenced blob at boot (lines 149-159, 175, 317-325). Its artifacts are 10-125 KB (W10), well under the 4 MiB default chunk. It also builds manifests for `catalog.cc` and `character-artifacts.cc`, whose sizes the map does not give. It mounts the handler at `GET /api/content` on its existing server (line 320). Its sketch, `createHttpsContentHandler(store)` (line 293), takes `(chunkHash, recordKey)` and returns bytes or not-found. | StreamPixels `git show dfbe2a6:docs/web-character-customization-map.md` | +| F24 | Build shapes for the two packages. `cultmesh-ts` is CommonJS (`module` and `moduleResolution` `Node16`), and its `package.json` exports only `.` (lines 7-13). `cultmesh-browser` is ESM (`"type": "module"`, `moduleResolution` `Bundler`) and is one file, `src/index.ts`, with no relative imports. A new relative import must therefore be spelled `./content.js`, or Node's ESM loader cannot find it at test time. Both packages' `test` scripts run the glob `dist-test/test/*.test.js`, which the wiring check accepts (`scripts/check-typescript-tests-wired.mjs`). CI runs both in `cultmesh-portability.yml`: the browser at lines 119-120, and `cultmesh-ts` at lines 121-129 under the step name "Verify the realtime frame codec with the TypeScript codec". `esbuild` resolves from the root `devDependencies`, as C1's browser-bundle test shows. | source at `b8b825e1` | +| F25 | The existing TLS fixture `packages/cultmesh-ts/test/fixtures/quic-test.p12` is a self-signed P-256 certificate with subject `CN=cultmesh-quic-native-tests` and no subjectAltName (fixtures README). Node's TLS hostname check therefore refuses it for `127.0.0.1` even when it is trusted through `NODE_EXTRA_CA_CERTS`. A C# handler that pins by certificate hash does not care about the name. | source: fixtures README | +| F26 | `CultMeshCdn.ValidateChunkPayload`, `HashBytes`, `ValidateManifest` and `NormalizeHash` are `internal`, and `GameCult.Mesh` declares no `InternalsVisibleTo`. A test in `tests/GameCult.Mesh.Tests` can therefore verify chunk bytes only with `SHA256.HashData`, or through a public consumer of the connector. The public surface is `CreateRecordKey`, `PackArtifact`, `PublishAsync` and `ReadArtifact(Async)`. | grep of `CultMeshCdn.cs`, `src/GameCult.Mesh` | +| F27 | No CultLib workflow runs `cultmesh-ts` interop tests. `cultnet-interop.yml` (windows-latest, main only) runs `cultnet-ts`'s `test/interop`, and its QUIC native case spawns `dotnet test --filter NativeConnectorReceivesFromExternalProvider` through `runDotnetTestFilter` (`cultnet-interop.test.ts:550,2826`). `cultmesh-ts` has a `test/interop/` folder (a QUIC peer script) but no `test:interop` script. | grep of `.github/workflows`, source | +| F28 | **The real provider meets the real reader across processes, on Windows and Linux.** C2's handler, store and `toNodeListener` served on `node:https` with a self-signed P-256 certificate (subjectAltName `IP:127.0.0.1, DNS:localhost`, `CA:FALSE`, `serverAuth`, 100-year validity). They served a 4-chunk artifact (3.5 x 64 KiB) and an empty one. C3's `fetchVerifiedContent` ran in a child `node` with `NODE_EXTRA_CA_CERTS` set to that certificate, through the real global `fetch`, and returned both bodies with the right hashes. Without the variable it rejected `network` (cause `DEPTH_ZERO_SELF_SIGNED_CERT`). Behind a test wrapper that flips byte 0 of every non-empty 200 body, it rejected `chunk-hash-mismatch`. Platforms: Windows (Node 24.15) and a `node:24-trixie` container (Node 24.21). | probe: `imagination/probe/{serve,read,drive}.mjs` over the C2+C3 merge tree `8d1482c8` | +| F29 | **The C# consumer that verifies is `CultMeshContentTransferService`, and it runs against an HTTPS route without Odin.** The probed path: `CultMeshDiscoveryService` over a test `RouteSource()`, then `CultMeshSessionManager` with `LocalDevelopment` trust and the unmodified `CultMeshHttpsContentTransportConnector`, then `CultMeshSessionContentProvider`, then `FetchAsync(manifest)`. This is the shape of `CultMeshContentSessionTests.TcpContentSessionStreamsLargeBodyAndReusesCommittedBody` with the TCP connector swapped for the HTTPS one. It fetched both artifacts from the TS provider, decoding the **TS-encoded** manifest bytes with `CultDocumentMessagePackSerialization.DeserializeUntyped`. Trust was a `SocketsHttpHandler` whose `SslOptions.CertificateChainPolicy` is `CustomRootTrust` with only the fixture certificate in `CustomTrustStore` (`RevocationMode.NoCheck`). That is real chain and name validation, with no callback and no system roots. The default handler failed with `UntrustedRoot`. Against the tampering wrapper, `FetchAsync` threw `AggregateException` over `InvalidDataException` ("CDN artifact chunk hash does not match its manifest."), leaving only `..partial`, never `.body`. The connector itself does not verify (F6). The C# verifier is the transfer service's `BoundedHashingWriteStream` per chunk and its whole-file hash. The results on the Linux container (self-contained linux-x64 publish) were identical. | probe: `imagination/csprobe/Program.cs` and `probe/drive-cs.mjs`; source `CultMeshContentTransfer.cs:115-330`, `CultMeshContentTransports.cs:138-160` | +| F30 | The two consumers request the same URLs. C# sent five requests: four chunks, plus the empty chunk `e3b0…`, which the provider answers intrinsically. Each was `/api/content?chunkHash=&recordKey=mesh%3Acdn%3Achunk%3A`. The reader sent the same four chunk URLs, and nothing for the empty chunk, which it verifies locally. | same probes, the provider's request log | +| F31 | **Build order decides where the cross-process test lives.** `scripts/run-typescript-workspaces.mjs` builds `cultcache-ts, cultnet-ts, cultmesh-ts, cultmesh-browser`, and each package's `test` compiles `test/**/*.ts`, `test/interop` included. A `cultmesh-ts` test that imports `cultmesh-browser` therefore fails to compile on a clean checkout, while a `cultmesh-browser` test that imports `cultmesh-ts/content` follows the order. Named ESM imports of the CommonJS `cultmesh-ts/content` work from an ESM file: all four provider names import as functions. At `7adbf3cb`, `cultmesh-portability.yml` runs the browser step (lines 119-120) **before** the `cultmesh-ts` step (129-130), which is the opposite of the script's order. The wiring check requires `test/interop/*.test.ts` to be run by a `test:interop` script. | probe (node, ESM import); source | +| F32 | Node's `execFile("dotnet")` resolves `dotnet.exe` on Windows without an extension. The C3 merge into `7adbf3cb` is clean at C3 head `67ff3f64` (`git merge-tree` gives `666162a3`). It touches the workflow only at comment lines 105-107, and the reader's exports keep their names. The probe's body pattern `(i*31+7)&255` repeats every 256 bytes, so all of its 64 KiB chunks shared one hash. A parity fixture needs non-periodic bytes, or chunk order is invisible. | probe (node); `git merge-tree` | +| F33 | `cultmesh-portability.yml` triggers on `push` only for `main` and `codex/**`. A `hands/**` branch runs it through `pull_request` or `workflow_dispatch`, and both triggers exist. The job `reactive-and-resource-lifetime` has .NET 10 and Node 24 on `windows-latest` and `ubuntu-latest`, and it already builds `tests/GameCult.Mesh.Tests` in earlier steps. | source at `7adbf3cb` | + +## 2. Model page + +There is one row per persistent or wire-visible kind. Identity is what names the +kind, lifecycle is what happens to it over time, and authority is who decides. +The HTTP answers are new design: no runtime has an HTTPS content server (target, +"Why now"). They rest on R, which fetched the specs and sources on 2026-10-19 +and corrected this page's first draft (R §8). In short: + +- **404 for absent** is universal (R §9). Nix also reads 410 and S3's 403 as + absent; we send 404 only. +- **400 for a malformed id** comes from the IPFS path gateway (generic client + error, with a malformed CID as its example) and bazel-remote (a hash that is + not 64 lowercase hex). The OCI blob-pull text defines no 400; its + `DIGEST_INVALID` is an upload code, so the first draft was wrong to cite it. +- **No system specifies a server answer for a stored object that fails its + digest** (R §9). Every one puts verification on the client. bazel-remote + streams without checking, so a failure after the headers have gone "cannot + change the status" (R §4). That is the scar `verify-before-serve` avoids by + buffering and hashing before the status line. +- **Range** may be ignored (RFC 9110 §14.2). OCI says registries SHOULD + support it, which the first draft called "optional". We ignore it. +- **`Cache-Control: public, max-age=29030400, immutable`** is the IPFS path + gateway's MUST for immutable content (R §1). The trustless gateway itself + does not state it. +- **The Fetch facts** decide the reader (R §6). Fetch decodes content codings + before the page sees the body, so `Content-Length` describes the encoded + body, which F20 reproduces in Node. `Content-Length` is CORS-safelisted, and + `ETag` is not. `Access-Control-Allow-Origin: *` passes the CORS check for any + request whose credentials mode is not `include`. + +| Kind | Identity (what names it) | Lifecycle | Authority (who decides; forbidden writers) | +|---|---|---|---| +| **Manifest** `gamecult.mesh.cdn_artifact_manifest.v1` | The record key (row below), derived from `artifactId`, `version` and `contentHash`. On the wire it is the 10-array of F1. Its namespace is the schema id. Two manifests for one body under different ids or versions are distinct and legitimate. | Immutable once packed. A new body or version is a new manifest and a new key. Nothing revises one in place, and deletion is not in scope (no GC). `createdAtUtc` is set at pack, and a caller may pin it so that repacking is reproducible. | `packContent` in `cultnet-ts/content` (C1, `b8b825e1`) is the only TS writer. The encoder and decoder in the same module are the only TS byte owners. The reader takes a manifest value and never builds or edits one. **Forbidden:** a second TS manifest type or encoder in `cultmesh-ts`, `cultmesh-browser` or a consumer, and any URL or endpoint field. | +| **Chunk ref** `CultMeshCdnChunkRef` | Its `chunkHash` (SHA-256 of the chunk bytes) within one manifest, plus `offset`. Two refs may share a hash: this is legal, and the reader fetches each ref. | Immutable inside its manifest. `recordKey` is derived and may be blank on read. A blank key goes on the wire as `recordKey=` (F5), and the provider accepts it. | The packer writes. `validateManifest` (C1) judges contiguity, non-negative sizes and the size sum. The reader and provider never edit one. | +| **Chunk record key** `mesh:cdn:chunk:` | Fully derived from `normalizeHash(chunkHash)`. It is injective only over valid hex, because C# accepts any non-blank string (F7). | Derived on demand, never stored independently of a manifest. | `chunkRecordKey` in `cultnet-ts/content`. On the HTTP wire the provider **checks** a non-blank `recordKey` against it, as the C# TCP server does (F21), and never derives a file from it. | +| **Artifact record key** `mesh:cdn:artifact:::` | Derived by `StableToken` (F8). It is not injective: `A/b` and `a b` both give `a-b`, and the content hash at the end disambiguates. | Derived on demand. | `artifactRecordKey` in `cultnet-ts/content` (async; C1 deviation). Truth comes from the C#-written `contracts/cultmesh/cdn-record-key-vectors.json`. Neither C2 nor C3 uses it. | +| **Content hash / chunk hash** | Lowercase 64-hex SHA-256. On input, `normalizeHash` accepts `sha256:`, any case and surrounding whitespace, as C# does. The HTTP boundary and the reader also demand 64 hex through `parseSha256Hex`. | Immutable. It *is* the identity. | `sha256Hex` and `parseSha256Hex` (C1) are the only TS hasher and the only hex rule. The provider and reader call them and keep no copy. The negative greps pin this. | +| **Stored chunk** (provider disk) | File `/`, flat, one file per distinct chunk hash. This is the reference layout (F21: C# stores one record per chunk). For a single-chunk artifact the chunk hash equals the content hash, so StreamPixels' whole-artifact file `/srv/streampixels/content/` (F23) is already a stored chunk. A multi-chunk artifact's publisher writes `packContent(...).chunks`, one file each. | Written by the publisher outside the provider, and never written by the provider. Immutable. Deletion has no owner (GC is out of scope). A corrupt or oversized file stays on disk and is never served. | The publisher writes; **the provider is read-only**. The provider verifies every read against its name before serving (`verify-before-serve`, the C# per-request behaviour of F21). A symlink or a replaced file cannot leak anything, because only bytes that hash to the requested name are ever served. **Forbidden:** any path derived from `recordKey`, the URL path or an unvalidated hash. | +| **Provider store index** | **None.** The file name is the index. The directory store maps hex to `/` on each request, after its own `parseSha256Hex` equality check. No in-memory table exists, so nothing can go stale. | Not applicable: it is computed per request. | `ContentChunkStore` is the port: `readChunk(chunkHash, maxBytes) → Promise`. `createDirectoryChunkStore(root)` stats before reading and rejects a file over `maxBytes` with `ContentChunkTooLargeError`, so an oversized file is never read into memory. A host may supply another store, for example one indexed from manifests, and the handler verifies whatever any store returns. | +| **The empty chunk** `e3b0c442…b855` | The SHA-256 of zero bytes. | Intrinsic: it needs no file. | The provider answers it as 200 with `Content-Length: 0` without consulting the store, so empty artifacts work against any store (bazel-remote does the same, R §4). The reader verifies it locally and sends no request. | +| **Wire request** | `GET` or `HEAD ?chunkHash=&recordKey=`. Extra query parameters are ignored, because an endpoint may carry its own (F5). The mount path belongs to the host, and the handler never reads it. | Stateless. | Built by the C# connector or the TS reader. The TS reader builds the URL **byte-identical** to `BuildChunkUri`, `Uri.EscapeDataString` escaping (F19) and the empty-query `?&` join included, so C# and browser clients share HTTP cache entries. | +| **Content coding** | Identity, always. | Not applicable. | Provider: no `Content-Encoding`, and `Cache-Control` carries `no-transform`, which forbids an intermediary to transform the content (RFC 9111 §5.2.2.6). That keeps the C# connector's `Content-Length` check meaningful (F6). The reader does not rely on it: it judges the bytes it received (F20). | +| **Answer 200** (GET) | The body is exactly the verified chunk bytes. | Immutable per URL. | Provider. Headers: `Content-Length: `, `Content-Type: application/octet-stream`, `X-Content-Type-Options: nosniff`, `Cache-Control: public, max-age=31536000, immutable, no-transform` and `Access-Control-Allow-Origin: *`. Octet-stream with `nosniff` keeps a public chunk from rendering as HTML on the host's origin. The IPFS `Content-Disposition: attachment` adds nothing over that for a fetch client, so it is not sent. | +| **Answer 200** (HEAD) | The same headers as GET, with no body. | Same as GET. | Provider. HEAD verifies exactly as GET does, so it can never advertise a corrupt chunk. RFC 9110 §8.6 requires HEAD's `Content-Length` to equal GET's. | +| **No ETag, no 304** | Not applicable. | Not applicable. | Provider. `immutable` with a one-year max-age means browsers do not revalidate. `ETag` is not CORS-exposed (R §6), and the URL is already the content identity. An `ETag` without a 304 path is noise, and a 304 path is a second answer to test. The first draft had both, and both are cut. | +| **Answer 400** | `chunkHash` missing, repeated, or not 64 hex after `normalizeHash`. Or `recordKey` repeated, or non-blank and not exactly `mesh:cdn:chunk:` (the C# server's "record key disagrees" rule, F21). | Stateless. | Provider. Body is a fixed `text/plain; charset=utf-8` reason with no echo of input (bazel-remote echoes the URL; we do not). Headers: `nosniff`, `Cache-Control: no-store`, `Access-Control-Allow-Origin: *`. | +| **Answer 404** | A valid hash whose chunk the store does not hold. | Stateless; a later publish can turn it into 200. | Provider. Same error headers as 400. `no-store` keeps an absence from being cached as immutable. | +| **Answer 405** | Any method but GET and HEAD, OPTIONS included. | Stateless. | Provider, with `Allow: GET, HEAD`. The reader's GET is a CORS simple request (no custom headers, credentials omitted) and never preflights. A client that adds headers would preflight, and its preflight is refused, which is correct because the provider honours no request header. The first draft's 204 preflight answer is cut. | +| **Answer 500** | The store returned bytes whose SHA-256 is not the requested hash; the store holds a file over `maxChunkBytes`; or the store failed. | Persists until the operator replaces the file. | Provider. It sends a fixed reason and none of the chunk's bytes, then calls the host's `onServerFault({ chunkHash, kind, error })` with `kind` ∈ {`hash-mismatch`, `too-large`, `store-error`}, so the host can fail health. A throwing hook does not change the answer. It is 500 and not 404 because the IPFS trustless gateway reserves 500 for "genuine server errors" (R §1), and corruption is one the operator must see, while a 404 would hide it as absence. | +| **Range** | Not supported. A `Range` header is ignored, and the answer is 200 with the full chunk (RFC 9110 §14.2). No `Accept-Ranges` header is sent. | Not applicable. | Provider. The chunk is the resumption unit, and resumable TS state is out of scope. | +| **Provider memory** | At most `maxChunkBytes` buffered per in-flight request. | Per request. | Provider. Buffering is forced, because the status line cannot be sent before the hash is known (the bazel-remote scar above). `maxChunkBytes` defaults to `DEFAULT_CHUNK_SIZE_BYTES` (4 MiB) and must lie in 1..2147483647. The host bounds concurrency (server `maxConnections` or a reverse proxy), and the README says so. | +| **Reader result / error** | A `Uint8Array` of the whole body, or one `CultMeshContentError` with `code` ∈ {`manifest-invalid`, `too-large`, `insecure-endpoint`, `webcrypto-unavailable`, `network`, `http-status`, `length-mismatch`, `chunk-hash-mismatch`, `content-hash-mismatch`}, plus `chunkHash` and `status` where they apply. A caller abort rejects with the signal's own `reason`, unwrapped. Bad options reject with `RangeError`. | Transient, held in memory only. No byte of a failed chunk or body is returned, in whole or in part (`verify-before-use`). | `fetchVerifiedContent` (and `fetchVerifiedChunk`) in `cultmesh-browser`. Concurrency defaults to 4 and is bounded 1..32 (the C# `CultMeshContentTransferOptions` bounds). `maxBytes` defaults to 256 MiB and is checked before any request. The scheme must be `https:`, or `http:` where `isLoopbackEndpoint` (F22) holds. Only status 200 is accepted. **`Content-Length` is not consulted** (F20). The body is read through a stream into the chunk's slot, a body that runs past the chunk's size is cancelled at the first excess byte, and one that ends short is refused. | +| **Endpoint** | A URL the caller resolved through CultMesh. | Per call; never persisted in content. | The caller. **Forbidden:** any manifest, chunk-ref or record field carrying it (`no-urls-in-content`). Error messages never echo it, because an endpoint query may carry a tenant or a token. | +| **Vector files** | `content-vectors.cs-written.json` (C#), `.rs-written.json` (Rust), `content-vectors.ts-written.json` (TS, manifests only, own inputs) and `cdn-record-key-vectors.json` (C#, record-key traps), all landed by C1. | Each is rewritten only by its writer under `CULTNET_WRITE_VECTORS=1`. CI never sets the variable: the committed files are the contract. | Each writer owns its file. C2 and C3 add no vector file. HTTP behaviour is pinned by tests and, in C4, by the C# transfer service driving the unmodified connector (F29). | + +Two cells rest on reasoning rather than a probe: that the host, not the +provider, bounds concurrency, and the cost of hashing on HEAD. Both are +defaults a later cut can revise without changing any shape. + +## 3. Rationale + +**Where the CDN shapes live: `cultnet-ts/src/content.ts`, exported as +`cultnet-ts/content`.** C1 landed this at `b8b825e1`. Both consumers already +depend on `cultnet-ts`, and its subpaths are the repo's established +browser-safe entry points (F14). The placement matches Rust, where +`cultnet-rs/src/content.rs` owns the same rules. + +**Hashing is WebCrypto in one place.** `crypto.subtle` exists in browsers +(secure contexts) and in Node 20+, so one hasher serves the packer, the +provider and the reader. WebCrypto has no incremental digest, so every hash +needs its bytes in memory. That fits all three users: the reader holds the +body (the target keeps artifacts in memory), the provider holds one chunk at a +time, and the packer holds the body. + +**Decoding follows the siblings.** C1's report records two places where its +decoder is stricter than MessagePack-CSharp: an exact field count, and refusal +of nil strings. Ruling `leaf-acceptance-follows-reference` may make that a +finding. That belongs to C1's Soul pass, not to C2 or C3, which take manifest +values and never decode bytes. + +**No TS CultCache document definition for manifests yet.** This is still +follow-up `ts-manifest-document-definition`. + +**Provider: `cultmesh-ts/content`, a request-to-answer core, one store and one +Node adapter, in one file.** `createContentChunkHandler(store, options)` +returns `(request: { method, url }) => Promise<{ status, headers, body? }>`. +The request carries no headers, because the provider honours none: Range is +ignored, and conditional requests have no answer now that ETag is cut. The +core reads only the query, never the path, which is what makes +`chunk-only-route` structural rather than checked. `toNodeListener(handler)` +is about 15 lines for `node:http(s)`, and Express, Fastify or Next mount the +core the same way. The name says "chunk" because the handler answers chunks +only. StreamPixels' sketch name, `createHttpsContentHandler` (F23), implied it +does TLS, and it does not: the host terminates TLS. One file, not three, +because the store and adapter are about 50 lines between them and have no +consumer apart from the core. `cultmesh-ts` is already a Node package, so +`node:fs` in the file costs nothing. + +**Store layout: per-chunk flat files.** This is the reference layout (F21), +and it needs no index that can go stale. It coincides with StreamPixels' +whole-artifact files, because every StreamPixels artifact is a single chunk +(F23). The alternative is a store indexed from manifests, mapping a chunk hash +to (artifact file, offset, size), so that multi-chunk artifacts could be +stored whole. It is not shipped, because it adds a derived index that must be +rebuilt when manifests change, and no consumer needs it. A host that wants it +writes about 30 lines against the port, and the handler still verifies every +byte. **Consumer note for StreamPixels B3:** its `catalog.cc` and +`character-artifacts.cc` manifests must stay single-chunk, so their files are +the stored chunk. Either they are packed with `chunkSizeBytes` at least the +file size and the provider's `maxChunkBytes` is raised to match, or B3 +publishes the chunk files. + +**Verify on every request, not once at boot.** The invariant says "serves +only bytes whose SHA-256 equals the requested chunk hash", and a boot check +cannot see a file replaced after boot. C# verifies per request (F21). A +"verified at boot" cache would be a cache pretending to be truth. StreamPixels' +boot check is its own deploy gate (missing blob means failed health), and it +stays useful beside per-request verification. The cost is one SHA-256 of at +most 4 MiB per request, and the immutable one-year caching keeps repeats away +from the origin. + +**Reader: `fetchVerifiedContent(endpoint, manifest, options)` and +`fetchVerifiedChunk(endpoint, chunkHash, sizeBytes, options)` in +`cultmesh-browser`, over one internal per-chunk primitive.** The second is the +"fetch by hash" a general consumer expects for a single-chunk artifact. It +builds no manifest: it validates the hash and size, sends +`recordKey=chunkRecordKey(hash)` so its URL equals a C#-packed manifest's, and +runs the same primitive. The whole-body check is the chunk check, because for +a single chunk the two hashes are the same. Before any request, +`fetchVerifiedContent` runs `validateManifest`, `parseSha256Hex` on every +hash, the zero-size rule (F18) and the `maxBytes` cap. It then fills a private +buffer of `sizeBytes` through a sliding window of at most +`maxConcurrentChunkRequests` requests. It uses `credentials: "omit"` and an +internal `AbortController` chained to the caller's signal, so the first +failure cancels every request still in flight. It hashes each chunk in place +and returns the buffer only after the whole-body hash matches. + +**Why the reader ignores `Content-Length`.** The target says the reader +"refuses a response whose length differs from the advertised size before +reading it all". The header cannot carry that duty. Fetch decodes content +codings, and a proxy that gzips in spite of `no-transform` turns a correct +1,000-byte chunk into a 29-byte `Content-Length` (F20, R §6). In a browser the +reader cannot even see `Content-Encoding` cross-origin, because it is not +safelisted, so it cannot tell that case apart. What the invariant protects is +bounded reading and no acceptance of a wrong length. The streaming cap +delivers both from the bytes actually received: the reader stops at the first +byte past the chunk's size, and refuses a short body at its end. The target +sentence should be reworded (reported to Self as a contradiction). + +**C3 does not wait for C2.** C3's live test serves from a stub `node:http` +loopback server written in the test (about 30 lines). The stub sends what the +model page says, plus the misbehaviours: gzip, a short body, an endless body, +and wrong bytes. The real provider meets the real reader in C4. This keeps +the two cuts parallel, and it lets C3 test misbehaviours the real provider can +never produce. + +**C4: the proof lives in `cultmesh-browser/test/interop`, with the C# half +in `GameCult.Mesh.Tests`.** The orchestrator is Node, following the QUIC +precedent (F13): it starts the provider, runs both consumers and judges what +the provider saw. It lives in `cultmesh-browser` and not `cultmesh-ts`, +because the workspace build order compiles `cultmesh-ts` first (F31). The +browser package can import `cultmesh-ts/content` with types. The reverse +would need either an untyped script or a build-order exception. The provider +runs in its own process rather than the orchestrator's, so each of the three +parties is a separate OS process, and the orchestrator never shares an event +loop with the server it judges. The C# half drives the connector through +`CultMeshContentTransferService` (F29), because the connector alone does not +verify (F6). A parity test that stopped at the connector would show that C# +receives bytes, not that C# refuses bad ones. TLS trust is a committed +fixture certificate, as the QUIC fixture is (F25). The C# side anchors it +through `CustomRootTrust`, which keeps chain and name validation and adds no +code path that can accept a different certificate. A hash-pinning +`ServerCertificateCustomValidationCallback` would skip name validation and +add a callback that has to be read to be trusted. Corruption comes in two +kinds. On disk, the real provider refuses it with 500 (C2's +verify-before-serve). In flight, a test wrapper flips bytes after the +provider has verified them. The in-flight leg is what proves that both +consumers verify. + +**"Released"** is ruled: `release-shape-gitlink` (Defaulted by Self). + +## 4. Cut sequence + +C1 (`cut-c1-shapes.r1`, report `h1` under a Soul pass), C2 +(`cut-c2-provider.r1`) and C3 (`cut-c3-reader.r1`) are specified in the mind. +C2 and C3 run in parallel once C1 merges, each in its own worktree from C1's +merge. Both are based on `b8b825e1`, and they touch disjoint files except +`cultmesh-portability.yml`, where their hunks lie 15 lines apart. What +remains: + +4. **C4 `c4-parity`** (`cut-c4-parity.r1`, branch + `hands/cultmesh-ts-content-c4-parity` from `7adbf3cb` plus the C3 merge), + waiting on C2 and C3. The spec carries the plan. In one paragraph: a + node:test orchestrator in `cultmesh-browser/test/interop` packs three + artifacts (multi-chunk, single and empty) and spawns the C2 provider as its + own `node:https` process with three mounts: honest, tampered and corrupt + store. It runs the C3 reader in a child with `NODE_EXTRA_CA_CERTS`, once + more without it as a control, and then `dotnet test` over a new + `CultMeshHttpsContentInteropTests`. That suite drives the unmodified + connector through `CultMeshContentTransferService` and trusts the committed + fixture through `CustomRootTrust`. The orchestrator then judges URL parity + and the provider's fault log. CI gains the step on both OSes, and the + browser and `cultmesh-ts` steps swap to follow the workspace order (F31). +5. **C5 `c5-release`**, waiting on C4 and the Soul passes of C2 to C4. Ruling + `release-shape-gitlink`: merged to CultLib `main` with version bumps, + CHANGELOGs and git tags, and no npm publish. Line-level plan: + - Bumps (minor; every change is additive): `cultnet-ts` 0.2.0 to 0.3.0 + (`./content`), `cultmesh-ts` 0.1.1 to 0.2.0 (`./content`), and `cultmesh-browser` 0.3.0 to 0.4.0 (the reader). + `@gamecult/cultcache-ts` gains only the `checkPayloadDepth` re-export: + a patch bump, 0.14.0 to 0.14.1 (its version at `b8b825e1`). + - Dependency ranges: `cultmesh-ts` and `cultmesh-browser` move + `cultnet-ts` to `^0.3.0`. `cultnet-ts`'s `^0.14.0` on + `@gamecult/cultcache-ts` already admits 0.14.1 and stays. C4 gives + `cultmesh-browser` a devDependency `cultmesh-ts: ^0.1.1`, which does not + admit 0.2.0, so it moves to `^0.2.0` in the same commit. Otherwise npm + looks for 0.2.0 on the registry and the install fails. `npm install + --no-package-lock`, the four workspace tests and the browser's + `test:interop` run after the bumps. + - A `CHANGELOG.md` per bumped package. None exists in any package at + `b8b825e1`, so C5 creates four, each naming the live surface and not the + history (Keep a Changelog headings). + - A Soul pass over the release diff, then four tags: `cultcache-ts-v…`, + `cultnet-ts-v0.3.0`, `cultmesh-ts-v0.2.0` and `cultmesh-browser-v0.4.0`. + These go in **two pushes** (at most three tags per push, SKILL.md): + `cultcache-ts` first, because its tag triggers `publish-packages.yml` + (F16), and the three plane tags second. Whether the `cultcache-ts` tag's + npm publish job still runs, and to where, is checked before that push; + follow-up `npm-publish-ts-packages` owns the rest. + - The consumer's pickup (StreamPixels bumping `vendor/CultLib` to the + tagged commit) is StreamPixels' B-cuts, not this campaign. + - Size: about 60 lines of version and CHANGELOG text; a short Hands pass. diff --git a/docs/cultmesh-ts-content-target.md b/docs/cultmesh-ts-content-target.md new file mode 100644 index 00000000..e1ee042a --- /dev/null +++ b/docs/cultmesh-ts-content-target.md @@ -0,0 +1,101 @@ +# TypeScript CultMesh Content Plane Target + +Campaign `cultmesh-ts-content`. Self wrote this on 2026-10-19 for the +StreamPixels M1 live character preview. That preview is a three.js page that +loads glTF bodies and accessories by content hash from Yggdrasil. + +## Why now + +CultMesh moves large immutable artifacts as content-addressed chunks described +by a `gamecult.mesh.cdn_artifact_manifest`. C# packs manifests, serves chunks +over TCP (`CultMeshContentServer`), fetches them over HTTPS +(`CultMeshHttpsContentTransportConnector`), and verifies each chunk and the +whole body (`CultMeshContentTransferService`). Rust speaks the chunk messages +through `cultnet-rs` `fetch_content` and `answer_content_chunk_request`. +TypeScript has none of this: no manifest type, no packer, no provider and no +reader. And no runtime has an HTTPS content *server*; the C# HTTPS connector +has never had a peer. + +Standing ruling (StreamPixels `state/map.yaml`, "Content plane", operator +2026-09-15): HTTPS content transport serves both browser and overlay. +Yggdrasil plus SHA-256 verification is the trust boundary for now. +Distributed zero-trust distribution is future work. The catalog never stores +URLs; clients resolve content through CultMesh. + +## Target state + +- **One TypeScript owner of the CDN document shapes.** It holds the manifest + and chunk-ref types, their MessagePack wire form, `normalizeHash`, the + record-key grammar (`mesh:cdn:chunk:` and + `mesh:cdn:artifact:::`), and the packer. A manifest + that TypeScript packs is byte-identical to the one C# packs from the same + bytes and options. The owner can be imported in a browser, because the + reader needs it there. +- **An HTTPS content provider in `cultmesh-ts`.** It answers + `GET ?chunkHash=&recordKey=` with exactly the chunk's + bytes and a `Content-Length` equal to the chunk's size: the request shape + the C# connector sends (`CultMeshHttpsContentTransport.cs` `BuildChunkUri`). + Its core is framework-neutral: a request maps to an answer, and a host can + mount it on `node:https` or on any HTTP framework. It reads from a content + store port. The store shipped with it serves content-addressed files from a + directory outside git. The provider never serves a byte it has not + verified against its hash, and it never serves anything but a chunk: + there is no generic static-file route. +- **A verifying reader in `cultmesh-browser`.** Given a resolved endpoint and + a manifest, it fetches the manifest's chunks over HTTPS with the C# query + shape. It checks each response's length, each chunk's SHA-256 and the whole + body's SHA-256 with WebCrypto, and returns the bytes or throws a typed + error. No byte that failed its hash reaches the caller, in whole or in part. + It runs in browsers and in Node 20+. +- **Endpoints come from CultMesh, not from content.** The reader takes the + endpoint as an argument that the caller resolved through CultMesh. Manifests + carry no URL. + +## Invariants + +- `wire-parity`: manifests, chunk refs and record keys are byte-identical + across C#, Rust and TypeScript for the same input. The C# runtime is the + reference. TypeScript writes and reads the shared vectors in + `contracts/cultmesh/`. +- `https-shape-parity`: the C# `CultMeshHttpsContentTransportConnector` + fetches content from the TypeScript provider unmodified, in a cross-process + test. The TypeScript reader fetches the same chunks from the same provider. +- `verify-before-use`: the reader releases no byte that failed its chunk hash + or the whole-body hash. It refuses a body longer than the advertised size at + its first excess byte, and a shorter one at its end. It does not trust + response length headers, because Fetch decodes content codings and a proxy + can rewrite them (research 2026-10-19, section 6). +- `verify-before-serve`: the provider serves only bytes whose SHA-256 equals + the requested chunk hash. +- `chunk-only-route`: the provider answers only chunk requests. A path, a + filename or a hash outside the store can never select a file. +- `no-urls-in-content`: no manifest, chunk ref or record carries an endpoint. +- `one-owner-per-shape`: one TypeScript module owns the CDN shapes, and both + packages consume it. Neither package keeps a private copy. +- `general-purpose`: the plane is judged by what a reasonable consumer + expects, not only by StreamPixels' slice (operator, 2026-09-30). Multi-chunk + artifacts, empty artifacts, cancellation, bounded concurrency and browser + cross-origin use all work. +- `released`: the npm packages StreamPixels vendors are published at versions + that contain this plane. The release is its own cut with a Soul pass before + the tag. + +## Not in this campaign + +- Odin route verification for content. Single-host trust is ruled for now. +- Resumable or durable transfer state in TypeScript. The browser holds + artifacts in memory. +- Distributed or zero-trust distribution, and peer serving. +- A TypeScript TCP or RUDP content server, and an HTTPS content server in Rust + or C#. +- Garbage collection of stored blobs. +- StreamPixels' own export, publish and service wiring (its B2 and B3 cuts). + StreamPixels is the consumer, not part of this change. + +## Consumer + +StreamPixels `map/web-customize` (dfbe2a6), +`docs/web-character-customization-map.md` section B1. Each option's artifact is +10-125 KB, and a full avatar is 0.5-0.8 MB. The browser fetches them. The +service serves them from `/srv/streampixels/content/` on Yggdrasil, outside +git, and hashes every referenced blob at boot. diff --git a/docs/nuget-packaging.md b/docs/nuget-packaging.md index ed8746bb..301e54eb 100644 --- a/docs/nuget-packaging.md +++ b/docs/nuget-packaging.md @@ -25,5 +25,5 @@ closure through UPM rather than NuGet restore. Install the Unity package from the immutable release tag: ```text -https://github.com/GameCult/CultLib.git?path=/unity/org.gamecult.cultlib#cultlib-unity-v1.0.57 +https://github.com/GameCult/CultLib.git?path=/unity/org.gamecult.cultlib#cultlib-unity-v2.0.0 ``` diff --git a/docs/research/2026-10-19-content-addressed-http-answers.md b/docs/research/2026-10-19-content-addressed-http-answers.md new file mode 100644 index 00000000..3feac45f --- /dev/null +++ b/docs/research/2026-10-19-content-addressed-http-answers.md @@ -0,0 +1,170 @@ +# Content-addressed HTTP answers: what the specs and sources say + +Fork served: **cultmesh-ts-content C2 provider HTTP answers** (session label +self-2026-10-19-cm-content). Eyes pass, 2026-10-19. Facts with evidence pointers +only; no recommendation. Line numbers refer to the raw files fetched on +2026-10-19 (master/main at that date), so they drift. + +Source shorthands: + +- **TG** = IPFS Trustless Gateway spec, https://specs.ipfs.tech/http-gateways/trustless-gateway/ (source: https://raw.githubusercontent.com/ipfs/specs/main/src/http-gateways/trustless-gateway.md) +- **PG** = IPFS Path Gateway spec, https://specs.ipfs.tech/http-gateways/path-gateway/ (source: https://raw.githubusercontent.com/ipfs/specs/main/src/http-gateways/path-gateway.md) +- **OCI** = OCI Distribution Spec, https://raw.githubusercontent.com/opencontainers/distribution-spec/main/spec.md +- **Fetch** = WHATWG Fetch Standard, https://fetch.spec.whatwg.org/ +- **RFC 9110/9111/9112**, https://www.rfc-editor.org/rfc/rfc9110.txt (and 9111, 9112, 8246) + +Two things the draft model page said "from memory" are checked at the end +(section 8). + +## 1. IPFS Trustless Gateway (`application/vnd.ipld.raw`) + +| Case | What the spec says | Pointer | +|---|---|---| +| Found | Body is "An opaque bytes matching the requested block CID"; "The Body hash MUST match the Multihash from the requested CID." | TG "Block Responses (application/vnd.ipld.raw)" (src l.341-346) | +| Unknown/absent hash | `404 Not Found` MUST be returned when the root block is not in the gateway's storage; applies to HEAD for any CID and GET of raw blocks. Body not specified. For non-recursive gateways it "definitively signals" the content is not in the dataset. | TG "Response Status Codes / 404 Not Found" (src l.274-283); "Recursion" (l.606-612) | +| Malformed request | TG defines no status for a malformed CID. It says servers SHOULD "validate CID format and encoding before processing requests". PG says `400 Bad Request` is a "generic client error", example "malformed CID". TG gives 400 for missing `Accept` in strict trustless mode (l.108) and for an out-of-range `entity-bytes` (l.210). | TG "Security Considerations / HTTP Servers" (src l.616-628); PG "Response Status Codes" | +| Stored object failing its digest | **Not specified for servers.** The only requirement is client-side: clients MUST verify block digest against the CID before processing or storing. TG `500` is "only for genuine server errors, not for content unavailability" (storage failure, resource exhaustion, unexpected internal errors); corruption is not named. | TG "HTTP Clients / Block Validation" (src l.629-631); "500 Internal Server Error" (l.294-296) | +| Range | TG defines no Range support for raw blocks. PG says Range is "for requesting specific byte range of UnixFS files and raw blocks"; gateways SHOULD support single-range, multi-range optional; success is `206` with `Content-Range`; `Accept-Ranges` is optional, `none` is the example for non-deterministic CAR order. | PG "Range (request header)" (src l.184-193), "Content-Range" (l.626), "Accept-Ranges" (l.632-640) | +| HEAD | `HEAD /ipfs/{cid}` is GET without payload; missing root block is 404 for HEAD too. PG: gateways SHOULD do minimal work to produce headers such as `Content-Length`. For the probe path, all HEAD headers are optional. | TG "HEAD /ipfs/{cid}" (src l.68-72), "404" (l.274-283), "Dedicated Probe Paths" (l.525-548); PG HEAD text | +| CORS | **TG defines none.** PG only says gateways serving cross-origin traffic SHOULD list `Ipfs-Uri` (and `X-Ipfs-Path`) in `Access-Control-Expose-Headers`. Kubo's config doc says its default `Gateway.HTTPHeaders` is `{}` "+ implicit CORS headers from `boxo/gateway#AddAccessControlHeaders` and ipfs/specs#423"; the values themselves are not in that file. | PG header sections; https://raw.githubusercontent.com/ipfs/kubo/master/docs/config.md l.1484-1488 | +| Cache-Control | Response value is in PG, not TG: `Cache-Control: public, max-age=29030400, immutable` "MUST be returned for every immutable resource under `/ipfs/` namespace". (Request-side `Cache-Control: only-if-cached` returns `412` when the root block is not immediately available.) | PG "Cache-Control (response header)" (src l.488-500); TG "Cache-Control: only-if-cached" (l.120-126) | +| ETag | TG: "MUST be returned and follow the recommendations in" PG. PG default is the requested CID in quotes: `Etag: "bafy…foo"`; format-specific variants add a suffix (`"bafy…foo.raw"`); non-deterministic streams use `W/`. PG: gateway MUST compare `If-None-Match` against its `Etag` (answer 304). TG: clients SHOULD NOT assume ETags are portable across gateways. | TG "Etag (response header)" (src l.324-338); PG l.130-136, l.453-486 | +| Content-Type | "MUST be returned"; for raw blocks the type is `application/vnd.ipld.raw` (IANA registered). No charset parameter is specified. | TG "Content-Type (response header)" (src l.300-308); IANA entry linked at l.343 | +| Other headers | `Content-Disposition` MUST be `attachment` with `filename=".bin"` for raw blocks, "to ensure requested bytes are not rendered by a web browser". PG: `X-Content-Type-Options: nosniff` should be returned with `application/vnd.ipld.raw` and `.car` (from the PG fetch summary; line not re-grepped). | TG "Content-Disposition" (src l.310-316); PG "X-Content-Type-Options" | +| Content-Encoding / Length | PG: `Content-Length` "Represents the length of returned HTTP payload", and warns "the value may differ from the real size of requested data if compression or chunked `Transfer-Encoding` are used", citing ipfs/specs#461 (an open TODO in the spec). | PG "Content-Length (response header)" (src l.613-624) | +| Size cap | Clients SHOULD cap block size; the spec names 2 MiB as the p2p block limit (see Block Limits). | TG "Block Limits" (src l.558-573) and "HTTP Clients" (l.629-640) | + +## 2. OCI Distribution Spec, blob `GET`/`HEAD /v2//blobs/` + +| Case | What the spec says | Pointer | +|---|---|---| +| Found (GET) | "MUST provide the expected blob, with a response code that MUST be `200 OK`." Response MUST contain `Docker-Content-Digest`; "If present, the value of this header MUST be a digest matching that of the response body." Clients MAY ignore it, but if used MUST verify it; "Clients SHOULD verify that the response body matches the requested digest." | OCI "Pulling blobs" (src l.180-195) | +| Unknown | `404 Not Found` MUST be returned (GET and HEAD). The endpoint table lists only `200` success and `404` failure. Error code names `BLOB_UNKNOWN` (code-1) exist in the error table; this section does not require a JSON body. | OCI l.194, l.209-216; Endpoints table l.846 (end-2); Error Codes table l.891 | +| Malformed digest | **Not specified for blob pull.** The table lists only 404. (Other endpoints: PUT blob 400 on digest problems; DELETE blob 404/400/405.) `DIGEST_INVALID` is defined as "provided digest did not match uploaded content" (upload semantics). | OCI table l.846-858; code-4 l.894 | +| Stored object failing its digest | **Not specified for servers.** Client-side verification only (above). | OCI l.188-193 | +| Range | "A registry SHOULD support the `Range` request header in accordance with RFC 9110 (section 14)." No `206`/`416`/`Accept-Ranges` text for blob pull (416 appears only in the upload flow, l.392, 421). | OCI l.196 | +| HEAD | HEAD on an existing blob MUST return `200`; MUST contain `Docker-Content-Digest` and `Content-Length` ("the size in bytes"); not found is `404`. Note: older registries may omit the digest header; clients "can reasonably assume the digest algorithm used is sha256". | OCI "Checking if content exists" (src l.198-216) | +| CORS | **Not in spec.** | whole OCI spec (no `Access-Control` occurrence found in the `grep` of the file) | +| Cache-Control/ETag | **Not in spec.** | OCI spec | +| Content-Type | **Not specified for blob GET**; `application/octet-stream` appears only for upload requests. | OCI upload sections | +| Redirects | Registries may answer blob GET with a redirect; clients must not forward `Authorization` across hosts. | OCI pull text (from the WebFetch of the same file; not re-grepped) | + +Known failures near this area (NVD records, fetched 2026-10-19): + +- CVE-2024-3727 (containers/image, Red Hat): "integrity-check flaw" allowing unexpected authenticated registry access, resource exhaustion, local path traversal. It affects the client library, not a registry server. https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2024-3727 +- CVE-2026-85747 (distribution/distribution, fixed 3.1.2): the client's manifest `Get()` does not hash the body against the requested digest, so a malicious registry can substitute content. https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2026-85747 (status "Awaiting Analysis") +- CVE-2026-93317 (Docker build): a registry or OCI-layout blob source could supply content not matching the claimed digest and have it cached under that digest. https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2026-93317 (status "Awaiting Analysis") +- Searched for a path traversal CVE in a registry server's digest-to-path mapping: none surfaced. + +## 3. Nix binary cache (HTTP) + +The manual's Binary Cache page defines layout only (a `nix-cache-info` file, a +`.narinfo` per object with "a (usually relative) URL to the corresponding +compressed NAR", the NAR). It states no status codes, headers, CORS, Range or +Cache-Control. https://nix.dev/manual/nix/2.35/protocols/binary-cache/ (page head). +The behavior below is from the Nix client/writer source. + +| Case | What the source shows | Pointer | +|---|---|---| +| Found | Writer stores NARs at `nar/.nar`, i.e. named by the hash of the compressed file; narinfo records `FileHash`, `FileSize`, plus `NarHash`. | https://raw.githubusercontent.com/NixOS/nix/master/src/libstore/binary-cache-store.cc l.156-181 | +| Absent | Client maps HTTP `404` and `410` to `NotFound` ("The file is definitely not there"); `403` to `Forbidden`; `408`/`429` to `Transient`. `fileExists` issues a **HEAD** and treats `NotFound` **and `Forbidden`** as absent, "S3 buckets return 403 if a file doesn't exist and the bucket is unlistable". | https://raw.githubusercontent.com/NixOS/nix/master/src/libstore/filetransfer.cc l.826-838; .../http-binary-cache-store.cc l.184-202 | +| Malformed request | Not specified. | n/a | +| Failing digest | Client side only; the writer's `FileHash`/`NarHash` are checked by the consumer. No server answer defined. | binary-cache-store.cc l.175-181, l.313 | +| Range | Client records `acceptRanges` for retries (client-side use of Range). No server rule. | filetransfer.cc l.219 | +| HEAD | Used for existence probing (above). | http-binary-cache-store.cc l.190 | +| CORS / Cache-Control / ETag | Not in spec or the files read. | n/a | +| Content-Type | Writer uploads `text/x-nix-narinfo` (narinfo), `text/x-nix-cache-info`, and `application/x-nix-nar` (NAR). | binary-cache-store.cc l.57, l.135, l.270 | +| Content-Encoding | Writer can upload with a `Content-Encoding` header naming the compression (http-binary-cache-store.cc l.232). Client sets `CURLOPT_ACCEPT_ENCODING ""` (accept any supported) and tracks a `hasContentEncoding` flag. The NAR itself is stored already compressed (named by compressed-file hash), so transport encoding and stored compression are separate. | filetransfer.cc l.223-224, l.616 | + +## 4. Bazel remote cache, HTTP + +| Case | What the source/spec says | Pointer | +|---|---|---| +| Protocol | Bazel docs: "Binary data (BLOB) is uploaded via PUT requests and downloaded via GET requests"; action results under `/ac/`, files under `/cas/`; any "HTTP/1.1 server that supports PUT and GET" can serve. The doc page states **no** status codes, no digest verification on PUT, no Content-Type, no compression, no Range. HEAD is not mentioned there. | https://bazel.build/remote/caching "HTTP caching protocol" | +| bazel-remote README | CAS key is "the lowercase SHA256 hash of the entry"; `/cas/` or `//cas/` (instance "optional but ignored"); "HEAD requests can be used to confirm whether a key exists"; the empty blob is "always available, even if the cache is empty" (HEAD example: `200` with `Content-Length: 0`); GET with `Accept-Encoding: zstd` "may" return zstd data; PUT of zstd requires `Content-Encoding: zstd` and `X-Digest-SizeBytes`. | https://raw.githubusercontent.com/buchgr/bazel-remote/master/README.md (HTTP section) | +| Found | `200`, `Content-Type: application/octet-stream`, `Content-Length` set to the stored size (uncompressed path). | https://raw.githubusercontent.com/buchgr/bazel-remote/master/server/http.go l.275-282 | +| Absent | `404`, body "Not found" via `http.Error`. | http.go l.268-271 | +| Malformed | Path must match `^/?(.*/)?(ac/\|cas/)([a-f0-9]{64})$` (lowercase 64-hex); otherwise `400` with the escaped URL echoed in the message (`html.EscapeString`). | http.go l.33, l.101-112, l.216-223 | +| Failing digest (read) | No digest check on the GET path in this handler (reader returned by `cache.Get`, `io.Copy` to the client). A failure after headers are sent is logged and cannot change the status ("we've already started writing data"). | http.go l.284-297 | +| Digest check (write) | PUT checks size match (`400` "sizes don't match") and `Content-Encoding` is `identity`/`zstd`/absent (else `400`); the remaining digest verification is in code not read here. | http.go l.306-345, l.372-388 | +| Compression | When zstd is chosen the handler sets `Content-Encoding: zstd` and **omits `Content-Length`** ("TODO: calculate Content-Length for compressed blobs too"). | http.go l.246-250, l.275-281 | +| HEAD | `200` with `Content-Length` of the size, or `404`. | http.go l.468-491 | +| Range / CORS / Cache-Control / ETag | Not present in the handler excerpts read. | n/a | + +## 5. Git over HTTP + +Smart HTTP does not address single objects. Dumb HTTP does: URL +`$GIT_URL/objects/XX/YYYY…` for a loose object. +https://git-scm.com/docs/http-protocol (introduction example). + +| Case | What the spec/source says | Pointer | +|---|---|---| +| Absent | Server "MUST NOT respond with `200 OK`"; "SHOULD respond with `404 Not Found`, `410 Gone`, or any other suitable HTTP status code which does not imply the resource exists". Access denied MUST be `403`. | git http-protocol "General Request Processing" | +| Caching | Clients MAY reuse a cached entity per `Cache-Control`/`Expires` (follow RFC 2616); servers MAY return `304`; clients treat `304` as `200`. Smart services must prevent caching. The page states no Cache-Control value for object files. | same section | +| Content-Type | Specified only for `info/refs` (`text/plain; charset=utf-8` SHOULD, clients MUST NOT validate); nothing for object files. | same page | +| Failing digest | Client side: the dumb walker compares the received object's computed id with the requested id and errors `File %s has bad hash`. | https://raw.githubusercontent.com/git/git/master/http-walker.c l.540-541 | +| Missing target | The client treats a missing-target result as `HTTP_MISSING_TARGET` (http.c l.1944). | https://raw.githubusercontent.com/git/git/master/http.c | +| Content-Encoding | Client sets `CURLOPT_ENCODING ""` at http.c l.2284 (accept any encoding curl supports, curl decodes transparently) and sends `Pragma: no-cache` (l.1452). The http-protocol page says nothing about gzip for objects. | http.c | +| Range, CORS, ETag | Not in the page. | n/a | + +## 6. Browser fetch facts (verifying reader) + +| Fact | Evidence | +|---|---| +| CORS-safelisted response-header names are exactly `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. So `Content-Length` is readable cross-origin from a CORS response without `Access-Control-Expose-Headers`. `ETag` is **not** on the list; it needs `Access-Control-Expose-Headers` to be visible. | Fetch 2.2.2 "Headers", CORS-safelisted response-header name (https://fetch.spec.whatwg.org/#cors-safelisted-response-header-name) | +| The CORS-exposed header-name list comes from `Access-Control-Expose-Headers`; a CORS filtered response exposes safelisted names plus that list. | Fetch 2.2.6 "Responses" (https://fetch.spec.whatwg.org/#concept-response-cors-exposed-header-name-list); 3.3.3 | +| CORS check: failure if `Access-Control-Allow-Origin` is absent; "If request's credentials mode is not "include" and origin is `*`, then return success." With credentials mode `include`, `*` is not enough (needs exact origin plus `Access-Control-Allow-Credentials: true`). | Fetch 4.10 "CORS check"; 3.3.5 | +| A CORS-preflight happens for non-safelisted methods/headers (`GET`/`HEAD` with no custom headers are simple requests). | Fetch 3.3 (general); not re-quoted here | +| Fetch decodes content codings before exposing the body. In HTTP-network fetch: it records encoded size from transmitted bytes, sets `bytes` to "the result of handling content codings", then increases decoded size by the decoded length. Unsupported codings: bytes are returned as-is; decoding error: failure. | Fetch 4.7 "HTTP-network fetch"; 2.2.4 "handle content codings" (https://fetch.spec.whatwg.org/#handle-content-codings) | +| The spec itself notes: "This makes the `Content-Length` header unreliable to the extent that it was reliable to begin with." (the header describes the encoded body; the body the page reads is decoded.) | Fetch 4.7 (fetch_t.txt l.9670) | +| When a request has a `Range` header, the browser appends `Accept-Encoding: identity`, "This avoids a failure when handling content codings with a part of an encoded response." | Fetch 4.6 "HTTP-network-or-cache fetch" (l.8760-8767) | +| HTTP framing: with a valid `Content-Length`, a response is incomplete if fewer octets arrive than `Content-Length`; a client MUST record it as incomplete. `Content-Length` "refers specifically to the amount of data enclosed" (encoded form on the wire). | RFC 9112 section 8 "Handling Incomplete Messages"; RFC 9110 section 8.6 | +| `Cache-Control: no-transform`: an intermediary "MUST NOT transform the content". | RFC 9111 section 5.2.2.6 | +| `immutable` extension: identifies responses that will not be updated during freshness lifetime so clients need not revalidate. | RFC 8246 section 2 | + +## 7. HTTP core facts that apply to all five systems + +| Fact | Evidence | +|---|---| +| Range: "A server MAY ignore the Range header field"; a server MUST ignore Range for methods without defined range handling (GET is the only one). | RFC 9110 section 14.2 "Range" (l.6476-6484) | +| HEAD: "server SHOULD send the same header fields" as for GET; a `Content-Length` on HEAD MUST equal the GET length if sent. | RFC 9110 section 9.3.2 (l.3993), section 8.6 (l.3225) | +| `304`: a `Content-Length` in 304 MUST equal what a 200 would carry, if present. | RFC 9110 section 8.6 | +| `Content-Length` MUST NOT be sent on `204`. | RFC 9110 section 8.6 | + +## 8. Cross-check against the draft model page's from-memory claims + +| Draft claim (map l.44-49) | Finding | +|---|---| +| IPFS trustless gateway answers raw blocks with `Cache-Control: public, max-age=29030400, immutable` | In **PG**, not TG: the `/ipfs/` immutable value is a MUST there; TG itself does not state the response value. | +| IPFS uses the CID as `ETag` | PG: default `Etag: ""` quoted; variants add suffixes (raw: `".raw"`). | +| IPFS returns 400 for an unparseable CID | PG lists `400` as "generic client error" with malformed-CID as the example. TG itself lists no malformed-CID rule. | +| OCI `GET`/`HEAD` returns 200 with the digest header | Confirmed (`Docker-Content-Digest` MUST on GET and HEAD; `Content-Length` MUST on HEAD). | +| OCI 404 `BLOB_UNKNOWN` | 404 confirmed; `BLOB_UNKNOWN` exists as a code name; the blob-pull text does not mandate a JSON body. | +| OCI 400 `DIGEST_INVALID` on a bad digest | **Not in the blob-pull text.** Endpoint table lists only 404 for blob GET/HEAD; `DIGEST_INVALID` means "digest did not match uploaded content". | +| OCI Range (206/416) optional | Spec says "SHOULD support" Range per RFC 9110; no 206/416/Accept-Ranges text for pull. | +| Nix `.narinfo` 200 or 404, probed with HEAD | Client source: HEAD for existence; 404 and 410 both map to NotFound; 403 also treated as absent in `fileExists`. | +| Map's own claims (open `*` CORS, 500 on corrupt, Range ignored, Cache-Control immutable) | `*` with non-`include` credentials passes the CORS check (Fetch 4.10). No system surveyed specifies a status for a corrupt stored object. Ignoring Range is permitted (RFC 9110 14.2). | + +## 9. Where the systems agree and differ (matrix of what was found) + +| Item | IPFS TG/PG | OCI | Nix | Bazel (bazel-remote) | Git dumb | +|---|---|---|---|---|---| +| Absent | 404 (MUST, TG) | 404 (MUST) | 404/410 -> NotFound; 403 also "absent" in HEAD probe | 404 "Not found" | 404/410/other non-200 | +| Malformed id | PG 400 generic; TG silent | silent for blob pull | silent | 400 with message | silent | +| Corrupt stored object (server) | silent; client MUST verify | silent; client SHOULD verify | silent; client verifies hashes | no read-path check in handler | silent; client errors "bad hash" | +| Range | PG: 206 supported (raw blocks); TG silent | SHOULD support | client-side retry only | not in handler | not in spec | +| HEAD | same as GET minus body; 404 | 200 + digest + Content-Length MUST | used to probe | 200 + Content-Length or 404 | not in spec | +| CORS | none in TG/PG (Kubo adds implicit headers) | none | none | none | none | +| Cache-Control on content | PG: `public, max-age=29030400, immutable` MUST | none | none | none | defers to RFC 2616 | +| ETag | PG: quoted CID | none | none | none | 304 allowed | +| Content-Type | `application/vnd.ipld.raw` | unspecified (pull) | `application/x-nix-nar` etc. | `application/octet-stream` | unspecified (objects) | +| Content-Length vs encoding | PG warns they may differ | n/a | transport `Content-Encoding` separate from stored compression | zstd path omits Content-Length | client auto-decodes | +| nosniff / attachment | TG: Content-Disposition attachment MUST; PG: nosniff | none | none | none | none | + +## 10. Limits of this pass + +- Fetch spec 4.7 was read from the HTML text; the exact algorithm line that fails the fetch on a body shorter than Content-Length was not found in the Fetch text (framing is RFC 9112 section 8, which says the client records the message incomplete). +- bazel-remote digest verification on PUT was not read to the end; the read-path (GET) has no digest check in the handler. +- Kubo's actual default CORS header values were not retrieved (only the pointer to boxo and ipfs/specs#423). +- git CVEs were not searched; Nix and Bazel CVEs were not searched. +- OCI "CORS: not in spec" is from a search of the spec file, not from a registry implementation (distribution/distribution's own headers were not read). diff --git a/docs/research/device-capture-runners.md b/docs/research/device-capture-runners.md new file mode 100644 index 00000000..34ebe808 --- /dev/null +++ b/docs/research/device-capture-runners.md @@ -0,0 +1,103 @@ +# Device capture runners: how established projects capture real-GPU results, and what a browser driver can silently get wrong + +For `cultmath-tapes:question:device-run-driver` (campaign `cultmath-tapes`) and follow-up `cultmath-tapes:follow_up:glsl-browser-parity-run`. +Gathered by eyes-ag3-device-driver, session self-2026-10-15-ag3, 2026-10-16. Facts only; no recommendation. + +Strength marks: [src] read from a primary source text this pass; [doc] vendor or standards documentation read this pass; [web] search-result or fetch-summary of a page (a small model summarised it; check before quoting); [abs] searched, not found. +Chromium doc pages were read at `main` or at an old pinned revision as noted; Chromium GPU bot details drift, so the dates matter. + +## 0. What the question asks (the record) + +- [src] Question `device-run-driver` (Imagination, 2026-10-16): a static page (`packages/cultmath/tools/device-runner`) compiles each family's call against `CultMath.glsl`, reads back through an RGBA32UI target, emits raw bits; C# judges. Options: `committed-captures` (page + stdlib Python server, any WebGL2 browser is a driver, captures committed with renderer, revision, shader sha, args hash, result bits, judged by `DeviceCaptureTests` on Linux), `playwright-live` (Microsoft.Playwright test dependency, Windows-only, ANGLE D3D11, must refuse SwiftShader), `both`. +- [src] Prior precedent named in the question: three Soul/Hands passes through the desktop app's built-in browser on Starfire, renderer `ANGLE (NVIDIA GeForce GTX 1070 Direct3D11)`. +- [src] Follow-up `glsl-browser-parity-run` records both GLSL files probed on a GTX 1070 (phacelle within 3.1e-6 of max(|v|,1), frustum check 0/256). + +## 1. How established projects capture real-GPU results for CI + +| Project | What runs where | What is stored, and where | What identifies the device | Source | +|---|---|---|---|---| +| Khronos WebGL conformance suite | Static HTML pages. Open `webgl-conformance-tests.html` in the browser under test (`?run=1` auto-starts), then "display text summary". Run by hand in any browser. | Formal results go as a pull request to the `KhronosGroup/WebGLConformanceSubmissions` repo. Older README copies said email `webgl_conformance_submissions@khronos.org`. Only WebGL implementors submit. | README instruction: "Verify that the User Agent and WebGL renderer strings identify your browser and target correctly." The summary text carries them. | [src] raw.githubusercontent.com/KhronosGroup/WebGL/main/sdk/tests/README.md (read 2026-10-16); [web] search summary of CONFORMANCE_RULES.txt | +| Khronos WebGL conformance rules | Results carry forward: "results submitted for an earlier version of the browser carry forward to later versions ... that do not cause any previously passing test to fail"; for OS versions likewise (a new OS version needs a new submission). | The carry-forward rule is the only staleness rule found. | | [web] search summary of CONFORMANCE_RULES.txt, not read in full | +| Vulkan CTS conformance submission | Run on the vendor's driver builds, every fraction. | Submission package must contain full `TestResults.qpa` logs per driver build and fraction, `git status` and `git log --first-parent ^..HEAD` output of a clean CTS checkout, `git format-patch` output of any CTS changes over the release tag, and a statement file with a `CONFORM_VERSION` line carrying the CTS git tag, plus PRODUCT, CPU, OS. `verify_submission.py` checks the package against the current mustpass list. | PRODUCT/CPU/OS lines in the statement. | [web] search summaries of `external/vulkancts/README.md` in Fuchsia/Android/Chromium mirrors (mirror copies differ by version) | +| Chromium GPU bots | Physical machines in Swarming; most tests via Telemetry launching the full browser; `webgl_conformance_tests` and pixel tests. `chromium.gpu.fyi` tests top-of-tree ANGLE. | Expected outcomes in per-test expectation files (`pixel_expectations.txt` under `content/test/gpu/gpu_tests/test_expectations/`, `Failure` entries). Pixel images are not in the repo (Skia Gold, below). Some pixel tests check only a few pixels with handwritten code so one check serves all vendors. | Swarming task dimensions: `gpu` = PCI vendor:device-driver version (example `10de:2184-440.100`), plus `os`, `cpu`, `pool`. The page does not describe a runtime renderer-string check. | [src] chromium.googlesource.com/chromium/src/+/main/docs/gpu/gpu_testing.md (read 2026-10-16) | +| Skia Gold (Chromium pixel tests) | goldctl client sends the produced image, the test name and hardware/software config metadata to a service. | Approved images live in a service (storage bucket + triage UI), not git. A test passes if the hash of the produced image is in that test's approved-hash list; default exact matching, multiple baselines per test. An unknown hash fails until a human triages it. Doc says local runs "differ slightly from bot images" and uploads need allow-listing; `--local-pixel-tests` disables upload. | Config metadata uploaded with each image. | [web] search summary of `docs/gpu/gpu_pixel_testing_with_gold.md` (pinned old revisions); [src] gpu_testing.md for the local-run flags | +| WebGPU CTS in Chromium | gpuweb/cts compiled to JS, run through WPT and Telemetry; Telemetry covers non-virtual devices with real GPUs. A pinned revision is auto-rolled. | Expectations per platform: Fail/Skip may be any CTS query; Slow/Crash/Timeout must list parameters in loader order. | | [web] search summaries of Chromium `web_tests/webgpu/README.md` and a 2022 W3C public-gpu post by Kai Ninomiya (not read in full) | +| Dawn node runner | `dawn.node` binding runs the CTS without a browser; `run-cts` can instead drive a Chrome instance. | `--output ` writes a results file, `--expect ` diffs a later run against it. Dawn keeps `webgpu-cts/expectations.txt`, pruned when tests start passing, with wide `Failure` wildcards for flaky ones. | | [web] search summaries of Dawn `src/dawn/node/README.md` and commit `f78edf56` ("Expand CTS expectations for Win11 QC CI bot") | +| three.js | `test/e2e/puppeteer.js` screenshots almost all examples and compares to stored references; helpers `deterministic-injection.js`, `clean-page.js`, `check-coverage.js` exist in an older release's `test/e2e`. | Reference screenshots in the repo. | A 2020 issue: screenshots were black on macOS with the GPU-path flags; a maintainer floated using SwiftShader everywhere "to avoid GPU-specific bugs". Current flags and CI setup not confirmed. | [web] search summaries of discourse.threejs.org and a lightrun mirror of the GitHub issue; [abs] current `puppeteer.js` flags not read | +| Babylon.js / Babylon Native | Visualization tests list scenes in `tests/test/visualization/config.json` (Babylon Native: `Apps\ValidationTests\Scripts\config.json`); each entry names a reference image, optional per-scene pixel-difference threshold. | Reference images in `ReferenceImages/` in the repo; `-u` regenerates. Babylon Native CI fails on too-different images and stores rendered/error images as an artifact. | | [web] search summaries of forum.babylonjs.com and a Babylon Native `ContinuousIntegration.md` fork; [abs] an `errorRatio` key was not found | +| glslang / SPIRV-Cross | No GPU. SPIRV-Cross round-trips `shaders/` through glslangValidator/spirv-as and SPIRV-Cross, diffs output text against committed `reference/` files; `test_shaders.py` exits non-zero on difference, `--update` regenerates references that then ride in the PR; says to use the right glslang and SPIRV-Tools versions. Only hardware option: `--malisc` static cycle counts. | Reference text in the repo. | | [src] raw.githubusercontent.com/KhronosGroup/SPIRV-Cross/main/README.md (read 2026-10-16); [abs] glslang's own test practice not read | +| dEQP GLES3 builtin precision tests | Random inputs through built-ins in a shader; outputs via transform feedback or framebuffer pixel; compared to a reference interval, not a single value. | Spec text of tolerances (section 4). | | [src] doc/testspecs/GLES3/functional.shaders.builtin_functions.precision.txt (Fuchsia mirror, read 2026-10-16) | + +Observations across the rows (no ranking): +- [src/web] Where real-GPU outputs are exact or large, the approved results are stored outside a source repo (Gold, Swarming expectations) or as submission packages (WebGL, Vulkan CTS). Where outputs are text from a deterministic tool (SPIRV-Cross) the reference is committed beside the source and `--update` regenerates it. +- [web] Only the Vulkan CTS submission package was found to record the exact source revision (tag plus `git log`) inside the result bundle; WebGL's rule is the carry-forward rule above. No project was found that refuses a committed capture automatically because a shader source hash changed. [abs] +- [src] Chromium's GPU doc keys a bot's hardware by PCI id and driver version rather than by a renderer string read inside the page. + +## 2. Headless browser drivers on real GPUs + +### 2.1 Fallback to a software renderer + +- [src] Chromium SwiftShader doc (read at `refs/heads/main`): flags `--use-gl=angle --use-angle=swiftshader` (SwANGLE as the ES driver); `--use-gl=angle --use-angle=swiftshader-webgl --enable-unsafe-swiftshader` (WebGL fallback). "Automatic fallback to SwiftShader-backed WebGL is deprecated ... WebGL context creation will soon fail instead of falling back." `--enable-unsafe-swiftshader` opts in and suppresses the console warning. The page does not describe how to verify the renderer. +- [web] Blink-dev "Intent to Remove: SwiftShader Fallback": deprecation period began Chrome 130; estimated desktop ship Chrome 137; a later reply from Rick Byers says API owners consider it high-risk and may phase it, so the milestone was unconfirmed in the thread; Finch feature `AllowSwiftShaderFallback`; headless SwiftShader use "will still be supported by opting in"; desktop only. Sources disagree on the shipped milestone (a Winaero Chrome 137 write-up says WARP replaces it on Windows, which the blink-dev page does not mention; Samsung's browser policy page says M139). Not resolved. [web] +- [src] Chrome developer blog "Supercharge Web AI model testing": "By default, Headless Chrome disables GPU." `chrome://gpu` showed "Software only, hardware acceleration unavailable" until drivers were fixed; "Some combinations of flags allow detection of the GPU, but don't allow you to actually use the GPU." Failing renderer string: `ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver-5.0.0)`; working: `ANGLE (NVIDIA Corporation, Tesla T4/PCIe/SSE2, OpenGL ES 3.2 NVIDIA 525.105.17)`. Linux flags there: `--headless=new --use-angle=vulkan --enable-features=Vulkan --disable-vulkan-surface --enable-unsafe-webgpu`. Setup was Colab, not CI. +- [web] A Playwright-on-GPU-runner write-up (createit.com) reported renderer ANGLE-on-Vulkan with SwiftShader; headed Chromium under a virtual display used the GPU; a Vulkan flag set later gave `llvmpipe`, still software. +- [src] Chromium GPU testing doc: example bot flags `--use-gl=angle --use-angle=gl --use-cmd-decoder=passthrough --force_high_performance_gpu`, passed via `--extra-browser-args`. +- [src] Playwright `chromiumSwitches.ts` at `main` (read 2026-10-16) contains no GPU, SwiftShader, ANGLE or headless switch. [abs] What the downloaded headless shell binary itself defaults to was not found. +- [abs] No source was found on `--use-angle=d3d11` combined with headless Playwright on Windows, and none on the renderer string a Windows GPU reports under headless. +- [web] `--disable-gpu` is reported by one source to force software rendering. + +### 2.2 Detecting a fallback from inside the page + +- [doc] `WEBGL_debug_renderer_info` exposes `UNMASKED_RENDERER_WEBGL` through `gl.getExtension(...)` then `gl.getParameter(...)`; MDN says it may be limited to privileged contexts depending on privacy settings, and Firefox disables it when `privacy.resistFingerprinting` is true, so `getExtension` can return null (MDN, via search result). +- [doc] `failIfMajorPerformanceCaveat: true` makes `getContext` return null if the browser would use a dramatically slow implementation (MDN, via search result). [web, unconfirmed here] whether Chrome treats SwiftShader as such a caveat was not found in a source this pass. +- [src] Strings observed in sources: SwiftShader `ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) ...))` and `Google SwiftShader`; hardware `ANGLE (NVIDIA ..., Direct3D11)` form as in the question's precedent. +- [src] Chromium's own bots do not read a string; they identify hardware by Swarming dimensions (section 1). +- [web] `WebGLShaderPrecisionFormat` from `getShaderPrecisionFormat(FRAGMENT_SHADER, HIGH_FLOAT)`: `precision` 23 means real highp float; it reports mantissa bits, nothing about subnormal handling; Safari mis-reported it as of April 2020 (WebKit bug via webglfundamentals). +- [web] A sample WebGL report line: `ANGLE (Intel(R) HD Graphics 4600 Direct3D11 vs_5_0 ps_5_0)`, highp/highp, precision 23. + +### 2.3 Windows service and session 0 + +- [web] Microsoft XPDM-vs-WDDM table: on WDDM, Session 0 isolation means a Direct3D 9 HAL device is never available from a service (NULLREF, HAL, REF "No"; WARP10 "Yes"). +- [web] Microsoft support article 978635: starting with Windows 8.1 / Server 2012 R2, Direct3D 11 supports use from a Windows service. WARP is recommended by Microsoft for service/server environments. +- [web] VTK issue 18657 (GitLab): swap-chain creation failed on Windows CI runners because the process ran in Session 0, which has no graphics hardware access; runners were moved from system services to scheduled tasks. +- [abs] No source found on headless Chrome or ANGLE behaviour specifically inside a service. The pattern the sources support is an interactive user session or a scheduled task that runs only when the user is logged on. + +## 3. Committed-capture designs: versioning against source hashes and refusing stale captures + +- [src] SPIRV-Cross: references are text regenerated by the tool; staleness is detected by re-running the tool and diffing, not by a stored hash. The tool versions (glslang, SPIRV-Tools) are named in the README as the ones to use. +- [web] Skia Gold: the approved set is keyed by test name plus image hash; an unknown hash fails until triaged. Config metadata is uploaded with the image. No source-revision binding was found. +- [web] Vulkan CTS: the result package carries the CTS tag, `git log` and patches; a checker script validates the package against the mustpass list for the version. +- [web] WebGL: carry-forward rule (earlier passing results hold for later browser versions that fail no previously passing test). +- [web] Babylon / three.js: reference image names live in a config list; regeneration is a flag (`-u`); a missing reference is an error (a 404 in a Karma run, Babylon forum). +- [src] Chromium expectation files: per-test `Failure` entries are removed once a test passes (gpu_testing.md); Dawn prunes `expectations.txt` the same way. +- [abs] No project was found whose committed device capture embeds a hash of the shader source it ran and is rejected by CI when that hash no longer matches the checked-in source. (Search was for the pattern, not an exhaustive survey of repositories.) + +## 4. Float behaviour that bears on judging captures across ANGLE/D3D11, native GL and mobile GPUs + +### 4.1 What the standards guarantee + +- [doc] Qualifiers are minimums. highp float "is at least a 32 bit value", range about +-2^62 in the WebGL2Fundamentals table (exponents stripped in extraction, inferred); mediump at least 16 bit, range +-2^14, relative precision 2^-10; lowp at least 9 bit, range +-2 (webgl2fundamentals precision lesson; asawicki.info April 2015 for the 2^-10 and 2^-8 figures). On a desktop GPU mediump "will still most likely use 32bits internally"; the lesson's author's Pixel 2 XL used 16 bit for mediump and lowp. +- [doc] Highp in fragment shaders is optional in OpenGL ES 2.0 (a shader declaring it fails to compile where unsupported). [web] GL_ARB_shader_precision text: internal processing need not match IEEE 754; rounding mode cannot be set and is undefined; "any denormalized value input into a shader or potentially generated by an operation in a shader can be flushed to 0." +- [src] dEQP GLES3 precision spec tolerances (ULP unless noted): `+ - *` under 1 ULP; `/` 2.5 ULP for 2^-126 <= |y| <= 2^127-1; sin/cos 2^-11 abs on [-pi, pi]; asin/acos 4; atan2 6; atan 5; exp 3+2|x| highp; inversesqrt 2; log 3 ULP highp outside the central range; exact (0 ULP) abs, sign, floor, trunc, roundEven, ceil, min, max, clamp, step; derived functions (tan, pow, sqrt, mix, smoothstep, fract, mod ...) judged by their expansions. The page does not mention flush to zero. Lowp and mediump results on overflow "must produce an infinity or the max/min value". +- [web] Olli Etuaho on the WebGL list, 14 Nov 2014: proposes testing only at the spec minimums, with subnormals flushed to zero, since code that works there will likely work with more bits; concedes not simulating built-in internals is a gap. + +### 4.2 Direct3D 11 (the ANGLE/D3D11 path) + +- [doc] Microsoft Learn "Floating-point rules (Direct3D 11)" (updated 2025-04-15), 32-bit rules: "Denorms are flushed to sign-preserved zero on input and output of any floating-point mathematical operation" (exceptions: I/O or data movement that does not manipulate the data). Add/sub/mul within 0.5 ULP, and the page says hardware may truncate; sqrt and rcp 1 ULP; rcp and rsq have a separate relaxed requirement; "Fused operations (such as mad, dp3) produce results that are no less accurate than the worst possible serial ordering of evaluation of the unfused expansion", each unfused step allowed 1 ULP (D3D10 page: 1 ULP for mul/div). NaN bit patterns are not preserved. min/max flush denorms for comparison but the result "may or may not be denorm flushed". Doubles preserve denorms; 16-bit floats preserve denorms. +- [abs] No source found that states how ANGLE's D3D11 translation, fxc/dxc flags, or NVIDIA's D3D11 driver treat denormals or contraction beyond the D3D rules above. +- [web] ANGLE's `FeaturesD3D.h` workaround list contains HLSL-compiler-specific rewrites (for example expanding `pow` into multiplies on an affected compiler, per search summary); a Wine D3D11 trig test failed on one NVIDIA configuration with roughly 0.1% relative error, not on AMD (Wine bug thread, cause not identified). +- [web] ANGLE D3D11 vs D3D9 rendering differences are reported in Mozilla bug 1122912 (unresolved in the excerpt). + +### 4.3 Mobile and other native GPUs + +- [web] ARM blog "Benchmarking floating point precision in mobile GPUs, Part III": Vivante GC4000 and Imagination SGX 554 "do not support subnormal values" (below 2^-126 treated as zero); Mali-T604 supports subnormals, and the authors say Mali Midgard is the only mobile family they know to; the measuring shader divides by 2 per exponent step and multiplies back, drawing underflow pixels red. No ULP measurements in that part; Part II (not read) is said to find GPUs taking "the easy (round-to-zero) way out". +- [web] asawicki.info: `length`, `normalize`, `distance` and dot products in a `mediump` shader can overflow at (74,74,74) because 3*74^2 = 16428 exceeds 2^14; a GPU may pass because it uses more precision than required. +- [abs] No source read this pass on Adreno, Apple, current Mali or PowerVR denormal and contraction behaviour; the ARM post covers 2013-era parts. +- [abs] FMA contraction in GLSL: no WebGL or GLSL ES source was read here on whether `a*b+c` may be fused (see `docs/research/cycles-fma-contraction.md` for the Cycles CPU case and the D3D "mad" fused-op tolerance above). + +## 5. Gaps left by this pass + +- Current three.js `test/e2e/puppeteer.js` flags and Babylon `config.json` tolerance keys were not read from the repositories (search summaries only). +- Gold, WebGPU CTS and Dawn node pages are search summaries, not full reads. +- Whether Chrome's shipped (not 130-era) behaviour fails WebGL context creation when no GPU is usable, versus using WARP on Windows, is unresolved between the sources in section 2.1. +- Nothing here was measured on Starfire; no run of any driver was made. diff --git a/docs/research/element-id-header-flags.md b/docs/research/element-id-header-flags.md new file mode 100644 index 00000000..30016c3d --- /dev/null +++ b/docs/research/element-id-header-flags.md @@ -0,0 +1,49 @@ +# Prior art: a header flag one writer sets and content another writer cannot see + +Serves: `variants:question:non-csharp-writers-mark-ids` (raised in +`variants:follow_up:foreign-ids-under-v1-header`, campaign `variants`). Gathered by +Imagination, session self-2026-10-14b-eureka, 2026-10-14. Facts with pointers; the +recommendation lives in the question, not here. + +The CultLib case: the store header (`cultcache.store.v1` / `v3`) says whether any record +holds an element id, so a reader older than ids refuses the store instead of rewriting +elements without them. An element id is an ordinary keyed string in the payload, so a +runtime that does not know which member is the id (cultcache-py, -ts, -rs today) cannot +tell from content whether to mark. The persistence contract +(`src/GameCult.Caching/Contracts/cultcache-persistence-format.md:424-427` at 6afa8ed9) +says those runtimes keep a `v3` header they found and do not decide. + +## How established formats split the job + +| System | Who sets the flag | What an implementation that does not understand the feature does | Pointer | +|---|---|---|---| +| ext4 superblock | The code that first uses a feature sets its bit in `s_feature_compat`, `_ro_compat` or `_incompat`. | Unknown `incompat` bit: refuse to mount (fsck stops too). Unknown `ro_compat` bit: mount read-only, never write. Unknown `compat` bit: read and write freely; fsck should not modify. | https://www.kernel.org/doc/html/latest/filesystems/ext4/super.html (feature fields) | +| SQLite file header | The writer's journal mode sets the write/read version bytes (offsets 18, 19); the schema format number (offset 44) is set by the writer of the newer schema features. | Read version 1-2 with write version > 2: open read-only. Read version > 2: neither read nor write. | https://www.sqlite.org/fileformat.html section 1.3.3, 1.3.10 | +| git repository format | A repository declares `core.repositoryformatversion = 1` and the `extensions.*` it uses; the tool enabling a feature writes its extension key. | Any unimplemented `extensions.*` key in a v1 repo: the operation must not proceed (read or write). | https://git-scm.com/docs/repository-version | +| Protocol Buffers | No flag. New fields are self-delimited by tag. | Parsers keep unknown fields and write them back (proto2 always; proto3 again since 3.5), so an old reader does not drop a newer writer's data on rewrite. | https://protobuf.dev/programming-guides/proto3/#unknowns | +| Avro container files | The writer embeds its full schema in the file header. | Reader resolves writer schema against its own; a writer field the reader lacks is ignored, so it is lost if the reader rewrites. | https://avro.apache.org/docs/current/specification/ ("Schema Resolution") | +| Parquet | Writer stamps `created_by` (application and version) in FileMetaData. | Readers keep a list of known-bad writer versions and distrust their metadata (parquet-mr ignores min/max statistics from writers before 1.8.0, PARQUET-251). | https://github.com/apache/parquet-format/blob/master/src/main/thrift/parquet.thrift (`created_by`); https://issues.apache.org/jira/browse/PARQUET-251 | + +## Patterns, as facts + +- Flag-based formats (ext4, SQLite, git) put the duty to set the flag on the writer that + introduces the content. None of them has a writer that carries feature content while + not knowing it is that feature: an implementation that does not understand a feature + either does not write (ro_compat, SQLite read-only) or does not touch the store (git). +- Formats without a flag (protobuf, Avro) handle the older reader by preservation + (protobuf keeps unknown fields) or accept loss (Avro drops unknown writer fields on + rewrite). CultCache's C# 1.x readers skip unknown keyed slots and do not preserve + them, which is why the `v3` header exists. +- Parquet's `created_by` is a third option: readers judge content by who wrote it and + compensate for writers known to get a flag or statistic wrong. +- No system surveyed asks a reader to infer a feature flag from content it cannot + recognise; where content cannot be recognised, the burden is on writers. + +## Mechanism facts from this pass (probes at 6afa8ed9 on Yggdrasil) + +- A C# cache that pulls the Python-written `py-store/leaf-record.cc` (v1, element ids + `000000000021/22`) holds that record with `HoldsIds = true`, `IdsInMemoryOnly = false`; + a C# write that adds an unrelated record copies it forward and leaves the header `v1`. + The ids survive in C#; a pre-id reader with a type lacking the id slot would drop them. +- cultcache-py, -ts and -rs read `v3` and keep it on rewrite; none has a declaration of + which member is an element id. diff --git a/docs/research/ground-motion-law.md b/docs/research/ground-motion-law.md new file mode 100644 index 00000000..25bdebda --- /dev/null +++ b/docs/research/ground-motion-law.md @@ -0,0 +1,115 @@ +# Ground motion law: prior art (facts only) + +Serves fork: cultmath-tapes, site-ground motion law (invariant `one-motion-owner`, target `cultmath-tapes:target:r2`), blocks `cut-site-ground`. +Gathered by Eyes, session self-2026-10-14b-eureka, 2026-10-14. No recommendation. Committed by Self before the fork was put. + +Method: primary PDFs were downloaded to the session scratchpad and read with pdftotext ("read"). "[secondary]" marks facts taken from a web-search summary, forum or blog, not read at the primary source. "[not verified]" marks things looked for and not reached. + +## 1. How shipped volumetric clouds move, and what breaks + +### 1.1 Horizon Zero Dawn, Schneider and Vos, SIGGRAPH 2015 +Source: https://www.advances.realtimerendering.com/s2015/The%20Real-time%20Volumetric%20Cloudscapes%20of%20Horizon%20-%20Zero%20Dawn%20-%20ARTR.pdf (99 slides, read) +- Density = low-frequency 3D Perlin-Worley base shape times height gradient and coverage, eroded by a high-frequency 3D Worley texture (slides ~34-37). +- A 128^2, 3-channel 2D curl noise texture "is non divergent and is used to fake fluid motion"; it distorts the cloud shapes and distorts the sample position of the second (detail) 3D noise "to fake the swirly distortions from atmospheric turbulence" (slides 33, 37). The curl texture is a static distortion of the detail lookup, not a time-integrated flow. +- Summary slide (48): noises are custom, "made from Perlin, Worley and Curl noise", and "all animated in a given wind direction". Wind direction varies over altitude (slide 21). High cirrus/alto layers are 2D textures "tiling and scrolling at different speeds and directions" (slide 87). +- Large-scale evolution is not noise motion: coverage, precipitation and cloud type come from a 2D weather map driven by a simulation, with a wind-speed control (slides 39-44). +- Reprojection (slides 92-93): quarter-res buffer updates 1 of 16 pixels per 4x4 block each frame; "We reproject the previous frame to ensure we have something persistent"; where reprojection fails (screen edges) the low-res result is substituted. Stated as making the shader "10x faster or more"; raw cost ~20 ms, target ~2 ms. + +### 1.2 Nubis, Evolved, Schneider, SIGGRAPH 2022 +Source: https://advances.realtimerendering.com/s2022/SIGGRAPH2022-Advances-NubisEvolved-NoVideos.pdf (read) +- Slide "Skies / Vertical Profile Model / Animating Density": the motion law for sky density is a sample-position offset, `noise_sample_position = sample_position - wind_direction * scroll_offset` (comment "Deform sample coordinates"). +- Slide family "VFX / Animating Superstorm Density / The Mesocyclone": each ring samples noise at `GetRotatedPosition(sample_position, superstorm_center, time_offset * RingRotationSpeed[n])`, later with a per-ring `ring_skew[n]`: different rotation rates per layer about one center, no flow field. +- Slide "VFX / Animating Cloud Density For Skies" (code listing): the reprojection pass reads a stored per-pixel `cloud_distance` from a "CloudAttrWorkingBuffer", reconstructs `cloud_world_space = invView * (eyeRay * cloud_distance)`, applies the SAME motion law to that world position (rotate about the storm center blended by `superstorm_mask`; scroll `cloud_world_space + scroll_direction_2D * deltaTime`), then projects it with `inReprojectionMatrix` to get the previous-frame UV. The history lookup is displaced by the density's own motion, using one depth per pixel written by the march. +- The 2022 and 2023 decks show an "Aero Cloud Solver" frame (Apply Buoyant Force, Advect Density, Advect Velocity, Non-Divergence, Sourcing) among the history slides, as the offline VFX approach. + +### 1.3 Nubis3 (Nubis Cubed), Schneider, SIGGRAPH 2023 +Source: https://advances.realtimerendering.com/s2023/Nubis%20Cubed%20(Advances%202023).pdf (read) +- Voxel clouds, slide "Sampling Density": `inSamplePosition -= float3(cCloudWindOffset.x, cCloudWindOffset.y, 0.0) * voxel_cloud_animation_speed`. Wind offset only; no curl, no flow field. +- A comparison table lists "Evolution: Yes" for the Vertical Profile method and "Pseudomotion Only" for the Envelope method, and "Pseudomotion Only" in later tables for the voxel methods. +- March is SDF-accelerated: "Hybrid SDF, Adaptive and Jittered samples"; jitter is `animated_hash` within 250 m of camera, `static_hash` beyond. +- No temporal reprojection slide found in the extracted text. + +### 1.4 Frostbite, Hillaire, SIGGRAPH 2016 +Source: https://media.contentapi.ea.com/content/dam/eacom/frostbite/files/s2016_pbs_frostbite_sky_clouds.pdf (read; section 5.5.3 and the cloud intro) +- 5.5.3: clouds rendered in a single pass; each frame samples are randomly offset within their step range; current frame blended with previous "according to a constant blend factor" (EMA); "For the final frame to not look blurry when the camera is moving/rotating very fast, we re-project the previous result according to previous and current camera properties". Camera-only reprojection; no density-motion term stated. +- Text cites Guerette's visual-flow technique to give a panoramic cloud texture the illusion of motion along the wind direction, noting it has no variation of cloud shape, weather or lighting. +- Frostbite volumetric fog temporal blend, as reproduced by Flax Engine: Halton jitter, 7% current / rest history (https://flaxengine.com/?p=941) [secondary]. Godot docs: higher blend "makes ghosting much worse", moving fog volumes and lights leave a trail (https://docs.godotengine.org/en/stable/tutorials/3d/volumetric_fog.html) [secondary]. +- Hillaire 2015 (Frostbite unified volumetrics) temporal section: [not verified] (158 MB PPTX; SlideShare copy cuts off before it). + +### 1.5 Toft, Bowles, Zimmermann (Studio Gobo), "Optimisations for Real-Time Volumetric Cloudscapes", arXiv 2016 +Source: https://arxiv.org/abs/1609.05344 (PDF read) +- Calls the Horizon 1/16-pixel scheme "a fairly complex technique which may introduce visual artifacts as a result of the 4x4 pattern by which pixels are updated". +- Alternative: far fewer march steps + random per-pixel start offset + analytic integration per step + Playdead-style TAA (Pedersen, INSIDE, 2016) on a low-res buffer. Timings, 1080p GTX 1080 (Fig. 3): half res 128 steps 128.0 ms; half res 8 steps jitter+TAA 7.5 ms; quarter res 8 steps jitter+TAA 2.4 ms. + +### 1.6 UE Volumetric Clouds +- Official component docs list View/Reflection/Shadow sample-count scales and a transmittance stop threshold; nothing on temporal behavior: https://dev.epicgames.com/documentation/unreal-engine/volumetric-cloud-component-properties-in-unreal-engine [secondary]. +- Forum: Mode 2 traces 1 pixel per 4x4 block and reprojects 15, "lots of latency", cloud "would leak after reprojection over opaque meshes": https://forums.unrealengine.com/t/volumetriccloud/688516 [secondary]. +- Forum hypothesis (unconfirmed): a VolumetricCloud writes neither depth nor velocity, so TSR has nothing to reject history on, causing trailing and banding inside a cloud: https://forums.unrealengine.com/t/tsr-ghosting-against-a-volumetriccloud-the-player-stands-inside-every-rejection-knob-measured-none-help/2837437 [secondary]. +- Bug UE-198490 (fixed 5.4): horizontal flicker lines from the temporal component; workaround `r.VolumetricRenderTarget.Mode=1`: https://issues.unrealengine.com/issue/UE-198490 [secondary]. + +### 1.7 Red Dead Redemption 2 clouds (Bauer, SIGGRAPH 2019) +Talk exists ("Creating the Atmospheric World of Red Dead Redemption 2: A Complete and Integrated Solution", Advances in Real-Time Rendering in Games 2019). Slides [not verified]: not among the PDF/PPTX links on https://www.advances.realtimerendering.com/s2019/index.htm; a guessed URL returned 404. Nothing about its motion or reprojection was read. + +### 1.8 Shadertoy-scale nebulae +[not verified]. No Shadertoy source was read in this pass. + +### 1.9 What the sources say breaks +- Pulsing and repetition: Vlachos names these as the two problems of two-phase flow-map animation (3.1). +- Stretching: a texture advected by a non-uniform flow stretches without bound unless regenerated (Neyret, 3.3). +- 4x4 update-pattern artifacts (Toft et al., 1.5); latency and leaking over opaque geometry in 1/16 modes (UE forum, 1.6). +- Camera-only reprojection fails when content moves: https://www.wayline.io/blog/altos-1-1-better-temporal-reprojection-for-volumetric-clouds-in-unity ("When the player moves their camera, the history becomes useless") [secondary]. A hobby engine skips a velocity buffer "since the clouds move slowly", uses bilinear history sampling and EMA: https://handmade.network/p/75/monter/blog/p/7201-engine_optimization__fast_high-quality_cloudscape_through_noise_and_reprojection [secondary]. + +## 2. Temporal reprojection of raymarched volumes whose density moves + +- A volume has no single surface depth. Nubis 2022 writes a per-pixel `cloud_distance` during the march, rebuilds a world point from it, applies the density motion law to that point, then projects with the previous view-projection (1.2). This is the only shipped density-motion-aware reprojection found at a primary source. +- Horizon 2015 and Frostbite 2016 reproject with camera properties only (1.1, 1.4). +- AtmoPlugin (hobby project, GitHub PR #15): raymarch writes a "contribution-weighted" reprojection depth into alpha, taken where opacity exceeds 5%, with fallbacks surface depth, scene depth, mid-atmosphere, infinity; temporal pass reprojects the pixel center with previous camera and planet transforms: https://github.com/Upa2sdo2l/AtmoPlugin/pull/15 [secondary]. +- Two hybrid depth-of-field papers reproject semi-transparent regions by average world position of far-field hits, with a 3x3 neighborhood fallback when there is no hit, and lerp by latest hit ratio during motion to reduce ghosting: https://arxiv.org/pdf/2210.04981 and https://arxiv.org/pdf/2210.06158 [secondary]. +- A search for a published "transmittance-weighted depth" reprojection for clouds returned nothing; it is not an established term in anything reached. +- Reported costs and artefacts of history: higher history weight = more ghosting for moving volumes (Godot, 1.4); EMA "stable in static scenes but performs poorly under dynamic volumetric lighting", and variance clipping plus low-discrepancy jitter tested on froxel data, implemented in Frostbite (a thesis at https://gupea.ub.gu.se/items/e05613c2-e1d4-48b0-b41e-c32f4b0ecbae, blocked by bot protection; only a search summary was seen) [secondary]; UE TSR trailing when no depth/velocity is written (1.6). +- Playdead's TAA (Pedersen, GDC 2016) is the history-reprojection reference cited by both Frostbite and Toft et al. + +## 3. Flow maps, curl noise, advected textures + +### 3.1 Flow maps, Vlachos, Valve, SIGGRAPH 2010 "Water Flow in Portal 2" +Source: https://www.advances.realtimerendering.com/s2010/Vlachos-Waterflow(SIGGRAPH%202010%20Advanced%20RealTime%20Rendering%20Course).pdf (read) +- Builds on Max and Becker 1995 "Flow visualization using moving textures": offset the UV by the 2D flow vector scaled by time; "distortion looks reasonable for the first 1/3 of uv space". +- "Blend the short animated segment in two layers. Each layer is offset half a phase so we can hide the restart for each layer." +- Two named problems: repetition ("the same normals will flow through the same point") and pulsing ("the surface appears to pulse in a repeating pattern"). Repetition solved by offsetting the second layer's sample; pulsing solved by a noise texture that offsets phase per pixel. Cost vs two scrolling normal maps: +2 texture fetches, +21 ALU instructions. +- Colors (Portal 2): distortion interval offset to -fraction..+fraction so the peak is at rest, favouring less distortion than for normals. Listed future work: dynamic per-frame flow vectors. +- Catlike Coding (https://catlikecoding.com/unity/tutorials/flow/texture-distortion/) [secondary]: p=frac(time), weight `1 - |1 - 2p|`, second pattern shifted half a period so weights sum to 1; Perlin noise in the flow map's A channel added to time staggers the pulse as a wave; per-phase "jump" vector times floor(time) shifts UVs only while weight is zero, limited to about +/-0.25, loop length is LCM of jump denominators; strong deformation makes compressed flow maps blocky; large-area flow maps have low effective resolution. +- Golus flow-map notes: [not verified]. + +### 3.2 Curl noise, Bridson, Hourihan, Nordenstam, TOG 26(3) 2007 +Source: https://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph2007-curlnoise.pdf (read, 3 pages) +- Velocity = curl of a noise-valued potential (2D scalar potential rotated 90 degrees; 3D three noise functions, "the same noise function evaluated at large offsets"). Divergence-free by construction: "No sources or sinks ('gutters')"; contrasted with plain noise as velocity, which "will generally contain many sinks" where particles accumulate. +- Derivatives by finite difference (displacement 10^-4 of the domain "works fine in single precision"). With noise at length scale L: vortices of diameter about L, speeds O(1/L). Several octaves with power-law amplitude falloff resemble Kolmogorov turbulence. +- Time variation: "achieved very simply by using time-varying noise"; pseudo-advection of Flow Noise mentioned as untried. +- Boundaries: potential multiplied by smooth ramp of distance to solids, `ramp(r) = 15/8 r - 10/8 r^3 + 3/8 r^5`. +- The paper names particle advection as a primary use. It says Perlin and Neyret's Flow Noise textures "cannot be used for moving particle systems". +- Perlin and Neyret, "Flow Noise" (SIGGRAPH 2001 sketch): rotating gradients over time plus pseudo-advection of small octaves by large ones; needs noise with analytic derivatives. https://evasion.inrialpes.fr/~Fabrice.Neyret/flownoise/index.gb.html ; Gustavson's simplex noise code exposes the derivative and a rotation parameter `t` for it (https://www.itn.liu.se/~stegu76/simplexnoise/DSOnoises.html) [secondary]. + +### 3.3 Advected textures, Neyret, SCA 2003 +Source: https://evasion.inrialpes.fr/Publications/2003/Ney03/neyret161.pdf (read) +- A noise texture advected by a flow stretches; periodic regeneration prevents stretch from growing on steady flows, but the regeneration rate (latency) is hard to tune and blending regenerated layers causes ghosting and contrast loss. +- Method: accumulate local deformation (time integral of the strain-tensor norm) per layer since its last regeneration; blend layers of different latency by a criterion on that accumulated deformation against a user target (analogous to MIP-mapping); each layer blends three phase-shifted regenerated textures; proposes a procedural-texture blending scheme that avoids contrast loss. +- Needs a velocity field to compute deformation; the paper's flow came from a low-resolution fluid simulation. + +### 3.4 Does a span / Lipschitz bound survive advection or a time-dependent warp +No source found states it. What was read: +- Seyb, Jacobson, Nowrouzezahrai, Jarosz, "Non-linear sphere tracing for rendering deformed signed distance fields", TOG 38(6) 2019 (PDF read): stepping in deformed space needs the Lipschitz constant of S o D^-1; "for affine transformations this is trivial [Stander and Hart 1994], but for more complicated deformations Lipschitz constants can be tedious or even impossible to compute analytically"; a global constant degrades step size where it is large; local constants "require a non-negligible computation whenever the deformation changes, i.e., every frame". Their remedy: trace in undeformed space as an ODE, avoiding the inverse deformation. https://par.nsf.gov/servlets/purl/10172295 +- Galin et al., "Segment Tracing Using Local Lipschitz Bounds", CGF 39(2) 2020: local Lipschitz bounds per ray segment, bounds derived per operator and primitive (abstract/search summary only) https://diglib.eg.org/handle/10.1111/cgf13951 [secondary]. +- Bridson 2007: speed of a noise-derived velocity is O(1/L) per octave (informal amplitude bound). +- Neyret 2003: the quantity that grows under advection is the time-integrated strain-tensor norm. +- A bound on the time derivative of a warped field, or a space-time Lipschitz constant: [not found]. + +## 4. Particle layers coherent with a volumetric field +- No shipped system found that drives volumetric density and a particle layer from one stated shared motion law. +- Niagara Curl Noise Force: reads a pre-baked, medium-resolution tiling curl-noise field by default, or computes a Perlin-derived curl at higher cost; docs do not state the divergence-free property: https://dev.epicgames.com/documentation/unreal-engine/particle-spawn-group-reference-for-niagara-effects-in-unreal-engine [secondary]. +- Frostbite 2015 couples particles to fog by voxelizing particle extinction into the same froxel volume, so they are lit together (shared volume, not shared velocity): https://www.ea.com/news/physically-based-unified-volumetric-rendering-in-frostbite [secondary]. +- Flax: volume particles write into the fog's 3D textures: https://docs.flaxengine.com/manual/graphics/fog-effects/volumetric-fog.html [secondary]. Godot demo of particle-faked fog animated with wind/attractors; "billboards make the fog appear to rotate with the camera": https://github.com/Bauxitedev/volumetric-fog-demo [secondary]. +- Bridson's curl noise is built for particle advection and the divergence-free property is its stated reason (3.2). +- Nubis 2022 / Nubis3 slides read carry no particle layer sharing the density motion law. + +## 5. Not reached +RDR2 (Bauer 2019) slides; Hillaire 2015 temporal section; Golus flow-map notes; any Shadertoy nebula source; UE internals beyond forum reports; any source bounding the time derivative of a warped noise field. diff --git a/docs/research/lattice-site-weight/weighted-node/a.py b/docs/research/lattice-site-weight/weighted-node/a.py new file mode 100644 index 00000000..3f090668 --- /dev/null +++ b/docs/research/lattice-site-weight/weighted-node/a.py @@ -0,0 +1,11 @@ +import numpy as np, probe as P +g = np.linspace(-3200, 3200, 260); X, Z = np.meshgrid(g, g); q = np.stack([X, Z], -1) +rng = np.random.default_rng(3); ang = rng.uniform(0, 6.283, X.shape); nrm = np.stack([np.cos(ang), np.sin(ang)], -1) +for boost, S in [(1.6, 1), (1.6, 2), (4, 1), (4, 2), (9, 1)]: + ref = P.node(q, 100.0, 9, boost, S, nrm) + row = [] + for W in (2, 3, 4, 5): + r = P.node(q, 100.0, W, boost, S, nrm) + miss = np.mean((np.abs(r[0]-ref[0])>1e-12)|(np.abs(r[1]-ref[1])>1e-12)) + row.append(f"W{W}: miss {miss:.5f} dOut {np.abs(r[3]-ref[3]).max():.3f}") + print(f"boost {boost} S {S} ratio {2*(1+boost):.1f}x{S}:", "; ".join(row)) diff --git a/docs/research/lattice-site-weight/weighted-node/c.py b/docs/research/lattice-site-weight/weighted-node/c.py new file mode 100644 index 00000000..be65bb9d --- /dev/null +++ b/docs/research/lattice-site-weight/weighted-node/c.py @@ -0,0 +1,10 @@ +import numpy as np, probe as P +g = (np.arange(-12, 12) + .5) * 260; X, Z = np.meshgrid(g, g); c = np.stack([X, Z], -1).reshape(-1, 2) +for ex in (False, True): + prev = None; worst = 0; big = 0 + for t in np.arange(0, 300, 1/60): + Pw = np.exp(-(P.border(c, P.bodies(t), ex) / P.FALL) ** 2) + if prev is not None: + s = np.abs(Pw - prev); worst = max(worst, s.max()); big += (s > .01).sum() + prev = Pw + print("exact" if ex else "first-order", f"cell-centre profile: max step per 1/60 s {worst:.4f}, steps > .01: {big} (576 centres x 18000 ticks)") diff --git a/docs/research/lattice-site-weight/weighted-node/d3.py b/docs/research/lattice-site-weight/weighted-node/d3.py new file mode 100644 index 00000000..d718dee9 --- /dev/null +++ b/docs/research/lattice-site-weight/weighted-node/d3.py @@ -0,0 +1,9 @@ +import numpy as np, probe as P +rng = np.random.default_rng(9); n = 15000 +kx = rng.integers(-12, 12, n); z = rng.uniform(-3100, 3100, n); eps = 1e-6 +qa = np.stack([kx * 260.0 - eps, z], -1)[None]; qb = np.stack([kx * 260.0 + eps, z], -1)[None] +for W, fold, boost, S in [(6,"f1kw",1.6,2),(6,"her",1.6,2),(6,"f1kw",4,2)]: + ang = rng.uniform(0, 6.283, n); nrm = np.stack([np.cos(ang), np.sin(ang)], -1)[None] + a = P.node(qa, 100.0, W, boost, S, nrm, True, fold); b = P.node(qb, 100.0, W, boost, S, nrm, True, fold) + j = np.abs(a[3] - b[3]); js = np.abs(a[2]-b[2]); jf = np.abs(a[0]-b[0]) + print(f"W{W} {fold} B{boost} S{S}: cell-boundary jump out max {j.max():.4f} (>.01: {np.mean(j>.01):.4f}), soft max {js.max():.4f}, F1 max {jf.max():.2e}") diff --git a/docs/research/lattice-site-weight/weighted-node/e.py b/docs/research/lattice-site-weight/weighted-node/e.py new file mode 100644 index 00000000..e3735ab9 --- /dev/null +++ b/docs/research/lattice-site-weight/weighted-node/e.py @@ -0,0 +1,13 @@ +import numpy as np, probe as P +g = np.linspace(-3200, 3200, 200); X, Z = np.meshgrid(g, g); q = np.stack([X, Z], -1) +rng = np.random.default_rng(3); ang = rng.uniform(0, 6.283, X.shape); nrm = np.stack([np.cos(ang), np.sin(ang)], -1) +wmin = .5 +for boost, S in [(1.6, 1), (1.6, 2), (4, 2), (9, 1)]: + f1, f2, soft, out = P.node(q, 100.0, 6, boost, S, nrm) + C = np.maximum(f2, f1 + P.KW) + k = np.floor(C / wmin).astype(int) + 1 # first ring whose lower bound (k-1)*wmin >= C is excluded... rings visited 0..k + k = np.ceil(C / wmin).astype(int) # rings 0..k visited (ring k+1 has lb k*wmin >= C) + cells = (2 * k + 1) ** 2 + wmax = 1.0 * (1 + boost); Usound = 1.58 * wmax * S + Wsound = int(np.ceil((Usound + P.KW) / wmin)) + print(f"B{boost} S{S}: rings needed p50 {np.median(k):.0f} p99 {np.percentile(k,99):.0f} max {k.max()} -> cells p50 {np.median(cells):.0f} max {cells.max()}; worst-case sound W {Wsound} ({(2*Wsound+1)**2} cells)") diff --git a/docs/research/lattice-site-weight/weighted-node/g.py b/docs/research/lattice-site-weight/weighted-node/g.py new file mode 100644 index 00000000..14c9049a --- /dev/null +++ b/docs/research/lattice-site-weight/weighted-node/g.py @@ -0,0 +1,14 @@ +import numpy as np, probe as P, sys +fold = sys.argv[1]; rng = np.random.default_rng(2); jm = js = 0; nsw = 0 +for k in range(3): + o = rng.uniform(-2500, 2500, 2); a = rng.uniform(0, 3.1416); d = np.array([np.cos(a), np.sin(a)]) + s = np.arange(0, 15 * 260, .5); P.node((o + s[:, None] * d)[None], 100.0, 3, 1.6, 1.0, None, True, fold); a1 = P.node.a1[0].copy() + idx = np.nonzero(np.diff(a1))[0][:40] + lo = s[idx]; hi = s[idx + 1]; ref = a1[idx] + for _ in range(40): + mid = .5 * (lo + hi); P.node((o + mid[:, None] * d)[None], 100.0, 3, 1.6, 1.0, None, True, fold) + same = P.node.a1[0] == ref; lo = np.where(same, mid, lo); hi = np.where(same, hi, mid) + ra = P.node((o + lo[:, None] * d)[None], 100.0, 3, 1.6, 1.0, None, True, fold); ma = P.node.m[0].copy() + rb = P.node((o + hi[:, None] * d)[None], 100.0, 3, 1.6, 1.0, None, True, fold); mb = P.node.m[0] + jm = max(jm, np.abs(ma - mb).max()); js = max(js, np.abs(ra[2] - rb[2]).max()); nsw += len(idx) +print(fold, f"F1 swaps {nsw}: max jump m {jm:.2e}, soft {js:.2e}") diff --git a/docs/research/lattice-site-weight/weighted-node/h.py b/docs/research/lattice-site-weight/weighted-node/h.py new file mode 100644 index 00000000..2cd3d10d --- /dev/null +++ b/docs/research/lattice-site-weight/weighted-node/h.py @@ -0,0 +1,6 @@ +import numpy as np, probe as P +g = np.linspace(-3200, 3200, 200); X, Z = np.meshgrid(g, g); q = np.stack([X, Z], -1) +rng = np.random.default_rng(3); ang = rng.uniform(0, 6.283, X.shape); nrm = np.stack([np.cos(ang), np.sin(ang)], -1) +for S in (1, 2): + a = P.node(q, 100.0, 6, 1.6, S, nrm, True, "her"); b = P.node(q, 100.0, 6, 1.6, S, nrm, True, "f1kw") + d = np.abs(a[3] - b[3]); print(f"S{S} look her vs f1kw: mean {d.mean():.4f} p99 {np.percentile(d,99):.3f} max {d.max():.3f}; mean out {a[3].mean():.3f}") diff --git a/docs/research/lattice-site-weight/weighted-node/probe.py b/docs/research/lattice-site-weight/weighted-node/probe.py new file mode 100644 index 00000000..cb596847 --- /dev/null +++ b/docs/research/lattice-site-weight/weighted-node/probe.py @@ -0,0 +1,60 @@ +"""Weighted lattice cellular probe (Imagination, lattice-weighted-cellular). numpy, float64. +Bodies orbit (period = distance s). Cell weight = base(hash)*(1+BOOST*exp(-(border(centre)/FALL)^2)), +border over the bodies' power scores (site.w = sigma). Her fold: row-major, m from 8; variant m0f1 starts m at F1.""" +import numpy as np, sys +LAT, FALL, KW, EW, OMEGA = 260.0, 120.0, .35, .10, .05 +GAP0 = .25 * KW / (1 + 3 * KW) +rng = np.random.default_rng(7) +NB = 6 +DIST = np.array([0.0, 700, 1200, 1800, 2400, 3000]); PH = rng.uniform(0, 6.283, NB) +SIG = np.array([1500, 300, 450, 350, 900, 600]) / np.sqrt(128.0) * 4 # sigma ratio 5:1, edges well inside +def bodies(t): + a = PH + np.where(DIST > 0, 2 * np.pi * t / np.maximum(DIST, 1), 0) + return np.stack([np.cos(a) * DIST, np.sin(a) * DIST], -1) + +def h32(x): + x = x.astype(np.uint32) + x ^= x >> 16; x *= np.uint32(0x7feb352d); x ^= x >> 15; x *= np.uint32(0x846ca68b); x ^= x >> 16 + return x +def hash01(cx, cz, s): + k = ((cx.astype(np.int64) * 73856093) ^ (cz.astype(np.int64) * 19349663) ^ (s * 83492791)) & 0xffffffff + return (h32(h32(k)) >> 8) / 16777216.0 + +def border(q, B, exact): + """q: (...,2). Power border distance over bodies B.""" + sc = ((q[..., None, :] - B) ** 2).sum(-1) - SIG ** 2 + o = np.argsort(sc, -1); i1 = o[..., 0]; i2 = o[..., 1] + s1 = B[i1] + if not exact: + s2 = B[i2]; return (np.take_along_axis(sc, i2[..., None], -1)[..., 0] - np.take_along_axis(sc, i1[..., None], -1)[..., 0]) / (2 * np.linalg.norm(s2 - s1, axis=-1)) + best = np.full(q.shape[:-1], 1e30) + w1 = SIG[i1] + for k in range(NB): + d = B[k] - s1; L = np.linalg.norm(d, axis=-1) + pl = np.maximum((((s1 - q) * d).sum(-1) + .5 * ((d * d).sum(-1) + w1 ** 2 - SIG[k] ** 2)) / np.where(L > 0, L, 1), 0) + best = np.where((L > 0) & (pl < best), pl, best) + return best + +def node(q, t, W, boost, S=1.0, nrm=None, exact=True, fold="her"): + B = bodies(t); p = q / LAT; n = np.floor(p); f = p - n + if nrm is None: nrm = np.zeros_like(q); nrm[..., 0] = 1 + ds = [] + for j in range(-W, W + 1): + for i in range(-W, W + 1): + cx, cz = n[..., 0] + i, n[..., 1] + j + base = .5 + .5 * hash01(cx, cz, 1) + P = np.exp(-(border(np.stack([(cx + .5) * LAT, (cz + .5) * LAT], -1), B, exact) / FALL) ** 2) + wt = base * (1 + boost * P) + ox = .5 + .5 * np.sin(OMEGA * t + 6.2831 * hash01(cx, cz, 2)); oz = .5 + .5 * np.sin(OMEGA * t + 6.2831 * hash01(cx, cz, 3)) + vx, vz = i - f[..., 0] + ox, j - f[..., 1] + oz + a = vx * nrm[..., 0] + vz * nrm[..., 1]; c = -vx * nrm[..., 1] + vz * nrm[..., 0] + ds.append(np.hypot(S * a, c) * wt) + D = np.stack(ds, -1); srt = np.sort(D, -1); f1, f2 = srt[..., 0], srt[..., 1]; a1 = np.argmin(D, -1) + m = np.full(f1.shape, 8.0) if fold == "her" else (f1 + KW if fold == "f1kw" else f1.copy()) + for k in range(D.shape[-1]): + d = D[..., k] + h = np.clip(.5 + .5 * (m - d) / KW, 0, 1); h = h * h * (3 - 2 * h) + mn = m + (d - m) * h - h * (1 - h) * KW / (1 + 3 * KW) + m = np.where((fold == "m0f1") & (a1 == k), m, mn) + soft = np.clip((f1 - m) / GAP0, 0, 1); node.m = m; node.a1 = a1 + return f1, f2, soft, np.maximum(soft ** 2, np.exp(-((f2 - f1) / EW) ** 2)) diff --git a/docs/research/native-shader-probes.md b/docs/research/native-shader-probes.md new file mode 100644 index 00000000..087a87e6 --- /dev/null +++ b/docs/research/native-shader-probes.md @@ -0,0 +1,143 @@ +# Shader runner probes: the HLSL-to-GLSL ES toolchain, lavapipe on Yggdrasil, native ANGLE on Starfire + +For the cultmath-tapes questions that replace `device-run-driver`: `glsl-es-translation-owner`, +`conforming-shader-run` and `real-device-shader-run`. These are body facts measured by +imagination-ag4-shader-runner (session self-2026-10-16-ag4) on 2026-10-16, between about 14:10 and +15:20 UTC (16:10 to 17:20 CEST). Every probe read CultLib at f697e03f (origin/main). Companion to +`docs/research/native-shader-testing.md` (f697e03f) and `docs/research/device-capture-runners.md` (c9d3e672). + +The probe scripts are in this directory under `p/`: `probe.sh` and `lib.sh` (Yggdrasil jobs), `fam.py` +(the per-family shader generator and bit judge), `vkrun.c` (an 87-line Vulkan compute host) and +`angle_native.py` (a 96-line native ANGLE host). They are throwaway probe code, not a proposed +implementation. The logs are `q12-run3.log` (lavapipe) and `lib-run4.log` (library route). The earlier +runs are superseded: run1 used a raw-ulp metric, run2 died on CRLF, and lib-run1 to lib-run3 failed on +the capability and grep problems recorded below. + +## Metric + +Each fixture family has 256 cases, and the fixture records the C# result bits. "Exact" means all 256 +cases are bit-identical to the C# fixture. Otherwise the worst error is given in units of +2^-23 * max(|expected|, 1) (written "u1" below), the scale the fixture's ulp-bounded checks use. NaN and +Inf cases are compared only as NaN-versus-not-NaN. These figures describe the data. They are not the +fixture's own judge, which is C# and per family: GlslMirrorTests tolerances, and the `check` text on 10 +families. + +## The fixture surface (glsl-parity.json at f697e03f) + +- 109 families, each with 256 cases, encoded `args -> result` as hex 32-bit words. There are at most 32 + words per case. +- 105 families use only float, int, vecN, ivecN and mat3 (mat3 appears as a return only). The other 4 + take or return structs: `CultCellular cultmath_cellular(vec3)`, `CultPhasor cultmath_phacelle(vec3, + vec3, float, float)`, and `SpanNoise cultmath_span_fbm/ridged(SpanPath, SpanStage, int, float, float)`. + Any runner needs per-struct flatteners in field order for these 4. +- Tolerance classes: 89 are `ulp-bounded`, 2 are `exact`, 7 are `platform` (exp, pow, log, asin, acos, + atan, and phacelle's sin and cos), and 10 carry a `check` (enclosure). +- What a harness needs: generate one shader per family that reads the argument words, bit-casts them to + the signature's types, calls the function and writes the result words. The probe generator does this + for both HLSL and GLSL in 112 lines of Python, judge included. + +## Q1. Can dxc emit a SPIR-V library that SPIRV-Cross lowers to GLSL ES for CultMath's real surface? + +Yggdrasil, ubuntu:24.04. Tools: dxc v1.9.2607 Linux (`linux_dxc_2026_07_29`, the version get-dxc.ps1 +pins on Windows), and SPIRV-Cross built from HEAD 300681bb (2026-10-14). + +| Step | Result | +|---|---| +| `dxc -T lib_6_6 -spirv -fspv-target-env=vulkan1.2 CultMath.hlsl`, no change to the source | fails: "No OpEntryPoint ... only allowed if the Linkage ... capability is being used" | +| `-default-linkage external` (lib_6_3, universal1.5), no `export` | fails the same way: no exports in SPIR-V | +| `export` added to every top-level `cultmath_` definition, vulkan1.2 | fails: "Capability Linkage is not allowed by Vulkan 1.2" | +| same, `-fspv-target-env=universal1.5` | compiles, but declares 14 capabilities, ray query, interlock, quad control and partitioned subgroups among them | +| SPIRV-Cross `--es --version 310` on that module | fails: "RayQuery requires Vulkan GLSL 460" | +| ray query stripped | fails: "Cannot find mapping for combined sampler parameter". The Texture2D/SamplerState functions were exported | +| `export` only on the 173 non-texture definitions, all capabilities but Shader and Linkage stripped, every OpExtension stripped, then `spirv-as` | assembles; SPIRV-Cross `--es --version 310` exits 0 | +| SPIRV-Cross `--es --version 300` | fails: "At least ESSL 3.10 required for compute shaders" (a library gets a GLCompute placeholder entry) | +| ES 3.10 output, `#version` guarded by `#ifdef SPIRV_CROSS_LIBRARY_HEADER`, placeholder main removed, compiled by glslang as a `#version 300 es` fragment shader | compiles | + +Shape of the output against the committed lowering: + +| | committed (CultMath.glsl, .Cycles, .Phacelle) | dxc + SPIRV-Cross | +|---|---|---| +| lines | 1035 + Cycles + Phacelle | 3458, one file (the MPL and Apache files are merged) | +| function definitions | 173 (121 + 51 + 1) | 127 | +| overloads | kept | **46 dropped**: one definition per name survives (for example `cultmath_snoise(vec2)` and `cultmath_iv_snoise_ball(vec2, float)` are gone) | +| SSA temporaries `_NNN` | 0 | 5632 | +| min and max | as written | NaN-guarded `mix(mix(min(a,b),b,isnan(a)),a,isnan(b))` | + +In `cultmath_snoise(vec3)` as emitted, the body is one temporary per SSA value (`vec3 _1157 = floor(...)`) +and constants are spelt to 20 digits. + +**Answer:** yes, but only with three owned workarounds: an `export` annotation on 173 definitions, +which FXC (Unity's D3D11 compiler) does not accept, so it would have to be a macro; a capability and +extension strip pass; and unique names for 46 overloads, which breaks the public API for both the HLSL +and the GLSL consumers. The output is generated text, not a readable library. + +## Q2. Does a conforming Vulkan implementation run the families in a Linux container on Yggdrasil? + +Yggdrasil, ubuntu:24.04, apt packages: mesa-vulkan-drivers 25.2.8 (lavapipe), glslang-tools 15.1.0, +spirv-tools 2025.1~rc1, libvulkan-dev, and the same dxc. There is no GPU. + +- Device: `llvmpipe (LLVM 20.1.2, 256 bits)`, Vulkan 1.4. Float controls for f32: denormPreserve 0, + flushToZero 0, RTE 1, RTZ 0, signedZeroInfNanPreserve 1. +- HLSL route: a generated `cs_6_0` compute shader that includes CultMath.hlsl, through `dxc -spirv + -fspv-target-env=vulkan1.2`. 105 of 105 families compile and run. Fma instructions in the SPIR-V: 0. +- GLSL route: the committed CultMath.glsl, .Cycles.glsl and .Phacelle.glsl concatenated after `#version + 310 es` and highp precision, as a compute shader through `glslangValidator -V`. 105 of 105 compile and + run. +- Library route: the dxc + SPIRV-Cross library from Q1 through glslang. 103 of 105 run; the 2 missing + ones are the dropped overloads. Against the fixture: 75 exact, 4 within 4 u1, 7 within 64, 17 above + 64. Its worst rows are the same figures as the HLSL route's. +- Time: all 105 dispatches together take 8 s on a re-run. Each job runs about 4 minutes, almost all of + it apt, the dxc download and the SPIRV-Cross build. +- Determinism: re-running all 105 SPIR-V modules gave bit-identical outputs. +- The HLSL and GLSL routes are bit-identical to each other in 85 of 105 families. +- Against the C# fixture, HLSL route: 75 exact, 6 within 4 u1, 7 within 64, 17 above 64. GLSL route: + 75, 4, 8 and 18. The largest errors are in the `coordinate bands 1e2 to 4e6` families of snoise_grad + and snoise_hessian (13e6 and 1.6e8 u1), then fbm_grad and ridged_grad (about 3.5e3 to 5e3 u1), Cycles + arcsine (2.7e3) and arccosine (1.0e3), and the other hessian families (1e3 to 2.4e3). + +**Answer:** yes. The image needs nothing beyond distro packages and the pinned dxc. It is +deterministic and fast, and it runs both the HLSL and the lowered GLSL on the same implementation. + +## Q3. A real-device run on Starfire without a browser: native ANGLE + +Starfire. The host is `angle_native.py`, Python ctypes over the libEGL.dll and libGLESv2.dll that ship +with Docker Desktop 4.71.0 (an Electron app): ANGLE 2.1.26626, git hash a4490148bd3d. Display: +`EGL_PLATFORM_ANGLE_TYPE_D3D11`. Context: ES 3.0, optionally `EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE`. +Each family is a `#version 300 es` fragment shader, with arguments read by texelFetch from an RGBA32UI +texture and results written to up to 3 RGBA32UI targets over a 16x16 grid, then read back with +glReadPixels. The same RGBA32UI readback is used by the scratchpad browser pages (gpu.js). + +- `GL_RENDERER`: `ANGLE (NVIDIA, NVIDIA GeForce GTX 1070 (0x00001B81) Direct3D11 vs_5_0 ps_5_0, D3D11)`. + `GL_VERSION`: `OpenGL ES 3.0 (ANGLE 2.1.26626 git hash: a4490148bd3d)`. +- 105 of 105 families compile and run. All 105 together take 6.3 s wall, process start included. The GL + error at the end is 0. +- The WebGL-compatibility context and the plain ES 3.0 context are bit-identical in 105 of 105 families. +- Against the C# fixture: 38 exact, 31 within 4 u1, 17 within 64, 19 above 64. +- It agrees with the earlier browser measurements on the same GPU. `cultmath_iv_exp`: 19 of 256 exact, + worst 12 ulp; the browser run of finding iv-exp-gpu-not-enclosed measured "up to 12 ulp". + `cultmath_iv_frustum_ball`: 213 of 256 exact, so 43 off, by at most 2 ulp; finding + frustum-exact-unsound-on-webgl2 measured "43/256 cases by up to 2 ulp". +- The dxc + SPIRV-Cross library from Q1 also runs on this ANGLE, as a WebGL-compatibility ES 3.00 + fragment shader: 103 of 105 families (the 2 dropped overloads fail to compile), with 41 exact. It is + bit-identical to the committed lowering's ANGLE output in 71 of 103 families. +- Largest differences: the `coordinate bands 1e2 to 4e6` families again. 173 cases of snoise_grad and + 415 component values of snoise_hessian differ by more than 1e-3 relative, up to 2 and 20. These + families exist for the span allowance's device margin (follow-up span-allowance-gpu-margin, cut + stage-shaders-device). Their judge is the allowance check, not an ulp bound. + +**Answer:** yes. A pinned ANGLE build, loaded natively, runs the site's real translation path +(ES 3.00, then ANGLE, then HLSL, then D3DCompile, then the NVIDIA D3D11 driver) with no browser and no +SwiftShader fallback, because the backend is named explicitly and the renderer string is recorded. The +result agrees bit for bit with the WebGL-compatibility context, and it reproduces the two browser +measurements on record. + +## What was not probed + +- SwiftShader as a second conforming implementation. +- Amber as the dispatch host instead of a small owned one. +- WARP and native D3D11 HLSL on Starfire, which is the Unity consumer path. +- naga with dxc SPIR-V as input. +- Chrome's own ANGLE feature flags, which the native host does not reproduce. +- Mobile or mediump devices. +- An Electron release's ANGLE pinned by download. The probe used the copy Docker Desktop happens to + ship. diff --git a/docs/research/native-shader-probes/angle_native.py b/docs/research/native-shader-probes/angle_native.py new file mode 100644 index 00000000..f47578b8 --- /dev/null +++ b/docs/research/native-shader-probes/angle_native.py @@ -0,0 +1,96 @@ +"""Probe: run the GLSL fixture families through a native ANGLE (DLLs shipped with an Electron app), D3D11 +backend, ES 3.0 context, fragment-shader readback through RGBA32UI targets. No browser. +usage: py -3 -I angle_native.py [webgl]""" +import ctypes as C, json, os, struct, sys +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import fam + +dll, fx, sh, out = sys.argv[1:5]; webgl = len(sys.argv) > 5 +os.add_dll_directory(dll) +egl = C.CDLL(os.path.join(dll, 'libEGL.dll')); gl = C.CDLL(os.path.join(dll, 'libGLESv2.dll')) +egl.eglGetProcAddress.restype = C.c_void_p +for n in ['eglInitialize', 'eglChooseConfig', 'eglCreatePbufferSurface', 'eglCreateContext', 'eglMakeCurrent', 'eglBindAPI', 'eglGetError']: + getattr(egl, n).restype = C.c_void_p if n.startswith('eglCreate') else C.c_uint +egl.eglCreatePbufferSurface.argtypes = [C.c_void_p, C.c_void_p, C.POINTER(C.c_int)] +egl.eglCreateContext.argtypes = [C.c_void_p, C.c_void_p, C.c_void_p, C.POINTER(C.c_int)] +egl.eglMakeCurrent.argtypes = [C.c_void_p, C.c_void_p, C.c_void_p, C.c_void_p] +egl.eglInitialize.argtypes = [C.c_void_p, C.c_void_p, C.c_void_p] +egl.eglChooseConfig.argtypes = [C.c_void_p, C.POINTER(C.c_int), C.POINTER(C.c_void_p), C.c_int, C.POINTER(C.c_int)] +GPD = C.CFUNCTYPE(C.c_void_p, C.c_uint, C.c_void_p, C.POINTER(C.c_int))(egl.eglGetProcAddress(b'eglGetPlatformDisplayEXT')) +def ia(*v): return (C.c_int * (len(v) + 1))(*v, 0x3038) +disp = GPD(0x3202, None, ia(0x3203, 0x3208)) # EGL_PLATFORM_ANGLE_TYPE_ANGLE = D3D11 +assert egl.eglInitialize(disp, None, None), 'eglInitialize %x' % egl.eglGetError() +cfg = C.c_void_p(); ncfg = C.c_int() +egl.eglChooseConfig(disp, ia(0x3033, 0x1, 0x3040, 0x40), C.byref(cfg), 1, C.byref(ncfg)) # PBUFFER, ES3 +surf = egl.eglCreatePbufferSurface(disp, cfg, ia(0x3057, 16, 0x3056, 16)) +egl.eglBindAPI(0x30A0) +ctx_attr = (0x3098, 3) + ((0x33AC, 1) if webgl else ()) # CLIENT_VERSION 3 [, WEBGL_COMPATIBILITY_ANGLE] +ctx = egl.eglCreateContext(disp, cfg, None, ia(*ctx_attr)) +assert ctx and egl.eglMakeCurrent(disp, surf, surf, ctx), 'context %x' % egl.eglGetError() +gl.glGetString.restype = C.c_char_p +print('GL_RENDERER', gl.glGetString(0x1F01).decode()); print('GL_VERSION', gl.glGetString(0x1F02).decode()) +print('webgl compatibility context', webgl) + +gl.glCreateShader.restype = C.c_uint; gl.glCreateProgram.restype = C.c_uint +def shader(kind, src): + s = gl.glCreateShader(kind); b = C.c_char_p(src.encode()); gl.glShaderSource(s, 1, C.byref(b), None); gl.glCompileShader(s) + ok = C.c_int(); gl.glGetShaderiv(s, 0x8B81, C.byref(ok)) + if not ok.value: + buf = C.create_string_buffer(4000); gl.glGetShaderInfoLog(s, 4000, None, buf); raise RuntimeError(buf.value.decode()[:300]) + return s +VS = '#version 300 es\nvoid main() { vec2 p = vec2((gl_VertexID << 1) & 2, gl_VertexID & 2); gl_Position = vec4(p * 2.0 - 1.0, 0.0, 1.0); }\n' +lib = open(os.environ['LIBGLSL']).read() if os.environ.get('LIBGLSL') else ''.join(open(os.path.join(sh, f)).read() for f in ['CultMath.glsl', 'CultMath.Cycles.glsl', 'CultMath.Phacelle.glsl']) +vao = C.c_uint(); gl.glGenVertexArrays(1, C.byref(vao)); gl.glBindVertexArray(vao) +d = json.load(open(fx)); man = []; skipped = 0 +for idx, f in enumerate(d['functions']): + r, name, ps = fam.parse(f['glsl']); rt = fam.ty(r); pts = [fam.ty(p) for p in ps] + if rt is None or any(p is None for p in pts): skipped += 1; continue + nin = sum(p[1] for p in pts); nout = rt[1]; tw = (nin + 3) // 4; nt = (nout + 3) // 4; tag = 'f%03d' % idx + words = [int(x, 16) for c in f['cases'] for x in c.split('->')[0].split()] + tex = [] + for ci in range(256): + row = words[ci * nin:(ci + 1) * nin]; tex += row + [0] * (tw * 4 - nin) + lines, off = [], 0 + for j, (p, (ht, n, k)) in enumerate(zip(ps, pts)): + src = ', '.join('w[%d]' % (off + t) for t in range(n)); v = ('uvec%d(%s)' % (n, src)) if n > 1 else src + conv = {'f': 'uintBitsToFloat', 'i': ('ivec%d' % n if n > 1 else 'int'), 'u': ''}[k] + lines.append(' %s a%d = %s(%s);' % (p, j, conv, v)); off += n + lines.append(' %s r = %s(%s);' % (r, name, ', '.join('a%d' % j for j in range(len(ps))))) + comps = ['r[%d][%d]' % (a, b) for a in range(3) for b in range(3)] if r == 'mat3' else ['r'] if nout == 1 else ['r[%d]' % i for i in range(nout)] + for i, c in enumerate(comps): + lines.append(' ow[%d] = %s(%s);' % (i, {'f': 'floatBitsToUint', 'i': 'uint', 'u': ''}[rt[2]], c)) + outs = ''.join('layout(location = %d) out highp uvec4 o%d;\n' % (t, t) for t in range(nt)) + wr = ''.join(' o%d = uvec4(ow[%d], ow[%d], ow[%d], ow[%d]);\n' % (t, 4 * t, 4 * t + 1, 4 * t + 2, 4 * t + 3) for t in range(nt)) + FS = ('#version 300 es\nprecision highp float;\nprecision highp int;\n' + lib + '\nuniform highp usampler2D In;\n' + outs + + 'void main() {\n int i = int(gl_FragCoord.y) * 16 + int(gl_FragCoord.x);\n uint w[%d];\n for (int k = 0; k < %d; k++) w[k] = texelFetch(In, ivec2(k / 4, i), 0)[k %% 4];\n' + ' uint ow[%d];\n' % (tw * 4, nin, nt * 4) + '\n'.join(lines) + '\n' + ''.join(' ow[%d] = 0u;\n' % z for z in range(nout, nt * 4)) + wr + '}\n') + try: + prog = gl.glCreateProgram(); gl.glAttachShader(prog, shader(0x8B31, VS)); gl.glAttachShader(prog, shader(0x8B30, FS)); gl.glLinkProgram(prog) + except RuntimeError as e: + print('compile fail', f['glsl'], str(e).replace('\n', ' ')[:200]); continue + gl.glUseProgram(prog) + t_in = C.c_uint(); gl.glGenTextures(1, C.byref(t_in)); gl.glActiveTexture(0x84C0); gl.glBindTexture(0x0DE1, t_in) + gl.glTexParameteri(0x0DE1, 0x2801, 0x2600); gl.glTexParameteri(0x0DE1, 0x2800, 0x2600) + buf = (C.c_uint * len(tex))(*tex); gl.glTexImage2D(0x0DE1, 0, 0x8D70, tw, 256, 0, 0x8D99, 0x1405, buf) + gl.glUniform1i(gl.glGetUniformLocation(prog, b'In'), 0) + fbo = C.c_uint(); gl.glGenFramebuffers(1, C.byref(fbo)); gl.glBindFramebuffer(0x8D40, fbo) + tos = (C.c_uint * nt)(); gl.glGenTextures(nt, tos) + for t in range(nt): + gl.glBindTexture(0x0DE1, tos[t]); gl.glTexImage2D(0x0DE1, 0, 0x8D70, 16, 16, 0, 0x8D99, 0x1405, None) + gl.glFramebufferTexture2D(0x8D40, 0x8CE0 + t, 0x0DE1, tos[t], 0) + gl.glDrawBuffers(nt, (C.c_uint * nt)(*[0x8CE0 + t for t in range(nt)])) + gl.glActiveTexture(0x84C0); gl.glBindTexture(0x0DE1, t_in) + gl.glViewport(0, 0, 16, 16); gl.glDrawArrays(0x0004, 0, 3) + res = [[0] * 1024 for _ in range(nt)] + for t in range(nt): + gl.glReadBuffer(0x8CE0 + t); px = (C.c_uint * 1024)(); gl.glReadPixels(0, 0, 16, 16, 0x8D99, 0x1405, px); res[t] = list(px) + flat = [] + for ci in range(256): + allw = sum((res[t][ci * 4:ci * 4 + 4] for t in range(nt)), []); flat += allw[:nout] + open(os.path.join(out, tag + '.in'), 'wb').write(b'\0') + open(os.path.join(out, tag + '.angle.out'), 'wb').write(struct.pack('<%dI' % len(flat), *flat)) + man.append({'tag': tag, 'glsl': f['glsl'], 'n': 256, 'nout': nout, 'kind': rt[2], 'tol': f['tolerance'], 'platform': f.get('platform')}) + gl.glDeleteFramebuffers(1, C.byref(fbo)); gl.glDeleteTextures(nt, tos); gl.glDeleteTextures(1, C.byref(t_in)); gl.glDeleteProgram(prog) +print('gl error at end 0x%x' % gl.glGetError(), '; ran', len(man), 'skipped struct', skipped) +json.dump(man, open(os.path.join(out, 'manifest.json'), 'w')) +fam.cmp(fx, out, 'angle') diff --git a/docs/research/native-shader-probes/fam.py b/docs/research/native-shader-probes/fam.py new file mode 100644 index 00000000..28489f10 --- /dev/null +++ b/docs/research/native-shader-probes/fam.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python3 +"""Probe: per fixture family, generate an HLSL and a GLSL ES 3.10 compute shader that call the family's +function on the fixture's argument bits, and compare device results with the fixture's result bits. +usage: fam.py gen | fam.py cmp """ +import json, re, struct, sys, os + +SCAL = {'float': ('float', 1, 'f'), 'int': ('int', 1, 'i'), 'uint': ('uint', 1, 'u')} +def ty(t): + if t in SCAL: return SCAL[t] + m = re.fullmatch(r'(i|u|)vec([234])', t) + if m: + k = {'': 'f', 'i': 'i', 'u': 'u'}[m.group(1)]; n = int(m.group(2)) + return ({'f': 'float', 'i': 'int', 'u': 'uint'}[k] + str(n), n, k) + if t == 'mat3': return ('float3x3', 9, 'f') + return None + +def parse(sig): + m = re.fullmatch(r'(\w+)\s+(\w+)\((.*)\)', sig) + ps = [p.strip() for p in m.group(3).split(',') if p.strip()] + return m.group(1), m.group(2), ps + +def hlsl_read(k, words): + return {'f': 'asfloat', 'i': 'asint', 'u': ''}[k] + '(' + words + ')' + +def gen(fx, out): + d = json.load(open(fx)); man = []; skipped = [] + for idx, f in enumerate(d['functions']): + r, name, ps = parse(f['glsl']) + rt = ty(r); pts = [ty(p) for p in ps] + if rt is None or any(p is None for p in pts): + skipped.append(f['glsl']); continue + nin = sum(p[1] for p in pts); nout = rt[1] + tag = 'f%03d' % idx + words = [] + for c in f['cases']: + a, b = c.split('->'); aw = a.split(); assert len(aw) == nin, (f['glsl'], len(aw), nin) + words += [int(x, 16) for x in aw] + open(os.path.join(out, tag + '.in'), 'wb').write(struct.pack('<%dI' % len(words), *words) if words else b'\0\0\0\0') + # HLSL + hl, gl, off = [], [], 0 + for j, (p, (ht, n, k)) in enumerate(zip(ps, pts)): + idxs = ', '.join('In[b + %d]' % (off + t) for t in range(n)) + gidx = ', '.join('In.a[b + %du]' % (off + t) for t in range(n)) + if ht == 'float3x3': raise SystemExit('mat3 arg unsupported') + vec = ('uint%d(%s)' % (n, idxs)) if n > 1 else idxs + hl.append(' %s a%d = %s;' % (ht, j, hlsl_read(k, vec) if k != 'u' else vec)) + gvec = ('uvec%d(%s)' % (n, gidx)) if n > 1 else gidx + gfun = {'f': 'uintBitsToFloat', 'i': ('ivec%d' % n if n > 1 else 'int'), 'u': ''}[k] + gl.append(' %s a%d = %s(%s);' % (p, j, gfun, gvec)) + off += n + args = ', '.join('a%d' % j for j in range(len(ps))) + hl.append(' %s r = %s(%s);' % (rt[0], name, args)) + gl.append(' %s r = %s(%s);' % (r, name, args)) + if rt[0] == 'float3x3': + comps = ['r[%d][%d]' % (i, j) for i in range(3) for j in range(3)] + elif rt[1] == 1: comps = ['r'] + else: comps = ['r[%d]' % i for i in range(rt[1])] + for i, c in enumerate(comps): + hl.append(' Out[o + %d] = %s;' % (i, {'f': 'asuint', 'i': 'asuint', 'u': ''}[rt[2]] + '(' + c + ')')) + gl.append(' Out.a[o + %du] = %s;' % (i, {'f': 'floatBitsToUint', 'i': 'uint', 'u': ''}[rt[2]] + '(' + c + ')')) + n = len(f['cases']) + open(os.path.join(out, tag + '.hlsl'), 'w').write( + '#include "CultMath.hlsl"\n[[vk::binding(0)]] StructuredBuffer In;\n[[vk::binding(1)]] RWStructuredBuffer Out;\n' + '[numthreads(64, 1, 1)] void main(uint3 id : SV_DispatchThreadID) {\n uint i = id.x; if (i >= %du) return; uint b = i * %du; uint o = i * %du;\n%s\n}\n' + % (n, nin, nout, '\n'.join(hl))) + open(os.path.join(out, tag + '.body.glsl'), 'w').write( + 'layout(local_size_x = 64) in;\nlayout(std430, binding = 0) readonly buffer IB { uint a[]; } In;\nlayout(std430, binding = 1) buffer OB { uint a[]; } Out;\n' + 'void main() {\n uint i = gl_GlobalInvocationID.x; if (i >= %du) return; uint b = i * %du; uint o = i * %du;\n%s\n}\n' + % (n, nin, nout, '\n'.join(gl))) + man.append({'tag': tag, 'glsl': f['glsl'], 'n': n, 'nout': nout, 'kind': rt[2], 'tol': f['tolerance'], 'platform': f.get('platform')}) + json.dump(man, open(os.path.join(out, 'manifest.json'), 'w')) + print('generated', len(man), 'families; skipped (struct types)', len(skipped), ':', '; '.join(skipped)) + +def ordered(u): # float bits -> monotonic int for ulp distance + return u if u < 0x80000000 else 0x80000000 - u + +def cmp(fx, out, tag): + d = json.load(open(fx)); man = json.load(open(os.path.join(out, 'manifest.json'))) + rows = []; buckets = {'exact': 0, '<=4': 0, '<=64': 0, '>64': 0, 'missing': 0} + for m in man: + p = os.path.join(out, m['tag'] + '.' + tag + '.out') + if not os.path.exists(p): buckets['missing'] += 1; rows.append((m['glsl'], 'MISSING', '')); continue + got = struct.unpack('<%dI' % (m['n'] * m['nout']), open(p, 'rb').read()) + f = d['functions'][int(m['tag'][1:])] + worst = 0; exact = 0; nanmis = 0 + for ci, c in enumerate(f['cases']): + exp = [int(x, 16) for x in c.split('->')[1].split()] + g = got[ci * m['nout']:(ci + 1) * m['nout']] + if list(g) == exp: exact += 1; continue + for e, h in zip(exp, g): + if m['kind'] != 'f': worst = max(worst, 1 << 40); continue + en = (e & 0x7f800000) == 0x7f800000 and e & 0x7fffff; hn = (h & 0x7f800000) == 0x7f800000 and h & 0x7fffff + if en or hn: + if not (en and hn): nanmis += 1 + continue + fe = struct.unpack('64' + if worst >= 1 << 40: b = '>64' + buckets[b] += 1 + rows.append((m['glsl'], '%d/%d exact' % (exact, m['n']), 'max err %s ulp(max(|v|,1))%s' % (('%.1f' % worst) if worst < 1 << 40 else 'int-mismatch', ', nan-mismatch %d' % nanmis if nanmis else ''))) + print(tag, 'buckets', buckets) + for r in sorted(rows, key=lambda r: r[1])[:0]: pass + rows.sort(key=lambda r: -float(re.search(r'max err ([0-9.]+)', r[2]).group(1)) if re.search(r'max err ([0-9.]+)', r[2]) else -1e18) + for r in rows[:int(os.environ.get('CMP_TOP', '25'))]: + if not r[1].startswith('256/256'): print(' ', r[0], '|', r[1], '|', r[2]) + +if __name__ == '__main__': + {'gen': lambda: gen(sys.argv[2], sys.argv[3]), 'cmp': lambda: cmp(sys.argv[2], sys.argv[3], sys.argv[4])}[sys.argv[1]]() diff --git a/docs/research/native-shader-probes/lib.sh b/docs/research/native-shader-probes/lib.sh new file mode 100644 index 00000000..39b62a70 --- /dev/null +++ b/docs/research/native-shader-probes/lib.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# Probe job, runs in ubuntu:24.04 with /src = CultLib at the probed revision. Q1 library path, Q2 lavapipe runs. +set -u +P=/tmp/p; W=/tmp/w; mkdir -p $W/fam $W/tools; cd $W +step() { echo; echo "=== $*"; } +step apt +export DEBIAN_FRONTEND=noninteractive +apt-get update -qq >/dev/null && apt-get install -y -qq --no-install-recommends ca-certificates curl git cmake g++ make python3 \ + mesa-vulkan-drivers libvulkan-dev vulkan-tools glslang-tools spirv-tools >/dev/null 2>&1; echo "apt exit $?" +dpkg-query -W -f='${Package} ${Version}\n' mesa-vulkan-drivers glslang-tools spirv-tools libvulkan-dev +step dxc +url=$(curl -s https://api.github.com/repos/microsoft/DirectXShaderCompiler/releases/tags/v1.9.2607 | python3 -c "import json,sys;print([a['browser_download_url'] for a in json.load(sys.stdin)['assets'] if 'linux' in a['name'] and a['name'].endswith('.tar.gz')][0])") +echo "$url"; curl -sL --fail -o dxc.tgz "$url" && mkdir -p tools/dxc && tar xzf dxc.tgz -C tools/dxc; DXC=$(find tools/dxc -name dxc -type f | head -1); echo "DXC=$DXC"; $DXC --version 2>&1 | head -2 +step spirv-cross +git clone -q --depth 1 https://github.com/KhronosGroup/SPIRV-Cross.git tools/sc && git -C tools/sc log -1 --format='SPIRV-Cross %H %cs' && \ + cmake -S tools/sc -B tools/scb -DCMAKE_BUILD_TYPE=Release -DSPIRV_CROSS_ENABLE_TESTS=OFF >/dev/null && cmake --build tools/scb --target spirv-cross -j4 >/dev/null 2>&1; SC=tools/scb/spirv-cross; ls -la $SC | cut -c1-120 +SH=/src/packages/cultmath/shaders +python3 - "$SH" <<'PY' +import re,sys,os,shutil +src=sys.argv[1]; dst='/tmp/w/shx'; shutil.copytree(src,dst,dirs_exist_ok=True); n=0 +for fn in os.listdir(dst): + if fn.endswith('.hlsl'): + t=open(os.path.join(dst,fn)).read(); t2,k=re.subn(r'(?m)^(?!static|export)(\w+(?:\dx\d)?\s+cultmath_\w+\s*\(([^)]*)\))', lambda m: m.group(1) if re.search('Texture2D|SamplerState', m.group(2)) else 'export ' + m.group(1), t); k=len(re.findall(r'(?m)^export ', t2)); n+=k; open(os.path.join(dst,fn),'w').write(t2) +print('export keywords added', n) +PY +step "L1 dxc lib_6_3 universal1.5, export on non-texture defs" +$DXC -T lib_6_3 -HV 2021 -spirv -fspv-target-env=universal1.5 -I shx shx/CultMath.hlsl -Fo lib.spv 2>&1 | head -3; echo "exit ${PIPESTATUS[0]}" +spirv-dis lib.spv -o lib.spvasm; echo "exports $(grep -c 'LinkageAttributes.*Export' lib.spvasm); capabilities $(grep -c OpCapability lib.spvasm)" +step "L1b -default-linkage external, no export keyword" +$DXC -T lib_6_3 -HV 2021 -spirv -fspv-target-env=universal1.5 -default-linkage external -I $SH $SH/CultMath.hlsl -Fo libd.spv 2>&1 | head -3; echo "exit ${PIPESTATUS[0]}" +[ -s libd.spv ] && { spirv-dis libd.spv -o libd.spvasm; echo "exports $(grep -c 'LinkageAttributes.*Export' libd.spvasm)"; } +step "L2 strip every capability but Shader and Linkage, every extension; SPIRV-Cross ES 310 and 300" +grep -vP '^\s*OpCapability (?!Shader$|Linkage$)|^\s*OpExtension ' lib.spvasm > s.spvasm; spirv-as --target-env spv1.5 s.spvasm -o s.spv; echo "as exit $?" +for v in 310 300; do $SC s.spv --es --version $v --output s.$v.glsl 2>&1 | head -2; echo "es$v exit ${PIPESTATUS[0]}"; done +G=s.310.glsl; echo "G=$G"; [ -s "$G" ] || { echo PROBE-DONE; exit 0; } +step "L3 shape of $G" +echo "lines $(wc -l < $G); defs cultmath_: $(grep -cE '^\w+ cultmath_\w+\(' $G); distinct: $(grep -oE '^\w+ cultmath_\w+\(' $G | sed -E 's/^\w+ //' | sort -u | wc -l); renamed _N: $(grep -oE '^\w+ cultmath_\w+_[0-9]+\(' $G | wc -l); _NNN temporaries: $(grep -oE '\b_[0-9]+\b' $G | wc -l); non-cultmath defs: $(grep -cE '^\w+ (?!cultmath_)\w+\(' -P $G)" +grep -nE '^#|^layout|precision|^struct|^void main' $G | head -12 +echo "--- renamed defs sample:"; grep -oE '^\w+ cultmath_\w+_[0-9]+\([^)]*\)' $G | head -6 +echo "--- snoise(vec3):"; awk '/^(highp )?float cultmath_snoise\((highp )?vec3/{p=1} p{print; if(++n>=22) exit}' $G +sed -E '/^#version/d; /^layout\(local_size/d' $G | awk 'BEGIN{s=0} /^void main\(\)/{s=1} s==0{print} s==1&&/^\}/{s=0}' > lib.body.glsl +{ printf '#version 300 es\nprecision highp float;\nprecision highp int;\n'; cat lib.body.glsl; printf 'out highp vec4 c;\nvoid main() { c = vec4(cultmath_snoise(gl_FragCoord.xyz)); }\n'; } > es300.frag +glslangValidator es300.frag > es300.txt 2>&1; echo "glslang ES 3.00 fragment with the library: exit $? $(grep -m3 ERROR es300.txt | tr '\n' ' ' | cut -c1-300)" +step "L4 library through glslang on lavapipe" +gcc -O2 -o vkrun $P/vkrun.c -lvulkan 2>/dev/null; python3 $P/fam.py gen /src/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json fam >/dev/null +okl=0; for b in fam/*.body.glsl; do t=${b%.body.glsl}; tag=$(basename $t); n=$(python3 -c "import json;m={x['tag']:x for x in json.load(open('fam/manifest.json'))}['$tag'];print(m['n'],m['nout'])") + { printf '#version 310 es\nprecision highp float;\nprecision highp int;\n'; cat lib.body.glsl $b; } > $t.l.comp + glslangValidator -V --target-env vulkan1.2 -o $t.l.spv $t.l.comp >$t.l.log 2>&1 && ./vkrun $t.l.spv $t.in $t.lib.out $n && okl=$((okl+1)); done +echo "library path ran $okl of 105"; grep -h -m1 ERROR fam/*.l.log | sed -E 's/[0-9]+:/N:/g' | sort | uniq -c | sort -rn | head -6 +CMP_TOP=8 python3 $P/fam.py cmp /src/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json fam lib +echo "LIBGZ-BEGIN"; gzip -9c lib.body.glsl | base64 -w0; echo; echo "LIBGZ-END" +echo PROBE-DONE diff --git a/docs/research/native-shader-probes/od-temporaries/byvalue.py b/docs/research/native-shader-probes/od-temporaries/byvalue.py new file mode 100644 index 00000000..6c6d638d --- /dev/null +++ b/docs/research/native-shader-probes/od-temporaries/byvalue.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 +"""Probe: by-value parameter lowering on a SPIR-V module. dxc -Od passes every parameter as a Function pointer and the +caller copies in; a callee that assigns its parameter then comes out of SPIRV-Cross as `inout`. This pass makes each +Function-pointer parameter a value parameter: the old param id becomes a local variable in the entry block, stored from the +new value parameter; each call loads the pointer it passed. usage: byvalue.py """ +import struct, sys +def load(p): + b = open(p, 'rb').read(); w = list(struct.unpack('<%dI' % (len(b) // 4), b)); ins = []; i = 5 + while i < len(w): n = w[i] >> 16; ins.append(w[i:i + n]); i += n + return w[:5], ins +def op(x): return x[0] & 0xffff +def mk(o, *ws): return [((len(ws) + 1) << 16) | o, *ws] +h, ins = load(sys.argv[1]); bound = h[3] +ptr = {x[1]: (x[2], x[3]) for x in ins if op(x) == 32} # id -> (storage, pointee) +ftype = {x[1]: x for x in ins if op(x) == 33} +fnparams = {}; cur = None; fntype = {} +for x in ins: # analysis: per function, which params are Function pointers + if op(x) == 54: cur = x[2]; fnparams[cur] = []; fntype[cur] = x[4] + elif op(x) == 55 and cur is not None: + t = x[1]; conv = t in ptr and ptr[t][0] == 7 + fnparams[cur].append((x[2], t, ptr[t][1] if conv else None, bound if conv else None)); bound += conv +newtype = {}; typeins = []; sig = {tuple(x[2:]): x[1] for x in ins if op(x) == 33} +for f, ps in fnparams.items(): + if any(p[2] for p in ps): + ft = ftype[fntype[f]]; key = (ft[2], *[p[2] if p[2] else p[1] for p in ps]) + if key not in sig: bound += 1; sig[key] = bound; typeins.append(mk(33, bound, *key)) + newtype[f] = sig[key] +names = {x[1]: x for x in ins if op(x) == 5} +out = []; cur = None; pend = []; need_stores = False; first = True; pc = 0 +for x in ins: + o = op(x) + if o == 54 and first: out += typeins; first = False + if need_stores and o != 59: + out += [mk(62, p, q) for p, _, q in pend]; pend = []; need_stores = False + if o == 54: + cur = x[2]; pc = 0 + if cur in newtype: x = x[:4] + [newtype[cur]] + x[5:] + elif o == 55: + _, t, pointee, q = fnparams[cur][pc]; pc += 1 + if pointee: out.append(mk(55, pointee, q)); pend.append((x[2], t, q)); continue + elif o == 248 and pend: + out.append(x); out += [mk(59, t, p, 7) for p, t, _ in pend]; need_stores = True; continue + elif o == 57: + callee = x[3]; args = x[4:]; new = [] + for a, (_, _, pointee, _) in zip(args, fnparams[callee]): + if pointee: bound += 1; out.append(mk(61, pointee, bound, a)); new.append(bound) + else: new.append(a) + x = x[:4] + new; x[0] = (len(x) << 16) | 57 + out.append(x) + if o == 5 and x[1] in [p[0] for ps in fnparams.values() for p in ps if p[2]]: + q = next(p[3] for ps in fnparams.values() for p in ps if p[0] == x[1]); out.append([x[0], q] + x[2:]) +h[3] = bound + 1; w = h + [v for x in out for v in x]; open(sys.argv[2], 'wb').write(struct.pack('<%dI' % len(w), *w)) +print('byvalue: %d functions changed, %d params' % (len(newtype), sum(1 for ps in fnparams.values() for p in ps if p[2]))) diff --git a/docs/research/native-shader-probes/od-temporaries/od.sh b/docs/research/native-shader-probes/od-temporaries/od.sh new file mode 100644 index 00000000..f8ebb794 --- /dev/null +++ b/docs/research/native-shader-probes/od-temporaries/od.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +# Imagination probe: what dxc -Od leaves in the SPIRV-Cross GLSL and what cleans it. ubuntu:24.04, /src = CultLib, /cache persists tools. +set -u; P=/src/docs/research/native-shader-probes; O=$P/overload-wrappers; W=/tmp/w; mkdir -p $W /cache; cd $W +step() { echo; echo "=== $*"; } +export DEBIAN_FRONTEND=noninteractive +apt-get update -qq >/dev/null && apt-get install -y -qq --no-install-recommends ca-certificates curl git cmake g++ make python3 gcc \ + mesa-vulkan-drivers libvulkan-dev glslang-tools spirv-tools >/dev/null 2>&1; echo "apt exit $?" +dpkg-query -W -f='${Package} ${Version}\n' spirv-tools glslang-tools mesa-vulkan-drivers +if [ ! -x /cache/sc/spirv-cross ]; then + git clone -q --depth 1 --branch vulkan-sdk-1.4.363.0 https://github.com/KhronosGroup/SPIRV-Cross.git /cache/scsrc + cmake -S /cache/scsrc -B /cache/scb -DCMAKE_BUILD_TYPE=Release -DSPIRV_CROSS_ENABLE_TESTS=OFF -DSPIRV_CROSS_CLI=ON >/dev/null && cmake --build /cache/scb --target spirv-cross -j8 >/dev/null 2>&1 + mkdir -p /cache/sc; cp /cache/scb/spirv-cross /cache/sc/ +fi +if [ ! -x /cache/dxc/bin/dxc ]; then + curl -sL --fail -o /cache/dxc.tgz https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.9.2607/linux_dxc_2026_07_29.x86_x64.tar.gz + mkdir -p /cache/dxc && tar xzf /cache/dxc.tgz -C /cache/dxc +fi +DXC=$(find /cache/dxc -name dxc -type f | head -1); SC=/cache/sc/spirv-cross; export LD_LIBRARY_PATH=$(dirname $DXC)/../lib:${LD_LIBRARY_PATH:-} +if [ ! -x /cache/st/spirv-opt ]; then + git clone -q --depth 1 --branch vulkan-sdk-1.4.363.0 https://github.com/KhronosGroup/SPIRV-Tools.git /cache/stsrc + git clone -q --depth 1 --branch vulkan-sdk-1.4.363.0 https://github.com/KhronosGroup/SPIRV-Headers.git /cache/stsrc/external/spirv-headers + cmake -S /cache/stsrc -B /cache/stb -DCMAKE_BUILD_TYPE=Release -DSPIRV_SKIP_TESTS=ON -DSPIRV_WERROR=OFF >/dev/null && cmake --build /cache/stb --target spirv-opt spirv-val spirv-dis spirv-as -j8 >/dev/null 2>&1 + mkdir -p /cache/st; cp /cache/stb/tools/spirv-* /cache/st/ +fi +export PATH=/cache/st:$PATH; echo "spirv-opt from $(which spirv-opt)" +echo "dxc $DXC"; $DXC --version 2>&1|head -2; spirv-opt --version | head -1 +SH=/src/packages/cultmath/shaders; FX=/src/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json +step "1 build the -Od library as in Pass 9b" +python3 $O/wrapgen.py $SH shw +$DXC -T lib_6_3 -HV 2021 -spirv -fspv-target-env=universal1.5 -Od -I shw shw/cm_wrappers.hlsl -Fo w.spv 2>&1 | head -3 +python3 $O/spvedit.py edit w.spv e.spv shw/wrappers.tsv export; spirv-val --target-env spv1.5 e.spv && echo "val ok" +nf() { spirv-dis "$1" | grep -c ' = OpFunction '; }; echo "functions in e.spv: $(nf e.spv)" +step "2 variants: by-value lowering, then spirv-opt (never an inliner)" +cp e.spv v0.spv +python3 $P/od-temporaries/byvalue.py e.spv b0.spv; spirv-val --target-env spv1.5 b0.spv && echo "b0 val ok" +spirv-opt --target-env=spv1.5 --ssa-rewrite --eliminate-dead-code-aggressive --simplify-instructions e.spv -o v2.spv +SSA="--ssa-rewrite --eliminate-dead-code-aggressive" +declare -A VP=([b1]="--eliminate-local-single-store --eliminate-dead-code-aggressive" [b2]="$SSA" [b3]="$SSA --simplify-instructions" [b4]="--eliminate-local-single-block --eliminate-local-single-store --eliminate-local-multi-store --eliminate-dead-code-aggressive --merge-blocks") +for v in b1 b2 b3 b4; do spirv-opt --target-env=spv1.5 ${VP[$v]} b0.spv -o $v.spv 2>$v.err; echo "$v opt exit $? functions $(nf $v.spv 2>/dev/null) $(head -c 160 $v.err)"; done +cp b1.spv b1r.spv; VS="v0 b0 b1 b1r b3" +for v in $VS; do [ -s $v.spv ] || continue + spirv-val --target-env spv1.5 $v.spv >$v.val 2>&1; vx=$? + $SC $v.spv --es --version 310 $([ $v = b1r ] && echo --relax-nan-checks) --output $v.glsl >$v.sc 2>&1; sx=$? + [ -s $v.glsl ] || { echo "$v val $vx sc exit $sx"; head -3 $v.val $v.sc; continue; } + python3 - $v $vx $sx <<'PY' +import re,sys +v,vx,sx=sys.argv[1:4]; g=open(f'/tmp/w/{v}.glsl').read() +defs=re.findall(r'(?m)^(?:\w+ )*?(\w+) (cultmath_\w+)\(([^)]*)\)\n\{',g) +ids=re.findall(r'\b_\d+\b',g) +print(f'{v}: val={vx} sc={sx} lines={g.count(chr(10))} bytes={len(g)} cultmath_defs={len(defs)} distinct={len(set(d[1] for d in defs))} id_tokens={len(ids)} distinct_ids={len(set(ids))} param_var={g.count("param_var_")} inout={len(re.findall(r"inout",g))} suffixed={len(re.findall(r"cultmath_\w+_\d+\(",g))}') +PY +done +mkdir -p /cache/out; cp *.glsl *.spv /cache/out/ 2>/dev/null +step "3 SPIRV-Cross options" +for opt in "--remove-unused-variables"; do for v in v0 b2; do $SC $v.spv --es --version 310 $opt --output $v.o.glsl >/dev/null 2>&1; echo "$v + $opt: lines $(wc -l < $v.o.glsl)"; done; done +step "4 lerp(vec3) as emitted: v0 vs b2, vs committed" +for v in v0 b2; do echo "--- $v lerp(vec3)"; awk '/^(highp )?vec3 cultmath_lerp\((highp )?vec3/{p=1} p{print} p&&/^}/{exit}' $v.glsl; done +echo "--- committed lerp(vec3)"; grep -n -A3 -E '^(highp )?vec3 cultmath_lerp\(' $SH/CultMath.glsl | head -6 +for v in v0 b2; do echo "--- $v snoise(vec3) head"; awk '/^(highp )?float cultmath_snoise\((highp )?vec3/{p=1} p{print; if(++n>=40) exit}' $v.glsl; done +step "5 conformance on lavapipe, every family, per variant vs committed GLSL and HLSL" +mkdir -p fam; gcc -O2 -o vkrun $P/vkrun.c -lvulkan && python3 $P/fam.py gen $FX fam >/dev/null +cat $SH/CultMath.glsl $SH/CultMath.Cycles.glsl $SH/CultMath.Phacelle.glsl > all.glsl +body() { sed -E '/^#version/d; /^#ifdef SPIRV_CROSS/d; /^#endif/d; /^layout\(local_size/d' $1 | awk 'BEGIN{s=0} /^void main\(\)/{s=1} s==0{print} s==1&&/^\}/{s=0}'; } +for v in $VS; do [ -s $v.glsl ] && body $v.glsl > $v.body; done +run() { local t=fam/$1 n; n=$(python3 -c "import json;m={x['tag']:x for x in json.load(open('fam/manifest.json'))}['$1'];print(m['n'],m['nout'])") + { printf '#version 310 es\nprecision highp float;\nprecision highp int;\n'; cat $3 $t.body.glsl; } > $t.$2.comp + glslangValidator -V --target-env vulkan1.2 -o $t.$2.spv $t.$2.comp >$t.$2.log 2>&1 && ./vkrun $t.$2.spv $t.in $t.$2.out $n; } +for b in fam/*.body.glsl; do tag=$(basename ${b%.body.glsl}) + n=$(python3 -c "import json;m={x['tag']:x for x in json.load(open('fam/manifest.json'))}['$tag'];print(m['n'],m['nout'])") + $DXC -T cs_6_0 -E main -HV 2021 -spirv -fspv-target-env=vulkan1.2 -I $SH fam/$tag.hlsl -Fo fam/$tag.h.spv >/dev/null 2>&1 && ./vkrun fam/$tag.h.spv fam/$tag.in fam/$tag.h.out $n + run $tag g all.glsl; for v in $VS; do [ -s $v.body ] && run $tag $v $v.body; done; done +export VS; python3 - <<'PY' +import os,filecmp +d='/tmp/w/fam'; tags=sorted(f[:-10] for f in os.listdir(d) if f.endswith('.body.glsl')) +def same(a,b): return [t for t in tags if os.path.exists(f'{d}/{t}.{a}.out') and os.path.exists(f'{d}/{t}.{b}.out') and filecmp.cmp(f'{d}/{t}.{a}.out',f'{d}/{t}.{b}.out',shallow=False)] +print('families',len(tags),'hlsl ran',len([t for t in tags if os.path.exists(f'{d}/{t}.h.out')]),'committed glsl ran',len([t for t in tags if os.path.exists(f'{d}/{t}.g.out')])) +for v in os.environ['VS'].split(): + ran=[t for t in tags if os.path.exists(f'{d}/{t}.{v}.out')] + sg=same(v,'g'); print(v,'ran',len(ran),'bit-identical to committed glsl',len(sg),'to hlsl',len(same(v,'h')),'| differs from g:',[t for t in ran if t not in sg][:8]) +print('committed vs hlsl',len(same('g','h')),'of',len(tags)) +PY +for v in v0 b2; do { printf '#version 300 es\nprecision highp float;\nprecision highp int;\n'; cat $v.body; printf 'out highp vec4 c;\nvoid main() { vec3 p = gl_FragCoord.xyz; c = vec4(cultmath_lerp(p, p.yzx, vec3(0.5)), cultmath_lerp(1.0, 2.0, p.x)) + cultmath_saturate(vec4(p, 1.0)) + vec4(cultmath_snoise(p)); }\n'; } > $v.es300.frag; glslangValidator $v.es300.frag >$v.es300.txt 2>&1; echo "$v ES 3.00 glslang exit $? $(grep -m2 ERROR $v.es300.txt | tr '\n' ' ' | cut -c1-200)"; done +for t in g $VS; do echo "--- cmp vs C# fixture: $t"; CMP_TOP=3 python3 $P/fam.py cmp $FX fam $t 2>&1 | grep -v "^ *$" | head -8; done +echo PROBE-DONE diff --git a/docs/research/native-shader-probes/overload-wrappers/lava.sh b/docs/research/native-shader-probes/overload-wrappers/lava.sh new file mode 100644 index 00000000..e36f346b --- /dev/null +++ b/docs/research/native-shader-probes/overload-wrappers/lava.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +# Imagination probe, lavapipe leg: every fixture family through three routes on lavapipe. +# h = HLSL by dxc cs_6_0, g = committed GLSL by glslang, r = restored overloaded library GLSL (lib.body.glsl) by glslang. +set -u; P=/tmp/p; W=/tmp/w; cd $W; SH=/src/packages/cultmath/shaders; FX=/src/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json +echo; echo "=== 2b lavapipe: same computation" +mkdir -p fam; gcc -O2 -o vkrun $P/vkrun.c -lvulkan && python3 $P/fam.py gen $FX fam >/dev/null +cat $SH/CultMath.glsl $SH/CultMath.Cycles.glsl $SH/CultMath.Phacelle.glsl > all.glsl +ok=(0 0 0); first=1 +for b in fam/*.body.glsl; do t=${b%.body.glsl}; tag=$(basename $t) + n=$(python3 -c "import json;m={x['tag']:x for x in json.load(open('fam/manifest.json'))}['$tag'];print(m['n'],m['nout'])") + $DXC_PATH -T cs_6_0 -E main -HV 2021 -spirv -fspv-target-env=vulkan1.2 -I $SH $t.hlsl -Fo $t.h.spv >$t.h.log 2>&1 && ./vkrun $t.h.spv $t.in $t.h.out $n && ok[0]=$((ok[0]+1)) + for r in g r; do src=all.glsl; [ $r = r ] && src=lib.body.glsl + { printf '#version 310 es\nprecision highp float;\nprecision highp int;\n'; cat $src $b; } > $t.$r.comp + glslangValidator -V --target-env vulkan1.2 -o $t.$r.spv $t.$r.comp >$t.$r.log 2>&1 && ./vkrun $t.$r.spv $t.in $t.$r.out $n && { [ $r = g ] && ok[1]=$((ok[1]+1)) || ok[2]=$((ok[2]+1)); } + done +done +echo "ran on lavapipe: hlsl ${ok[0]}, committed glsl ${ok[1]}, restored glsl ${ok[2]} (of $(ls fam/*.body.glsl | wc -l))" +grep -h -m1 ERROR fam/*.r.log | sed -E 's/[0-9]+:/N:/g' | sort | uniq -c | sort -rn | head -5 +python3 - <<'PY' +import os,filecmp +d='/tmp/w/fam'; tags=sorted(f[:-10] for f in os.listdir(d) if f.endswith('.body.glsl')) +def same(a,b): return [t for t in tags if os.path.exists(f'{d}/{t}.{a}.out') and os.path.exists(f'{d}/{t}.{b}.out') and filecmp.cmp(f'{d}/{t}.{a}.out',f'{d}/{t}.{b}.out',shallow=False)] +rg=same('r','g'); rh=same('r','h'); gh=same('g','h') +print('bit-identical: restored vs committed glsl',len(rg),'| restored vs hlsl',len(rh),'| committed glsl vs hlsl',len(gh),'of',len(tags)) +print('restored differs from committed glsl in:',[t for t in tags if t not in rg][:12]) +print('restored differs from hlsl but committed glsl matches hlsl:',[t for t in gh if t not in rh][:12]) +PY + +CMP_TOP=10 python3 $P/fam.py cmp $FX fam r 2>&1 | head -16 diff --git a/docs/research/native-shader-probes/overload-wrappers/split.py b/docs/research/native-shader-probes/overload-wrappers/split.py new file mode 100644 index 00000000..d789d0da --- /dev/null +++ b/docs/research/native-shader-probes/overload-wrappers/split.py @@ -0,0 +1,39 @@ +import re,sys,os,collections +sh,g,out=sys.argv[1:4]; os.makedirs(out,exist_ok=True) +origin={}; owner={'CultMath.hlsl':'core','CultMath.Interval.hlsl':'core','CultMath.Affine.hlsl':'core','CultMath.Cycles.hlsl':'cycles','CultMath.Phacelle.hlsl':'phacelle'} +for fn,o in owner.items(): + t=open(os.path.join(sh,fn)).read() + for m in re.finditer(r'(?m)^(?:export\s+)?\w+\s+(cultmath_\w+)\s*\(',t): origin.setdefault(m.group(1),o) + for m in re.finditer(r'(?m)^struct\s+(\w+)',t): origin.setdefault(m.group(1),o) +text=open(g).read() +# top-level chunks: struct blocks and function definitions; everything else is prologue +lines=text.split('\n'); chunks=[]; i=0; pro=[] +while i1][:6]) +for o,b in files.items(): open(os.path.join(out,o+'.glsl'),'w').write('\n'.join(b)+'\n') +print('split sizes', {o:len('\n'.join(b).split('\n')) for o,b in files.items()}) diff --git a/docs/research/native-shader-probes/overload-wrappers/spvedit.py b/docs/research/native-shader-probes/overload-wrappers/spvedit.py new file mode 100644 index 00000000..1c2807d3 --- /dev/null +++ b/docs/research/native-shader-probes/overload-wrappers/spvedit.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +"""Probe: instruction-level SPIR-V edit (binary, no text regex). +stats how each wrapper looks after dxc +edit mode drop: strip caps (keep Shader, Linkage) and extensions, delete + wrapper functions and their names/decorations, set each callee's OpName to the overloaded source name. + mode export: as drop, but each wrapper's Export decoration moves to its callee instead of being deleted.""" +import struct, sys, collections +def load(p): + b = open(p, 'rb').read(); w = list(struct.unpack('<%dI' % (len(b) // 4), b)); ins = []; i = 5 + while i < len(w): n = w[i] >> 16; ins.append(w[i:i + n]); i += n + return w[:5], ins +def s_dec(ws): + b = struct.pack('<%dI' % len(ws), *ws); return b[:b.index(0)].decode() +def s_enc(s): + b = s.encode() + b'\0'; b += b'\0' * (-len(b) % 4); return list(struct.unpack('<%dI' % (len(b) // 4), b)) +def op(x): return x[0] & 0xffff +def funcs(ins): + fs = {}; cur = None + for k, x in enumerate(ins): + if op(x) == 54: cur = x[2]; fs[cur] = [k, None, [], set()] + if cur is not None: + if op(x) == 57: fs[cur][2].append(x[3]) + o = op(x) + if o == 248: fs[cur][3].add(x[1]) + elif o not in (8, 317, 62, 246, 247, 249, 250, 253, 254, 252) and len(x) > 2: fs[cur][3].add(x[2]) + if op(x) == 56: fs[cur][1] = k; cur = None + return fs +def names(ins): return {x[1]: s_dec(x[2:]) for x in ins if op(x) == 5} +def wrappers(tsv): return [l.split('\t') for l in open(tsv).read().splitlines() if l] +def analyse(ins, tsv): + nm = names(ins); fs = funcs(ins); byname = {v: k for k, v in nm.items() if k in fs}; res = [] + for wn, name, fn, ps in wrappers(tsv): + fid = byname.get(wn); callees = fs[fid][2] if fid else None + res.append((wn, name, fid, callees)) + return nm, fs, res +if sys.argv[1] == 'stats': + h, ins = load(sys.argv[2]); nm, fs, res = analyse(ins, sys.argv[3]) + missing = [r[0] for r in res if r[2] is None]; inl = [r[0] for r in res if r[2] and not r[3]] + multi = [r[0] for r in res if r[3] and len(r[3]) != 1] + callee = collections.Counter(r[3][0] for r in res if r[3] and len(r[3]) == 1) + wrong = [(r[0], nm.get(r[3][0])) for r in res if r[3] and len(r[3]) == 1 and nm.get(r[3][0]) != r[1]] + print('functions %d, wrappers found %d of %d, missing %d, inlined (no call) %d, not-one-call %d' % (len(fs), len(res) - len(missing), len(res), len(missing), len(inl), len(multi))) + print('distinct callees %d, callee shared by >1 wrapper %d' % (len(callee), sum(1 for c in callee.values() if c > 1))) + print('callee OpName != source name: %d %s' % (len(wrong), wrong[:4])) + calls = sum(len(f[2]) for f in fs.values()); print('total OpFunctionCall %d; non-wrapper functions %d' % (calls, len(fs) - len(res) + len(missing))) + print('sample', [(r[0], nm.get(r[3][0]) if r[3] else None) for r in res[:3]], 'missing sample', missing[:3], 'inlined sample', inl[:3]) + sys.exit(0) +_, src, dst, tsv, mode = sys.argv[1:6] +h, ins = load(src); nm, fs, res = analyse(ins, tsv) +drop_k = set(); drop_ids = set(); setname = {}; retarget = {} +for wn, name, fid, callees in res: + if fid is None or not callees or len(callees) != 1: sys.exit('refuse: wrapper %s is not one call' % wn) + a, b, _, ids = fs[fid]; drop_k.update(range(a, b + 1)); drop_ids |= ids | {fid} + setname[callees[0]] = name; retarget[fid] = callees[0] +drop_ids |= set(retarget) +outi = []; named = set() +for k, x in enumerate(ins): + if k in drop_k: continue + o = op(x) + if o == 17 and x[1] not in (1, 5): continue + if o == 10: continue + if o == 5 and x[1] in setname: x = [0] + [x[1]] + s_enc(setname[x[1]]); x[0] = (len(x) << 16) | 5; named.add(x[1]) + elif o in (5, 6) and x[1] in drop_ids: continue + if o == 71 and x[1] in drop_ids: + if mode == 'export' and x[1] in retarget and x[2] == 41: x = [x[0], retarget[x[1]]] + x[2:] + else: continue + outi.append(x) +for fid, name in setname.items(): + if fid not in named: outi.insert(next(i for i, x in enumerate(outi) if op(x) == 5), [((2 + len(s_enc(name))) << 16) | 5, fid] + s_enc(name)) +w = h + [v for x in outi for v in x]; open(dst, 'wb').write(struct.pack('<%dI' % len(w), *w)) +print('edit %s: dropped %d wrapper functions, renamed %d callees, kept %d instructions' % (mode, len(res), len(setname), len(outi))) diff --git a/docs/research/native-shader-probes/overload-wrappers/wrap.sh b/docs/research/native-shader-probes/overload-wrappers/wrap.sh new file mode 100644 index 00000000..65d6360c --- /dev/null +++ b/docs/research/native-shader-probes/overload-wrappers/wrap.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +# Imagination probe: build-only export wrappers -> dxc lib_6_3 -spirv -> SPIR-V edit -> SPIRV-Cross ES. /src = CultLib. +set -u; P=/tmp/p; W=/tmp/w; mkdir -p $W/tools; cd $W +step() { echo; echo "=== $*"; } +export DEBIAN_FRONTEND=noninteractive +apt-get update -qq >/dev/null && apt-get install -y -qq --no-install-recommends ca-certificates curl git cmake g++ make python3 \ + mesa-vulkan-drivers libvulkan-dev glslang-tools spirv-tools >/dev/null 2>&1; echo "apt exit $?" +curl -sL --fail -o dxc.tgz https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.9.2607/linux_dxc_2026_07_29.x86_x64.tar.gz +echo "dxc sha ok: $(sha256sum dxc.tgz | cut -c1-64 | grep -c 55665c87824051ed4774ff3280a79ccbbb7d39243b9736ca5e98222134112d54)" +mkdir -p tools/dxc && tar xzf dxc.tgz -C tools/dxc; DXC=$(find tools/dxc -name dxc -type f | head -1) +git clone -q --depth 1 --branch vulkan-sdk-1.4.363.0 https://github.com/KhronosGroup/SPIRV-Cross.git tools/sc +cmake -S tools/sc -B tools/scb -DCMAKE_BUILD_TYPE=Release -DSPIRV_CROSS_ENABLE_TESTS=OFF -DSPIRV_CROSS_CLI=ON >/dev/null && cmake --build tools/scb --target spirv-cross -j4 >/dev/null 2>&1; SC=tools/scb/spirv-cross; ls $SC >/dev/null && echo "spirv-cross built" +SH=/src/packages/cultmath/shaders +step "1 wrappers" +python3 $P/wrapgen.py $SH shw; head -3 shw/cm_wrappers.hlsl | cut -c1-160; grep -c '' shw/wrappers.tsv +echo "source defs per overloaded name: $(cut -f2 shw/wrappers.tsv | sort | uniq -c | awk '$1>1{n++; d+=$1} END{print n" names, "d" defs"}')" +step "2 dxc lib_6_3 on source plus wrappers" +for v in default Od; do f=""; [ $v = Od ] && f="-Od" + $DXC -T lib_6_3 -HV 2021 -spirv -fspv-target-env=universal1.5 $f -I shw shw/cm_wrappers.hlsl -Fo w.$v.spv 2>&1 | head -3; echo "[$v] dxc exit ${PIPESTATUS[0]}" + [ -s w.$v.spv ] && python3 $P/spvedit.py stats w.$v.spv shw/wrappers.tsv; done +V=default; python3 $P/spvedit.py stats w.default.spv shw/wrappers.tsv | grep -q 'inlined (no call) 0,' || V=Od; echo "using variant $V" +step "3 SPIR-V edit, validate, SPIRV-Cross ES 310" +for m in drop export; do python3 $P/spvedit.py edit w.$V.spv e.$m.spv shw/wrappers.tsv $m + spirv-val --target-env spv1.5 e.$m.spv 2>&1 | head -2; echo "[$m] val exit ${PIPESTATUS[0]}" + $SC e.$m.spv --es --version 310 --output e.$m.glsl 2>&1 | head -2; echo "[$m] spirv-cross exit ${PIPESTATUS[0]}, lines $(wc -l < e.$m.glsl 2>/dev/null)" + spirv-dis e.$m.spv | grep -E 'OpCapability|OpExtension' | tr -s ' ' | sort | uniq -c | tr '\n' ' '; echo; done +cmp -s e.drop.glsl e.export.glsl && echo "drop and export outputs identical" || echo "drop and export outputs DIFFER" +for m in drop export; do G=e.$m.glsl; [ -s $G ] || continue; python3 - $G shw/wrappers.tsv <<'PY' +import re,sys,collections +g=open(sys.argv[1]).read(); rows=[l.split('\t') for l in open(sys.argv[2]).read().splitlines() if l] +src=collections.Counter(r[1] for r in rows) +defs=re.findall(r'(?m)^(?:\w+ )*?(\w+) (\w+)\(([^)]*)\)\n\{',g); out=collections.Counter(d[1] for d in defs) +print(sys.argv[1],'defs',len(defs),'cultmath_ defs',sum(v for k,v in out.items() if k.startswith('cultmath_')),'source defs',sum(src.values())) +print(' names whose def count differs from source:',[(k,src[k],out.get(k,0)) for k in src if src[k]!=out.get(k,0)][:8]) +print(' non-source names emitted:',[k for k in out if k not in src][:10],' cmw in text:',g.count('cmw'),' suffixed _N cultmath names:',len(re.findall(r'\bcultmath_\w+_\d+\(',g))) +print(' prologue:',' | '.join(l for l in g.split('\n')[:6] if l.startswith('#'))[:200], ' main:', g.count('void main')) +PY +done +G=e.export.glsl; echo "--- cultmath_lerp and cultmath_saturate as emitted:"; grep -E '^\w+ cultmath_(lerp|saturate)\(' $G +step "3b glslang ES 3.00 fragment, call sites resolve per overload" +sed -E '/^#version/d; /^#ifdef SPIRV_CROSS/d; /^#endif/d; /^layout\(local_size/d' $G | awk 'BEGIN{s=0} /^void main\(\)/{s=1} s==0{print} s==1&&/^\}/{s=0}' > lib.body.glsl +{ printf '#version 300 es\nprecision highp float;\nprecision highp int;\n'; cat lib.body.glsl; printf 'out highp vec4 c;\nvoid main() { vec3 p = gl_FragCoord.xyz; float a = cultmath_lerp(1.0, 2.0, p.x); vec3 b = cultmath_lerp(p, p.yzx, vec3(0.5)); vec4 s = cultmath_saturate(vec4(p, a)); c = vec4(b, cultmath_saturate(a)) + s + vec4(cultmath_snoise(p)); }\n'; } > es300.frag +glslangValidator es300.frag > es300.txt 2>&1; echo "glslang ES 3.00 fragment: exit $? $(grep -m3 ERROR es300.txt | tr '\n' ' ' | cut -c1-300)" +sed -i 's/cultmath_saturate(a))/cultmath_saturate(ivec2(1)))/' es300.frag; glslangValidator es300.frag > neg.txt 2>&1; echo "negative (no ivec2 overload) refused: exit $? $(grep -m1 ERROR neg.txt | cut -c1-160)" +step "4 split, constants, capability strip" +python3 $P/split.py $SH $G $W/split 2>&1 | head -6 +for combo in "core" "core cycles" "core phacelle" "core cycles phacelle"; do f=$W/combo.frag; { printf '#version 300 es\nprecision highp float;\nprecision highp int;\n'; for c in $combo; do cat $W/split/$c.glsl; done; printf 'out highp vec4 c;\nvoid main() { c = vec4(cultmath_snoise(gl_FragCoord.xyz)) + vec4(cultmath_lerp(gl_FragCoord.xyz, vec3(1.0), vec3(0.5)), 1.0); }\n'; } > $f; glslangValidator $f > $W/c.txt 2>&1; echo "glslang [$combo]: exit $? $(grep -m2 ERROR $W/c.txt | tr '\n' ' ' | cut -c1-200)"; done +echo "static const lines: $(grep -hcE '^static const' $SH/*.hlsl | awk '{s+=$1}END{print s}'); of form 'static const float CULTMATH_X = lit;': $(grep -hcE '^static const float CULTMATH_\w+ = [-0-9.eEfx]+;' $SH/*.hlsl | awk '{s+=$1}END{print s}'); CULTMATH_ in output $(grep -c 'CULTMATH_' $G); in committed glsl $(cat $SH/*.glsl | grep -cE '^(const )?\w* ?float CULTMATH_')" +DXC_PATH=$DXC bash $P/lava.sh +echo PROBE-DONE diff --git a/docs/research/native-shader-probes/overload-wrappers/wrapgen.py b/docs/research/native-shader-probes/overload-wrappers/wrapgen.py new file mode 100644 index 00000000..e0a4cbf8 --- /dev/null +++ b/docs/research/native-shader-probes/overload-wrappers/wrapgen.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Probe: build-only export wrappers. One exported, uniquely named wrapper per top-level cultmath_ definition +(texture-taking ones skipped). Source is copied unchanged. usage: wrapgen.py +Writes /cm_wrappers.hlsl and /wrappers.tsv (wrapper, name, file, params).""" +import os, re, sys, shutil +sh, out = sys.argv[1:3]; shutil.copytree(sh, out, dirs_exist_ok=True) +SIG = re.compile(r'(?m)^(\w+)\s+(cultmath_\w+)\s*\(([^)]*)\)') +files = ['CultMath.hlsl', 'CultMath.Interval.hlsl', 'CultMath.Affine.hlsl', 'CultMath.Cycles.hlsl', 'CultMath.Phacelle.hlsl'] +w = ['#include "CultMath.hlsl"']; rows = []; k = 0 +for fn in files: + for m in SIG.finditer(open(os.path.join(sh, fn)).read()): + ret, name, ps = m.group(1), m.group(2), m.group(3) + if re.search(r'Texture|Sampler', ps): continue + params = [p.strip() for p in ps.split(',') if p.strip()] + args = [re.split(r'\s+', p)[-1] for p in params] + wn = 'cmw%03d_%s' % (k, name); k += 1 + call = '%s(%s)' % (name, ', '.join(args)) + w.append('export %s %s(%s) { %s%s; }' % (ret, wn, ', '.join(params), '' if ret == 'void' else 'return ', call)) + rows.append('\t'.join([wn, name, fn, ', '.join(params)])) +open(os.path.join(out, 'cm_wrappers.hlsl'), 'w').write('\n'.join(w) + '\n') +open(os.path.join(out, 'wrappers.tsv'), 'w').write('\n'.join(rows) + '\n') +print('wrappers', k) diff --git a/docs/research/native-shader-probes/probe.sh b/docs/research/native-shader-probes/probe.sh new file mode 100644 index 00000000..74a65d18 --- /dev/null +++ b/docs/research/native-shader-probes/probe.sh @@ -0,0 +1,81 @@ +#!/usr/bin/env bash +# Probe job, runs in ubuntu:24.04 with /src = CultLib at the probed revision. Q1 library path, Q2 lavapipe runs. +set -u +P=/tmp/p; W=/tmp/w; mkdir -p $W/fam $W/tools; cd $W +step() { echo; echo "=== $*"; } +step apt +export DEBIAN_FRONTEND=noninteractive +apt-get update -qq >/dev/null && apt-get install -y -qq --no-install-recommends ca-certificates curl git cmake g++ make python3 \ + mesa-vulkan-drivers libvulkan-dev vulkan-tools glslang-tools spirv-tools >/dev/null 2>&1; echo "apt exit $?" +dpkg-query -W -f='${Package} ${Version}\n' mesa-vulkan-drivers glslang-tools spirv-tools libvulkan-dev +step dxc +url=$(curl -s https://api.github.com/repos/microsoft/DirectXShaderCompiler/releases/tags/v1.9.2607 | python3 -c "import json,sys;print([a['browser_download_url'] for a in json.load(sys.stdin)['assets'] if 'linux' in a['name'] and a['name'].endswith('.tar.gz')][0])") +echo "$url"; curl -sL --fail -o dxc.tgz "$url" && mkdir -p tools/dxc && tar xzf dxc.tgz -C tools/dxc; DXC=$(find tools/dxc -name dxc -type f | head -1); echo "DXC=$DXC"; $DXC --version 2>&1 | head -2 +step spirv-cross +git clone -q --depth 1 https://github.com/KhronosGroup/SPIRV-Cross.git tools/sc && git -C tools/sc log -1 --format='SPIRV-Cross %H %cs' && \ + cmake -S tools/sc -B tools/scb -DCMAKE_BUILD_TYPE=Release -DSPIRV_CROSS_ENABLE_TESTS=OFF >/dev/null && cmake --build tools/scb --target spirv-cross -j4 >/dev/null 2>&1; SC=tools/scb/spirv-cross; ls -la $SC | cut -c1-120 +SH=/src/packages/cultmath/shaders +step "Q1a dxc library SPIR-V, no wrapper (lib_6_6, vulkan1.2)" +$DXC -T lib_6_6 -HV 2021 -spirv -fspv-target-env=vulkan1.2 -I $SH $SH/CultMath.hlsl -Fo lib.spv 2>&1 | head -8; echo "dxc exit ${PIPESTATUS[0]}" +[ -f lib.spv ] && { spirv-dis lib.spv -o lib.spvasm; echo "functions: $(grep -c ' = OpFunction ' lib.spvasm) exports: $(grep -c 'LinkageAttributes.*Export' lib.spvasm) entrypoints: $(grep -c OpEntryPoint lib.spvasm)"; } +step "Q1b dxc library with 'export' added to every top-level cultmath_ definition" +python3 - "$SH" <<'PY' +import re,sys,os,shutil +src=sys.argv[1]; dst='/tmp/w/shx'; shutil.copytree(src,dst,dirs_exist_ok=True) +n=0 +for fn in os.listdir(dst): + if not fn.endswith('.hlsl'): continue + t=open(os.path.join(dst,fn)).read() + t2,k=re.subn(r'(?m)^(?!static|export)(\w+(?:\dx\d)?\s+cultmath_\w+\s*\()', r'export \1', t); n+=k + open(os.path.join(dst,fn),'w').write(t2) +print('export keywords added', n) +PY +for v in "universal1.5" "vulkan1.2 -Vd" "vulkan1.3 -Vd"; do echo "--- variant: -fspv-target-env=$v"; rm -f libx.spv + $DXC -T lib_6_6 -HV 2021 -spirv -fspv-target-env=$v -I shx shx/CultMath.hlsl -Fo libx.spv 2>&1 | head -4; echo "dxc exit ${PIPESTATUS[0]}" + [ -s libx.spv ] && { spirv-dis libx.spv -o libx.spvasm; echo "functions: $(grep -c ' = OpFunction ' libx.spvasm) exports: $(grep -c 'LinkageAttributes.*Export' libx.spvasm) OpName cultmath_: $(grep -c 'OpName.*"cultmath_' libx.spvasm) Fma: $(grep -c ' Fma ' libx.spvasm) NoContraction: $(grep -c NoContraction libx.spvasm)"; spirv-val --target-env vulkan1.2 libx.spv 2>&1 | head -2; break; } +done +LIB=libx.spv +step "Q1c SPIRV-Cross ES output of $LIB" +for v in 300 310; do $SC $LIB --es --version $v --output lib$v.glsl 2>&1 | head -3; echo "spirv-cross --es --version $v exit ${PIPESTATUS[0]}"; done +for v in 300 310; do [ -s lib$v.glsl ] || continue + echo "lib$v.glsl: $(wc -l < lib$v.glsl) lines; defs named cultmath_: $(grep -cE '^\w+ cultmath_\w+\(' lib$v.glsl); distinct names: $(grep -oE '^\w+ cultmath_\w+\(' lib$v.glsl | sed -E 's/^\w+ //' | sort -u | wc -l); suffixed _N names: $(grep -oE '^\w+ cultmath_\w+_[0-9]+\(' lib$v.glsl | wc -l); _NNN temporaries: $(grep -oE '\b_[0-9]+\b' lib$v.glsl | wc -l); precision lines: $(grep -c precision lib$v.glsl); main: $(grep -c 'void main' lib$v.glsl)"; done +echo "committed CultMath.glsl: $(wc -l < $SH/CultMath.glsl) lines; defs $(grep -cE '^\w+ cultmath_\w+\(' $SH/CultMath.glsl); distinct names $(grep -oE '^\w+ cultmath_\w+\(' $SH/CultMath.glsl | sed -E 's/^\w+ //' | sort -u | wc -l)" +F=$(ls lib310.glsl lib300.glsl 2>/dev/null | head -1); [ -n "$F" ] && { echo "--- head of $F"; head -12 $F; echo "--- cultmath_snoise(vec3) as emitted (first 25 lines)"; awk '/^float cultmath_snoise\(/{p=1} p{print; if(++n>=25) exit}' $F; } +for v in 300 310; do [ -s lib$v.glsl ] && { glslangValidator -S comp lib$v.glsl >gv$v.txt 2>&1; echo "glslang -S comp lib$v.glsl exit $? : $(head -3 gv$v.txt | tr '\n' ' ' | cut -c1-300)"; }; done +step "Q2 lavapipe runner" +gcc -O2 -o vkrun $P/vkrun.c -lvulkan && echo "vkrun built" +python3 $P/fam.py gen /src/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json fam +cat $SH/CultMath.glsl $SH/CultMath.Cycles.glsl $SH/CultMath.Phacelle.glsl > all.glsl +python3 - <<'PY' +import json; print('families', len(json.load(open('/tmp/w/fam/manifest.json')))) +PY +ok_h=0; ok_g=0; fail=0; first=1 +for h in fam/*.hlsl; do t=${h%.hlsl}; tag=$(basename $t) + n=$(python3 -c "import json;m={x['tag']:x for x in json.load(open('fam/manifest.json'))}['$tag'];print(m['n'],m['nout'])") + if $DXC -T cs_6_0 -E main -HV 2021 -spirv -fspv-target-env=vulkan1.2 -I $SH $h -Fo $t.h.spv >$t.h.log 2>&1; then + if [ $first = 1 ]; then VKRUN_INFO=1 ./vkrun $t.h.spv $t.in $t.hlsl.out $n; first=0; else ./vkrun $t.h.spv $t.in $t.hlsl.out $n; fi && ok_h=$((ok_h+1)) || echo "run fail hlsl $tag" + else fail=$((fail+1)); echo "dxc fail $tag: $(head -2 $t.h.log | tr '\n' ' ' | cut -c1-200)"; fi + { printf '#version 310 es\nprecision highp float;\nprecision highp int;\n'; cat all.glsl $t.body.glsl; } > $t.comp + if glslangValidator -V --target-env vulkan1.2 -o $t.g.spv $t.comp >$t.g.log 2>&1; then ./vkrun $t.g.spv $t.in $t.glsl.out $n && ok_g=$((ok_g+1)) || echo "run fail glsl $tag" + else echo "glslang fail $tag: $(grep -m2 ERROR $t.g.log | tr '\n' ' ' | cut -c1-200)"; fi +done +echo "ran: hlsl->dxc->lavapipe $ok_h, committed glsl->glslang->lavapipe $ok_g, dxc compile failures $fail" +echo "dxc-compute Fma total: $(for s in fam/*.h.spv; do spirv-dis $s | grep -c ' Fma '; done | python3 -c "import sys;print(sum(int(l) for l in sys.stdin))")" +python3 $P/fam.py cmp /src/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json fam hlsl +python3 $P/fam.py cmp /src/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json fam glsl +python3 - <<'PY2' +import os,filecmp +fs=sorted(f[:-9] for f in os.listdir('/tmp/w/fam') if f.endswith('.hlsl.out')) +same=sum(filecmp.cmp('/tmp/w/fam/%s.hlsl.out'%f,'/tmp/w/fam/%s.glsl.out'%f,shallow=False) for f in fs if os.path.exists('/tmp/w/fam/%s.glsl.out'%f)) +print('lavapipe: HLSL-path and GLSL-path outputs bit-identical in',same,'of',len(fs),'families') +PY2 +t0=$(date +%s); for h in fam/*.h.spv; do t=${h%.h.spv}; n=$(python3 -c "import json;m={x['tag']:x for x in json.load(open('fam/manifest.json'))}['$(basename $t)'];print(m['n'],m['nout'])"); ./vkrun $h $t.in $t.rerun.out $n; cmp -s $t.rerun.out $t.hlsl.out || echo "NONDETERMINISTIC $(basename $t)"; done; echo "rerun of 105 SPIR-V modules on lavapipe: $(( $(date +%s) - t0 ))s, determinism check done" +step "Q2b SPIRV-Cross ES 3.10 library through glslang on lavapipe (only if Q1 produced one)" +if [ -s lib310.glsl ]; then sed -E '/^#version/d; /^void main\(\)/,/^\}/d' lib310.glsl > lib.body.glsl; okl=0 + for b in fam/*.body.glsl; do t=${b%.body.glsl}; tag=$(basename $t); n=$(python3 -c "import json;m={x['tag']:x for x in json.load(open('fam/manifest.json'))}['$tag'];print(m['n'],m['nout'])") + { printf '#version 310 es\nprecision highp float;\nprecision highp int;\n'; cat lib.body.glsl $b; } > $t.l.comp + glslangValidator -V --target-env vulkan1.2 -o $t.l.spv $t.l.comp >$t.l.log 2>&1 && ./vkrun $t.l.spv $t.in $t.lib.out $n && okl=$((okl+1)) + done; echo "lib path ran $okl"; grep -h -m1 ERROR fam/*.l.log | sort | uniq -c | sort -rn | head -5 + python3 $P/fam.py cmp /src/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json fam lib | head -15 +fi +echo PROBE-DONE diff --git a/docs/research/native-shader-probes/strict-form/nc.py b/docs/research/native-shader-probes/strict-form/nc.py new file mode 100644 index 00000000..4771b66c --- /dev/null +++ b/docs/research/native-shader-probes/strict-form/nc.py @@ -0,0 +1,11 @@ +import re,sys +src,dst=sys.argv[1:3] +L=open(src).read().split('\n') +ids=[] +for l in L: + m=re.match(r'\s*(%\w+) = Op(FMul|FAdd|FSub|VectorTimesScalar|Dot)\b',l) + if m: ids.append(m.group(1)) +i=next(k for k,l in enumerate(L) if re.search(r'= OpType',l)) +L[i:i]=[' OpDecorate %s NoContraction'%x for x in ids] +open(dst,'w').write('\n'.join(L)) +print(src,len(ids)) diff --git a/docs/research/native-shader-probes/strict-form/probe1.sh b/docs/research/native-shader-probes/strict-form/probe1.sh new file mode 100644 index 00000000..f0baa154 --- /dev/null +++ b/docs/research/native-shader-probes/strict-form/probe1.sh @@ -0,0 +1,19 @@ +set -e +apt-get update -qq >/dev/null; apt-get install -y -qq --no-install-recommends python3 spirv-tools >/dev/null 2>&1 +P=packages/cultmath/tools +python3 - <<'PY' +p='packages/cultmath/tools/device/run-lavapipe.sh' +s=open(p).read() +k='python3 "$DEV/gen.py" "$W/work" "$CM"\n' +s=s.replace(k,k+'sed -i -E "s/[.](cos|sin)([^A-Za-z0-9_])/._\1\2/g" "$W"/work/*.comp\ngrep -E "^f10[34]\t" "$W/work/manifest.txt" >"$W/work/m2"; mv "$W/work/m2" "$W/work/manifest.txt"\n') +open(p,'w').write(s) +PY +bash $P/glsl/build-glsl.sh /tmp/glslout >/dev/null +GLSL_DIR=/tmp/glslout bash $P/device/run-lavapipe.sh 2>&1 | tail -4 || true +W=/tmp/device/work +for t in f103 f104; do for r in h g; do + spirv-dis --raw-id $W/$t.$r.spv -o /tmp/$t.$r.dis + echo "== $t $r: NoContraction $(grep -c NoContraction /tmp/$t.$r.dis) Fma $(grep -c ' Fma ' /tmp/$t.$r.dis) FMul $(grep -c OpFMul /tmp/$t.$r.dis) FAdd $(grep -c OpFAdd /tmp/$t.$r.dis) FSub $(grep -c OpFSub /tmp/$t.$r.dis) lines $(wc -l /dev/null; apt-get install -y -qq --no-install-recommends python3 spirv-tools >/dev/null 2>&1 +cat >/tmp/nc.py <<'PYEOF' +import re,sys +src,dst=sys.argv[1:3] +L=open(src).read().split('\n') +ids=[] +for l in L: + m=re.match(r'\s*(%\w+) = Op(FMul|FAdd|FSub|VectorTimesScalar|Dot)\b',l) + if m: ids.append(m.group(1)) +i=next(k for k,l in enumerate(L) if re.search(r'= OpType',l)) +L[i:i]=[' OpDecorate %s NoContraction'%x for x in ids] +open(dst,'w').write('\n'.join(L)) +print(src,len(ids)) +PYEOF +P=packages/cultmath/tools +python3 - <<'PY' +p='packages/cultmath/tools/device/run-lavapipe.sh' +s=open(p).read() +k='python3 "$DEV/gen.py" "$W/work" "$CM"\n' +s=s.replace(k,k+'sed -i -E "s/[.](cos|sin)([^A-Za-z0-9_])/._\1\2/g" "$W"/work/*.comp\ngrep -E "^f10[34]\t" "$W/work/manifest.txt" >"$W/work/m2"; mv "$W/work/m2" "$W/work/manifest.txt"\n') +open(p,'w').write(s) +PY +bash $P/glsl/build-glsl.sh /tmp/glslout >/dev/null +GLSL_DIR=/tmp/glslout bash $P/device/run-lavapipe.sh 2>&1 | tail -4 || true +W=/tmp/device/work; R=/tmp/device +mkdir -p $R/nc/lavapipe-hlsl $R/nc/lavapipe-glsl +while IFS=$'\t' read -r tag _ _ n _ wout; do + for r in h g; do + spirv-dis --raw-id $W/$tag.$r.spv -o /tmp/$tag.$r.dis + python3 /tmp/nc.py /tmp/$tag.$r.dis /tmp/$tag.$r.nc.dis + spirv-as --target-env vulkan1.2 /tmp/$tag.$r.nc.dis -o $W/$tag.$r.nc.spv + spirv-val --target-env vulkan1.2 $W/$tag.$r.nc.spv + d=hlsl; [ $r = g ] && d=glsl + $R/vkrun $W/$tag.$r.nc.spv $W/$tag.in $R/nc/lavapipe-$d/$tag.out $n $wout >/dev/null + done + echo "$tag nc: hlsl==glsl $(cmp -s $R/nc/lavapipe-hlsl/$tag.out $R/nc/lavapipe-glsl/$tag.out && echo YES || echo NO); nc-hlsl==plain-hlsl $(cmp -s $R/nc/lavapipe-hlsl/$tag.out $R/results/lavapipe-hlsl/$tag.out && echo YES || echo NO); nc-glsl==plain-glsl $(cmp -s $R/nc/lavapipe-glsl/$tag.out $R/results/lavapipe-glsl/$tag.out && echo YES || echo NO)" +done <$W/manifest.txt +cp /tmp/device/vkrun /tmp/ 2>/dev/null || true +export CULTMATH_DEVICE_NAME=$(sort -u $R/device.txt | head -1 | sed 's/^device=//') CULTMATH_DEVICE_IDENTITY=x CULTMATH_WRITE_DEVICE_BOUNDS=1 +for v in results nc; do + export CULTMATH_DEVICE_RESULTS=$R/$v + dotnet test packages/cultmath/tests/CultMath.Tests --no-build --filter "FullyQualifiedName~GlslMirrorTests.DeviceResultsHoldFixture" >/tmp/judge.$v.log 2>&1 || true + echo "== judge $v"; grep -E "^(lavapipe-)" packages/cultmath/tests/CultMath.Tests/fixtures/device-bounds-lavapipe.txt | grep -E " 10[34] " | cut -f1,2,5,6 || tail -5 /tmp/judge.$v.log + tail -3 /tmp/judge.$v.log +done diff --git a/docs/research/native-shader-probes/strict-form/probe3.sh b/docs/research/native-shader-probes/strict-form/probe3.sh new file mode 100644 index 00000000..d1585a9e --- /dev/null +++ b/docs/research/native-shader-probes/strict-form/probe3.sh @@ -0,0 +1,53 @@ +set -e +apt-get update -qq >/dev/null; apt-get install -y -qq --no-install-recommends python3 spirv-tools >/dev/null 2>&1 +cat >/tmp/nc.py <<'PYEOF' +import re,sys +src,dst=sys.argv[1:3] +L=open(src).read().split('\n') +ids=[] +for l in L: + m=re.match(r'\s*(%\w+) = Op(FMul|FAdd|FSub|VectorTimesScalar|Dot)\b',l) + if m: ids.append(m.group(1)) +i=next(k for k,l in enumerate(L) if re.search(r'= OpType',l)) +L[i:i]=[' OpDecorate %s NoContraction'%x for x in ids] +open(dst,'w').write('\n'.join(L)) +print(src,len(ids)) +PYEOF +P=packages/cultmath/tools +python3 - <<'PY' +p='packages/cultmath/tools/device/run-lavapipe.sh' +s=open(p).read() +k='python3 "$DEV/gen.py" "$W/work" "$CM"\n' +s=s.replace(k,k+'sed -i -E "s/[.](cos|sin)([^A-Za-z0-9_])/._\1\2/g" "$W"/work/*.comp\ngrep -E "^f10[34]\t" "$W/work/manifest.txt" >"$W/work/m2"; mv "$W/work/m2" "$W/work/manifest.txt"\n') +open(p,'w').write(s) +PY +bash $P/glsl/build-glsl.sh /tmp/glslout >/dev/null +GLSL_DIR=/tmp/glslout bash $P/device/run-lavapipe.sh 2>&1 | tail -4 || true +W=/tmp/device/work; R=/tmp/device +DXC=$(find $R/dxc -name dxc -type f | head -1); export LD_LIBRARY_PATH=$(dirname $DXC)/../lib:$(dirname $DXC) +CM=packages/cultmath +cat >/tmp/cnt.py <<'PYEOF' +import sys,struct +a=open(sys.argv[1],'rb').read();b=open(sys.argv[2],'rb').read() +n=len(a)//4;x=struct.unpack('<%dI'%n,a);y=struct.unpack('<%dI'%n,b) +d=[i for i in range(n) if x[i]!=y[i]] +print(len(d),'of',n,'cols',sorted(set(i%6 for i in d))) +PYEOF +run() { # name spv tag n wout + $R/vkrun $2 $W/$3.in /tmp/o.$1.$3 $4 $5 >/dev/null; } +OPT="--target-env=spv1.5 --eliminate-local-single-store --eliminate-dead-code-aggressive" +while IFS=$' ' read -r tag _ _ n _ wout; do + for r in h g; do spirv-dis --raw-id $W/$tag.$r.spv -o /tmp/$tag.$r.dis; python3 /tmp/nc.py /tmp/$tag.$r.dis /tmp/$tag.$r.nc.dis >/dev/null; spirv-as --target-env vulkan1.2 /tmp/$tag.$r.nc.dis -o $W/$tag.$r.nc.spv; done + # h variants + $DXC -T cs_6_0 -E main -HV 2021 -spirv -fspv-target-env=vulkan1.2 -Od -I $CM/shaders $W/$tag.hlsl -Fo $W/$tag.hOd.spv >/dev/null 2>&1 + spirv-opt $OPT $W/$tag.hOd.spv -o $W/$tag.hOdO.spv + for v in hOd hOdO; do spirv-dis --raw-id $W/$tag.$v.spv -o /tmp/$tag.$v.dis; python3 /tmp/nc.py /tmp/$tag.$v.dis /tmp/$tag.$v.nc.dis >/dev/null; spirv-as --target-env vulkan1.2 /tmp/$tag.$v.nc.dis -o $W/$tag.$v.nc.spv; done + for v in h g hOd hOdO; do run $v $W/$tag.$v.spv $tag $n $wout; run $v.nc $W/$tag.$v.nc.spv $tag $n $wout; done + for v in h hOd hOdO; do + echo "$tag $v vs g: $(python3 /tmp/cnt.py /tmp/o.$v.$tag /tmp/o.g.$tag)" + echo "$tag $v.nc vs g.nc: $(python3 /tmp/cnt.py /tmp/o.$v.nc.$tag /tmp/o.g.nc.$tag)" + done + echo "$tag h.nc vs h: $(python3 /tmp/cnt.py /tmp/o.h.nc.$tag /tmp/o.h.$tag)" + echo "$tag g.nc vs g: $(python3 /tmp/cnt.py /tmp/o.g.nc.$tag /tmp/o.g.$tag)" + echo "$tag hOd.nc vs hOd: $(python3 /tmp/cnt.py /tmp/o.hOd.nc.$tag /tmp/o.hOd.$tag)" +done <$W/manifest.txt diff --git a/docs/research/native-shader-probes/strict-form/probe4.sh b/docs/research/native-shader-probes/strict-form/probe4.sh new file mode 100644 index 00000000..5b521cf9 --- /dev/null +++ b/docs/research/native-shader-probes/strict-form/probe4.sh @@ -0,0 +1,53 @@ +set -e +apt-get update -qq >/dev/null; apt-get install -y -qq --no-install-recommends python3 spirv-tools >/dev/null 2>&1 +cat >/tmp/nc.py <<'PYEOF' +import re,sys +src,dst=sys.argv[1:3] +L=open(src).read().split('\n') +ids=[] +for l in L: + m=re.match(r'\s*(%\w+) = Op(FMul|FAdd|FSub|VectorTimesScalar|Dot)\b',l) + if m: ids.append(m.group(1)) +i=next(k for k,l in enumerate(L) if re.search(r'= OpType',l)) +L[i:i]=[' OpDecorate %s NoContraction'%x for x in ids] +open(dst,'w').write('\n'.join(L)) +print(src,len(ids)) +PYEOF +P=packages/cultmath/tools +python3 - <<'PY' +p='packages/cultmath/tools/device/run-lavapipe.sh' +s=open(p).read() +k='python3 "$DEV/gen.py" "$W/work" "$CM"\n' +s=s.replace(k,k+'sed -i -E "s/[.](cos|sin)([^A-Za-z0-9_])/._\\1\\2/g" "$W"/work/*.comp\n') +open(p,'w').write(s) +PY +bash $P/glsl/build-glsl.sh /tmp/glslout >/dev/null +GLSL_DIR=/tmp/glslout bash $P/device/run-lavapipe.sh 2>&1 | tail -4 || true +set +e +W=/tmp/device/work; R=/tmp/device +DXC=$(find $R/dxc -name dxc -type f | head -1); export LD_LIBRARY_PATH=$(dirname $DXC)/../lib:$(dirname $DXC) +CM=packages/cultmath +for d in plain ncod gis; do mkdir -p $R/$d/lavapipe-hlsl $R/$d/lavapipe-glsl; done +while IFS=$'\t' read -r tag _ _ n _ wout; do + spirv-dis --raw-id $W/$tag.g.spv -o /tmp/g.dis; python3 /tmp/nc.py /tmp/g.dis /tmp/g.nc.dis >/dev/null; spirv-as --target-env vulkan1.2 /tmp/g.nc.dis -o /tmp/g.nc.spv + $DXC -T cs_6_0 -E main -HV 2021 -spirv -fspv-target-env=vulkan1.2 -Od -I $CM/shaders $W/$tag.hlsl -Fo /tmp/hOd.spv >/dev/null 2>&1 + spirv-dis --raw-id /tmp/hOd.spv -o /tmp/hOd.dis; python3 /tmp/nc.py /tmp/hOd.dis /tmp/hOd.nc.dis >/dev/null; spirv-as --target-env vulkan1.2 /tmp/hOd.nc.dis -o /tmp/hOd.nc.spv + $DXC -T cs_6_0 -E main -HV 2021 -spirv -fspv-target-env=vulkan1.2 -Gis -I $CM/shaders $W/$tag.hlsl -Fo /tmp/hGis.spv >/dev/null 2>&1 + spirv-dis --raw-id /tmp/hGis.spv -o /tmp/hGis.dis; python3 /tmp/nc.py /tmp/hGis.dis /tmp/hGis.nc.dis >/dev/null; spirv-as --target-env vulkan1.2 /tmp/hGis.nc.dis -o /tmp/hGis.nc.spv + cp $R/results/lavapipe-hlsl/$tag.out $R/plain/lavapipe-hlsl/; cp $R/results/lavapipe-glsl/$tag.out $R/plain/lavapipe-glsl/ + $R/vkrun /tmp/hOd.nc.spv $W/$tag.in $R/ncod/lavapipe-hlsl/$tag.out $n $wout >/dev/null + $R/vkrun /tmp/g.nc.spv $W/$tag.in $R/ncod/lavapipe-glsl/$tag.out $n $wout >/dev/null + $R/vkrun /tmp/hGis.nc.spv $W/$tag.in $R/gis/lavapipe-hlsl/$tag.out $n $wout >/dev/null + cp $R/ncod/lavapipe-glsl/$tag.out $R/gis/lavapipe-glsl/ + for d in plain ncod gis; do cmp -s $R/$d/lavapipe-hlsl/$tag.out $R/$d/lavapipe-glsl/$tag.out || echo "EQ-FAIL $d $tag"; done +done <$W/manifest.txt +export CULTMATH_DEVICE_WORK=$W CULTMATH_DEVICE_NAME=$(sort -u $R/device.txt | head -1 | sed 's/^device=//') CULTMATH_DEVICE_IDENTITY=x CULTMATH_WRITE_DEVICE_BOUNDS=1 +B=packages/cultmath/tests/CultMath.Tests/fixtures/device-bounds-lavapipe.txt +for v in plain ncod gis; do + export CULTMATH_DEVICE_RESULTS=$R/$v + dotnet test packages/cultmath/tests/CultMath.Tests --no-build --filter "FullyQualifiedName~GlslMirrorTests.DeviceResultsHoldFixture" >/tmp/judge.$v.log 2>&1 || true + grep -aE "Error Message" -A8 /tmp/judge.$v.log | head -14; ls -la $B; cp $B /tmp/bounds.$v; echo "judge $v: $(tail -3 /tmp/judge.$v.log | tr '\n' ' ')" +done +for v in plain ncod gis; do awk -F'\t' -v v=$v '{k=$1; u[k]+=$5; if($5+0>m[k]+0)m[k]=$5; c[k]++} END{for(k in c) print "BOUNDS",v,k,"families",c[k],"maxulp",m[k],"sumulp",u[k]}' /tmp/bounds.$v; done +for v in plain ncod; do awk -F'\t' '{print $1"/"$2"\t"$5}' /tmp/bounds.$v | sort > /tmp/b.$v; done +join -t$'\t' /tmp/b.plain /tmp/b.ncod | awk -F'\t' '$2!=$3{print "ULPDIFF",$1,"plain",$2,"ncod",$3}' | head -60 diff --git a/docs/research/native-shader-probes/vkrun.c b/docs/research/native-shader-probes/vkrun.c new file mode 100644 index 00000000..8cd8d3f8 --- /dev/null +++ b/docs/research/native-shader-probes/vkrun.c @@ -0,0 +1,87 @@ +// Probe runner: one compute dispatch, binding 0 = input uints, binding 1 = output uints. +// usage: vkrun [entry] +#include +#include +#include +#include +#define CK(x) do { VkResult r_ = (x); if (r_ != VK_SUCCESS) { fprintf(stderr, "FAIL %s = %d\n", #x, r_); exit(2); } } while (0) + +static void *slurp(const char *p, size_t *n) { + FILE *f = fopen(p, "rb"); if (!f) { perror(p); exit(2); } + fseek(f, 0, SEEK_END); *n = ftell(f); fseek(f, 0, SEEK_SET); + void *b = malloc(*n ? *n : 4); fread(b, 1, *n, f); fclose(f); return b; +} + +int main(int argc, char **argv) { + if (argc < 6) { fprintf(stderr, "usage\n"); return 2; } + size_t spvn, inn; void *spv = slurp(argv[1], &spvn); void *in = slurp(argv[2], &inn); + unsigned ncases = atoi(argv[4]), ow = atoi(argv[5]); const char *entry = argc > 6 ? argv[6] : "main"; + size_t outn = (size_t)ncases * ow * 4; + + VkApplicationInfo ai = { VK_STRUCTURE_TYPE_APPLICATION_INFO, 0, "probe", 1, "probe", 1, VK_API_VERSION_1_2 }; + VkInstanceCreateInfo ici = { VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, 0, 0, &ai }; + VkInstance inst; CK(vkCreateInstance(&ici, 0, &inst)); + uint32_t np = 1; VkPhysicalDevice pd; vkEnumeratePhysicalDevices(inst, &np, &pd); if (!np) { fprintf(stderr, "no device\n"); return 2; } + VkPhysicalDeviceFloatControlsProperties fc = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES }; + VkPhysicalDeviceProperties2 pp = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, &fc }; + vkGetPhysicalDeviceProperties2(pd, &pp); + if (getenv("VKRUN_INFO")) + printf("device=%s api=%u.%u driver=%u f32: denormPreserve=%u ftz=%u rte=%u rtz=%u signedZeroInfNan=%u\n", + pp.properties.deviceName, VK_VERSION_MAJOR(pp.properties.apiVersion), VK_VERSION_MINOR(pp.properties.apiVersion), + pp.properties.driverVersion, fc.shaderDenormPreserveFloat32, fc.shaderDenormFlushToZeroFloat32, + fc.shaderRoundingModeRTEFloat32, fc.shaderRoundingModeRTZFloat32, fc.shaderSignedZeroInfNanPreserveFloat32); + + float prio = 1; VkDeviceQueueCreateInfo qci = { VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, 0, 0, 0, 1, &prio }; + VkDeviceCreateInfo dci = { VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, 0, 0, 1, &qci }; + VkDevice dev; CK(vkCreateDevice(pd, &dci, 0, &dev)); VkQueue q; vkGetDeviceQueue(dev, 0, 0, &q); + + VkPhysicalDeviceMemoryProperties mp; vkGetPhysicalDeviceMemoryProperties(pd, &mp); + VkBuffer buf[2]; VkDeviceMemory mem[2]; size_t sz[2] = { inn, outn }; void *map[2]; + for (int i = 0; i < 2; i++) { + VkBufferCreateInfo bci = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, 0, 0, sz[i], VK_BUFFER_USAGE_STORAGE_BUFFER_BIT }; + CK(vkCreateBuffer(dev, &bci, 0, &buf[i])); VkMemoryRequirements mr; vkGetBufferMemoryRequirements(dev, buf[i], &mr); + uint32_t t = 0; VkMemoryPropertyFlags want = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + for (; t < mp.memoryTypeCount; t++) if ((mr.memoryTypeBits & (1u << t)) && (mp.memoryTypes[t].propertyFlags & want) == want) break; + VkMemoryAllocateInfo mai = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, 0, mr.size, t }; + CK(vkAllocateMemory(dev, &mai, 0, &mem[i])); CK(vkBindBufferMemory(dev, buf[i], mem[i], 0)); + CK(vkMapMemory(dev, mem[i], 0, sz[i], 0, &map[i])); + } + memcpy(map[0], in, inn); memset(map[1], 0xEE, outn); + + VkDescriptorSetLayoutBinding b[2] = { { 0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, VK_SHADER_STAGE_COMPUTE_BIT }, + { 1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, VK_SHADER_STAGE_COMPUTE_BIT } }; + VkDescriptorSetLayoutCreateInfo lci = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO, 0, 0, 2, b }; + VkDescriptorSetLayout dsl; CK(vkCreateDescriptorSetLayout(dev, &lci, 0, &dsl)); + VkPipelineLayoutCreateInfo plci = { VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, 0, 0, 1, &dsl }; + VkPipelineLayout pl; CK(vkCreatePipelineLayout(dev, &plci, 0, &pl)); + VkShaderModuleCreateInfo smci = { VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, 0, 0, spvn, spv }; + VkShaderModule sm; CK(vkCreateShaderModule(dev, &smci, 0, &sm)); + VkComputePipelineCreateInfo cpci = { VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO, 0, 0, + { VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, 0, 0, VK_SHADER_STAGE_COMPUTE_BIT, sm, entry }, pl }; + VkPipeline pipe; CK(vkCreateComputePipelines(dev, 0, 1, &cpci, 0, &pipe)); + + VkDescriptorPoolSize ps = { VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 2 }; + VkDescriptorPoolCreateInfo dpci = { VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO, 0, 0, 1, 1, &ps }; + VkDescriptorPool dp; CK(vkCreateDescriptorPool(dev, &dpci, 0, &dp)); + VkDescriptorSetAllocateInfo dsai = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO, 0, dp, 1, &dsl }; + VkDescriptorSet ds; CK(vkAllocateDescriptorSets(dev, &dsai, &ds)); + VkDescriptorBufferInfo dbi[2] = { { buf[0], 0, VK_WHOLE_SIZE }, { buf[1], 0, VK_WHOLE_SIZE } }; + VkWriteDescriptorSet w[2]; + for (int i = 0; i < 2; i++) { VkWriteDescriptorSet x = { VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, 0, ds, i, 0, 1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 0, &dbi[i] }; w[i] = x; } + vkUpdateDescriptorSets(dev, 2, w, 0, 0); + + VkCommandPoolCreateInfo cpi = { VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, 0, 0, 0 }; + VkCommandPool cp; CK(vkCreateCommandPool(dev, &cpi, 0, &cp)); + VkCommandBufferAllocateInfo cbai = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, 0, cp, VK_COMMAND_BUFFER_LEVEL_PRIMARY, 1 }; + VkCommandBuffer cb; CK(vkAllocateCommandBuffers(dev, &cbai, &cb)); + VkCommandBufferBeginInfo cbbi = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO }; + CK(vkBeginCommandBuffer(cb, &cbbi)); + vkCmdBindPipeline(cb, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); + vkCmdBindDescriptorSets(cb, VK_PIPELINE_BIND_POINT_COMPUTE, pl, 0, 1, &ds, 0, 0); + vkCmdDispatch(cb, (ncases + 63) / 64, 1, 1); + CK(vkEndCommandBuffer(cb)); + VkSubmitInfo si = { VK_STRUCTURE_TYPE_SUBMIT_INFO, 0, 0, 0, 0, 1, &cb }; + CK(vkQueueSubmit(q, 1, &si, 0)); CK(vkQueueWaitIdle(q)); + FILE *f = fopen(argv[3], "wb"); fwrite(map[1], 1, outn, f); fclose(f); + return 0; +} diff --git a/docs/research/native-shader-testing.md b/docs/research/native-shader-testing.md new file mode 100644 index 00000000..6a8712e7 --- /dev/null +++ b/docs/research/native-shader-testing.md @@ -0,0 +1,178 @@ +# Native shader testing: how established projects check shader numerics without a browser, and what each path proves + +For `cultmath-tapes:question:device-run-driver` (campaign `cultmath-tapes`). Companion to `docs/research/device-capture-runners.md` (CultLib c9d3e672), which covered browser drivers only; not repeated here. +Also serves the operator's question of 2026-10-16 on why CultMath lowers HLSL to GLSL with its own text lowering (section on HLSL to GLSL ES / SPIR-V toolchains). +Gathered by an Eyes pass for Eureka Self, session self-2026-10-16-ag4, 2026-10-16. Facts only; no recommendation. + +Strength marks: [src] read from a primary source text this pass (raw file fetched and read or grepped locally, or a spec PDF converted to text); [doc] vendor or project documentation page read this pass (via a fetch summariser, so check before quoting); [web] search-result summary only, not read in full; [abs] searched, not found. +Nothing was built or run. Dates matter: several repos below are moving; read at HEAD on 2026-10-16. + +## 0. The record + +- [src] Operator, 2026-10-16, verbatim: "There has to be a better way to test shader code than getting a browser involved". An observation that sets research direction, not a design ruling. +- [src] Question `device-run-driver` (viewed in the mind): options committed-captures / playwright-live / both; the runner is a static page that compiles each family's call against `CultMath.glsl`, reads back via RGBA32UI, emits raw bits; C# judges. +- [src] CultMath shader files: `packages/cultmath/shaders/` has `CultMath.hlsl` (673 lines), `CultMath.Affine.hlsl`, `.Cycles.hlsl`, `.Interval.hlsl`, `.Phacelle.hlsl`, and `CultMath.glsl` (900), `.Cycles.glsl`, `.Phacelle.glsl`. HLSL intrinsics seen by grep across the `.hlsl` files: `asuint` (13), `asfloat` (6), `saturate` (2); no `mad`, `fma`, `frexp`, `ldexp`, `precise`, `sincos`, `rcp`, `groupshared`, `#include` hits in the grep (the `GlslLowering.cs` doc comment says the HLSL has "includes" that are inlined). +- [src] The `.glsl` files contain no `precision` statement and no `#version` line (grep found none); a consumer supplies them. +- [src] `GlslLowering.cs` header: the GLSL ES 3.00 files are a regex text transformation of the HLSL; a dialect gap is fixed in the HLSL "in the subset both languages share". + +## 1. Google Amber + +- [doc] README (github.com/google/amber): runs on Vulkan (fully supported); Dawn listed "WIP". A command-line `amber` tool runs script files, reports pass/fail by exit code, can write output buffers and images to files. Says "not an officially supported Google product". AmberScript is the format getting new features; VkScript (the VkRunner syntax) is kept for history, no new features. Build bots check that Amber compiles on several targets; "integration tests don't run on the bots because of bot limitations, so only unit tests run in CI". +- [src] Maintenance: GitHub API `google/amber`: not archived, created 2018-11-13, pushed 2026-09-24, 76 open issues. Last five commits 2026-05-28 to 2026-09-24 (ray query support, acceleration structures, alpha-to-coverage, barrier fixes). +- [doc] AmberScript (docs/amber_script.md): starts `#!amber`. `SHADER compute ` where format is GLSL, HLSL, SPIRV-ASM, SPIRV-HEX, SPIRV-BIN or OPENCL-C, inline, `FILE`, or `VIRTUAL_FILE`; optional `TARGET_ENV`. `PIPELINE compute ... END`. `BUFFER DATA_TYPE [STD140|STD430] DATA ... END | FILL v | SERIES_FROM s INC_BY i`, types include int8..int64, uint8..uint64, float16, float, double, vectors, matrices. `COPY a TO b`. `RUN x y z`. +- [doc] Expectations: `EXPECT IDX EQ|NE|LT|LE|GT|GE `; with tolerance `EXPECT IDX TOLERANCE EQ ` (1 to 4 floats, a trailing `%` makes one relative; components without one use a default); whole-buffer `EQ_BUFFER`, `RMSE_BUFFER ... TOLERANCE `, `EQ_HISTOGRAM_EMD_BUFFER ... TOLERANCE `. Pixel forms `EQ_RGB`, `EQ_RGBA` use 0-255. Comparison is on typed values, not raw bit patterns; a uint32 buffer compared with `EQ` is an exact integer compare. [abs] A ULP-based tolerance form was not found in the AmberScript doc. +- [doc] VkScript (docs/vk_script.md): `probe ssbo` has a `~=` fuzzy-equal comparator and a `tolerance t0 [t1 t2 t3]` command. +- [web] Amber with SwiftShader: a build option `AMBER_ENABLE_SWIFTSHADER`/`AMBER_USE_SWIFTSHADER` builds SwiftShader as a Vulkan ICD; run with `VK_ICD_FILENAMES` pointing at its manifest; `amber -d` style device listing confirms it. [abs] Amber's own CI workflow files were not found at the paths tried (404); whether Amber CI uses lavapipe or SwiftShader was not established. +- [web] Amber lineage: shader test files mirror VkRunner's format; Amber is shipped inside Android's `external/deqp-deps` and Vulkan CTS. + +## 2. Software Vulkan: Mesa lavapipe and SwiftShader + +### 2.1 Conformance and float behaviour + +- [web] Lavapipe announced formally Vulkan 1.2 conformant (Phoronix, May 2022) and Vulkan 1.3 conformant (July 2022; Khronos submission 696, AMD Ryzen 7 1800X, Mesa 22.1). A Mesa issue (#5472, older) complained lavapipe reported a conformance version while not yet conformant; resolution not checked. +- [web] Mesa MR 11739 "WIP: lavapipe: float_controls" (author's words as summarised): passes about 97% of CTS, fails `float_controls...denorm_*_preserve` cases, "llvmpipe/gallivm have no concept of setting a specific denorm mode"; the author said they probably would not continue. Current merged state of float controls in lavapipe: [abs] (the Mesa GitLab pages and `lvp_device.c` were behind bot protection or not at the tried path). +- [web] A separate llvmpipe MR disables denorms for compute shaders to align with fragment shaders, because OpenCL CTS tests "don't expect working denorms". +- [web] SwiftShader commit "Implement VK_KHR_shader_float_controls": at that time SwiftShader exposed no preserve, denorm or rounding controls and set all denorm-preserve and flush-to-zero flags false. Current values: [abs]. +- [doc] Vulkan float controls (core in 1.2): a flush-to-zero flag set means denormals may be flushed, not that they are; preservation needs `shaderDenormPreserveFloat32` and a `DenormPreserve` execution mode on the entry point. Rounding-mode controls do not apply to float to int conversions (always toward zero). +- [web] Mesa lavapipe docs page (docs.mesa3d.org/drivers/lavapipe.html) 404s at the tried URL; the `llvmpipe.html` page was read and says nothing of lavapipe floats. +- [src] D3D11 floating-point rules (learn.microsoft.com, doc dated 2025-02/04): 32-bit ops are within 1 ULP (add, subtract, multiply: 0.5 ULP "applies only to addition, subtraction, and multiplication", hardware may truncate); "Denorms are flushed to sign-preserved zero on input and output of any floating-point mathematical operation" (data movement exempt); min/max flush for comparison but the result may or may not be flushed; fused operations (mad, dp3) are no less accurate than the worst serial ordering with each step allowed 1 ULP; sqrt and rcp 1 ULP, rcp/rsq have their own relaxed requirement; x*1.0, x/1.0, x+-0.0 return x "except denorm flushed"; NaN payload bits not preserved; no exceptions or traps; double precision preserves denorms and follows IEEE 754R; float16 preserves denorms. +- [src] GLSL ES 3.00 spec section 4.5.1 (Khronos PDF, converted locally): highp float is "defined by the IEEE 754 standard for 32-bit" in storage; "Any subnormal (denormalized) value input into a shader or potentially generated by any operation in a shader can be flushed to 0. The rounding mode cannot be set and is undefined." Required precisions: `a+b, a-b, a*b` correctly rounded; `a/b` and `1.0/b` 2.5 ULP for b in [2^-126, 2^126]; `a*b+c` "correctly rounded single operation or sequence of two correctly rounded operations"; `exp`, `exp2` (3 + 2|x|) ULP; `log`, `log2` 3 ULP outside [0.5, 2.0] and absolute error < 2^-21 inside; `inversesqrt` 2 ULP; `sqrt` inherits from `1.0/inversesqrt`; trig and `determinant` have undefined precision; explicit conversions correctly rounded; "rounding mode ... must not affect the result by more than 1 ULP". NaNs and Infs "are not required to be generated". +- [src] GLSL ES 3.10 spec (NVIDIA-hosted copy of the Khronos PDF) repeats the same flush-to-zero sentence (line 3061 of the converted text). +- [src] Table of required ranges in ES 3.00: highp relative precision 2^-24 (as IEEE); mediump minimum range (-2^14, 2^14), relative 2^-10; lowp minimum range (-2, 2), absolute 2^-8. Integers: highp 32-bit; mediump 16 to 32 bits; lowp 9 to 32 bits. "Mediump and lowp ... have maximum range and precision as defined by IEEE 754", so an implementation may run them at 32 bits. + +### 2.2 Who uses software Vulkan in CI + +- [src] wgpu `.github/workflows/ci.yml` (trunk, read via fetch): job `gpu-test` on `windows-2022`, `macos-14`, `ubuntu-24.04`. Linux installs the Vulkan SDK and Mesa (driver named only via the composite action, not visible), sets `LVP_POISON_MEMORY: true`; Windows installs DXC and WARP (`install-warp` action), Agility SDK, Mesa, Vulkan SDK, sets `WGPU_DX12_COMPILER: dxc`. Tests run with `cargo xtask test` (nextest). +- [doc] wgpu `docs/testing.md`: names `LVP_POISON_MEMORY` ("fills all newly initialized memory with a non-zero value"); describes a parameter system that skips or expects failure per adapter; says nothing on float or denorm differences. +- [web] onnxruntime commit replaced Mesa lavapipe with SwiftShader in headless CI because an old lavapipe returned `VK_ERROR_INCOMPATIBLE_DRIVER` when Dawn asked for a Vulkan 1.3 instance; the SwiftShader ICD is built from source there and used by Dawn. +- [web] Dawn/Chromium use the SwiftShader Vulkan ICD for headless runs; ANGLE end2end has a `VULKAN_SWIFTSHADER` config and a `--deqp-egl-display-type=angle-swiftshader` mode (section 4). +- [web] Wine/vkd3d: tests marked broken on WARP; a November 2025 commit disabled 64-bit wave bitwise ops on WARP "known to be buggy"; a merge request says WARP "doesn't emulate faithfully a hardware device". +- [abs] No project was found that commits raw float bit patterns from lavapipe or SwiftShader as a reference. Projects found compare with tolerance, by pixel, or by exact integer. + +## 3. GLSL/HLSL to SPIR-V + +### 3.1 glslang + +- [src] glslang README (read at main): ESSL is a supported front end; compute shaders use `.comp`; stage is inferred from the file extension; C++ and C interfaces exist; JS/WASM build via `-DENABLE_GLSLANG_JS=ON`. Tests: gtest under `gtests/` plus a `runtests` script, expected outputs in `Test/baseResults/`. +- [src] The HLSL front end of glslang is deprecated: README states deprecation, slated for removal in the next major version with at least 18 months' notice, no bug reports accepted. Commit "Deprecate the HLSL front-end." dated 2026-04-16 (GitHub API). This does not touch `dxc -spirv`, a separate compiler. +- [web] Compute shaders need desktop GLSL 4.30 or GLSL ES 3.10 (Mesa error text "Compute shaders require GLSL 4.30 or GLSL ES 3.10"). In ES 3.10 only the last member of a shader storage block may be a runtime-sized array; desktop is looser. +- [src] SPIRV-Cross (section 3.3) throws "At least ESSL 3.10 required for compute shaders." for ES versions under 310. So a `#version 300 es` compute shader does not exist: a GLSL ES 3.00 fragment function ported to compute becomes a 3.10 shader. +- [src] ES 3.10 section 4.7.4: vertex and compute languages have predeclared `precision highp float; precision highp int;`; the fragment language has "no default precision qualifier for floating point types" and `mediump int`. So an unqualified float in a compute shader is highp, while a fragment shader must declare a float precision. +- [src] ES 3.10 and 3.00 share the flush-to-zero sentence and the ULP table for highp (the 3.10 table was not diffed line by line; the denorm sentence was). +- [abs] A published comparison of ES compute against desktop 4.30 numerics (same function, fragment vs compute) was not found. The two specs' highp rules, as read, are the same sentence; what a given driver does per stage is not stated by either spec. + +### 3.2 dxc -spirv + +- [src] DXC `docs/SPIR-V.rst` (235 KB, read by grep): default target environment `vulkan1.0` via `-fspv-target-env`; `-fspv-entrypoint-name=` exists; `min16float`, `min10float`, `min16int`, `min12int`, `min16uint` map to 32-bit types with `RelaxedPrecision` unless `-enable-16bit-types`, which gives real 16-bit types and the `Float16` capability. `lib_6_x` appears only in the raytracing section ("must be compiled as library using lib_6_3/lib_6_4"). [abs] No statement in the doc that a non-raytracing `lib_6_x` library compiles to SPIR-V with exported functions; no statement on denormal execution modes. +- [src] `SPV_KHR_float_controls` is in the supported-extension list; no description of when dxc emits denorm modes (not found by grep of the doc). +- [src] HLSL exposes `asuint`/`asfloat` as bitcasts; in SPIR-V these are `OpBitcast`. (CultMath's use is section 0.) + +### 3.3 SPIRV-Cross (SPIR-V to GLSL ES/HLSL/MSL) + +- [src] README (main): ES example `spirv-cross --version 310 --es test.spv`; sections on HLSL-derived SPIR-V; names glslangValidator's `-e` entry-point flag in an error hint. Active: commits 2026-09-18, 2026-09-22, 2026-10-14. +- [src] `spirv_glsl.cpp`: `#version` is written as `#version es` when `options.es && version > 100`; ES is allowed from 100 up (the `300 es` form is the emitted string); buffer blocks need ES >= 300, `binding` needs >= 310. +- [src] Precision: `backend.allow_precision_qualifiers = options.vulkan_semantics || options.es;` `flags_to_qualifiers_glsl` emits `mediump ` for ids with `RelaxedPrecision`, else `highp `, and omits either when it equals the fragment default; structs and doubles get none. `Options::Fragment` defaults are `default_float_precision = Mediump`, `default_int_precision = Highp` (`spirv_glsl.hpp` lines 196-197). `emit_header()` writes `precision

float;` and `precision

int;` only for fragment shaders when `options.es`. So a function-only library run through `--es` with default options would, in a fragment context, assume mediump float defaults and tag non-relaxed values `highp`. +- [src] Library modules: `spirv_parser.cpp` (main) handles a module with no `OpEntryPoint` but with `OpDecorate ... LinkageAttributes ... Export`: marks `is_library_module`, uses the first exported function as a placeholder entry point with execution model GLCompute, and `spirv_glsl.cpp` emits "each exported function as a normal free function" plus the callees. A module with neither throws "There is no entry point in the SPIR-V module." The code paths exist at HEAD; which release first had them, and whether the output is valid for ES, were not checked. +- [web] A Unity issue reports min16float hints (`min16f as def32` modifier in FXC bytecode) not honoured in SPIR-V/ESSL output (mediump produced where highp was expected). One blog summary says SPIRV-Cross may pick a low default precision unless told otherwise (not authoritative). +- [src] Readability: [abs] no source characterising readability of the emitted GLSL was found; SPIRV-Cross output is generated text with temporaries named `_` unless debug names survive (names come from OpName; not verified for dxc output). + +## 4. Native ANGLE without a browser + +- [doc] ANGLE README: implements EGL 1.5 and GLES 2.0/3.0/3.1 over Vulkan, desktop GL, GLES, D3D9, D3D11, Metal; "Chrome uses ANGLE for all graphics rendering on Windows" and it is the default WebGL backend for Chrome and Firefox on Windows; its shader compiler can emit Desktop GLSL, Vulkan GLSL, HLSL, ESSL. +- [doc] ANGLE `doc/DevSetup.md`: build standalone with `fetch angle`, `gn gen out/Debug`, `autoninja -C out/Debug`; tests, libraries and samples land in `out/Debug`; on Windows default backend is D3D11 (D3D9 otherwise); backend chosen at runtime through `EGL_ANGLE_platform_angle` via `eglGetPlatformDisplayEXT` (`util/EGLWindow.cpp` as example); backends removable via GN args `angle_enable_d3d11` etc. [abs] prebuilt binaries not covered in the doc. +- [src] ANGLE `doc/dEQP.md`: targets `angle_deqp_gles2_tests`, `angle_deqp_gles3_tests`, `angle_deqp_gles31_tests`, `angle_deqp_egl_tests`; renderer chosen with `--deqp-egl-display-type=angle-d3d11 | angle-d3d9 | angle-d3d11-fl93 | angle-gl | angle-gles | angle-metal | angle-swiftshader | angle-vulkan` (same as `--use-angle=X`); default is Vulkan except Apple (OpenGL); test lists come from `third_party/VK-GL-CTS/.../gles3-main.txt`; GoogleTest builds of the same targets run on the bots with expectation files in `src/tests/deqp_support`. +- [src] ANGLE `doc/TestingAndProcesses.md`: angle_end2end_tests expectations live in `src/tests/angle_end2end_tests_expectations.txt` (`SKIP`, `TIMEOUT` only); the WebGL conformance expectations live in the Chromium tree, not the ANGLE tree. +- [web] `angle_end2end_tests` configs include `ES2_D3D11_WARP`, `ES2_D3D11_REFERENCE`, feature-level variants and `VULKAN_SWIFTSHADER`; end2end tests subsume the older angle_tests and standalone tests. +- [doc] ANGLE `EGL_ANGLE_create_context_webgl_compatibility` / `ANGLE_webgl_compatibility` (spec text, Draft): `eglCreateContext` attribute `EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE` adds WebGL validation; shaders with `#version 100` get WebGL 1 rules and `#version 300 es` get WebGL 2 rules. +- [src] Path in D3D11 (`src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp`, main): ANGLE translator emits HLSL, then `D3DCompile` with profile `vs_5_0`/`ps_5_0` style (`getMajorShaderModel`), flags `D3DCOMPILE_OPTIMIZATION_LEVEL2`, plus `D3DCOMPILE_IEEE_STRICTNESS` only `if (workarounds.enableIEEEStrictness)`; on failure retries with `SKIP_VALIDATION`, then `SKIP_OPTIMIZATION`. The HLSL is generated at link time (`DynamicShaderCompilation.md`) because signatures between stages must be known. +- [src] ANGLE `doc/CompilingTranslatorWithEmscripten.md`: the translator alone can be compiled for use from a page (preliminary notes). +- [abs] The `enableIEEEStrictness` workaround's default value in ANGLE and in Chrome was not found. [abs] Whether Chrome's WebGL2 context and a standalone ANGLE EGL context share all translator options and workaround flags was not established (same repository; Chrome applies its own feature flags and the WebGL-compatibility context). +- [abs] No source found for a project that uses a standalone ANGLE `libEGL`/`libGLESv2` as a compute-readback harness; ANGLE's own tests use it as the system under test. +- [src] Context: GLES 3.0 cannot run compute (3.1 adds it); ANGLE advertises 3.1 (README). A WebGL2 fragment readback and an ES 3.1 compute readback are different ANGLE shader paths (pixel-shader HLSL vs compute-shader HLSL). + +## 5. D3D11/D3D12 compute harnesses for HLSL + +- [src] DXC repo `tools/clang/unittests/HLSLExec/` files: `ExecutionTest.cpp`, `HlslExecTestUtils.cpp`, `LongVectors.cpp`, `ShaderOpArithTable.xml`, `ShaderOpTest.cpp` and others; the test project uses TAEF (WEX) test methods. +- [src] `HlslExecTestUtils.cpp`: `useWarpByDefault()` returns true unless `_HLK_CONF` is defined; when the `UseWARP` parameter is set it creates a device from `EnumWarpAdapter` at feature level 11_0, with an optional `WARP_DLL` path to load a specific WARP build. +- [src] `ExecutionTest.cpp`: `DenormBinaryFloatOpTest`/`DenormTertiaryFloatOpTest` read tables from `ShaderOpArithTable.xml#DenormBinaryFloatOpTable`/`DenormTertiaryFloatOpTable` (rows like `FDivDenormFTZ`; columns `ShaderOp.Target`, `ShaderOp.Arguments`, `Validation.Type`, `Validation.Tolerance`, inputs and expected values); a helper `ifdenorm_flushf_eq` accepts either flushed or unflushed results; derivative tests use `CompareFloatULP(..., 1)` with alternative acceptable values. +- [src] `LongVectors.cpp`: validation config `Epsilon(tol)` or `Ulp(tol)`; default is ULP 1.0 for floating-point types, exact for others; failures print the validation type and tolerance. +- [src] DXC's `HLSLExec` tests thus run on WARP by default and on hardware via a flag; tolerances are per-row in data tables. +- [web] Shader Test Framework (KStocky, D3D12, Catch2, HLSL 202x): README says "very experimental"; tests are HLSL functions run through a `ShaderTestFixture`; a device can be hardware or WARP (README read by fetch did not state WARP; a search summary and the Skyrim Community Shaders DeepWiki page did); README does not state its float comparison. Used by Skyrim Community Shaders per a DeepWiki page (AI-generated, unverified). +- [web] An LLVM 2025 dev meeting talk lists "accuracy tolerances" and "NaN/INF/denorm handling" among hard areas for HLSL test writing. +- [web] WARP is Microsoft's recommended D3D11 device for service/server environments; Session 0 services cannot use hardware D3D9 HAL on WDDM (also in the earlier file). +- [abs] WARP's own float conformance statement (denorm flushing, mad fusion) was not found in a primary document; the D3D11 rules in 2.1 are the contract WARP implements. +- [web] vkd3d-proton and Wine's `d3d12` tests mark WARP-specific broken cases (see 2.2). + +## 6. Other paths + +### 6.1 Slang + +- [doc] Targets page (shader-slang.org/slang/user-guide/targets.html): D3D11 (DXBC), D3D12 (DXIL), Vulkan (SPIR-V), OpenGL (GLSL source, SPIR-V, vendor binaries; "only limited support for compiling code for OpenGL"), Metal, CUDA and OptiX, CPU compute ("compute only", "functional, but not feature- or performance-complete"), WebGPU (WGSL, "work in progress"). GLSL ES: not mentioned. +- [doc] `a2-04-glsl-target-specific.md`: version selected by `-profile glsl_` (example `glsl_450`); the GLSL target "is currently less mature than the SPIR-V target and has several known limitations"; known issue with 3-element vector constant-buffer packing. GLSL ES / `300 es`: not mentioned. [abs] A search for Slang emitting `#version 300 es` found nothing. +- [doc] `docs/cpu-target.md`: outputs C++ (`-target cpp`) or executables, shared libraries, host-callable code, object code; in-process execution through `getTargetHostCallable`; default host-callable backend is `slang-llvm` (no file system, no C compiler needed, shader style only), alternatives are system Clang/GCC/Visual Studio via temp files; limitations: no barriers, no user atomics (except compiler-generated 32/64-bit int add), entry points cannot be named `main`, `float16_t` unsupported, limited bounds-check handling; "no content on floating-point semantics". +- [web] Slang can compile to SPIR-V directly or via GLSL (`-emit-spirv-via-glsl`, glslang downstream). + +### 6.2 wgpu / naga + +- [src] naga README table: inputs SPIR-V (primary), WGSL (primary, "fully validated"), GLSL (secondary, "GLSL 440+ and Vulkan semantics only"); outputs SPIR-V, Metal, HLSL ("Shader Model 5.0+"), WGSL (secondary), GLSL (secondary, "GLSL 330+ and GLSL ES 300+"). HLSL is not an input language. naga is a different translator from ANGLE's; wgpu's DX12 path uses naga HLSL output compiled with DXC or FXC (`WGPU_DX12_COMPILER`, ci.yml). +- [src] wgpu CI deletes `naga/tests/out` snapshots before test runs (ci.yml), i.e. naga keeps snapshot-compared output files. + +### 6.3 Tint (Dawn's WGSL compiler) + +- [web] Search snapshots (2020-2021, a CMake-only Dawn fork): Tint reads WGSL (default on) and SPIR-V (`TINT_BUILD_SPV_READER`, off by default); writers for SPIR-V, WGSL, HLSL, MSL, GLSL (GLSL writer added October 2021, validated with glslang). [abs] The current upstream README was not retrievable (404 at tried paths), so current readers and writers are unconfirmed. + +### 6.4 Shader-function unit-test frameworks and GPU-free paths + +- [web] `shadertest` (Kupoman, Python): load a GLSL file, call its functions from pytest; supports bool, int, uint, float and vectors; implementation (GPU context) not read. +- [web] `shdr` (cdave1): experimental CPU emulator for GLSL fragment shaders, translates GLSL to JavaScript, "does not quite match the glsl". `rpu` (Rust crate): a GLSL-like language compiled to WebAssembly for CPU rendering, not full GLSL. HlslUnit (.NET): an interpreter that runs HLSL on the CPU (search summary). +- [web] Blender added infrastructure to run GLSL shader unit tests and shares C++/GLSL source in the GPU module, compiled through the real GPU backend. +- [web] Khronos forum "GLSL Unit" (Google MapsGL team) unit-testing framework for shaders, old, likely dormant. +- [doc] Vulkan Validation Layers `debug_printf`: shaders print through `debugPrintfEXT`; output goes to the validation layer message stream; [web] each a runtime Vulkan layer, not a numeric assertion framework. +- [abs] No GPU-free GLSL ES interpreter with IEEE-faithful float semantics, maintained, and used by a notable project was found. + +## 7. Cross-cutting: tools that produce SPIR-V for sections 1-3 (item 8) + +| Tool | Input | Output | Library with no entry point | Maintenance | +|---|---|---|---|---| +| glslang | GLSL, ESSL, HLSL (deprecated 2026-04-16) | SPIR-V | not covered in README | active (commits 2026-04) | +| dxc `-spirv` | HLSL | SPIR-V | `lib_6_x` only documented for raytracing; `-E` entry otherwise [abs] export behaviour | active repo, wiki and docs | +| SPIRV-Cross | SPIR-V | GLSL (incl. `300 es`, `310 es`), HLSL, MSL | HEAD has library-module path keyed on `LinkageAttributes Export` | active (2026-10-14) | +| Slang | Slang (accepts HLSL-like syntax) | SPIR-V, HLSL, GLSL desktop (`-profile glsl_N`), WGSL (WIP), CPU, others | not examined | active | +| Unity HLSLcc | DX bytecode (DXBC) | GLSL 3.2+, GLSL ES 2.0+ ("OpenGL ES 3.0+" used for Unity), Metal, Vulkan GLSL | n/a (bytecode) | `pushed_at` 2024-07-16, not archived, 30 open issues, README "used to generate all Unity shaders for OpenGL, OpenGL ES 3.0+, Metal, Vulkan"; supports `min16float`, infers sampler precision | +| naga | WGSL, SPIR-V, GLSL 440+ | SPIR-V, WGSL, GLSL ES 300+, HLSL SM5+, MSL | n/a | active (wgpu) | +| Tint | WGSL (SPIR-V reader optional) | SPIR-V, HLSL, MSL, GLSL (per 2021 snapshot) | n/a | unconfirmed | + +- [src] Which can also feed Amber/Vulkan runs: glslang and dxc produce SPIR-V from GLSL/HLSL; Amber itself accepts HLSL and GLSL source in `SHADER` blocks directly (section 1), choosing compilers internally [web: Amber builds against glslang/shaderc; which is used for HLSL not read]. +- [src] Which can emit GLSL ES 3.00 for the web from one source: SPIRV-Cross (`--es --version 300`, with the fragment precision options above), naga (GLSL ES 300+), HLSLcc (GLSL ES from DXBC; `ES 3.0+` per README), Slang (not documented). +- [web] WGSL for the web: naga and Tint write WGSL (naga: "secondary"); Slang WGSL target "work in progress". + +## 8. What each path exercises (stated as facts about the scope of each check) + +| Path | Executes | Compiler/translator in the chain | Float rules in force | What a pass establishes | What it does not | +|---|---|---|---|---|---| +| Amber on lavapipe | SPIR-V on Mesa llvmpipe JIT (CPU) | glslang or dxc/other to SPIR-V, then Mesa NIR/LLVM | Vulkan spec; GLSL-derived SPIR-V denorm handling per Mesa; FMA contraction per Mesa/LLVM | The shader source, as compiled to SPIR-V, computes within the stated tolerance on a Vulkan 1.3 conformant implementation | Behaviour of ANGLE's HLSL, fxc/D3DCompile, NVIDIA D3D11 | +| Amber on SwiftShader | SPIR-V on SwiftShader's JIT (Reactor/Subzero) | same front end | Vulkan spec; float controls reported off (older commit) | same, on a second conforming implementation | same | +| Amber on a real Vulkan GPU | SPIR-V on the driver | same | vendor | The SPIR-V on that driver | WebGL path | +| glslang/SPIRV-Cross text snapshot tests | nothing executed | translators only | none | translation is stable between versions | numerics | +| ANGLE `angle_end2end`/dEQP on D3D11 | GLSL ES via ANGLE translator, HLSL, `D3DCompile` (fxc), NVIDIA D3D11 driver, as in Chrome on Windows | ANGLE as built in the harness (the same codebase Chrome vendors) | D3D11 rules (flush to zero, 1 ULP) over ESSL rules | The ES shader behaviour of that ANGLE build on that driver | Chrome's own flags/feature overrides unless reproduced | +| ANGLE on SwiftShader (`angle-swiftshader`) | GLSL ES via ANGLE to SPIR-V, SwiftShader | ANGLE Vulkan backend | Vulkan | ANGLE's Vulkan translation path, software | ANGLE's D3D11 path | +| D3D11/12 compute on WARP | HLSL via dxc/fxc, WARP CPU rasterizer | Microsoft compiler | D3D rules as implemented by WARP | The HLSL source on a D3D conformant software device | NVIDIA hardware or the WebGL route | +| D3D11/12 compute on GTX 1070 | HLSL via dxc/fxc, NVIDIA driver | | D3D rules, vendor | The HLSL source on that GPU | other vendors | +| wgpu/naga on lavapipe or WARP | WGSL (or SPIR-V in) via naga | naga | WGSL/Vulkan or D3D12 | naga's translation of that source on that device | ANGLE or glslang/dxc paths | +| Slang CPU | Slang to C++ or LLVM, run on the host CPU | Slang | host CPU IEEE with the host compiler's flags (page silent) | Slang source semantics on a CPU | HLSL or GLSL as consumers compile them | +| GLSL-to-CPU emulators/interpreters | the interpreter | the interpreter | the interpreter's host floats | the interpreted source | any real driver | +| Browser WebGL2 (earlier file) | GLSL ES via browser's ANGLE | | | the exact consumer path on that browser/GPU | other browsers/drivers | + +- [src] Spec positions that bound what a conforming-implementation pass can claim: GLSL ES 3.00/3.10 allow flush of subnormals to zero at any time, undefined rounding, `a*b+c` either fused or two roundings, and undefined trig precision; D3D11 requires flushing subnormals on math input/output and allows fused ops up to the unfused tolerance; Vulkan lets an implementation flush unless a preserve mode is requested and supported. +- [src] Where the same GLSL ES source goes through ANGLE→HLSL→`D3DCompile`→driver, the compiler flags in `Renderer11.cpp` (OPTIMIZATION_LEVEL2, retry configurations, conditional IEEE_STRICTNESS) are part of the path; a SPIR-V route (glslang or dxc, then a Vulkan implementation) has none of those stages. +- [abs] No source found that quantifies disagreement between ANGLE→D3D11 and a Vulkan software implementation for the same GLSL ES function. + +## 9. Gaps (searched, not resolved) + +- Lavapipe and SwiftShader current `VkPhysicalDeviceFloatControlsProperties` values; FMA contraction policy in either; the lavapipe docs page. +- Amber's own CI jobs and which compilers it uses for HLSL and GLSL. +- Whether `dxc -spirv` can emit an exported-function library that SPIRV-Cross's library path accepts; whether `dxc` flush/preserve execution modes are emitted by default. +- Tint's current readers and writers. +- Slang GLSL ES output; Slang CPU float flags. +- ANGLE: default of `enableIEEEStrictness`; prebuilt standalone `libEGL`/`libGLESv2` availability for Windows outside Chrome/Electron; Chrome-specific translator options. +- WARP numerics statement; DXC test tolerance values per intrinsic row (the XML table structure was read, not every row). diff --git a/docs/research/serializer-unowned-holders.md b/docs/research/serializer-unowned-holders.md new file mode 100644 index 00000000..759503c3 --- /dev/null +++ b/docs/research/serializer-unowned-holders.md @@ -0,0 +1,31 @@ +# Prior art: refuse or walk a container the identity walk does not own + +For `variants:question:c2a-unowned-holders` (campaign `variants`, cut `c2a-element-id-holes` r5). +These are from Imagination's reading. No web fetch was made in this pass, so check the +pointers before quoting them outside the mind. + +| System | Unknown or unsupported type in a payload | Extension point | Pointer | +|---|---|---|---| +| Protocol Buffers | Not expressible. A field is a scalar, a message, `repeated`, or `map`. No other container exists. | None. You model the data as messages. | protobuf.dev, Language Guide (proto3), "Repeated fields" and "Maps" | +| Microsoft Bond | Fixed container set: `list`, `vector`, `set`, `map`, `nullable`, `blob`, `bonded`. Any other type is a codegen error. | Type aliases with explicit converters, declared per type. | microsoft.github.io/bond/manual/bond_cs.html, "Type aliases" and "Custom type mappings" | +| Orleans 7+ serializer | Throws `CodecNotFoundException` when it serializes a type with no codec (not `[GenerateSerializer]`, not registered). | Surrogates via `[RegisterConverter]`, or codecs registered per type. Built-in codecs cover the BCL immutable collections. | learn.microsoft.com/dotnet/orleans/host/configuration-guide/serialization | +| MessagePack-CSharp 3.1.7 | `DynamicObjectResolver` refuses an unannotated type (formatter null, the serializer throws) unless the caller opts into contractless. | Resolvers, `[MessagePackFormatter]`. | Probed: `scratchpad/imag-r5/probe1.log` (NkHold: std=null, contractless builds one) | +| System.Text.Json (source gen) | `NotSupportedException` for types outside the generated metadata. Polymorphism needs `[JsonDerivedType]` registration. | `JsonConverter`, `[JsonDerivedType]`. | learn.microsoft.com/dotnet/standard/serialization/system-text-json/polymorphism | + +## What the table says for CultCache's id walk + +1. Every system that guarantees something about a payload's structure fails closed on a + shape it does not own. The failure is loud and comes at build or first use. It never + drops data silently. Protobuf and Bond refuse when the schema is written, and Orleans, + MessagePack and STJ refuse when the type is first serialized. None of them walks an + arbitrary wrapper on the chance that it is a container. +2. Each system supports a fixed set of containers and walks those natively. Extension is + explicit and per type: Bond aliases, Orleans surrogates, STJ converters. The walker + never infers it from a type's shape. +3. Orleans covers the BCL immutable collections with built-in codecs. Each added container + is a deliberate, tested entry. A reasonable consumer therefore expects ImmutableArray to + be supported when the library says so, and refused loudly when it does not. Nobody + expects silent nil ids. + +CultCache's id walk today is open-world: a shape it does not recognise passes as a leaf. +That is the opposite of every row above, and it is the common cause of findings s1-s4. diff --git a/docs/research/shader-variable-inputs.md b/docs/research/shader-variable-inputs.md new file mode 100644 index 00000000..c8ea3296 --- /dev/null +++ b/docs/research/shader-variable-inputs.md @@ -0,0 +1,111 @@ +# Shader variable-length inputs: how shader libraries take a span, and what CultMath's build route allows + +For `cultmath-tapes:follow_up:shader-weighted-lattice-loop` and `cultmath-tapes:follow_up:lattice-shader-pins` (campaign `cultmath-tapes`). +Imagination pass, agent `imagination-ag4-shader-loop`, session `self-2026-10-16-ag4`, 2026-10-17, against CultLib `origin/main` `e2051c5a` +and the build branch `hands/cultmath-glsl-build-dxc` `23ac4e89`. Probes are in `docs/research/shader-variable-inputs/`. + +Tags: [src] primary source text read this pass; [web] search summary only; [probe] run this pass, output quoted below. + +## 1. The question + +C#'s `weighted_lattice_cells` reads the body span once per lattice cell (the weight is the exact power border of the +cell centre), and the ring search around it is the part a consumer cannot safely write by hand: the exit bound, +the two passes and the box-independent fold order. The shader port has the four steps only. A shader function cannot +take `ReadOnlySpan`, the library targets GLSL ES 3.00 fragment shaders (WebGL2: no storage buffers), and the GLSL is +built from the HLSL by dxc `lib_6_3` SPIR-V plus SPIRV-Cross (ruling `glsl-es-via-dxc-spirv-cross`). +So how do bodies reach a shader `weighted_lattice_cells`? + +## 2. Prior art: how shader code that ships as a library takes a variable number of inputs + +- [src] Unity URP (`ShaderLibrary/Input.hlsl`, `RealtimeLights.hlsl`, Graphics `master`): a fixed capacity + `MAX_VISIBLE_LIGHTS` chosen per platform (`MAX_VISIBLE_LIGHT_COUNT_LOW_END_MOBILE` under `SHADER_API_GLES30`, + `_MOBILE` for GLES3/WebGPU, `_DESKTOP` otherwise), constant-buffer arrays `float4 _AdditionalLightsPosition[MAX_VISIBLE_LIGHTS]` + and the like, with `StructuredBuffer` only behind `USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA` (defined 0). The + count is a uniform read through `GetAdditionalLightsCount()`, and `GetAdditionalLight(uint i, float3 positionWS)` is + the accessor; `LIGHT_LOOP_BEGIN(lightCount)` / `LIGHT_LOOP_END` macros hide the cluster versus plain loop. The + pipeline owns the storage and the accessor; user shaders call them. Capacity plus count, storage owned by the include. +- [src] Filament (`shaders/src/surface_light_punctual.fs`, `main`): the loop is the engine's, over a froxel record + (`froxelsUniforms.records`, then `froxelRecordUniforms.records`) giving `recordOffset` and `count`; each light is + `lightsUniforms.lights[lightIndex]`, a uniform-block array. Material code never sees the loop. The engine owns both + the storage and the loop because it also owns the uniform layout. +- [src] three.js (`ShaderChunk/lights_fragment_begin.glsl.js`, `dev`): `for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ )` + under `#pragma unroll_loop_start`, reading `pointLights[ i ]`; `NUM_POINT_LIGHTS` is a define the renderer writes, + so the shader is regenerated per light count. Count as a compile-time constant; the library is source text. +- [web] Bevy: clustered forward needs storage buffers; on WebGL2 it falls back to a uniform buffer with a capped + object count (`MAX_UNIFORM_BUFFER_CLUSTERABLE_OBJECTS` 204 in an older `bevy_pbr`, asserted to fit 16384 bytes; the + Many Lights example says 256 lights under `WGPU_SETTINGS_PRIO=webgl2`). Capacity plus count where storage is absent. +- [web] lygia (README conventions, via search): reuse by `#ifndef` / `#define` options the caller sets before the + include (`SAMPLER_FNC(TEX, UV)`, `MYFUNC_TYPE`, per-function sampler overrides). Caller-supplied accessor macros; the + library ships as source text, which is what lets a macro reach inside a function body. + +The pattern that splits them: a caller-supplied accessor (lygia, URP's accessor functions, three.js's define) works +where the library is source text the caller's preprocessor sees. Where the library is compiled or its storage layout is +fixed (URP's GLES path, Bevy's WebGL2 fallback, Filament's uniform blocks), the input is a fixed-capacity array plus a +count, and the capacity is a named library constant. + +## 3. What the build route allows (probes) + +| Candidate | HLSL (dxc) | Library SPIR-V and SPIRV-Cross GLSL | C# mirror (`TransformHlslToCSharp`) | Verdict | +|---|---|---|---|---| +| Fixed-size array parameter plus count | compiles, `lib_6_3` and `cs_6_0` [probe P1, P3] | see P2 | needs one transform (`T x[N]` parameter to `T[] x`) | see section 4 | +| Caller accessor macro (`CULTMATH_BODY(i)`) | the library build defines no accessor, so the function is absent [probe P4] | absent from the built GLSL: SPIRV-Cross output carries no consumer macro | the mirror would need the macro too | refused by the route | +| Bodies packed into library-owned constants | a library cbuffer or uniform | a uniform block in a function-only library; a binding the consumer does not own | a static field | refused (P5, by construction, not run): a library may not own a consumer's binding | + +Probes (files in `shader-variable-inputs/`): + +- [probe] P1, local, dxc 2026_07_29 (`.tools/dxc`): `lattice-array.hlsl` (CultMath.hlsl, `prototype.hlsl`, one export) + compiles with `-T lib_6_3 -HV 2021 -spirv -fspv-target-env=universal1.5 -Od`. The SPIR-V types the array as + `OpTypeArray %v4float %uint_16` behind a Function pointer, and `-Od` copies it at each call (`param_var_bodies`). +- [probe] P3, local: `entry-cbuffer.hlsl` passes a cbuffer array directly and a `StructuredBuffer` copied into a local + array; both compile to SPIR-V (`cs_6_0`) and to DXIL. +- [probe] P4, local: `macro-accessor.hlsl` with no `CULTMATH_BODY` defined fails, `use of undeclared identifier`: a + macro-parameterised function does not exist in a library compiled without the caller's macros, so the built GLSL + cannot carry it. Shipping it would need a hand-kept GLSL text beside the build, a second owner the ruling removed. +- [probe] P2, Yggdrasil job (`probe.sh` at `23ac4e89`, sdk:10.0, 2026-10-17): with the prototype appended to + `CultMath.hlsl` and two build-tool edits (`wrappers.py` strips `[N]` from an argument name; `partition.py` accepts + `static const int`), `build-glsl.sh` is green ("build shape ok", "suffixed ids: 0; inout: 0") and emits + `const int CULTMATH_MAX_SITES = 16;`, `vec4 cultmath_power_border(vec3 p, vec4 sites[16], int count)` and + `vec4 cultmath_weighted_lattice_cells(vec2 p, float time, vec4 bodies[16], int count, ...)`. A `#version 300 es` + fragment consumer passing `uniform vec4 zone[CULTMATH_MAX_SITES]` compiles with glslang. +- [probe] Same job, lavapipe (`llvmpipe (LLVM 20.1.2, 256 bits)`), 257 cases from `ref/Program.cs` (the ring-17 point + of `TheCapIsReachedAndMatchesTheFullBox` and 7 neighbours, four looks, five normals including (3e-30, -4e-30) and + (1e30, 2e30), a zero normal at stretch 1, counts 0, 1, 3, 6, 16), judged against C#'s bits at 2.2e-6 max(|v|, 1): + +| Variant (HLSL route unless named) | bit-exact | over bound | worst | +|---|---|---|---| +| built GLSL | 237 | 0 | 1.19e-6 | +| HLSL (equal to built GLSL bit for bit) | 237 | 0 | 1.19e-6 | +| M1 exit at `0.5 k` | 236 | 1 | 4.28e-3 | +| M2 exit ignores the smooth band (`>= f2`) | 226 | 13 | 8.33e-2 | +| M3 normaliser drops the divide by the largest component | 148 | 96 | 1e30 | +| M4 normaliser drops the divide by length | 1 | 208 | 0.259 | +| M5 smooth step loses its `min` cap | 153 | 85 | 2.26e-3 | +| M6 box pass skips its first row | 228 | 9 | 0.807 | +| M7 exit one ring late (`0.5 (k - 2)`) | 237 | 0 | 1.19e-6 | + +M7 is equivalent: the result does not depend on the box (the proof above `weighted_lattice_cells`), so a late exit +costs rings and changes nothing. M1 is killed by one case of 257, the ring-17 point: an early exit only matters where +a far ring wins, so the device family must carry several such points. + +## 4. Decision + +The fixed-size array plus count is the only candidate the route admits, and it is the shape the compiled-library +prior art uses (URP's GLES path, Bevy's WebGL2 fallback, Filament's uniform blocks). The capacity is a named library +constant, `CULTMATH_MAX_SITES`, shared by every span-taking shader function. Its value is +`cultmath-tapes:question:shader-site-capacity` (Aetheria zones: p50 17, p99 57, max 80 bodies, gravity map B28). + +The shader recomputes each distance in the box pass instead of caching it: C#'s 75 x 75 stack cache is not a shader +option, and recomputing gives the same value, as the probe's bit-exact HLSL and built-GLSL agreement shows. +Reflection cannot pass a `ReadOnlySpan`, so the mirror and the fixture reach the C# span functions through one +explicit adapter table rather than `MethodInfo.Invoke`. + +## 5. lattice-shader-pins + +- The smooth-step family draws m in [f1, f1 + smoothing), so the cap never binds. The cap binds when m = f1 + smoothing, + d = f1 + x smoothing with x around 1.3 to 1.9, and smoothing above about 0.25: next - m = (d - m) h - h (1 - h) + smoothing / (1 + 3 smoothing) is positive there (for smoothing 1 and d - m = 0.5, h = 0.156 and next - m = +0.045). + M5 above is killed by the whole function already; the step family should kill it on its own. +- Platform values: `8b31e47e` rewrote 7 platform-family entries of `glsl-parity.json` from "Ubuntu 24.04.5 LTS" to + "Microsoft Windows 10.0.26200", while `7ddb1040` recorded the lavapipe bounds on Yggdrasil against that fixture. + The bounds, the lavapipe job and the build route all run in Yggdrasil's sdk:10.0 Ubuntu image, so that image + owns the fixture's platform values too. A write on another OS is refused rather than reviewed. diff --git a/docs/research/shader-variable-inputs/entry-cbuffer.hlsl b/docs/research/shader-variable-inputs/entry-cbuffer.hlsl new file mode 100644 index 00000000..7e6ced39 --- /dev/null +++ b/docs/research/shader-variable-inputs/entry-cbuffer.hlsl @@ -0,0 +1,15 @@ +// Probe C: a compute entry passing a constant-buffer array, and one passing a StructuredBuffer copied to a local array. +#include "lattice-array.hlsl" +cbuffer Zone : register(b0) { float4 zoneBodies[CULTMATH_MAX_SITES]; int zoneCount; }; +StructuredBuffer bufferBodies : register(t1); +RWStructuredBuffer result : register(u2); +[numthreads(64, 1, 1)] +void main(uint3 id : SV_DispatchThreadID) +{ + float2 p = float2(id.x * 7.0, id.y * 11.0); + float4 local[CULTMATH_MAX_SITES]; + for (int i = 0; i < CULTMATH_MAX_SITES; i++) + local[i] = i < zoneCount ? bufferBodies[i] : float4(0.0, 0.0, 0.0, 1.0); + result[id.x] = cultmath_weighted_lattice_cells(p, 1.0, zoneBodies, zoneCount, 260.0, 0.3, 1.6, 120.0, 0.35, float2(1.0, 2.0), 1.5) + + cultmath_weighted_lattice_cells(p, 1.0, local, zoneCount, 260.0, 0.3, 1.6, 120.0, 0.35, float2(1.0, 2.0), 1.5); +} diff --git a/docs/research/shader-variable-inputs/entry.comp.tail b/docs/research/shader-variable-inputs/entry.comp.tail new file mode 100644 index 00000000..c6713929 --- /dev/null +++ b/docs/research/shader-variable-inputs/entry.comp.tail @@ -0,0 +1,16 @@ +layout(local_size_x = 64) in; +layout(std430, binding = 0) readonly buffer IB { uint a[]; } In; +layout(std430, binding = 1) buffer OB { uint a[]; } Out; +void main() +{ + uint i = gl_GlobalInvocationID.x; if (i >= NCASES) return; uint b = i * 76u; + vec4 bodies[CULTMATH_MAX_SITES]; + for (int k = 0; k < CULTMATH_MAX_SITES; k++) + bodies[k] = uintBitsToFloat(uvec4(In.a[b + 2u + 4u * uint(k)], In.a[b + 3u + 4u * uint(k)], In.a[b + 4u + 4u * uint(k)], In.a[b + 5u + 4u * uint(k)])); + uint c = b + 67u; + vec4 r = cultmath_weighted_lattice_cells(uintBitsToFloat(uvec2(In.a[b], In.a[b + 1u])), uintBitsToFloat(In.a[c]), bodies, int(In.a[b + 66u]), + uintBitsToFloat(In.a[c + 1u]), uintBitsToFloat(In.a[c + 2u]), uintBitsToFloat(In.a[c + 3u]), uintBitsToFloat(In.a[c + 4u]), + uintBitsToFloat(In.a[c + 5u]), uintBitsToFloat(uvec2(In.a[c + 6u], In.a[c + 7u])), uintBitsToFloat(In.a[c + 8u])); + uvec4 w = floatBitsToUint(r); + Out.a[i * 4u] = w.x; Out.a[i * 4u + 1u] = w.y; Out.a[i * 4u + 2u] = w.z; Out.a[i * 4u + 3u] = w.w; +} diff --git a/docs/research/shader-variable-inputs/entry.hlsl b/docs/research/shader-variable-inputs/entry.hlsl new file mode 100644 index 00000000..91b21046 --- /dev/null +++ b/docs/research/shader-variable-inputs/entry.hlsl @@ -0,0 +1,16 @@ +// Probe compute entry (HLSL route): 76 words in per case (p, 16 bodies, count, 9 parameters), 4 words out. +#include "CultMath.hlsl" +[[vk::binding(0)]] StructuredBuffer In; +[[vk::binding(1)]] RWStructuredBuffer Out; +[numthreads(64, 1, 1)] void main(uint3 id : SV_DispatchThreadID) +{ + uint i = id.x; if (i >= NCASES) return; uint b = i * 76u; + float4 bodies[CULTMATH_MAX_SITES]; + for (int k = 0; k < CULTMATH_MAX_SITES; k++) + bodies[k] = float4(asfloat(In[b + 2 + 4 * k]), asfloat(In[b + 3 + 4 * k]), asfloat(In[b + 4 + 4 * k]), asfloat(In[b + 5 + 4 * k])); + uint c = b + 67u; + float4 r = cultmath_weighted_lattice_cells(float2(asfloat(In[b]), asfloat(In[b + 1])), asfloat(In[c]), bodies, asint(In[b + 66]), + asfloat(In[c + 1]), asfloat(In[c + 2]), asfloat(In[c + 3]), asfloat(In[c + 4]), asfloat(In[c + 5]), + float2(asfloat(In[c + 6]), asfloat(In[c + 7])), asfloat(In[c + 8])); + Out[i * 4] = asuint(r.x); Out[i * 4 + 1] = asuint(r.y); Out[i * 4 + 2] = asuint(r.z); Out[i * 4 + 3] = asuint(r.w); +} diff --git a/docs/research/shader-variable-inputs/judge.py b/docs/research/shader-variable-inputs/judge.py new file mode 100644 index 00000000..97b23985 --- /dev/null +++ b/docs/research/shader-variable-inputs/judge.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 +"""Compare a device output with C#'s reference bits: cases over the lavapipe bound 2.2e-6 max(|v|, 1), and the largest. +usage: judge.py

(∇cos, cos): the normalized cosine wave and its gradient. - public float4 cos; + public float4 cosine; /// (∇sin, sin): the normalized sine wave and its gradient. - public float4 sin; + public float4 sine; - public CultPhasor(float4 cos, float4 sin) + public CultPhasor(float4 cosine, float4 sine) { - this.cos = cos; - this.sin = sin; + this.cosine = cosine; + this.sine = sine; } } diff --git a/packages/cultmath/src/CultMath/CultSiteCells.cs b/packages/cultmath/src/CultMath/CultSiteCells.cs new file mode 100644 index 00000000..3e5cea60 --- /dev/null +++ b/packages/cultmath/src/CultMath/CultSiteCells.cs @@ -0,0 +1,30 @@ +namespace CultMath; + +/// +/// The two nearest sites of a query point under one site score ( or +/// ), built by folding sites through +/// . Each score field follows the +/// float4(gradient.xyz, value.w) layout of a bare value-and-gradient return. +/// +public struct CultSiteCells +{ + /// (∇F1, F1): the smallest score and its gradient. 1.0e30 in w when no site was inserted. + public float4 nearest; + + /// (∇F2, F2): the second smallest score and its gradient. 1.0e30 in w when fewer than two sites were inserted. + public float4 second; + + /// Index of the nearest site as inserted, -1 when none. A float so the struct holds one scalar type, as does; exact below 2^24. + public float nearestSite; + + /// Index of the second nearest site as inserted, -1 when none. + public float secondSite; + + public CultSiteCells(float4 nearest, float4 second, float nearestSite, float secondSite) + { + this.nearest = nearest; + this.second = second; + this.nearestSite = nearestSite; + this.secondSite = secondSite; + } +} diff --git a/packages/cultmath/src/CultMath/CultSiteCells.cs.meta b/packages/cultmath/src/CultMath/CultSiteCells.cs.meta new file mode 100644 index 00000000..a3033e23 --- /dev/null +++ b/packages/cultmath/src/CultMath/CultSiteCells.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f6479c37f7d349708f54ec7e4d671200 diff --git a/packages/cultmath/src/CultMath/SpanNoise.cs b/packages/cultmath/src/CultMath/SpanNoise.cs new file mode 100644 index 00000000..dcdf8385 --- /dev/null +++ b/packages/cultmath/src/CultMath/SpanNoise.cs @@ -0,0 +1,29 @@ +namespace CultMath; + +/// +/// The result of and (invariant 8's one struct +/// return shape): an octave stage's value and gradient at the midpoint of a span, with the bounds that +/// hold over the whole span. +/// +public struct SpanNoise +{ + /// (∇, value): the stage's gradient in the span's space and its value, in the float4(gradient.xyz, value.w) layout of a bare value-and-gradient return. + public float4 field; + + /// An upper bound, at every point the span can reach, on the operator norm of the field's Hessian in the span's space. + public float curvature; + + /// + /// An upper bound on how far a ridged sum can leave its midpoint branch over the span (each octave's + /// 1 - |n| against the same octave continued with the midpoint's sign of n); 0 for + /// and for any octave that cannot cross zero over the span. + /// + public float fold; + + public SpanNoise(float4 field, float curvature, float fold) + { + this.field = field; + this.curvature = curvature; + this.fold = fold; + } +} diff --git a/packages/cultmath/src/CultMath/SpanNoise.cs.meta b/packages/cultmath/src/CultMath/SpanNoise.cs.meta new file mode 100644 index 00000000..d838deb2 --- /dev/null +++ b/packages/cultmath/src/CultMath/SpanNoise.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: fe0da4c343e24c3781b076943f08ddbc diff --git a/packages/cultmath/src/CultMath/SpanPath.cs b/packages/cultmath/src/CultMath/SpanPath.cs new file mode 100644 index 00000000..cc6524d9 --- /dev/null +++ b/packages/cultmath/src/CultMath/SpanPath.cs @@ -0,0 +1,26 @@ +namespace CultMath; + +/// +/// The span and bound over: the path q(t), +/// |t| <= , through at t = 0 with there, +/// |q'| <= and |q''| <= along it. speed is at least +/// |velocity|; speed, acceleration and halfLength are non-negative. Name every field: the three floats +/// have no order a caller could mistake for a convention. +/// +public struct SpanPath +{ + /// q(0), the point the field and its gradient are evaluated at. + public float3 midpoint; + + /// q'(0). + public float3 velocity; + + /// An upper bound on |q'(t)| over the span; at least |velocity|. + public float speed; + + /// An upper bound on |q''(t)| over the span. + public float acceleration; + + /// The span covers |t| <= halfLength; 0 is the midpoint alone. + public float halfLength; +} diff --git a/packages/cultmath/src/CultMath/SpanPath.cs.meta b/packages/cultmath/src/CultMath/SpanPath.cs.meta new file mode 100644 index 00000000..3c58b0e9 --- /dev/null +++ b/packages/cultmath/src/CultMath/SpanPath.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3a8c1d52e7b94f06a1d5c2b9e04f7a31 diff --git a/packages/cultmath/src/CultMath/SpanStage.cs b/packages/cultmath/src/CultMath/SpanStage.cs new file mode 100644 index 00000000..faeccd3e --- /dev/null +++ b/packages/cultmath/src/CultMath/SpanStage.cs @@ -0,0 +1,33 @@ +namespace CultMath; + +/// +/// The transform of one octave stage of a warp chain, as and +/// read it. Octave o samples snoise at x_o = f_o (M q + shift) + offset + +/// o octaveStep, with f_o = lacunarity^o and M = (I + (1/ - 1) a a^T), +/// a = normalize(); a zero axis, or a stretch of 1, means no stretch. stretch must be +/// positive and finite, and nothing guards it. default(SpanStage) has frequency 0, which samples +/// one point: start from . +/// +public struct SpanStage +{ + /// The stage whose span_fbm/span_ridged field equals fbm_grad/ridged_grad: frequency 1, stretch 1, every vector zero. + public static readonly SpanStage Identity = new SpanStage { frequency = 1.0f, stretch = 1.0f }; + + /// The scale of M; its sign is kept. + public float frequency; + + /// The factor the axis direction is stretched by (M scales it by 1/stretch); 1 is none. + public float stretch; + + /// The direction stretch applies along; any length, zero for none. + public float3 axis; + + /// Added to M q before the per-octave scaling. + public float3 shift; + + /// Added after the per-octave scaling. + public float3 offset; + + /// Added to the octave coordinate once per octave index: o octaveStep. + public float3 octaveStep; +} diff --git a/packages/cultmath/src/CultMath/SpanStage.cs.meta b/packages/cultmath/src/CultMath/SpanStage.cs.meta new file mode 100644 index 00000000..7edaee93 --- /dev/null +++ b/packages/cultmath/src/CultMath/SpanStage.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9d46b0f27c1e4a85b3e8f1a60c2d5b97 diff --git a/packages/cultmath/src/CultMath/math.Affine.cs b/packages/cultmath/src/CultMath/math.Affine.cs index acb73251..e7b8eb4b 100644 --- a/packages/cultmath/src/CultMath/math.Affine.cs +++ b/packages/cultmath/src/CultMath/math.Affine.cs @@ -35,6 +35,13 @@ public static partial class math // kernel must re-run MeasureHessian and re-pin it. SNOISE_THIRD (math.Span.cs) is the next-order pin. public const float SNOISE_HESSIAN = 55.642143f; + // The absolute rounding of one float32 read of the snoise kernel, apart from the coordinate's own + // rounding (af_snoise's comment derives both): 2^-14 on the value and 2^-12 on the gradient. The single + // owner of the two, read by af_snoise and by span_slack (math.Span.cs); the shader twins are + // CULTMATH_SNOISE_READ_VALUE and CULTMATH_SNOISE_READ_GRADIENT. + internal const float SNOISE_READ_VALUE = 6.103515625e-5f; + internal const float SNOISE_READ_GRADIENT = 2.44140625e-4f; + /// The point form (x, 0, 0): the value x at every eps. Exact. public static float3 af_point(float value) => new(value, 0.0f, 0.0f); @@ -165,7 +172,7 @@ public static partial class math var lipschitz = SNOISE_LIPSCHITZ * reach; var a = dot(gradient, axis); var remainder = length(gradient) * radius + 0.5f * SNOISE_HESSIAN * reach * reach; - var allowance = 6.103515625e-5f + 2.44140625e-4f * reach + var allowance = SNOISE_READ_VALUE + SNOISE_READ_GRADIENT * reach + SNOISE_LIPSCHITZ * 9.5367431640625e-7f * (abs(centre.x) + abs(centre.y) + abs(centre.z) + reach); var centred = abs(a) + remainder < lipschitz; var slope = centred ? a : 0.0f; diff --git a/packages/cultmath/src/CultMath/math.Lattice.cs b/packages/cultmath/src/CultMath/math.Lattice.cs new file mode 100644 index 00000000..a3c6ddba --- /dev/null +++ b/packages/cultmath/src/CultMath/math.Lattice.cs @@ -0,0 +1,212 @@ +namespace CultMath; + +public static partial class math +{ + // Weighted lattice cells: a jittered, drifting cellular field whose cells are weighted by how close the cell's + // centre lies to a border of the body diagram (the power diagram of the zone's body span). The public steps are + // the four per-cell rules a tape or a shader composes; weighted_lattice_cells is the loop over them. + + /// The greatest boost accepts: weights span 0.5 to 5, a ratio of 10:1. + public const float LatticeMaxBoost = 4.0f; + + /// The greatest stretch accepts. + public const float LatticeMaxStretch = 2.0f; + + /// The greatest smoothing accepts, in cell units. + public const float LatticeMaxSmoothing = 1.0f; + + /// + /// The outermost ring the search can reach anywhere in the accepted range (see the proof above + /// ). + /// + public const int LatticeMaxRing = 37; + + // A query beyond this many cells from the origin has no integer cell id in float precision. + private const float LatticeMaxCoordinate = 8388608.0f; + + /// + /// The site of a lattice cell: float3(site.xy, base weight). The site is cell + 0.5 + 0.5 sin(drift + /// time + 2 pi u) per axis, so it stays within one cell of the cell's corner and drifts at rate + /// . The base weight is 0.5 + 0.5 u, in [0.5, 1), from its own hash lane. + /// + public static float3 lattice_site(float2 cell, float time, float drift) + { + var h = pcg3d(new int3((int)cell.x, (int)cell.y, 0)); + var phase = new float2(cellular_unit(h.x), cellular_unit(h.y)); + var site = cell + 0.5f + 0.5f * new float2(sin(drift * time + TAU * phase.x), sin(drift * time + TAU * phase.y)); + return new float3(site, 0.5f + 0.5f * cellular_unit(h.z)); + } + + /// + /// The weight of a cell: base (1 + boost exp(-(border / falloff)^2)), where is + /// the distance from the cell's centre to the nearest body-diagram border. + /// + public static float lattice_weight(float @base, float border, float boost, float falloff) + { + var t = border / falloff; + return @base * (1.0f + boost * exp(-(t * t))); + } + + /// + /// The weighted distance from to , in cell units: + /// weight |(stretch a, c)| with a and c the offset's components along and across the unit + /// . Isotropic at stretch 1. + /// + public static float lattice_distance(float2 q, float2 site, float weight, float2 normal, float stretch) + { + var v = site - q; + var a = dot(v, normal); + var c = v.x * normal.y - v.y * normal.x; + return weight * length(new float2(stretch * a, c)); + } + + /// + /// One step of the smooth minimum fold: folded with distance , for a + /// nearest distance . A distance of at least f1 + 2 smoothing leaves + /// unchanged, and the result never exceeds f1 + smoothing. Start the fold at + /// f1 + smoothing and visit every cell once, in an order that does not depend on the search box. + /// + public static float lattice_smooth_step(float m, float d, float f1, float smoothing) + { + if (d >= f1 + 2.0f * smoothing) + return m; + var h = smoothstep(0.0f, 1.0f, 0.5f + 0.5f * (m - d) / smoothing); + var next = m + (d - m) * h - h * (1.0f - h) * smoothing / (1.0f + 3.0f * smoothing); + return min(next, f1 + smoothing); + } + + // Proof that the ring search finds every cell that can change an output (ruling lattice-ring-exit-sound). + // + // Let c0 = floor(q) and let a cell lie on Chebyshev ring k around c0 (an offset of k on some axis). Its site lies + // within [cell, cell + 1] per axis and q within [c0, c0 + 1), so on that axis |site - q| >= k - 1. The length of + // the offset is at least that, the stretch is at least 1 (it only lengthens), and the weight is at least + // 0.5 (base >= 0.5, boost >= 0). So every cell on ring k or beyond has d >= 0.5 (k - 1), and the same holds for + // every farther ring. + // + // A cell with d >= F2 changes neither F1 nor F2, and a cell with d >= F1 + 2 smoothing leaves the smooth minimum + // unchanged (lattice_smooth_step returns m before folding it). So the search stops before ring k once + // 0.5 (k - 1) >= max(F2, F1 + 2 smoothing), with F1 and F2 taken over the rings visited. Those values only fall + // as rings are added, so the running cutoff is at least the final one: stopping on it never stops early. Every + // unvisited cell then changes no output, for every weight, stretch and drift. + // + // The loop terminates inside the accepted range. Cell c0 gives a distance below sqrt(2) in cell units. The + // neighbour on the nearer side of the axis whose query fraction sits closest to a cell boundary (fraction m <= 1/2) + // lies within (1 + m, 1) per axis, below sqrt(3.25). Weights are below 1 + LatticeMaxBoost and stretch is at most + // LatticeMaxStretch, so F2 < 10 sqrt(3.25) = 18.03 and F1 + 2 smoothing < 10 sqrt(2) + 2 = 16.2. The exit holds at + // 0.5 (k - 1) >= 18.03, that is at k = 38, so rings 0 to 37 (LatticeMaxRing) are the most visited. + // + // The result does not depend on the box visited. The second pass folds F1, F2 and the winning id in absolute + // row-major order (strict <, so an exact tie keeps the earlier cell), and the smooth minimum starts at + // F1 + smoothing and is clamped to it, so a cell with d >= F1 + 2 smoothing, visited or not, changes nothing. + + /// + /// Weighted cellular noise over a jittered lattice: float4(F1, F2, smooth, id). F1 and F2 are the two + /// smallest weighted distances from in cell units times weight, smooth is the smooth minimum + /// (, in the same units), and id is a hash of the winning cell in [0, 1). + /// + /// + /// A cell's weight is of the exact power border distance () + /// of the cell's centre in the body span (float4(position.xyz, sigma), z = 0), so it is + /// continuous as the bodies move. Distances are stretched by along + /// (isotropic at 1). The search is exact in the accepted range: boost 0 to + /// , stretch 1 to , smoothing up to . + /// + /// An argument is not finite, a size is not above zero, a value is outside its range, the normal is zero while stretch exceeds 1, or the body span is refused as refuses it. + public static float4 weighted_lattice_cells( + float2 p, float time, ReadOnlySpan bodies, float cellSize, float drift, float boost, float falloff, + float smoothing, float2 stretchNormal, float stretch) + { + // Cell centres stay finite: the farthest one the search can reach is a ring past the query's cell. + var reachSpan = cellSize * (LatticeMaxRing + 2); + if (!float.IsFinite(cellSize) || !(cellSize > 0.0f) || !float.IsFinite(reachSpan)) + throw new ArgumentException("cellSize must be finite and greater than zero, and small enough for its cell centres to be finite.", nameof(cellSize)); + if (!float.IsFinite(p.x) || !float.IsFinite(p.y) || !(abs(p.x / cellSize) < LatticeMaxCoordinate) || !(abs(p.y / cellSize) < LatticeMaxCoordinate) + || !float.IsFinite(abs(p.x) + reachSpan) || !float.IsFinite(abs(p.y) + reachSpan)) + throw new ArgumentException("p must be finite and within 2^23 cells of the origin.", nameof(p)); + if (!float.IsFinite(time)) + throw new ArgumentException("time must be finite.", nameof(time)); + if (!float.IsFinite(drift)) + throw new ArgumentException("drift must be finite.", nameof(drift)); + if (!float.IsFinite(drift * time)) + throw new ArgumentException("drift times time must be finite.", nameof(drift)); + if (!float.IsFinite(boost) || boost < 0.0f || boost > LatticeMaxBoost) + throw new ArgumentException("boost must be within [0, LatticeMaxBoost].", nameof(boost)); + if (!float.IsFinite(falloff) || !(falloff > 0.0f)) + throw new ArgumentException("falloff must be finite and greater than zero.", nameof(falloff)); + if (!float.IsFinite(smoothing) || !(smoothing > 0.0f) || smoothing > LatticeMaxSmoothing) + throw new ArgumentException("smoothing must be within (0, LatticeMaxSmoothing].", nameof(smoothing)); + if (!float.IsFinite(stretch) || stretch < 1.0f || stretch > LatticeMaxStretch) + throw new ArgumentException("stretch must be within [1, LatticeMaxStretch].", nameof(stretch)); + if (!float.IsFinite(stretchNormal.x) || !float.IsFinite(stretchNormal.y)) + throw new ArgumentException("stretchNormal must be finite.", nameof(stretchNormal)); + // Scaled by its largest component first, so a tiny or huge normal normalises to unit length. + var scale = max(abs(stretchNormal.x), abs(stretchNormal.y)); + if (scale > 0.0f) + { + stretchNormal /= scale; + stretchNormal /= length(stretchNormal); + } + else if (stretch > 1.0f) + throw new ArgumentException("stretchNormal must not be zero while stretch exceeds 1.", nameof(stretchNormal)); + else + stretchNormal = new float2(1.0f, 0.0f); + require_cell_span(new float3(p, 0.0f), bodies, positiveWeights: false, nameof(bodies)); + + const int Width = 2 * LatticeMaxRing + 1; + Span cache = stackalloc float[Width * Width]; + var q = p / cellSize; + var origin = floor(q); + var cx0 = (int)origin.x; + var cz0 = (int)origin.y; + var f1 = 1.0e30f; + var f2 = 1.0e30f; + var reach = 0; + + for (var k = 0; ; k++) + { + if (k > 1 && 0.5f * (k - 1) >= max(f2, f1 + 2.0f * smoothing)) + break; + if (k > LatticeMaxRing) + throw new InvalidOperationException("The lattice ring search left its proven range."); + for (var dz = -k; dz <= k; dz++) + { + var step = dz == -k || dz == k || k == 0 ? 1 : 2 * k; + for (var dx = -k; dx <= k; dx += step) + { + var d = lattice_cell_distance(q, new float2(cx0 + dx, cz0 + dz), time, drift, bodies, cellSize, boost, falloff, stretchNormal, stretch); + cache[(dz + LatticeMaxRing) * Width + dx + LatticeMaxRing] = d; + if (d < f1) { f2 = f1; f1 = d; } + else if (d < f2) f2 = d; + } + } + reach = k; + } + + var m = f1 + smoothing; + var best = 1.0e30f; + var second = 1.0e30f; + var winDx = 0; + var winDz = 0; + for (var dz = -reach; dz <= reach; dz++) + for (var dx = -reach; dx <= reach; dx++) + { + var d = cache[(dz + LatticeMaxRing) * Width + dx + LatticeMaxRing]; + if (d < best) { second = best; best = d; winDx = dx; winDz = dz; } + else if (d < second) second = d; + m = lattice_smooth_step(m, d, f1, smoothing); + } + + var id = pcg4d(new int4(cx0 + winDx, cz0 + winDz, 0, 0)); + return new float4(best, second, m, cellular_unit(id.w)); + } + + internal static float lattice_cell_distance( + float2 q, float2 cell, float time, float drift, ReadOnlySpan bodies, float cellSize, float boost, float falloff, + float2 normal, float stretch) + { + var site = lattice_site(cell, time, drift); + var centre = (cell + 0.5f) * cellSize; + var border = power_border_unchecked(new float3(centre, 0.0f), bodies).w; + return lattice_distance(q, site.xy, lattice_weight(site.z, border, boost, falloff), normal, stretch); + } +} diff --git a/packages/cultmath/src/CultMath/math.Lattice.cs.meta b/packages/cultmath/src/CultMath/math.Lattice.cs.meta new file mode 100644 index 00000000..a4f24ecd --- /dev/null +++ b/packages/cultmath/src/CultMath/math.Lattice.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0a182e056c8c4258881c347ead6d571d diff --git a/packages/cultmath/src/CultMath/math.Sites.cs b/packages/cultmath/src/CultMath/math.Sites.cs new file mode 100644 index 00000000..a5a4937b --- /dev/null +++ b/packages/cultmath/src/CultMath/math.Sites.cs @@ -0,0 +1,209 @@ +namespace CultMath; + +public static partial class math +{ + // Sites: the model page's span element float4(position.xyz, weight). A span function is a C# loop over + // a per-site step that has a shader twin (site_cells_empty, then site_cells_insert per site); a shader + // cannot take a span, so shader callers write the same loop over their own buffer. One fold, one rule. + + // Power score of a site: value |p - s|^2 - w^2, gradient 2 (p - s). The cell of a site is the intersection + // of the half-spaces bounded by its radical planes against every other site (power_border_step). + public static float4 power_score(float3 p, float4 site) + { + var offset = p - site.xyz; + return new float4(offset * 2.0f, dot(offset, offset) - site.w * site.w); + } + + // Multiplicative score of a site: value |p - s| / w, gradient (p - s) / (|p - s| w). At p = s the + // gradient is zero, cellular's degenerate-gradient convention. + public static float4 multiplicative_score(float3 p, float4 site) + { + var offset = p - site.xyz; + var r = length(offset); + var gradient = r > 0.0f ? offset / (r * site.w) : new float3(0.0f, 0.0f, 0.0f); + return new float4(gradient, r / site.w); + } + + // The fold's identity: no site yet. 1.0e30 is cellular's sentinel (GLSL ES has no inf literal). + public static CultSiteCells site_cells_empty() => + new(new float4(0.0f, 0.0f, 0.0f, 1.0e30f), new float4(0.0f, 0.0f, 0.0f, 1.0e30f), -1.0f, -1.0f); + + // One fold step. Strict < against F1 (the old F1 moves to second), else strict < against F2, so an exact + // tie keeps the earlier index first. + public static CultSiteCells site_cells_insert(CultSiteCells cells, float4 score, int index) + { + var result = cells; + if (score.w < cells.nearest.w) + { + result.second = cells.nearest; + result.secondSite = cells.nearestSite; + result.nearest = score; + result.nearestSite = (float)index; + } + else if (score.w < cells.second.w) + { + result.second = score; + result.secondSite = (float)index; + } + + return result; + } + + // float4(unit normal, distance) of the bisector of the two lowest scores: n = grad F2 - grad F1, distance + // (F2 - F1) / |n|, normal n / |n| (into the nearest site's cell). First order, for either metric. It is NOT + // the distance to the nearest site's cell boundary, which the second-lowest score does not give in general; + // for power scores that is power_border. (0, 0, 0, 1.0e30) when there is no second site or |n| = 0. + public static float4 site_cells_border(CultSiteCells cells) + { + var n = cells.second.xyz - cells.nearest.xyz; + var len = length(n); + if (cells.secondSite < 0.0f || len <= 0.0f) + return new float4(0.0f, 0.0f, 0.0f, 1.0e30f); + return new float4(n / len, (cells.second.w - cells.nearest.w) / len); + } + + // One step of the exact power cell border. owner is the site whose cell p lies in (the fold's nearest); + // other is another site. The radical plane of the pair is {x : |x - s1|^2 - w1^2 = |x - s2|^2 - w2^2}; + // with d = s2 - s1 the signed distance from p to it, positive on the owner's side, is + // ((s1 - p).d + (|d|^2 + w1^2 - w2^2) / 2) / |d|. It is built from the offset s1 - p and the weight + // difference (w1 - w2)(w1 + w2), never from a difference of two large squared distances, so it does not + // cancel for a far query or close sites. border is the running (unit normal toward the owner, distance), + // starting at (0, 0, 0, 1.0e30): the cell's boundary distance is the least plane distance over every other + // site. A site coincident with the owner has no plane and leaves border unchanged. The step trusts the caller's + // owner: a p outside the owner's cell has a negative signed distance to some plane, which is clamped to 0, so the + // step reports distance 0 with that plane's normal, a plausible on-the-border answer, not an error. + public static float4 power_border_step(float3 p, float4 owner, float4 other, float4 border) + { + var d = other.xyz - owner.xyz; + var len = length(d); + if (len <= 0.0f) + return border; + var plane = max((dot(owner.xyz - p, d) + 0.5f * (dot(d, d) + (owner.w - other.w) * (owner.w + other.w))) / len, 0.0f); + return plane < border.w ? new float4(-d / len, plane) : border; + } + + // Gabriel margin of the pair (a, b) against a third site: (|other - mid| - r) / r with mid = (a + b) / 2 + // and r = |a - b| / 2. 0 on the diameter circle, negative inside it, -1 when a and b coincide. + public static float gabriel_margin(float3 a, float3 b, float3 other) + { + var r = distance(a, b) * 0.5f; + if (r <= 0.0f) + return -1.0f; + return (distance(other, (a + b) * 0.5f) - r) / r; + } + + // Index floats hold integers exactly up to 2^24, so a longer span is refused. + private const int MaxSiteSpan = 1 << 24; + + private static bool all_finite(float3 v) => float.IsFinite(v.x) && float.IsFinite(v.y) && float.IsFinite(v.z); + + // The one validation of a cell span: finite query, finite positions and weights, weights above zero when + // positiveWeights, at most 2^24 sites. Messages name the parameter, never a value. + private static void require_cell_span(float3 p, ReadOnlySpan sites, bool positiveWeights, string spanName = "sites") + { + if (!all_finite(p)) + throw new ArgumentException("The query point must be finite.", nameof(p)); + if (sites.Length > MaxSiteSpan) + throw new ArgumentException("A site span holds at most 2^24 sites.", spanName); + for (var i = 0; i < sites.Length; i++) + { + if (!all_finite(sites[i].xyz)) + throw new ArgumentException("Site positions must be finite.", spanName); + if (!float.IsFinite(sites[i].w) || (positiveWeights && !(sites[i].w > 0.0f))) + throw new ArgumentException(positiveWeights ? "Site weights must be finite and greater than zero." : "Site weights must be finite.", spanName); + } + } + + /// + /// The two nearest sites of by (the power diagram), every + /// site visited. A site is float4(position.xyz, weight); use z = 0 for 2D. Ties keep the lower index first. + /// + /// The query or a site position or weight is not finite, or the span holds more than 2^24 sites. + public static CultSiteCells power_cells(float3 p, ReadOnlySpan sites) + { + require_cell_span(p, sites, positiveWeights: false); + return power_cells_unchecked(p, sites); + } + + private static CultSiteCells power_cells_unchecked(float3 p, ReadOnlySpan sites) + { + var cells = site_cells_empty(); + for (var i = 0; i < sites.Length; i++) + cells = site_cells_insert(cells, power_score(p, sites[i]), i); + return cells; + } + + /// + /// The exact distance from to the boundary of its power cell, and the unit normal of the + /// nearest boundary plane pointing into the cell: float4(normal, distance). The cell is the + /// intersection of the half-spaces bounded by the radical planes against every other site, so the distance is + /// the least over them. A site coincident with the owner has no plane; a cell + /// with no bounding plane (one site, or only coincident ones) gives (0, 0, 0, 1.0e30). + /// + /// As . + public static float4 power_border(float3 p, ReadOnlySpan sites) + { + require_cell_span(p, sites, positiveWeights: false); + return power_border_unchecked(p, sites); + } + + // The border over an already validated span, which the lattice calls once per cell. + private static float4 power_border_unchecked(float3 p, ReadOnlySpan sites) + { + var border = new float4(0.0f, 0.0f, 0.0f, 1.0e30f); + var owner = (int)power_cells_unchecked(p, sites).nearestSite; + if (owner < 0) + return border; + for (var k = 0; k < sites.Length; k++) + if (k != owner) + border = power_border_step(p, sites[owner], sites[k], border); + return border; + } + + /// + /// The two nearest sites of by (distance divided by + /// weight), every site visited. A site is float4(position.xyz, weight); use z = 0 for 2D. + /// + /// The query or a site position is not finite, a weight is not finite and greater than zero, or the span holds more than 2^24 sites. + public static CultSiteCells multiplicative_cells(float3 p, ReadOnlySpan sites) + { + require_cell_span(p, sites, positiveWeights: true); + var cells = site_cells_empty(); + for (var i = 0; i < sites.Length; i++) + cells = site_cells_insert(cells, multiplicative_score(p, sites[i]), i); + return cells; + } + + /// + /// Whether sites and are neighbours in the Gabriel graph + /// of (positions only; weights are ignored): smoothstep(-softness, softness, the + /// least over every other site). 1 when no other site exists. + /// + /// An index is outside the span. + /// The indices are equal, softness is not finite and greater than zero, or a site position is not finite. + public static float soft_gabriel_gate(ReadOnlySpan sites, int first, int second, float softness) + { + if (first < 0 || first >= sites.Length) + throw new ArgumentOutOfRangeException(nameof(first), "Index is outside the site span."); + if (second < 0 || second >= sites.Length) + throw new ArgumentOutOfRangeException(nameof(second), "Index is outside the site span."); + if (first == second) + throw new ArgumentException("The two indices must differ.", nameof(second)); + if (!(float.IsFinite(softness) && softness > 0.0f)) + throw new ArgumentException("Softness must be finite and greater than zero.", nameof(softness)); + + for (var k = 0; k < sites.Length; k++) + if (!all_finite(sites[k].xyz)) + throw new ArgumentException("Site positions must be finite.", nameof(sites)); + + var margin = float.PositiveInfinity; + for (var k = 0; k < sites.Length; k++) + { + if (k == first || k == second) + continue; + margin = min(margin, gabriel_margin(sites[first].xyz, sites[second].xyz, sites[k].xyz)); + } + + return smoothstep(-softness, softness, margin); + } +} diff --git a/packages/cultmath/src/CultMath/math.Sites.cs.meta b/packages/cultmath/src/CultMath/math.Sites.cs.meta new file mode 100644 index 00000000..f9956189 --- /dev/null +++ b/packages/cultmath/src/CultMath/math.Sites.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 856a5e425b6b45f4a8b3e9a8cd32fe38 diff --git a/packages/cultmath/src/CultMath/math.Span.cs b/packages/cultmath/src/CultMath/math.Span.cs index 364bd04b..410b1aa3 100644 --- a/packages/cultmath/src/CultMath/math.Span.cs +++ b/packages/cultmath/src/CultMath/math.Span.cs @@ -5,15 +5,18 @@ public static partial class math // An upper bound on the operator norm of the third-derivative tensor of snoise(float3): // max over unit u of |D^3 snoise(p)[u, u, u]|, the next order after SNOISE_LIPSCHITZ (gradient) // and SNOISE_HESSIAN (curvature). Provenance: NoiseBoundTests.MeasureThird (slow, explicit) takes - // the largest such norm over 1e6 seeded points of [-256, 256]^3 (central differences of - // snoise_hessian at h = 1e-3, then an ascent over unit vectors for the tensor's operator norm), - // refines the 1e4 largest by ascent over the point, and multiplies the maximum by 1.10; it prints - // the witness start. NoiseBoundTests.ThirdConstantPinsSampled pins the value against a fast - // re-measure and the ascent from that witness. Measured on the tied kernel (snoise_grad's order), - // not on any pre-tie splice. Measured 488.1047 (a dense sweep of 20,000 directions at the witness - // found 99.9998% of the tensor norm there). Empirical with a margin, not a proof. A change to the snoise kernel - // must re-run MeasureThird and re-pin it. - public const float SNOISE_THIRD = 536.9152f; + // the largest such norm over 1e6 seeded points of [-256, 256]^3 of the closed-form tensor (snoise_hessian's + // per-corner derivation differentiated once more, in double, with the kernel's lattice, tie order and + // hash; NoiseBoundTests.ThirdTensorMatchesDifferencesOfTheHessian pins it against differences of the + // double Hessian), then an ascent over unit vectors for the tensor's operator norm, refines the 1e4 + // largest by ascent over the point, and multiplies the maximum by 1.10; it prints the witness start. + // NoiseBoundTests.ThirdConstantPinsSampled pins the value against a fast re-measure and the ascent + // from that witness. Measured on the tied kernel (snoise_grad's order), not on any pre-tie splice: + // refined maximum 487.0917, a dense sweep of 20,000 directions at the witness's ascent end found + // 99.9987% of the tensor norm there. The inner maximisation is a local ascent and the outer a sampled + // search refined by ascent: empirical with a margin, not a proof. A change to the snoise kernel must + // re-run MeasureThird and re-pin it. + public const float SNOISE_THIRD = 535.8009f; // Analytic Hessian of snoise(float3): the symmetric matrix of second partial derivatives, same // lattice, hash and tie order as snoise_grad, whose kernel it differentiates once more. Every local @@ -100,14 +103,17 @@ public static partial class math // at the bound the line starts beyond, the stretch on the ramp (a trapezoid: its length times the // line's value at the stretch's midpoint), and the stretch held at the far bound. b = 0 is the // constant clamp(a, lo, hi); t1 < t0 is the negative of the integral over [t1, t0]; lo above hi - // clamps to hi everywhere, as clamp does. A crossing that overflows (b tiny) lies past the span and - // cuts nothing. + // clamps to hi everywhere, as clamp does, and is normalised (lo = min(lo, hi)) before anything reads it, + // so no clamp ever sees lo above hi (GLSL leaves that undefined). A crossing that overflows (b tiny) lies past the span and + // cuts nothing. A held stretch contributes only when its length is positive, so an infinite bound + // (relu has hi = +inf) times a zero length never forms: the integral of a ramp clamped on one side + // only is finite. public static float integral_clamp_linear(float a, float b, float lo, float hi, float t0, float t1) { - if (b == 0.0f) - return clamp(a, lo, hi) * (t1 - t0); - lo = min(lo, hi); + if (b == 0.0f) + return t1 != t0 ? clamp(a, lo, hi) * (t1 - t0) : 0.0f; + var direction = t1 < t0 ? -1.0f : 1.0f; var start = min(t0, t1); var stop = max(t0, t1); @@ -117,7 +123,154 @@ public static partial class math var leave = clamp(max(atLo, atHi), start, stop); var before = b > 0.0f ? lo : hi; var after = b > 0.0f ? hi : lo; - var total = before * (enter - start) + (a + b * (0.5f * (enter + leave))) * (leave - enter) + after * (stop - leave); + var held = enter > start ? before * (enter - start) : 0.0f; + var kept = stop > leave ? after * (stop - leave) : 0.0f; + var total = held + (a + b * (0.5f * (enter + leave))) * (leave - enter) + kept; return direction * total; } + + private static float span_frobenius(float3x3 m) => + sqrt(m._m00 * m._m00 + m._m01 * m._m01 + m._m02 * m._m02 + m._m10 * m._m10 + m._m11 * m._m11 + m._m12 * m._m12 + + m._m20 * m._m20 + m._m21 * m._m21 + m._m22 * m._m22); + + // Plain fbm of snoise over a span: the octave stage of a warp chain, its value and gradient at the + // span's midpoint and the bounds that hold over the whole span. See span_stage for the span, the + // transform and the bound rules. At SpanStage.Identity the field equals fbm_grad(path.midpoint, + // octaves, lacunarity, gain) bit for bit. + public static SpanNoise span_fbm(SpanPath path, SpanStage stage, int octaves, float lacunarity, float gain) => + span_stage(false, path, stage, octaves, lacunarity, gain); + + // Ridged fbm over a span: octave o contributes gain^o (1 - |n_o|), ridged_grad's convention. fold + // bounds how far the sum can leave the branch it is on at the midpoint. At SpanStage.Identity the field + // equals ridged_grad bit for bit. + // + // The Span Lab's stage is 1 - 2|n| per octave. With G the sum of gain^o over the octaves (signed: a + // negative gain gives its alternating sum), the lab's value is 2 value - G, and its gradient, + // curvature and fold are twice this one's. A consumer in the lab form applies that mapping and does + // not derive its own bounds. + public static SpanNoise span_ridged(SpanPath path, SpanStage stage, int octaves, float lacunarity, float gain) => + span_stage(true, path, stage, octaves, lacunarity, gain); + + // 2^-20 S_o: the rounding one octave's read of the noise carries, S_o being the sum of the magnitudes the + // octave's coordinate is formed from and the span's reach (the allowance paragraph above). The single + // owner of S_o; span_slack turns it into the three allowances. + internal static float span_rounding(float scale, float3 mq, SpanStage stage, float3 step, float nu, float halfLength) => + 9.5367431640625e-7f * (abs(scale) * (csum(abs(mq)) + csum(abs(stage.shift))) + csum(abs(stage.offset)) + csum(abs(step)) + 1.7320508f * nu * halfLength); + + // The allowances (e_n, e_g, e_h) of the value, the gradient's length and the Hessian's Frobenius norm at + // a rounding of 2^-20 S_o: the absolute term of each plus its derivative's pin times the rounding. The + // single owner of the three allowances of a span; af_snoise (math.Affine.cs) forms its own allowance + // from the same SNOISE_READ_VALUE and SNOISE_READ_GRADIENT, the owners of the first two absolute terms, + // so widening either moves every reader of the kernel at once. + internal static float3 span_slack(float rounding) => new( + SNOISE_READ_VALUE + SNOISE_LIPSCHITZ * rounding, + SNOISE_READ_GRADIENT + SNOISE_HESSIAN * rounding, + 9.765625e-4f + SNOISE_THIRD * rounding); + + // The span is SpanPath: q(t), |t| <= halfLength, through midpoint with velocity at t = 0, |q'| <= speed + // and |q''| <= acceleration along it (speed at least |velocity|; all three and halfLength non-negative). + // The transform is SpanStage: octave o samples snoise_grad at x_o(q) = f_o (M q + shift) + offset + + // o octaveStep with f_o = lacunarity^o, amplitude gain^o and M = frequency (I + (1/stretch - 1) a a^T), + // a = normalize(axis); a zero axis, or stretch 1, means no stretch. stretch must be positive and + // finite, and nothing guards it, as nothing guards lacunarity. octaves clamps to [0, 16] as fbm_grad's + // does. The field is the octave sum in q: gradient f_o M grad n_o (M is symmetric), the same octave + // loop as fbm_grad and ridged_grad. + // + // Bounds, per octave, from SNOISE_LIPSCHITZ (L), SNOISE_HESSIAN (H) and SNOISE_THIRD (T) only. With + // |M| = |frequency| max(1, 1/stretch) (1 without stretch) and nu = f_o |M| speed, the noise-space speed: + // * |x(t) - x_mid| <= nu halfLength, so the Hessian of n at x(t) has operator norm at most + // Hl = min(H, ||hessian(x_mid)||_F + e_h + T nu halfLength) (the Hessian is T-Lipschitz in operator + // norm, and the Frobenius norm bounds the operator norm), and |grad n(x(t))| at most + // Gl = min(L, |grad n_mid| + e_g + Hl nu halfLength). + // * curvature = sum gain^o f_o^2 |M|^2 Hl: the Hessian in q of n(x_o(q)) is f_o^2 M H M. + // * fold, ridged only. Over the span the octave's value departs from its midpoint branch + // gain^o (1 - s n) (s the sign of n at the midpoint) only where n has changed sign, and there + // |n(t)| <= V - |n_mid|, V bounding |n(t) - n_mid|. Writing n(t) - n_mid as the integral of + // grad n . x', x' = w + rho with w = f_o M velocity and |rho| <= f_o |M| acceleration |t|, and + // grad n = grad n_mid + delta with |delta| <= Hl nu |t|: + // V = (|grad n_mid . w| + e_g |w|) halfLength + (Hl nu |w| + Gl f_o |M| acceleration) halfLength^2 / 2 + // + 2 e_n, + // and the octave's fold is 2 gain^o max(V - |n_mid|, 0), zero when it cannot reach zero. + // + // The float32 snoise, snoise_grad and snoise_hessian are not the exact functions, and the field a + // consumer reads is the float one, so what is read at the midpoint carries an allowance, by the + // derivation af_snoise's comment gives (math.Affine.cs): the skew and the corner offsets round the + // coordinate by about 2u of the magnitudes it is formed from, which moves a result by its derivative + // times that, and the caller's scaling of the point and a GPU's evaluation take 2u to 16u = 2^-20. + // S_o is the sum of those magnitudes, |f_o| (|M q|_1 + |shift|_1) + |offset|_1 + |o octaveStep|_1, plus + // the span's reach sqrt(3) nu halfLength (the coordinate of a path point); span_rounding is its owner. The + // allowances are the value's e_n = 2^-14 + L 2^-20 S_o, the gradient length's e_g = 2^-12 + H 2^-20 S_o + // (H is the gradient's own derivative's pin) and the Hessian's Frobenius norm's e_h = 2^-10 + T 2^-20 S_o + // (T is the Hessian's derivative's pin): SNOISE_READ_VALUE and SNOISE_READ_GRADIENT (math.Affine.cs) are the + // absolute terms of the first two, 2^-10 the Hessian's; span_slack is the owner of the three. They are observed where they are decided: the coordinate-band + // snoise_grad and snoise_hessian families of glsl-parity.json and SpanAllowanceCoversReadsAlongTheSpan + // check every read against them. Those observations are samples, not bounds: a new seed moves them. What + // they say is that the allowances enclose the error with a margin of about 15. + // No new pin enters. + // + // Domain: no coordinate range is checked, clamped or refused. The allowances grow with S_o, so + // curvature saturates at H (true everywhere) by S_o of about 1.1e5, and fold turns positive for every + // octave whose V + 2 e_n reaches |n_mid|: the bounds stay sound at every magnitude and stop being + // informative where float32 noise is (design.md, Precision domain). + private static SpanNoise span_stage(bool ridged, SpanPath path, SpanStage stage, int octaves, float lacunarity, float gain) + { + var q = path.midpoint; + var halfLength = path.halfLength; + octaves = clamp(octaves, 0, 16); + var stretched = dot(stage.axis, stage.axis) > 0.0f && stage.stretch != 1.0f; + var direction = stretched ? normalize(stage.axis) : new float3(0.0f, 0.0f, 0.0f); + var squeeze = stretched ? 1.0f / stage.stretch - 1.0f : 0.0f; + var norm = abs(stage.frequency) * (stretched ? max(1.0f, 1.0f / stage.stretch) : 1.0f); + var mq = stretched ? stage.frequency * (q + squeeze * dot(direction, q) * direction) : stage.frequency * q; + var mv = stretched ? stage.frequency * (path.velocity + squeeze * dot(direction, path.velocity) * direction) : stage.frequency * path.velocity; + var amplitude = 1.0f; + var scale = 1.0f; + var value = 0.0f; + var gradient = new float3(0.0f, 0.0f, 0.0f); + var curvature = 0.0f; + var fold = 0.0f; + for (var i = 0; i < octaves; i++) + { + var step = (float)i * stage.octaveStep; + var x = scale * (mq + stage.shift) + (stage.offset + step); + var n = snoise_grad(x); + var g = new float3(n.x, n.y, n.z); + var mg = stretched ? stage.frequency * (g + squeeze * dot(direction, g) * direction) : stage.frequency * g; + if (ridged) + { + var s = (float)sign(n.w); + value += amplitude * (1.0f - abs(n.w)); + gradient += -amplitude * scale * s * mg; + } + else + { + value += amplitude * n.w; + gradient += amplitude * scale * mg; + } + + var weight = abs(amplitude); + var factor = abs(scale) * norm; + var nu = factor * path.speed; + var rounding = span_rounding(scale, mq, stage, step, nu, halfLength); + var slack = span_slack(rounding); + var valueSlack = slack.x; + var gradientSlack = slack.y; + var hessianSlack = slack.z; + var local = min(SNOISE_HESSIAN, span_frobenius(snoise_hessian(x)) + hessianSlack + SNOISE_THIRD * nu * halfLength); + curvature += weight * factor * factor * local; + if (ridged) + { + var w = scale * mv; + var reach = local * nu * halfLength; + var gl = min(SNOISE_LIPSCHITZ, length(g) + gradientSlack + reach); + var travel = (abs(dot(g, w)) + gradientSlack * length(w)) * halfLength + (local * nu * length(w) + gl * factor * path.acceleration) * (0.5f * halfLength * halfLength) + 2.0f * valueSlack; + fold += 2.0f * weight * max(travel - abs(n.w), 0.0f); + } + + scale *= lacunarity; + amplitude *= gain; + } + + return new SpanNoise(new float4(gradient, value), curvature, fold); + } } diff --git a/packages/cultmath/src/CultMath/math.cs b/packages/cultmath/src/CultMath/math.cs index a5a30a09..0d22dc4c 100644 --- a/packages/cultmath/src/CultMath/math.cs +++ b/packages/cultmath/src/CultMath/math.cs @@ -317,18 +317,41 @@ public static partial class math } public static float distance_to_segment(float2 point, float2 start, float2 end, out float2 closest) + { + closest = segment_closest(point, start, end); + return distance(point, closest); + } + + /// The distance from to the segment -; a degenerate segment is its start. + public static float distance_to_segment(float2 point, float2 start, float2 end) => + distance(point, segment_closest(point, start, end)); + + /// The distance from to the segment -; a degenerate segment is its start. + public static float distance_to_segment(float3 point, float3 start, float3 end) => + distance(point, segment_closest(point, start, end)); + + /// The point of the segment - nearest ; a degenerate segment is its start. + public static float2 segment_closest(float2 point_value, float2 start, float2 end) { var segment = end - start; var segmentLengthSq = lengthsq(segment); if (segmentLengthSq <= 0.0f) - { - closest = start; - return distance(point, start); - } + return start; - var t = saturate(dot(point - start, segment) / segmentLengthSq); - closest = start + segment * t; - return distance(point, closest); + var t = saturate(dot(point_value - start, segment) / segmentLengthSq); + return start + segment * t; + } + + /// The point of the segment - nearest ; a degenerate segment is its start. + public static float3 segment_closest(float3 point_value, float3 start, float3 end) + { + var segment = end - start; + var segmentLengthSq = lengthsq(segment); + if (segmentLengthSq <= 0.0f) + return start; + + var t = saturate(dot(point_value - start, segment) / segmentLengthSq); + return start + segment * t; } public static float catmullrom(float p0, float p1, float p2, float p3, float t) diff --git a/packages/cultmath/tests/CultMath.Tests/AffineTests.cs b/packages/cultmath/tests/CultMath.Tests/AffineTests.cs index 51bcacc5..e73f34f5 100644 --- a/packages/cultmath/tests/CultMath.Tests/AffineTests.cs +++ b/packages/cultmath/tests/CultMath.Tests/AffineTests.cs @@ -295,9 +295,35 @@ public sealed class AffineTests // af_snoise's float32 allowance, as its doc comment states it, for the width comparison below. private static double Allowance(float3 centre, double reach) => - Math.ScaleB(1.0, -14) + Math.ScaleB(reach, -12) + SNOISE_READ_VALUE + SNOISE_READ_GRADIENT * reach + SNOISE_LIPSCHITZ * Math.ScaleB(Math.Abs(centre.x) + Math.Abs(centre.y) + Math.Abs(centre.z) + reach, -20); + /// + /// af_snoise reads the same absolute rounding terms of the kernel as span_slack: at the origin with no + /// axis, the form's error is span_slack's value allowance at zero rounding plus the Lipschitz form's + /// L R, and each unit of reach adds span_slack's gradient term at zero rounding plus L 2^-20 (the + /// coordinate's own rounding). Widening the kernel's absolute read in one reader and not the other, + /// the device judge's possible outcome, fails here. The expected bits are formed from span_slack, not + /// from a literal. + /// + [Fact] + public void SnoiseFormAndSpanSlackShareTheKernelsAbsoluteTerms() + { + var zero = new float3(0.0f, 0.0f, 0.0f); + var slack = span_slack(0.0f); + var value = snoise_grad(zero).w; + foreach (var reach in new[] { 0.0f, 1.0f, 3.0f }) + { + var lipschitz = SNOISE_LIPSCHITZ * reach; + var allowance = slack.x + slack.y * reach + SNOISE_LIPSCHITZ * 9.5367431640625e-7f * reach; + var e = lipschitz + allowance; + var expected = e + (abs(value) + 0.0f + e) * 9.5367431640625e-7f; + var form = af_snoise(zero, zero, reach); + Assert.True(BitConverter.SingleToInt32Bits(form.z) == BitConverter.SingleToInt32Bits(expected), + $"af_snoise(0, 0, {reach:R}).z is {form.z:R}; the allowances span_slack reads give {expected:R}"); + } + } + private static float3 UnitVector(System.Random random) { float3 v; diff --git a/packages/cultmath/tests/CultMath.Tests/GlslLowering.cs b/packages/cultmath/tests/CultMath.Tests/GlslLowering.cs index 5684535e..9af009f3 100644 --- a/packages/cultmath/tests/CultMath.Tests/GlslLowering.cs +++ b/packages/cultmath/tests/CultMath.Tests/GlslLowering.cs @@ -70,8 +70,9 @@ internal static class GlslLowering var source = hlsl.ReplaceLineEndings("\n"); // 2. Include guards are dropped, and so are the functions taking Texture2D/SamplerState, exactly - // as the C# mirror drops them; the host shader samples its own textures. - source = Regex.Replace(source, @"(?m)^[ \t]*#(ifndef|define|endif)\b.*$", string.Empty); + // as the C# mirror drops them; the host shader samples its own textures. The capacity macro + // (#ifndef CULTMATH_MAX_SITES ... #endif) stays: GLSL has the preprocessor, and a consumer overrides it. + source = HlslSourceCompatibilityTests.DropGuards(source, (name, value) => $"#ifndef {name}\n#define {name} {value}\n#endif"); source = Regex.Replace(source, @"(?ms)^\w+ \w+\([^)]*\b(Texture2D|SamplerState)\b[^)]*\)\s*\{.*?^\}[ \t]*$", string.Empty); // 3. Type names: floatN, intN, uintN and boolN become vecN, ivecN, uvecN and bvecN, and float3x3 diff --git a/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.Device.cs b/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.Device.cs new file mode 100644 index 00000000..9324cad5 --- /dev/null +++ b/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.Device.cs @@ -0,0 +1,701 @@ +using System.Globalization; +using System.Text.Json.Nodes; +using CultMath; +using Xunit; +using Xunit.Sdk; + +namespace CultMath.Tests; + +/// +/// The conforming run's C# half. says what a device must compute: every fixture +/// family on the fixture's own arguments, plus one reference family for each sampled-form family, whose +/// points are the ones the form check evaluates. says whether a device's results +/// hold: exact and integer families bit for bit, check families by their Verify, sampled-form families by +/// the form check on the device's own reference values, every other family within its recorded bound. +/// The generator, the Vulkan host and the job script only spell, dispatch and run; they compare nothing. +/// +public sealed partial class GlslMirrorTests +{ + private static readonly string[] DeviceRoutes = { "lavapipe-hlsl", "lavapipe-glsl" }; + + private static string BoundsPath => Path.Combine(Root, "tests", "CultMath.Tests", "fixtures", "device-bounds-lavapipe.txt"); + + private static string? Env(string name) => Environment.GetEnvironmentVariable(name) is { Length: > 0 } value ? value : null; + + private static JsonArray FixtureFamilies() => JsonNode.Parse(File.ReadAllText(FixturePath))!["functions"]!.AsArray(); + + private static string[] Sides(JsonNode? entry) => ((string)entry!).Split(" -> "); + + private static uint[] DevWords(string hex) => hex.Split(' ').Select(h => Convert.ToUInt32(h, 16)).ToArray(); + + private static string DevHex(IEnumerable words) => string.Join(' ', words.Select(w => w.ToString("x8"))); + + private static uint[] ReadWords(string path) + { + var bytes = File.ReadAllBytes(path); + var words = new uint[bytes.Length / 4]; + for (var i = 0; i < words.Length; i++) + words[i] = BitConverter.ToUInt32(bytes, i * 4); + return words; + } + + private static void WriteWords(string path, IEnumerable words) + { + using var writer = new BinaryWriter(File.Create(path)); + foreach (var word in words) + writer.Write(word); + } + + private static bool IsSampledForm(Family family) => + family.Check is not null && (family.Glsl.Contains("cultmath_af_snoise(") || family.Glsl.Contains("cultmath_af_fbm(")); + + private static string Tag(int family) => $"f{family:D3}"; + + private static string RefTag(int family) => $"r{family:D3}"; + + private sealed record WorkItem(string Tag, string Index, string Glsl, int N, int WordsIn, int WordsOut); + + // ---- What a device must compute ---- + + private static List WriteWork(string dir) + { + Directory.CreateDirectory(dir); + var fixture = FixtureFamilies(); + Assert.Equal(Families.Length, fixture.Count); + var items = new List(); + for (var f = 0; f < Families.Length; f++) + { + Assert.Equal(Families[f].Glsl, (string?)fixture[f]!["glsl"]); + var cases = fixture[f]!["cases"]!.AsArray(); + WriteWords(Path.Combine(dir, Tag(f) + ".in"), cases.SelectMany(c => DevWords(Sides(c)[0]))); + items.Add(new WorkItem(Tag(f), f.ToString(CultureInfo.InvariantCulture), Families[f].Glsl, cases.Count, DevWords(Sides(cases[0])[0]).Length, DevWords(Sides(cases[0])[1]).Length)); + if (IsSampledForm(Families[f])) + items.Add(WriteReference(dir, f, cases)); + } + + File.WriteAllLines(Path.Combine(dir, "manifest.txt"), items.Select(i => string.Join('\t', i.Tag, i.Index, i.Glsl, i.N, i.WordsIn, i.WordsOut))); + return items; + } + + // The points the form check evaluates the reference at, in the order it evaluates them: the reference + // func records p, and for fBm the case's octaves, lacunarity and gain, then answers as C# does. + private static WorkItem WriteReference(string dir, int family, JsonArray cases) + { + var fbm = Families[family].Glsl.Contains("cultmath_af_fbm("); + var recorded = new List(); + Func recorder = (t, p) => + { + recorded.AddRange(new[] { BitConverter.SingleToUInt32Bits(p.x), BitConverter.SingleToUInt32Bits(p.y), BitConverter.SingleToUInt32Bits(p.z) }); + if (fbm) + recorded.AddRange(t[7..10].Select(h => Convert.ToUInt32(h, 16))); + return fbm ? FbmReference(t, p) : SnoiseReference(t, p); + }; + if (fbm) + AssertFbmForm(cases, false, recorder); + else + AssertSnoiseForm(cases, false, recorder); + + var wordsIn = fbm ? 6 : 3; + WriteWords(Path.Combine(dir, RefTag(family) + ".in"), recorded); + return new WorkItem(RefTag(family), "ref:" + family.ToString(CultureInfo.InvariantCulture), + fbm ? "vec4 cultmath_fbm_grad(vec3, int, float, float)" : "float cultmath_snoise(vec3)", recorded.Count / wordsIn, wordsIn, fbm ? 4 : 1); + } + + [Fact] + public void WriteDeviceWork() + { + var dir = Env("CULTMATH_DEVICE_WORK"); + Assert.SkipUnless(dir is not null, "CULTMATH_DEVICE_WORK= writes the work list a device runs"); + var items = WriteWork(dir!); + output.WriteLine($"{items.Count} work items ({items.Count(i => i.Index.StartsWith("ref:"))} reference families) in {dir}"); + } + + // ---- Whether a device's results hold ---- + + private sealed record BoundRow(string Route, int Index, string Glsl, string Tolerance, int Exact, double Worst, int NanClass, string Bits); + + private sealed record Measured(BoundRow Row, string Class); + + private sealed record Judgement(List Failures, List Rows); + + // Which words of a family's result are floats; the rest are integers and must match bit for bit. + private static IEnumerable FloatWords(Type type) => + type == typeof(float) ? new[] { true } + : type == typeof(int) || type == typeof(uint) ? new[] { false } + : type == typeof(float3x3) ? Enumerable.Repeat(true, 9) + : type.GetFields().Where(f => !f.IsStatic).SelectMany(f => FloatWords(f.FieldType)); + + // u1 = |device - fixture| / max(|fixture|, 1) / 2^-23 per float component, worst over the family; NaN and + // Inf are compared as classes (NaN against not-NaN, an Inf against anything else), never by value. + private static (int Exact, double Worst, int NanClass) Measure(JsonArray cases, bool[] floatWord, uint[] got) + { + int exact = 0, nanClass = 0; + var worst = 0.0; + var wordsOut = floatWord.Length; + for (var c = 0; c < cases.Count; c++) + { + var want = DevWords(Sides(cases[c])[1]); + var same = true; + for (var w = 0; w < wordsOut; w++) + { + var have = got[c * wordsOut + w]; + if (have == want[w]) + continue; + same = false; + if (!floatWord[w]) + { + nanClass++; + continue; + } + + var e = BitConverter.UInt32BitsToSingle(want[w]); + var h = BitConverter.UInt32BitsToSingle(have); + if (float.IsNaN(e) || float.IsNaN(h)) + nanClass += float.IsNaN(e) == float.IsNaN(h) ? 0 : 1; + else if (float.IsInfinity(e) || float.IsInfinity(h)) + nanClass += e == h ? 0 : 1; + else + worst = Math.Max(worst, Math.Abs((double)e - h) / Math.Max(Math.Abs((double)e), 1.0) / Math.ScaleB(1.0, -23)); + } + + if (same) + exact++; + } + + return (exact, worst, nanClass); + } + + // The device's own reference values, in the order WriteReference recorded their points. The check asks + // for the reference at a point; the point it asks for must be the one the device was given at that place. + private static Func DeviceReference(string work, string routeResults, WorkItem reference) + { + var points = ReadWords(Path.Combine(work, reference.Tag + ".in")); + var values = ReadWords(Path.Combine(routeResults, reference.Tag + ".out")); + Assert.Equal(reference.N * reference.WordsOut, values.Length); + var next = 0; + return (_, p) => + { + Assert.True(next < reference.N, "reference point asked for past the recorded work"); + var at = next * reference.WordsIn; + Assert.True(points[at] == BitConverter.SingleToUInt32Bits(p.x) && points[at + 1] == BitConverter.SingleToUInt32Bits(p.y) && points[at + 2] == BitConverter.SingleToUInt32Bits(p.z), + $"reference point {next} is not the point the device was given"); + return BitConverter.UInt32BitsToSingle(values[next++ * reference.WordsOut + reference.WordsOut - 1]); + }; + } + + // sha256 of the family's result bytes, and of its reference result when it is judged on one. + private static string ResultBits(string path, string? reference) + { + var bytes = File.ReadAllBytes(path); + if (reference is not null) + bytes = bytes.Concat(File.ReadAllBytes(reference)).ToArray(); + return Convert.ToHexString(System.Security.Cryptography.SHA256.HashData(bytes)).ToLowerInvariant(); + } + + // A tolerance text may state what a device is allowed: "on a device |diff| <= 2^-N max(|v|, 1)", which in + // u1 units (2^-23) is 2^(23-N). The judge reads it here and nowhere else. + private static double? StatedDeviceLimit(string tolerance) + { + var m = System.Text.RegularExpressions.Regex.Match(tolerance, @"on a device \|diff\| <= 2\^-(\d+) max\(\|v\|, 1\)"); + return m.Success ? Math.ScaleB(1.0, 23 - int.Parse(m.Groups[1].Value)) : null; + } + + private static string FirstLine(Exception e) + { + var line = e.Message.Split('\n')[0]; + return line.Length > 300 ? line[..300] : line; + } + + private static Judgement JudgeDevice(string work, string results, string renderer, string identity, string boundsPath, bool write) + { + var failures = new List(); + var measured = new List(); + Dictionary<(string, int), BoundRow>? recorded = null; + if (!write) + { + if (!File.Exists(boundsPath)) + return new Judgement(new List { "no recorded device bounds; record them with CULTMATH_WRITE_DEVICE_BOUNDS=1" }, measured); + var (header, rows) = ReadBounds(boundsPath); + if (header.GetValueOrDefault("renderer") != renderer || header.GetValueOrDefault("identity") != identity) + return new Judgement(new List { "the device or its toolchain is not the one the bounds were recorded on; re-record them with CULTMATH_WRITE_DEVICE_BOUNDS=1" }, measured); + recorded = rows; + } + + var fixture = FixtureFamilies(); + var items = File.ReadAllLines(Path.Combine(work, "manifest.txt")).Select(l => l.Split('\t')) + .ToDictionary(c => c[1], c => new WorkItem(c[0], c[1], c[2], int.Parse(c[3]), int.Parse(c[4]), int.Parse(c[5]))); + foreach (var route in DeviceRoutes) + for (var f = 0; f < Families.Length; f++) + { + var family = Families[f]; + var cases = fixture[f]!["cases"]!.AsArray(); + var name = $"{route} #{f} {family.Glsl}"; + var path = Path.Combine(results, route, Tag(f) + ".out"); + if (!File.Exists(path)) + { + failures.Add($"{name}: missing {Tag(f)}.out"); + continue; + } + + var floatWord = FloatWords(Resolve(family.Glsl).ReturnType).ToArray(); + var got = ReadWords(path); + if (got.Length != cases.Count * floatWord.Length) + { + failures.Add($"{name}: {Tag(f)}.out holds {got.Length} words, not {cases.Count * floatWord.Length}"); + continue; + } + + var (exact, worst, nanClass) = Measure(cases, floatWord, got); + var bits = ResultBits(path, IsSampledForm(family) ? Path.Combine(results, route, RefTag(f) + ".out") : null); + var exactClass = family.Tolerance == "exact" || !floatWord.Any(w => w); + var kind = exactClass ? "exact" : IsSampledForm(family) ? "sampled" : family.Verify is not null ? "check" : "bound"; + measured.Add(new Measured(new BoundRow(route, f, family.Glsl, family.Tolerance, exact, worst, nanClass, bits), kind)); + try + { + if (exactClass) + Assert.True(exact == cases.Count, $"{exact} of {cases.Count} cases are bit-identical to the fixture"); + else if (kind == "sampled") + { + var reference = DeviceReference(work, Path.Combine(results, route), items["ref:" + f]); + if (family.Glsl.Contains("cultmath_af_fbm(")) + AssertFbmForm(cases, false, reference); + else + AssertSnoiseForm(cases, false, reference); + } + else if (kind == "check") + family.Verify!(new JsonArray(cases.Select((c, i) => (JsonNode)JsonValue.Create(Sides(c)[0] + " -> " + DevHex(got.Skip(i * floatWord.Length).Take(floatWord.Length)))!).ToArray())); + } + catch (XunitException e) + { + failures.Add($"{name}: {FirstLine(e)}"); + } + } + + if (write) + { + WriteBounds(boundsPath, renderer, identity, measured.Select(m => m.Row)); + recorded = measured.ToDictionary(m => (m.Row.Route, m.Row.Index), m => m.Row); + } + + foreach (var m in measured) + { + var name = $"{m.Row.Route} #{m.Row.Index} {m.Row.Glsl}"; + if (!recorded!.TryGetValue((m.Row.Route, m.Row.Index), out var bound)) + failures.Add($"{name}: no recorded row; re-record with CULTMATH_WRITE_DEVICE_BOUNDS=1"); + else if (bound.Glsl != m.Row.Glsl || bound.Tolerance != m.Row.Tolerance) + failures.Add($"{name}: the recorded row is for another family; re-record with CULTMATH_WRITE_DEVICE_BOUNDS=1"); + else if (m.Class == "bound" && (m.Row.Worst > bound.Worst || m.Row.NanClass > bound.NanClass)) + failures.Add($"{name}: worst u1 {m.Row.Worst:R} and {m.Row.NanClass} NaN-class mismatches, past the recorded {bound.Worst:R} and {bound.NanClass}"); + else if (m.Class == "bound" && StatedDeviceLimit(m.Row.Tolerance) is { } limit && m.Row.Worst > limit) + failures.Add($"{name}: worst u1 {m.Row.Worst:R}, past the {limit:R} its stated tolerance allows a device"); + else if (m.Row.Bits != bound.Bits && !failures.Any(x => x.StartsWith(name + ":"))) + failures.Add($"{name}: the result bits differ from the recorded run's; if the change is meant, re-record with CULTMATH_WRITE_DEVICE_BOUNDS=1"); + } + + return new Judgement(failures, measured); + } + + // ---- The recorded bounds: plain text, tab-separated, one row per route and family ---- + + private static void WriteBounds(string path, string renderer, string identity, IEnumerable rows) + { + var lines = new List + { + "# renderer\t" + renderer, + "# identity\t" + identity, + "# route\tindex\tglsl\ttolerance\texact cases\tworst u1\tNaN-class mismatches result sha256; written only by CULTMATH_WRITE_DEVICE_BOUNDS=1", + }; + lines.AddRange(rows.OrderBy(r => r.Route, StringComparer.Ordinal).ThenBy(r => r.Index) + .Select(r => string.Join('\t', r.Route, r.Index, r.Glsl, r.Tolerance, r.Exact, r.Worst.ToString("R", CultureInfo.InvariantCulture), r.NanClass, r.Bits))); + File.WriteAllText(path, string.Join('\n', lines) + "\n"); + } + + private static (Dictionary Header, Dictionary<(string, int), BoundRow> Rows) ReadBounds(string path) + { + var header = new Dictionary(); + var rows = new Dictionary<(string, int), BoundRow>(); + foreach (var line in File.ReadAllLines(path)) + { + var c = line.Split('\t'); + if (line.StartsWith("# renderer\t") || line.StartsWith("# identity\t")) + header[c[0][2..]] = c[1]; + else if (!line.StartsWith('#') && line.Length > 0) + rows[(c[0], int.Parse(c[1]))] = new BoundRow(c[0], int.Parse(c[1]), c[2], c[3], int.Parse(c[4]), double.Parse(c[5], CultureInfo.InvariantCulture), int.Parse(c[6]), c[7]); + } + + return (header, rows); + } + + [Fact] + public void DeviceResultsHoldFixture() + { + var results = Env("CULTMATH_DEVICE_RESULTS"); + Assert.SkipUnless(results is not null, "CULTMATH_DEVICE_RESULTS= (holding /.out) judges a device's results"); + var work = Env("CULTMATH_DEVICE_WORK"); + var renderer = Env("CULTMATH_DEVICE_NAME"); + var identity = Env("CULTMATH_DEVICE_IDENTITY"); + Assert.True(work is not null && renderer is not null && identity is not null, "CULTMATH_DEVICE_WORK, CULTMATH_DEVICE_NAME and CULTMATH_DEVICE_IDENTITY are required beside CULTMATH_DEVICE_RESULTS"); + var judgement = JudgeDevice(work!, results!, renderer!, identity!, BoundsPath, Env("CULTMATH_WRITE_DEVICE_BOUNDS") == "1"); + foreach (var route in DeviceRoutes) + { + var rows = judgement.Rows.Where(m => m.Row.Route == route).ToList(); + output.WriteLine($"{route}: {rows.Count} families judged: " + string.Join(", ", rows.GroupBy(m => m.Class).OrderBy(g => g.Key).Select(g => $"{g.Count()} {g.Key}"))); + foreach (var m in rows.OrderByDescending(m => m.Row.Worst).Take(5)) + output.WriteLine($" worst u1 {m.Row.Worst:R}, {m.Row.NanClass} NaN-class: #{m.Row.Index} {m.Row.Glsl} ({m.Class})"); + } + + foreach (var failure in judgement.Failures.Take(60)) + output.WriteLine("FAIL " + failure); + Assert.True(judgement.Failures.Count == 0, $"{judgement.Failures.Count} device results do not hold the fixture; first: {judgement.Failures.FirstOrDefault()}"); + } + + // ---- The judge against simulated devices ---- + // A faithful device answers the fixture's own result bits and, for a reference family, C#'s snoise or + // fBm at the recorded points. A test alters what one family or one route answers. + + private sealed record Simulated(string Root, string Work, string Results, string Bounds) : IDisposable + { + public void Dispose() => Directory.Delete(Root, true); + } + + private static Simulated Simulate(Func? alter = null) + { + var root = Path.Combine(Path.GetTempPath(), "cultmath-device-" + Guid.NewGuid().ToString("N")); + var work = Path.Combine(root, "work"); + var items = WriteWork(work); + var fixture = FixtureFamilies(); + foreach (var route in DeviceRoutes) + { + Directory.CreateDirectory(Path.Combine(root, "results", route)); + foreach (var item in items) + { + uint[] words; + if (item.Index.StartsWith("ref:")) + { + var points = ReadWords(Path.Combine(work, item.Tag + ".in")); + words = new uint[item.N * item.WordsOut]; + for (var k = 0; k < item.N; k++) + { + var at = k * item.WordsIn; + var p = new float3(BitConverter.UInt32BitsToSingle(points[at]), BitConverter.UInt32BitsToSingle(points[at + 1]), BitConverter.UInt32BitsToSingle(points[at + 2])); + var tokens = new string[10]; + if (item.WordsIn == 6) + for (var t = 0; t < 3; t++) + tokens[7 + t] = points[at + 3 + t].ToString("x8"); + words[k * item.WordsOut + item.WordsOut - 1] = BitConverter.SingleToUInt32Bits(item.WordsIn == 6 ? FbmReference(tokens, p) : SnoiseReference(tokens, p)); + } + } + else + words = fixture[int.Parse(item.Index)]!["cases"]!.AsArray().SelectMany(c => DevWords(Sides(c)[1])).ToArray(); + + WriteWords(Path.Combine(root, "results", route, item.Tag + ".out"), alter?.Invoke(route, item, words) ?? words); + } + } + + return new Simulated(root, work, Path.Combine(root, "results"), Path.Combine(root, "bounds.txt")); + } + + private static Judgement Record(Simulated device) => JudgeDevice(device.Work, device.Results, "test renderer", "test identity", device.Bounds, true); + + private static Judgement Judge(Simulated device, Simulated recordedOn, string renderer = "test renderer", string identity = "test identity") => + JudgeDevice(device.Work, device.Results, renderer, identity, recordedOn.Bounds, false); + + // Every case's first result word, altered. + private static uint[] Alter(WorkItem item, uint[] words, Func change, int cases = int.MaxValue) + { + var altered = (uint[])words.Clone(); + for (var c = 0; c < Math.Min(item.N, cases); c++) + altered[c * item.WordsOut] = change(altered[c * item.WordsOut]); + return altered; + } + + // A family judged by its recorded bound alone: not exact, not checked, not a sampled form, a float first word. + private static int BoundFamily() => + Array.FindIndex(Families, f => f.Tolerance == "ulp-bounded" && f.Verify is null && FloatWords(Resolve(f.Glsl).ReturnType).First()); + + [Fact] + public void AFaithfulDeviceHoldsEveryFamilyOnBothRoutes() + { + using var device = Simulate(); + var recorded = Record(device); + Assert.Empty(recorded.Failures); + Assert.Equal(DeviceRoutes.Length * Families.Length, recorded.Rows.Count); + Assert.All(recorded.Rows, m => Assert.Equal(0.0, m.Row.Worst)); + Assert.Equal(DeviceRoutes.Length * Families.Count(IsSampledForm), recorded.Rows.Count(m => m.Class == "sampled")); + Assert.Equal(DeviceRoutes.Length * Families.Count(f => f.Tolerance == "exact"), recorded.Rows.Count(m => m.Class == "exact")); + Assert.Empty(Judge(device, device).Failures); + } + + [Fact] + public void AnExactFamilyAllowsNoDifferenceAtAll() + { + // Bounds recorded on the very device that is off by one ulp: a bound would pass it, the exact rule must not. + var exact = Array.FindIndex(Families, f => f.Tolerance == "exact"); + using var off = Simulate((route, item, words) => route == "lavapipe-glsl" && item.Index == exact.ToString() ? Alter(item, words, w => w ^ 1u) : words); + Record(off); + var failures = Judge(off, off).Failures; + Assert.Single(failures); + Assert.Contains($"lavapipe-glsl #{exact} ", failures[0]); + + // One case in 256 is enough. + using var oneCase = Simulate((_, item, words) => item.Index == exact.ToString() ? Alter(item, words, w => w ^ 1u, 1) : words); + Record(oneCase); + Assert.Equal(DeviceRoutes.Length, Judge(oneCase, oneCase).Failures.Count); + } + + [Fact] + public void AFamilyIsHeldToItsRecordedWorstAndNotBeyond() + { + var f = BoundFamily(); + using var near = Simulate((_, item, words) => item.Index == f.ToString() ? Alter(item, words, w => w ^ 4u) : words); + Record(near); + Assert.Empty(Judge(near, near).Failures); + using var farther = Simulate((_, item, words) => item.Index == f.ToString() ? Alter(item, words, w => w ^ 7u) : words); + var failures = Judge(farther, near).Failures; + Assert.Equal(DeviceRoutes.Length, failures.Count); + Assert.All(failures, line => Assert.Contains($"#{f} ", line)); + + var lines = File.ReadAllLines(near.Bounds).ToList(); + var at = lines.FindIndex(l => l.StartsWith($"lavapipe-hlsl\t{f}\t")); + var row = lines[at].Split('\t'); + Assert.NotEqual(0.0, double.Parse(row[5], CultureInfo.InvariantCulture)); + row[5] = "0"; + lines[at] = string.Join('\t', row); + File.WriteAllLines(near.Bounds, lines); + Assert.Single(Judge(near, near).Failures); + + lines.RemoveAt(at); + File.WriteAllLines(near.Bounds, lines); + var missing = Judge(near, near).Failures; + Assert.Single(missing); + Assert.Contains("no recorded row", missing[0]); + } + + [Fact] + public void ABoundMeasuresTheErrorAgainstTheFixturesMagnitude() + { + // The metric divides by max(|fixture|, 1): a result of twice a fixture value of at least 2 is 2^23 away, + // and of twice a fixture value under 1 is |fixture| 2^23 away. + var fixture = FixtureFamilies(); + float Fixture(int family, int c) => BitConverter.UInt32BitsToSingle(DevWords(Sides(fixture[family]!["cases"]![c])[1])[0]); + int Find(int family, Func wanted) => Enumerable.Range(0, Points).FirstOrDefault(c => wanted(Math.Abs(Fixture(family, c))), -1); + bool Large(float v) => v is >= 2.0f and < 1e30f; + bool Small(float v) => v is > 1e-3f and < 1.0f; + var f = Enumerable.Range(0, Families.Length).First(g => Families[g].Tolerance == "ulp-bounded" && Families[g].Verify is null + && FloatWords(Resolve(Families[g].Glsl).ReturnType).First() && Find(g, Large) >= 0 && Find(g, Small) >= 0); + var large = Find(f, Large); + var small = Find(f, Small); + foreach (var (c, expected) in new[] { (large, Math.ScaleB(1.0, 23)), (small, Math.Abs((double)Fixture(f, small)) * Math.ScaleB(1.0, 23)) }) + { + using var device = Simulate((_, item, words) => + { + if (item.Index != f.ToString()) + return words; + var doubled = (uint[])words.Clone(); + doubled[c * item.WordsOut] = BitConverter.SingleToUInt32Bits(2.0f * BitConverter.UInt32BitsToSingle(words[c * item.WordsOut])); + return doubled; + }); + Assert.Equal(expected, Record(device).Rows.First(m => m.Row.Route == "lavapipe-hlsl" && m.Row.Index == f).Row.Worst); + } + } + + [Fact] + public void ANaNWhereTheFixtureHasANumberFailsAFamilyRecordedWithout() + { + var f = BoundFamily(); + using var faithful = Simulate(); + Record(faithful); + using var nan = Simulate((_, item, words) => item.Index == f.ToString() ? Alter(item, words, _ => 0x7fc00000u) : words); + var failures = Judge(nan, faithful).Failures; + Assert.Equal(DeviceRoutes.Length, failures.Count); + Assert.All(failures, line => Assert.Contains("NaN-class", line)); + } + + [Fact] + public void AMissingOutputFailsOnlyItsFamily() + { + using var device = Simulate(); + Record(device); + File.Delete(Path.Combine(device.Results, "lavapipe-hlsl", Tag(3) + ".out")); + var failures = Judge(device, device).Failures; + Assert.Single(failures); + Assert.Contains("missing", failures[0]); + Assert.Contains("lavapipe-hlsl #3 ", failures[0]); + } + + [Fact] + public void ADeviceOrToolchainOtherThanTheRecordedOneIsRefusedBeforeJudging() + { + using var device = Simulate(); + Record(device); + foreach (var (renderer, identity) in new[] { ("another renderer", "test identity"), ("test renderer", "another toolchain") }) + { + var judgement = Judge(device, device, renderer, identity); + Assert.Single(judgement.Failures); + Assert.Empty(judgement.Rows); + } + } + + [Theory] + [InlineData("cultmath_af_snoise(")] + [InlineData("cultmath_af_fbm(")] + public void ASampledFormIsJudgedOnTheDevicesOwnReferenceAtTheRecordedPoints(string function) + { + var sampled = Array.FindIndex(Families, f => IsSampledForm(f) && f.Glsl.Contains(function)); + using var faithful = Simulate(); + Record(faithful); + + // A reference that answers wrongly puts the form's enclosure out of reach. + using var wrong = Simulate((_, item, words) => item.Index == "ref:" + sampled + ? words.Select(w => BitConverter.SingleToUInt32Bits(BitConverter.UInt32BitsToSingle(w) + 100.0f)).ToArray() : words); + var failures = Judge(wrong, faithful).Failures; + Assert.Equal(DeviceRoutes.Length, failures.Count); + Assert.All(failures, line => Assert.Contains($"#{sampled} ", line)); + + // Two points in the other order: the device's i-th answer is not for the point the check asks about. + using var swapped = Simulate(); + var path = Path.Combine(swapped.Work, RefTag(sampled) + ".in"); + var stride = function.Contains("fbm") ? 6 : 3; + var points = ReadWords(path); + (points[0], points[stride]) = (points[stride], points[0]); + WriteWords(path, points); + var order = Judge(swapped, faithful).Failures; + Assert.Equal(DeviceRoutes.Length, order.Count); + Assert.All(order, line => Assert.Contains("not the point the device was given", line)); + } + + [Fact] + public void AnInfinityWhereTheFixtureHasAnotherValueIsAMismatchOfClass() + { + var fixture = FixtureFamilies(); + int f = -1, c = 0, w = 0; + for (var g = 0; g < Families.Length && f < 0; g++) + { + if (Families[g].Tolerance == "exact" || Families[g].Verify is not null) + continue; + var floatWord = FloatWords(Resolve(Families[g].Glsl).ReturnType).ToArray(); + for (var k = 0; k < Points && f < 0; k++) + { + var want = DevWords(Sides(fixture[g]!["cases"]![k])[1]); + for (var at = 0; at < want.Length && f < 0; at++) + if (floatWord[at] && float.IsInfinity(BitConverter.UInt32BitsToSingle(want[at]))) + (f, c, w) = (g, k, at); + } + } + + Assert.True(f >= 0, "no fixture family holds an infinite result"); + using var faithful = Simulate(); + Record(faithful); + using var finite = Simulate((_, item, words) => + { + if (item.Index != f.ToString()) + return words; + var altered = (uint[])words.Clone(); + altered[c * item.WordsOut + w] = BitConverter.SingleToUInt32Bits(1.0f); + return altered; + }); + var failures = Judge(finite, faithful).Failures; + Assert.Equal(DeviceRoutes.Length, failures.Count); + Assert.All(failures, line => Assert.Contains("NaN-class", line)); + } + + [Fact] + public void ARecordedRowForAnotherFamilyIsRefused() + { + using var device = Simulate(); + Record(device); + var lines = File.ReadAllLines(device.Bounds).ToList(); + var at = lines.FindIndex(l => l.StartsWith("lavapipe-glsl 5 ")); + var row = lines[at].Split(' '); + row[2] = "float cultmath_other(float)"; + lines[at] = string.Join(' ', row); + File.WriteAllLines(device.Bounds, lines); + var failures = Judge(device, device).Failures; + Assert.Single(failures); + Assert.Contains("another family", failures[0]); + } + + [Fact] + public void ACheckFamilyIsJudgedByItsVerify() + { + var f = Array.FindIndex(Families, fam => fam.Verify is not null && !IsSampledForm(fam)); + using var faithful = Simulate(); + Record(faithful); + using var broken = Simulate((_, item, words) => item.Index == f.ToString() ? words.Select(_ => 0x7fc00000u).ToArray() : words); + var failures = Judge(broken, faithful).Failures; + Assert.Equal(DeviceRoutes.Length, failures.Count); + Assert.All(failures, line => Assert.Contains($"#{f} ", line)); + } + + [Fact] + public void AChangeInResultBitsFailsEvenWithinTheRecordedBound() + { + // Recorded on a device off in every case; judged on one off in a single case. The bound holds, the bits do not. + var f = BoundFamily(); + using var recorded = Simulate((_, item, words) => item.Index == f.ToString() ? Alter(item, words, w => w ^ 4u) : words); + Record(recorded); + using var fewer = Simulate((_, item, words) => item.Index == f.ToString() ? Alter(item, words, w => w ^ 4u, 1) : words); + var failures = Judge(fewer, recorded).Failures; + Assert.Equal(DeviceRoutes.Length, failures.Count); + Assert.All(failures, line => { Assert.Contains($"#{f} ", line); Assert.Contains("result bits differ", line); }); + } + + [Fact] + public void AFamilyIsHeldToTheDeviceToleranceItsOwnTextStates() + { + // Recorded on the very device that violates it: only the stated tolerance can fail the family. + var f = Array.FindIndex(Families, fam => StatedDeviceLimit(fam.Tolerance) is not null); + Assert.True(f >= 0, "no family states a device tolerance"); + using var far = Simulate((_, item, words) => item.Index == f.ToString() ? Alter(item, words, w => w ^ 0x00100000u) : words); + Record(far); + var failures = Judge(far, far).Failures; + Assert.Equal(DeviceRoutes.Length, failures.Count); + Assert.All(failures, line => Assert.Contains("stated tolerance", line)); + } + + [Theory] + [InlineData(24, true)] + [InlineData(40, false)] + public void TheStatedDeviceToleranceIsTheLimitInUlpsOfTheFixturesMagnitude(int ulps, bool holds) + { + // 2^-18 max(|v|, 1) is 32 u1. A fixture value in [1, 1.1) moved by k ulps is k/|v| u1 away, 0.91 k to k. + var f = Array.FindIndex(Families, fam => StatedDeviceLimit(fam.Tolerance) is not null); + Assert.Equal(32.0, StatedDeviceLimit(Families[f].Tolerance)); + var fixture = FixtureFamilies()[f]!["cases"]!.AsArray(); + var floatWord = FloatWords(Resolve(Families[f].Glsl).ReturnType).ToArray(); + var at = -1; + for (var c = 0; c < fixture.Count && at < 0; c++) + { + var want = DevWords(Sides(fixture[c])[1]); + for (var w = 0; w < want.Length && at < 0; w++) + if (floatWord[w] && Math.Abs(BitConverter.UInt32BitsToSingle(want[w])) is >= 1.0f and < 1.1f) + at = c * want.Length + w; + } + + Assert.True(at >= 0, "no fixture value of the family lies in [1, 1.1)"); + using var device = Simulate((_, item, words) => + { + if (item.Index != f.ToString()) + return words; + var moved = (uint[])words.Clone(); + moved[at] += (uint)ulps; // magnitude grows by k ulps whatever the sign + return moved; + }); + Record(device); + var failures = Judge(device, device).Failures; + Assert.Equal(holds ? 0 : DeviceRoutes.Length, failures.Count); + } + + [Fact] + public void AChangeInTheReferenceBitsOfASampledFormFailsItsFamily() + { + // One ulp in one reference value stays inside the form's enclosure, so only the recorded bits can see it. + var sampled = Array.FindIndex(Families, IsSampledForm); + using var faithful = Simulate(); + Record(faithful); + using var moved = Simulate((_, item, words) => item.Index == "ref:" + sampled ? Alter(item, words, w => w + 1u, 1) : words); + var failures = Judge(moved, faithful).Failures; + Assert.Equal(DeviceRoutes.Length, failures.Count); + Assert.All(failures, line => { Assert.Contains($"#{sampled} ", line); Assert.Contains("result bits differ", line); }); + } +} diff --git a/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.Mutants.cs b/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.Mutants.cs new file mode 100644 index 00000000..c896a6a1 --- /dev/null +++ b/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.Mutants.cs @@ -0,0 +1,60 @@ +using System.Reflection; +using System.Text.RegularExpressions; +using Xunit; + +namespace CultMath.Tests; + +public sealed partial class GlslMirrorTests +{ + private const string Weighted = "cultmath_weighted_lattice_cells("; + private const string SmoothStep = "cultmath_lattice_smooth_step("; + + // Edits of the shader text that each break one rule of the lattice loop. M7 (the exit one ring late) is absent: by the + // window-independence proof a later exit visits more cells and changes nothing, so no case can kill it. + private static readonly (string Name, string Function, string Old, string New, int Kills)[] LatticeMutants = + { + ("M1 exit one ring early", Weighted, "0.5 * (float)(k - 1) >= max(f2", "0.5 * (float)k >= max(f2", 3), + ("M2 exit ignores the smoothing band", Weighted, ">= max(f2, f1 + 2.0 * smoothing))", ">= f2)", 1), + ("M3 no pre-normalisation of the normal", Weighted, "normal = stretchNormal / scale;", "normal = stretchNormal;", 1), + ("M4 no unit length for the normal", Weighted, "normal = normal / length(normal);", "normal = normal * 1.0;", 1), + ("M5 smooth step without its clamp", SmoothStep, "return min(next, f1 + smoothing);", "return next;", 1), + ("M6 box pass skips its first row", Weighted, "for (int dz = -reach; dz <= reach; dz++)", "for (int dz = -reach + 1; dz <= reach; dz++)", 1), + }; + + /// + /// Each rule of the lattice loop is pinned by the committed fixture's own cases: the shader text with one rule broken (a + /// mutant mirror, the text a device runs) returns another result than the fixture on at least the stated number of + /// cases of the family that exercises it, the exit one ring early on at least three. The device judge holds the same + /// cases to their recorded bound, so a mutant these cases separate fails it too. + /// + [Fact] + public void TheFixtureCasesSeparateEveryLatticeMutantFromTheShader() + { + var families = FixtureFamilies(); + foreach (var (name, function, old, replacement, kills) in LatticeMutants) + { + var (assembly, errors) = HlslSourceCompatibilityTests.CompileShaderMirror(mutate: text => + { + Assert.True(text.Split(old).Length == 2, $"{name}: the shader text no longer holds exactly one \"{old}\""); + return text.Replace(old, replacement); + }); + Assert.True(assembly is not null, name + ": " + string.Join(Environment.NewLine, errors)); + var shaderType = assembly!.GetType("CultMathHlsl.HlslShader")!; + var shader = Activator.CreateInstance(shaderType); + var mirror = shaderType.GetMethod(function[..^1], BindingFlags.Instance | BindingFlags.NonPublic)!; + + var f = Array.FindIndex(Families, family => family.Glsl.Contains(function)); + var method = Resolve(Families[f].Glsl); + var killed = 0; + foreach (var entry in families[f]!["cases"]!.AsArray()) + { + var sides = Sides(entry); + if (Hex(new[] { mirror.Invoke(shader, Arguments(method, sides[0]))! }) != sides[1]) + killed++; + } + + output.WriteLine($"{name}: separated on {killed} of {Points} cases of {Families[f].Glsl}"); + Assert.True(killed >= kills, $"{name}: the {Families[f].Glsl} fixture cases separate it on {killed} of {Points}, fewer than {kills}"); + } + } +} diff --git a/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.Precision.cs b/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.Precision.cs new file mode 100644 index 00000000..dbf7fabf --- /dev/null +++ b/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.Precision.cs @@ -0,0 +1,57 @@ +using System.Text.RegularExpressions; +using Xunit; + +namespace CultMath.Tests; + +public sealed partial class GlslMirrorTests +{ + // Tripwire: lavapipe and desktop ANGLE ignore mediump and min16float, so a reduced-precision qualifier in the + // committed shaders would change the computation on a phone GPU and nowhere the conforming run can see it. + // Stated limits: a syntax guardrail only. It reads whole words in the committed .glsl and .hlsl under shaders/ + // with comments removed; it does not see a qualifier spelled through a macro, an include or a generated + // shader, and it says nothing about a driver that relaxes highp itself. It names file and line, never text. + // Recorded limit (s2.tripwire-slashslash-star-hides): block comments are cut before line comments, so a qualifier between `// x /*` and `// */` passes. + private static readonly Regex ReducedPrecision = new( + @"\b(mediump|lowp|min(10|12|16)(float|int|uint)[1-4]?(x[1-4])?|half[1-4]?(x[1-4])?)\b|\bprecision\s+(?!highp\b)\w+", RegexOptions.Compiled); + + private static IEnumerable ReducedPrecisionLines(string source) + { + var text = Regex.Replace(source, @"/\*.*?\*/", m => new string('\n', m.Value.Count(c => c == '\n')), RegexOptions.Singleline); + var lines = text.Split('\n'); + for (var i = 0; i < lines.Length; i++) + { + var code = lines[i].Split("//")[0]; + if (ReducedPrecision.IsMatch(code)) + yield return i + 1; + } + } + + [Fact] + public void CommittedShadersCarryNoReducedPrecisionQualifier() + { + var found = new List(); + foreach (var file in Directory.EnumerateFiles(Path.Combine(Root, "shaders")).Where(f => f.EndsWith(".glsl") || f.EndsWith(".hlsl")).OrderBy(f => f, StringComparer.Ordinal)) + found.AddRange(ReducedPrecisionLines(File.ReadAllText(file)).Select(line => $"{Path.GetFileName(file)}:{line}")); + Assert.True(found.Count == 0, "reduced-precision qualifier at " + string.Join(", ", found)); + } + + [Theory] + [InlineData("mediump float x;", true)] + [InlineData("lowp vec3 c;", true)] + [InlineData("precision mediump float;", true)] + [InlineData("precision highp float;", false)] + [InlineData("min16float x;", true)] + [InlineData("min10float2 x;", true)] + [InlineData("min16int i;", true)] + [InlineData("half3x3 m;", true)] + [InlineData("float half_width;", false)] + [InlineData("float x; // mediump is not used", false)] + [InlineData("/* half\n min16float */ float x;", false)] + public void TheTripwireReadsQualifiersAndNotComments(string source, bool trips) => Assert.Equal(trips, ReducedPrecisionLines(source).Any()); + + [Fact] + public void TheTripwireNamesTheLine() + { + Assert.Equal(new[] { 3 }, ReducedPrecisionLines("float a;\n/* c */\nmediump float b;\n").ToArray()); + } +} diff --git a/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.cs b/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.cs index 14ea07c0..c2b604f6 100644 --- a/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.cs +++ b/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.cs @@ -16,13 +16,17 @@ namespace CultMath.Tests; /// CULTMATH_WRITE_GLSL=1 set, the first and last tests write the committed files before comparing, which /// is the one regeneration path. /// -public sealed class GlslMirrorTests +public sealed partial class GlslMirrorTests { private readonly ITestOutputHelper output; public GlslMirrorTests(ITestOutputHelper output) => this.output = output; - private static bool Write => Environment.GetEnvironmentVariable("CULTMATH_WRITE_GLSL") == "1"; + // The fixture is written by Yggdrasil's mcr.microsoft.com/dotnet/sdk:10.0 image (Ubuntu 24.04) only: its platform families record + // that platform's libm, so a write from another OS would move them. + private static bool Write => Environment.GetEnvironmentVariable("CULTMATH_WRITE_GLSL") == "1" + ? OperatingSystem.IsLinux() ? true : throw new InvalidOperationException("CULTMATH_WRITE_GLSL=1 writes glsl-parity.json, whose platform families belong to Yggdrasil's Ubuntu image (mcr.microsoft.com/dotnet/sdk:10.0): regenerate it there.") + : false; private static string Root => HlslSourceCompatibilityTests.FindCultMathRoot(); @@ -45,6 +49,54 @@ public sealed class GlslMirrorTests } } + // Counting stand-ins for the mirror's clamp, one per overload, declared in the mirror's class so they + // hide math.clamp for every function in it. Each counts a call whose minimum exceeds its maximum in any + // component and forwards to math.clamp. (The int vector overloads only forward: no mirror function + // clamps integer vectors with swapped bounds, and counting them would be unreachable.) + private const string CountingClampShadows = @" +public static int ClampMinAboveMax; +static float clamp(float x, float a, float b) { if (a > b) ClampMinAboveMax++; return math.clamp(x, a, b); } +static float2 clamp(float2 x, float2 a, float2 b) { if (a.x > b.x || a.y > b.y) ClampMinAboveMax++; return math.clamp(x, a, b); } +static float3 clamp(float3 x, float3 a, float3 b) { if (a.x > b.x || a.y > b.y || a.z > b.z) ClampMinAboveMax++; return math.clamp(x, a, b); } +static float4 clamp(float4 x, float4 a, float4 b) { if (a.x > b.x || a.y > b.y || a.z > b.z || a.w > b.w) ClampMinAboveMax++; return math.clamp(x, a, b); } +static int clamp(int x, int a, int b) { if (a > b) ClampMinAboveMax++; return math.clamp(x, a, b); } +static int2 clamp(int2 x, int2 a, int2 b) { if (a.x > b.x || a.y > b.y) ClampMinAboveMax++; return math.clamp(x, a, b); } +static int3 clamp(int3 x, int3 a, int3 b) { if (a.x > b.x || a.y > b.y || a.z > b.z) ClampMinAboveMax++; return math.clamp(x, a, b); } +static int4 clamp(int4 x, int4 a, int4 b) { if (a.x > b.x || a.y > b.y || a.z > b.z || a.w > b.w) ClampMinAboveMax++; return math.clamp(x, a, b); } +"; + + /// + /// The lowering keeps HLSL's statement order (CommittedGlslEqualsLowering pins the GLSL as that + /// lowering), and GLSL leaves clamp(x, minVal, maxVal) undefined for minVal above maxVal, so no clamp + /// reached by cultmath_integral_clamp_linear may see lo above hi, on any path and for any spelling of the + /// normalisation. The mirror is compiled with counting clamps and the function is run over the edge grid + /// (lo above hi, infinite bounds, zero-length spans, b = 0 and b != 0): the count of such clamp calls + /// stays 0 after every call. The cases are HlslSourceCompatibilityTests.IntegralClampLinearCases: the grid fixes + /// a in {-2.5, 0, 1.5}, so a normalisation keyed on a past 1.75 never clamps wrongly there; the committed + /// fixture's random cases reach it. + /// + [Fact] + public void IntegralClampLinearNeverClampsWithMinAboveMax() + { + var (assembly, errors) = HlslSourceCompatibilityTests.CompileShaderMirror(CountingClampShadows); + Assert.True(assembly is not null, string.Join(Environment.NewLine, errors)); + var shaderType = assembly!.GetType("CultMathHlsl.HlslShader")!; + var shader = Activator.CreateInstance(shaderType); + var count = shaderType.GetField("ClampMinAboveMax")!; + var function = shaderType.GetMethod("cultmath_integral_clamp_linear", BindingFlags.Instance | BindingFlags.NonPublic)!; + + var bad = new List(); + foreach (var c in HlslSourceCompatibilityTests.IntegralClampLinearCases) + { + count.SetValue(null, 0); + function.Invoke(shader, c.Cast().ToArray()); + if ((int)count.GetValue(null)! > 0) + bad.Add($"({string.Join(", ", c)})"); + } + + Assert.True(bad.Count == 0, $"{bad.Count} cases clamp with the minimum above the maximum:{Environment.NewLine}{string.Join(Environment.NewLine, bad.Take(12))}"); + } + // Identifier boundaries: cultmath_lerp is a CultMath function, lerp( is HLSL. private static readonly Regex HlslOnly = new( @"\b(float|u?int|bool)[234]\b|\bfloat3x3\b|\blerp\(|\bfrac\(|\bsaturate\(|\brsqrt\(|\basuint\(|\basfloat\(|\batan2\(|static const|\((float|int|uint)\)|Texture2D|SamplerState|#include|precision (high|medium|low)p"); @@ -288,7 +340,7 @@ public sealed class GlslMirrorTests // The float32 allowance of one octave of af_snoise: 2^-14 + 2^-12 R + L 2^-20 (|c|_1 + R). private static double SnoiseAllowance(double centre1, double reach) => - Math.ScaleB(1.0, -14) + Math.ScaleB(reach, -12) + math.SNOISE_LIPSCHITZ * Math.ScaleB(centre1 + reach, -20); + math.SNOISE_READ_VALUE + math.SNOISE_READ_GRADIENT * reach + math.SNOISE_LIPSCHITZ * Math.ScaleB(centre1 + reach, -20); // The Lipschitz form's width bound for one octave of the sampled-form check. private static double SnoiseWidthBound(double centre1, double reach) => math.SNOISE_LIPSCHITZ * reach + SnoiseAllowance(centre1, reach); @@ -313,13 +365,17 @@ public sealed class GlslMirrorTests return sum; } - private static string AssertSnoiseForm(JsonArray cases, bool allowanceDecides = false) => - AssertSampledForm(cases, "af_snoise", (_, p) => math.snoise(p), + private static float SnoiseReference(string[] tokens, float3 p) => math.snoise(p); + + private static float FbmReference(string[] t, float3 p) => math.fbm_grad(p, (int)Convert.ToUInt32(t[7], 16), (float)Floats(t[8])[0], (float)Floats(t[9])[0]).w; + + private static string AssertSnoiseForm(JsonArray cases, bool allowanceDecides = false, Func? reference = null) => + AssertSampledForm(cases, "af_snoise", reference ?? SnoiseReference, (_, a) => SnoiseOctave(SnoiseWidthBound, a, 1.0), (_, a) => SnoiseOctave(SnoiseAllowance, a, 1.0), allowanceDecides); - private static string AssertFbmForm(JsonArray cases, bool allowanceDecides = false) => + private static string AssertFbmForm(JsonArray cases, bool allowanceDecides = false, Func? reference = null) => AssertSampledForm(cases, "af_fbm", - (t, p) => math.fbm_grad(p, (int)Convert.ToUInt32(t[7], 16), (float)Floats(t[8])[0], (float)Floats(t[9])[0]).w, + reference ?? FbmReference, (t, a) => FbmOctaves(t, a, SnoiseWidthBound), (t, a) => FbmOctaves(t, a, SnoiseAllowance), allowanceDecides); // AffineFrustumBall applied to C#'s own results. @@ -360,6 +416,74 @@ public sealed class GlslMirrorTests return $"least enclosure slack {enclosure:E3} of the radius, least slack above R0 + d {lower:E3} of R0, below its widening {upper:F3} of 2^-19 (R0 + |c0|_1 + spread)"; } + private const string SpanAllowanceRead = + "Read at the case's point x, with S = |x|_1 and (e_n, e_g, e_h) = math.span_slack(math.span_rounding(1, x, zero stage, 0, 0, 0)), " + + "against the kernel's exact values in double: |n - n_exact| <= e_n and |g - g_exact|_2 <= e_g for snoise_grad, " + + "||H - H_exact||_F <= e_h for snoise_hessian, no tolerance. " + + "Report the largest fraction of each allowance per decade of S and the largest absolute error at S < 1e-2."; + + // SpanAllowanceRead applied to a family's results (C#'s own, or a device's): every read is within the + // allowance math.span_slack gives at its point, the owner's own numbers and no restated literal. A small + // family (bands 1e-4 to 1e2) must also fail the check once the absolute term is removed in at least 16 + // cases, and hold at least 48 cases with S <= 1e-2: the allowance's absolute term is what decides there. + private static string AssertSpanAllowance(JsonArray cases, bool hessian, bool small) + { + var absolute = math.span_slack(0.0f); + var fractions = new SortedDictionary(); + double smallestError = 0.0; + int absoluteDecides = 0, nearOrigin = 0; + foreach (var entry in cases) + { + var sides = ((string)entry!).Split(" -> "); + double[] x = Floats(sides[0]), result = Floats(sides[1]); + var s = Math.Abs(x[0]) + Math.Abs(x[1]) + Math.Abs(x[2]); + var slack = math.span_slack(math.span_rounding(1.0f, new float3((float)x[0], (float)x[1], (float)x[2]), default, new float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f)); + double valueError = 0.0, gradientError, valueFraction = 0.0, gradientFraction; + bool needsAbsolute; + if (hessian) + { + var exact = NoiseBoundTests.HessianDouble(x[0], x[1], x[2]); + var sum = 0.0; + for (var i = 0; i < 9; i++) + sum += (result[i] - exact[i]) * (result[i] - exact[i]); + gradientError = Math.Sqrt(sum); + Assert.True(gradientError <= slack.z, $"snoise_hessian case {entry}: ||H - H_exact||_F is {gradientError:R}, past the allowance {slack.z:R}"); + gradientFraction = gradientError / slack.z; + needsAbsolute = gradientError > slack.z - absolute.z; + } + else + { + var exact = NoiseBoundTests.GradDouble(x[0], x[1], x[2]); + valueError = Math.Abs(result[3] - NoiseBoundTests.ValueDouble(x[0], x[1], x[2])); + gradientError = Math.Sqrt((result[0] - exact[0]) * (result[0] - exact[0]) + (result[1] - exact[1]) * (result[1] - exact[1]) + (result[2] - exact[2]) * (result[2] - exact[2])); + Assert.True(valueError <= slack.x, $"snoise_grad case {entry}: |n - n_exact| is {valueError:R}, past the allowance {slack.x:R}"); + Assert.True(gradientError <= slack.y, $"snoise_grad case {entry}: |g - g_exact|_2 is {gradientError:R}, past the allowance {slack.y:R}"); + valueFraction = valueError / slack.x; + gradientFraction = gradientError / slack.y; + needsAbsolute = valueError > slack.x - absolute.x || gradientError > slack.y - absolute.y; + } + + var decade = (int)Math.Floor(Math.Log10(s)); + fractions.TryGetValue(decade, out var largest); + fractions[decade] = (Math.Max(largest.Value, valueFraction), Math.Max(largest.Gradient, gradientFraction)); + if (needsAbsolute) + absoluteDecides++; + if (s < 1.0e-2) + smallestError = Math.Max(smallestError, Math.Max(valueError, gradientError)); + if (s <= 1.0e-2) + nearOrigin++; + } + + if (small) + { + Assert.True(absoluteDecides >= 16, $"only {absoluteDecides} of {cases.Count} cases fail once the absolute term is removed: the family cannot tell a device that needs it from one that does not"); + Assert.True(nearOrigin >= 48, $"only {nearOrigin} of {cases.Count} cases have |x|_1 <= 1e-2"); + } + + var report = string.Join(", ", fractions.Select(f => hessian ? $"1e{f.Key}: {f.Value.Gradient:F3}" : $"1e{f.Key}: {f.Value.Value:F3}/{f.Value.Gradient:F3}")); + return $"largest fraction of {(hessian ? "e_h" : "e_n/e_g")} per decade of |x|_1: {report}; largest absolute error at |x|_1 < 1e-2 {smallestError:E3}; {absoluteDecides} of {cases.Count} cases need the absolute term"; + } + // A committed case's arguments, decoded into the C# method's parameter types in Hex's field order. private static object[] Arguments(MethodInfo method, string hex) { @@ -377,6 +501,14 @@ public sealed class GlslMirrorTests return (int)scalars.Dequeue(); if (type == typeof(uint)) return scalars.Dequeue(); + if (type.IsArray) + { + var array = Array.CreateInstance(type.GetElementType()!, SiteArrays.Capacity); + for (var i = 0; i < array.Length; i++) + array.SetValue(FromScalars(type.GetElementType()!, scalars), i); + return array; + } + var value = Activator.CreateInstance(type)!; foreach (var field in type.GetFields().Where(f => !f.IsStatic)) field.SetValue(value, FromScalars(field.FieldType, scalars)); @@ -406,6 +538,8 @@ public sealed class GlslMirrorTests private sealed record Family(string Glsl, string Tolerance, Func Arguments, string? Check = null, Platform Platform = Platform.None, Func? Verify = null); private static float Uniform(System.Random r, float lo, float hi) => lo + (hi - lo) * r.NextSingle(); + private static float2 Point2(System.Random r) => new(Uniform(r, -50.0f, 50.0f), Uniform(r, -50.0f, 50.0f)); + private static float3 Point3(System.Random r) => new(Uniform(r, -50.0f, 50.0f), Uniform(r, -50.0f, 50.0f), Uniform(r, -50.0f, 50.0f)); // A point on the simplex tie set, where snoise's x0 has equal components (NoiseGradTests.SnoiseIsContinuousOnTheSimplexDiagonal): @@ -527,7 +661,8 @@ public sealed class GlslMirrorTests // Every family the site's WebGL2 readback evaluates, in a fixed order. A new family is appended, so the // seeded stream and every earlier family's cases stay as they were. pcg3d and pcg4d are "exact"; the // float families are ulp-bounded, with the bound measured on the device by the consumer, and - // iv_frustum_ball also carries an enclosure check. phacelle is in CultMath.Phacelle.glsl, so its + // iv_frustum_ball also carries an enclosure check; the four coordinate-band snoise_grad and snoise_hessian + // families carry an allowance check, applied to C#'s own results here and to a device's by the device judge. phacelle is in CultMath.Phacelle.glsl, so its // evaluator concatenates that file after CultMath.glsl; the site, which does not vendor it, skips it. private static readonly Family[] Families = new Family[] { @@ -563,7 +698,7 @@ public sealed class GlslMirrorTests return new object[] { slope, z0, z0 + Uniform(r, 0.01f, 50.0f), Uniform(r, 0.0001f, 0.05f), Uniform(r, 0.0f, 2.0f) }; }, FrustumBall, Verify: AssertFrustumBall), new("vec2 cultmath_iv_exp(vec2)", "ulp-bounded, platform exp", r => new object[] { Interval(r) }, Platform: Platform.Ulp), - new("CultPhasor cultmath_phacelle(vec3, vec3, float, float)", "ulp-bounded, platform exp, sin, cos; across platforms |diff| <= 2^-20 max(|v|, 1)", + new("CultPhasor cultmath_phacelle(vec3, vec3, float, float)", "ulp-bounded, platform exp, sin, cos; across platforms |diff| <= 2^-20 max(|v|, 1); on a device |diff| <= 2^-18 max(|v|, 1)", r => new object[] { Point3(r), Side(r), Uniform(r, 0.0f, 1.0f), 0.5f }, Platform: Platform.Scaled), new("float cultmath_snoise(vec3)", "ulp-bounded, on the simplex tie set", r => new object[] { TiePoint3(r) }), new("vec4 cultmath_snoise_grad(vec3)", "ulp-bounded, on the simplex tie set", r => new object[] { TiePoint3(r) }), @@ -638,8 +773,201 @@ public sealed class GlslMirrorTests var lo = Uniform(r, -2.0f, 0.5f); return new object[] { Uniform(r, -4.0f, 4.0f), r.Next(8) == 0 ? 0.0f : Uniform(r, -4.0f, 4.0f), lo, lo + Uniform(r, 0.0f, 3.0f), Uniform(r, -3.0f, 3.0f), Uniform(r, -3.0f, 3.0f) }; }), + // The edge cases the family above never draws: lo above hi (b = 0 and b != 0; the lowering must + // normalise before any clamp sees it) and infinite bounds (hi = +inf, lo = -inf, both). + new Family("float cultmath_integral_clamp_linear(float, float, float, float, float, float)", "ulp-bounded, lo above hi and infinite bounds", + r => + { + var a = Uniform(r, -4.0f, 4.0f); + var slope = Uniform(r, -4.0f, 4.0f); + var (t0, t1) = (Uniform(r, -3.0f, 3.0f), Uniform(r, -3.0f, 3.0f)); + return r.Next(5) switch + { + 0 => new object[] { a, 0.0f, Uniform(r, 0.5f, 2.0f), Uniform(r, -2.0f, 0.4f), t0, t1 }, + 1 => new object[] { a, slope, Uniform(r, 0.5f, 2.0f), Uniform(r, -2.0f, 0.4f), t0, t1 }, + 2 => new object[] { a, slope, Uniform(r, -2.0f, 1.0f), float.PositiveInfinity, t0, t1 }, + 3 => new object[] { a, slope, float.NegativeInfinity, Uniform(r, -1.0f, 2.0f), t0, t1 }, + _ => new object[] { a, slope, float.NegativeInfinity, float.PositiveInfinity, t0, t1 }, + }; + }), + // Zero-length spans (t1 = t0 three times in four) with a flat or sloped line, and infinite clamp bounds + // on either side or both: an infinite bound times a zero length must give +0, and a flat line clamped + // to an infinite bound over a nonzero span is infinite, never NaN. + new Family("float cultmath_integral_clamp_linear(float, float, float, float, float, float)", "ulp-bounded, zero-length spans and flat infinite clamps", + r => + { + float Line() => r.Next(3) switch { 0 => 0.0f, 1 => -0.0f, _ => Uniform(r, -4.0f, 4.0f) }; + float Bound() => r.Next(3) switch { 0 => float.NegativeInfinity, 1 => float.PositiveInfinity, _ => Uniform(r, -2.0f, 2.0f) }; + var (a, b, lo, hi) = (Line(), Line(), Bound(), Bound()); + var t0 = Uniform(r, -3.0f, 3.0f); + var t1 = r.Next(4) != 0 ? t0 : Uniform(r, -3.0f, 3.0f); + return new object[] { a, b, lo, hi, t0, t1 }; + }), + // The span stages over their struct arguments: realistic stages and spans (SpanStageTests' own draw), the + // midpoint a Point3, one span in four a point. + new Family("SpanNoise cultmath_span_fbm(SpanPath, SpanStage, int, float, float)", "ulp-bounded", SpanArguments), + new Family("SpanNoise cultmath_span_ridged(SpanPath, SpanStage, int, float, float)", "ulp-bounded", SpanArguments), + // The kernel's reads over coordinate bands, the magnitude log-uniform in the band: the allowance of + // math.span_slack is checked against the exact kernel at every case (SpanAllowanceRead). + new Family("vec4 cultmath_snoise_grad(vec3)", "ulp-bounded, coordinate bands 1e-4 to 1e2", r => new object[] { BandPoint3(r, 1.0e-4, 1.0e2) }, SpanAllowanceRead, Verify: cases => AssertSpanAllowance(cases, hessian: false, small: true)), + new Family("vec4 cultmath_snoise_grad(vec3)", "ulp-bounded, coordinate bands 1e2 to 4e6", r => new object[] { BandPoint3(r, 1.0e2, 4.0e6) }, SpanAllowanceRead, Verify: cases => AssertSpanAllowance(cases, hessian: false, small: false)), + new Family("mat3 cultmath_snoise_hessian(vec3)", "ulp-bounded, coordinate bands 1e-4 to 1e2", r => new object[] { BandPoint3(r, 1.0e-4, 1.0e2) }, SpanAllowanceRead, Verify: cases => AssertSpanAllowance(cases, hessian: true, small: true)), + new Family("mat3 cultmath_snoise_hessian(vec3)", "ulp-bounded, coordinate bands 1e2 to 4e6", r => new object[] { BandPoint3(r, 1.0e2, 4.0e6) }, SpanAllowanceRead, Verify: cases => AssertSpanAllowance(cases, hessian: true, small: false)), + // Segment distance in 2D and 3D (one segment in eight degenerate), then the site cells: scores, fold step + // over states built by inserting 0-3 random scores (one in four with an exactly tied score), border, margin. + new Family("float cultmath_distance_to_segment(vec2, vec2, vec2)", "ulp-bounded", r => + { + var start = Point2(r); + return new object[] { Point2(r), start, r.Next(8) == 0 ? start : Point2(r) }; + }), + new Family("vec2 cultmath_segment_closest(vec2, vec2, vec2)", "ulp-bounded", r => + { + var start = Point2(r); + return new object[] { Point2(r), start, r.Next(8) == 0 ? start : Point2(r) }; + }), + new Family("float cultmath_distance_to_segment(vec3, vec3, vec3)", "ulp-bounded", r => + { + var start = Point3(r); + return new object[] { Point3(r), start, r.Next(8) == 0 ? start : Point3(r) }; + }), + new Family("vec3 cultmath_segment_closest(vec3, vec3, vec3)", "ulp-bounded", r => + { + var start = Point3(r); + return new object[] { Point3(r), start, r.Next(8) == 0 ? start : Point3(r) }; + }), + // The border step: owner and other random (one in six coincident), a running border either empty or a + // random (normal, distance); one in six other is a distinct site within 1e-3 of the owner (inside the 1e-2 guard a + // changed length test would trip), one in six coincident. + new Family("vec4 cultmath_power_border_step(vec3, vec4, vec4, vec4)", "ulp-bounded", r => + { + var owner = Site(r, 0.1f, 20.0f); + var border = r.Next(2) == 0 ? new float4(0.0f, 0.0f, 0.0f, 1.0e30f) : new float4(Point3(r), Uniform(r, 0.0f, 50.0f)); + var pick = r.Next(6); + var near = new float4(owner.xyz + new float3(Uniform(r, 1.0e-4f, 1.0e-3f), Uniform(r, -1.0e-3f, 1.0e-3f), Uniform(r, -1.0e-3f, 1.0e-3f)), Uniform(r, 0.1f, 20.0f)); + return new object[] { Point3(r), owner, pick == 0 ? owner : pick == 1 ? near : Site(r, 0.1f, 20.0f), border }; + }), + new Family("vec4 cultmath_power_score(vec3, vec4)", "ulp-bounded", r => new object[] { Point3(r), Site(r, 0.1f, 20.0f) }), + new Family("vec4 cultmath_multiplicative_score(vec3, vec4)", "ulp-bounded", r => new object[] { Point3(r), Site(r, 0.1f, 100.0f, logWeight: true) }), + new Family("CultSiteCells cultmath_site_cells_insert(CultSiteCells, vec4, int)", "ulp-bounded", r => + { + var (cells, scores) = CellsState(r); + var score = r.Next(4) == 0 && scores.Count > 0 ? scores[r.Next(scores.Count)] : PowerOrMultiplicative(r); + return new object[] { cells, score, scores.Count }; + }), + new Family("vec4 cultmath_site_cells_border(CultSiteCells)", "ulp-bounded", r => + { + var (cells, _) = CellsState(r, minimum: r.Next(8) == 0 ? 0 : 2); + return new object[] { cells }; + }), + new Family("float cultmath_gabriel_margin(vec3, vec3, vec3)", "ulp-bounded", r => + { + var a = Point3(r); + return new object[] { a, r.Next(8) == 0 ? a : Point3(r), Point3(r) }; + }), + // The lattice steps. The cell is an integer-valued vec2 (negative and large included), time and drift span + // zero and the accepted range; the weight's border covers 0, near the falloff, and the 1.0e30 of no body. + new Family("vec3 cultmath_lattice_site(vec2, float, float)", "ulp-bounded", r => + new object[] { new float2(r.Next(-4000, 4000), r.Next(-4000, 4000)), r.Next(6) == 0 ? 0.0f : Uniform(r, -200.0f, 200.0f), r.Next(6) == 0 ? 0.0f : Uniform(r, -3.0f, 3.0f) }), + new Family("float cultmath_lattice_weight(float, float, float, float)", "ulp-bounded", r => + { + var falloff = Uniform(r, 0.05f, 40.0f); + var border = r.Next(5) switch { 0 => 0.0f, 1 => 1.0e30f, 2 => falloff * Uniform(r, 0.9f, 1.1f), _ => Uniform(r, 0.0f, 3.0f * falloff) }; + var boost = r.Next(5) switch { 0 => 0.0f, 1 => 4.0f, _ => Uniform(r, 0.0f, 4.0f) }; + return new object[] { Uniform(r, 0.5f, 1.0f), border, boost, falloff }; + }), + new Family("float cultmath_lattice_distance(vec2, vec2, float, vec2, float)", "ulp-bounded", r => + { + var angle = Uniform(r, 0.0f, 6.2831855f); + var normal = r.Next(6) == 0 ? new float2(1.0f, 0.0f) : new float2(MathF.Cos(angle), MathF.Sin(angle)); + var stretch = r.Next(5) switch { 0 => 1.0f, 1 => 2.0f, _ => Uniform(r, 1.0f, 2.0f) }; + return new object[] { Point2(r), Point2(r), Uniform(r, 0.5f, 5.0f), normal, stretch }; + }), + // The smooth step: d exactly at f1 + 2 smoothing one in four (the equal branch), near it one in four, the + // smoothing near 0 and at 1, m anywhere up to f1 + smoothing. + // One draw in four is the cap point: m = f1 + smoothing exactly and d = f1 + smoothing (1 + U(0.3, 0.9)) with smoothing in + // [0.5, 1], where next exceeds f1 + smoothing and the min clamps; a step that returns next reads another function there. + new Family("float cultmath_lattice_smooth_step(float, float, float, float)", "ulp-bounded", r => + { + if (r.Next(4) == 0) + { + var cappedSmoothing = Uniform(r, 0.5f, 1.0f); + var cappedF1 = Uniform(r, 0.0f, 10.0f); + return new object[] { cappedF1 + cappedSmoothing, cappedF1 + cappedSmoothing * (1.0f + Uniform(r, 0.3f, 0.9f)), cappedF1, cappedSmoothing }; + } + + var smoothing = r.Next(5) switch { 0 => 1.0f, 1 => Uniform(r, 1.0e-3f, 1.0e-2f), _ => Uniform(r, 0.01f, 1.0f) }; + var f1 = Uniform(r, 0.0f, 10.0f); + var edge = f1 + 2.0f * smoothing; + var d = r.Next(4) switch { 0 => edge, 1 => edge * Uniform(r, 0.99f, 1.01f), _ => Uniform(r, f1, edge + 1.0f) }; + return new object[] { Uniform(r, f1, f1 + smoothing), d, f1, smoothing }; + }), + // The site-array functions: a fixed-capacity array and a count, killed on the device (the lattice at rings up to 17). + new Family($"vec4 cultmath_power_border(vec3, vec4[{SiteArrays.Capacity}], int)", "ulp-bounded", SiteArrays.PowerBorderArguments), + new Family($"vec4 cultmath_weighted_lattice_cells(vec2, float, vec4[{SiteArrays.Capacity}], int, float, float, float, float, float, vec2, float)", "ulp-bounded", SiteArrays.LatticeArguments), }).ToArray(); + // A point of magnitude m, m log-uniform in [lo, hi]: one component at +-m, the other two uniform in [-m, m], + // the axis of the large one random. + private static float3 BandPoint3(System.Random r, double lo, double hi) + { + var m = lo * Math.Pow(hi / lo, r.NextDouble()); + var v = new double[] { (r.NextDouble() * 2.0 - 1.0) * m, (r.NextDouble() * 2.0 - 1.0) * m, (r.NextDouble() * 2.0 - 1.0) * m }; + v[r.Next(3)] = r.Next(2) == 0 ? m : -m; + return new float3((float)v[0], (float)v[1], (float)v[2]); + } + + + // A site float4(position.xyz, weight): the weight uniform in [lo, hi], or log-uniform when logWeight. + private static float4 Site(System.Random r, float lo, float hi, bool logWeight = false) + { + var p = Point3(r); + return new float4(p.x, p.y, p.z, logWeight ? lo * MathF.Pow(hi / lo, r.NextSingle()) : Uniform(r, lo, hi)); + } + + private static float4 PowerOrMultiplicative(System.Random r) => + r.Next(2) == 0 ? math.power_score(Point3(r), Site(r, 0.1f, 20.0f)) : math.multiplicative_score(Point3(r), Site(r, 0.1f, 100.0f, logWeight: true)); + + // A fold state made by the production path: site_cells_insert over a few random scores (at least minimum). + private static (CultSiteCells Cells, List Scores) CellsState(System.Random r, int minimum = 0) + { + var scores = new List(); + var cells = math.site_cells_empty(); + for (var i = minimum + r.Next(4 - minimum); i > 0; i--) + { + var score = r.Next(4) == 0 && scores.Count > 0 ? scores[^1] : PowerOrMultiplicative(r); + cells = math.site_cells_insert(cells, score, scores.Count); + scores.Add(score); + } + + return (cells, scores); + } + + private static object[] SpanArguments(System.Random r) + { + var stage = SpanStageTests.Stage.Draw(r); + var halfLength = r.Next(4) == 0 ? 0.0f : new[] { 0.02f, 0.1f, 0.5f }[r.Next(3)]; + var span = SpanStageTests.Span.Draw(r, Point3(r), halfLength, Uniform(r, 0.0f, 2.0f)); + return new object[] { span.Path, stage.S, stage.Octaves, stage.Lacunarity, stage.Gain }; + } + + /// + /// The committed fixture's cases of the three cultmath_integral_clamp_linear families, decoded into the + /// C# arguments (a, b, lo, hi, t0, t1): the random cases the clamp-normalisation tests also run. + /// + internal static IReadOnlyList IntegralClampLinearFixtureCases + { + get + { + const string clamp = "float cultmath_integral_clamp_linear(float, float, float, float, float, float)"; + var method = Resolve(clamp); + return JsonNode.Parse(File.ReadAllText(FixturePath))!["functions"]!.AsArray() + .Where(family => (string)family!["glsl"]! == clamp) + .SelectMany(family => family!["cases"]!.AsArray()) + .Select(entry => Arguments(method, ((string)entry!).Split(" -> ")[0]).Select(a => (float)a).ToArray()) + .ToArray(); + } + } + // The fixture text, each case's arguments given by family and point index. private static string GoldenFixture(Func arguments) { @@ -682,6 +1010,9 @@ public sealed class GlslMirrorTests { ["float"] = typeof(float), ["int"] = typeof(int), ["vec2"] = typeof(float2), ["vec3"] = typeof(float3), ["vec4"] = typeof(float4), ["ivec3"] = typeof(int3), ["ivec4"] = typeof(int4), + ["SpanPath"] = typeof(SpanPath), ["SpanStage"] = typeof(SpanStage), + ["CultSiteCells"] = typeof(CultSiteCells), + [$"vec4[{SiteArrays.Capacity}]"] = typeof(float4[]), }; // The C# math method a GLSL signature names: cultmath_ dropped, parameter types mapped. @@ -690,6 +1021,7 @@ public sealed class GlslMirrorTests var match = Regex.Match(glsl, @"^\w+ cultmath_(\w+)\(([^)]*)\)$"); var types = match.Groups[2].Value.Split(", ").Select(t => GlslTypes[t]).ToArray(); return typeof(math).GetMethod(match.Groups[1].Value, BindingFlags.Public | BindingFlags.Static, null, types, null) + ?? typeof(SiteArrays).GetMethod(match.Groups[1].Value, BindingFlags.NonPublic | BindingFlags.Static, null, types, null) ?? throw new InvalidOperationException("no C# math counterpart for " + glsl); } @@ -705,6 +1037,8 @@ public sealed class GlslMirrorTests // the same read as GLSL's columns. private static IEnumerable Scalars(object value) => value is float or int or uint ? new[] { value } + : value is Array array + ? array.Cast().SelectMany(Scalars) : value is float3x3 matrix ? new object[] { matrix._m00, matrix._m01, matrix._m02, matrix._m10, matrix._m11, matrix._m12, matrix._m20, matrix._m21, matrix._m22 } : value.GetType().GetFields().Where(f => !f.IsStatic).SelectMany(f => Scalars(f.GetValue(value)!)); diff --git a/packages/cultmath/tests/CultMath.Tests/HlslSourceCompatibilityTests.cs b/packages/cultmath/tests/CultMath.Tests/HlslSourceCompatibilityTests.cs index 4ca598ad..2c994be8 100644 --- a/packages/cultmath/tests/CultMath.Tests/HlslSourceCompatibilityTests.cs +++ b/packages/cultmath/tests/CultMath.Tests/HlslSourceCompatibilityTests.cs @@ -27,6 +27,22 @@ public sealed class HlslSourceCompatibilityTests Assert.NotNull(ShaderFunction(shader, "cultmath_value_noise_bicubic", typeof(float2))); Assert.NotNull(ShaderFunction(shader, "cultmath_smin_grad", typeof(float4), typeof(float4), typeof(float))); Assert.NotNull(ShaderFunction(shader, "cultmath_cellular", typeof(float3))); + var siteCells = shader.GetNestedType("CultSiteCells", BindingFlags.Public | BindingFlags.NonPublic)!; + Assert.NotNull(ShaderFunction(shader, "cultmath_power_score", typeof(float3), typeof(float4))); + Assert.NotNull(ShaderFunction(shader, "cultmath_multiplicative_score", typeof(float3), typeof(float4))); + Assert.NotNull(ShaderFunction(shader, "cultmath_site_cells_empty")); + Assert.NotNull(ShaderFunction(shader, "cultmath_site_cells_insert", siteCells, typeof(float4), typeof(int))); + Assert.NotNull(ShaderFunction(shader, "cultmath_site_cells_border", siteCells)); + Assert.NotNull(ShaderFunction(shader, "cultmath_gabriel_margin", typeof(float3), typeof(float3), typeof(float3))); + Assert.NotNull(ShaderFunction(shader, "cultmath_power_border_step", typeof(float3), typeof(float4), typeof(float4), typeof(float4))); + Assert.NotNull(ShaderFunction(shader, "cultmath_lattice_site", typeof(float2), typeof(float), typeof(float))); + Assert.NotNull(ShaderFunction(shader, "cultmath_lattice_weight", typeof(float), typeof(float), typeof(float), typeof(float))); + Assert.NotNull(ShaderFunction(shader, "cultmath_lattice_distance", typeof(float2), typeof(float2), typeof(float), typeof(float2), typeof(float))); + Assert.NotNull(ShaderFunction(shader, "cultmath_lattice_smooth_step", typeof(float), typeof(float), typeof(float), typeof(float))); + Assert.NotNull(ShaderFunction(shader, "cultmath_segment_closest", typeof(float2), typeof(float2), typeof(float2))); + Assert.NotNull(ShaderFunction(shader, "cultmath_distance_to_segment", typeof(float2), typeof(float2), typeof(float2))); + Assert.NotNull(ShaderFunction(shader, "cultmath_segment_closest", typeof(float3), typeof(float3), typeof(float3))); + Assert.NotNull(ShaderFunction(shader, "cultmath_distance_to_segment", typeof(float3), typeof(float3), typeof(float3))); Assert.NotNull(ShaderFunction(shader, "cultmath_snoise_grad", typeof(float3))); Assert.NotNull(ShaderFunction(shader, "cultmath_snoise_hessian", typeof(float3))); Assert.NotNull(ShaderFunction(shader, "cultmath_integral_clamp_linear", typeof(float), typeof(float), typeof(float), typeof(float), typeof(float), typeof(float))); @@ -39,21 +55,65 @@ public sealed class HlslSourceCompatibilityTests Assert.NotNull(ShaderFunction(shader, "cultmath_af_snoise", typeof(float3), typeof(float3), typeof(float))); Assert.NotNull(ShaderFunction(shader, "cultmath_af_fbm", typeof(float3), typeof(float3), typeof(float), typeof(int), typeof(float), typeof(float))); Assert.NotNull(ShaderFunction(shader, "cultmath_af_frustum_ball", typeof(float2), typeof(float), typeof(float), typeof(float), typeof(float))); + var (spanPath, spanStage) = SpanTypes(shader); + Assert.NotNull(ShaderFunction(shader, "cultmath_span_fbm", spanPath, spanStage, typeof(int), typeof(float), typeof(float))); + Assert.NotNull(ShaderFunction(shader, "cultmath_span_ridged", spanPath, spanStage, typeof(int), typeof(float), typeof(float))); + Assert.NotNull(ShaderFunction(shader, "cultmath_span_stage", typeof(bool), spanPath, spanStage, typeof(int), typeof(float), typeof(float))); } + // The mirror's struct types are private nested types of HlslShader (a struct without a modifier). + private static (Type Path, Type Stage) SpanTypes(Type shader) => + (shader.GetNestedType("SpanPath", BindingFlags.Public | BindingFlags.NonPublic)!, shader.GetNestedType("SpanStage", BindingFlags.Public | BindingFlags.NonPublic)!); + // HLSL functions carry no access modifier, so they compile as private instance methods. private static MethodInfo? ShaderFunction(Type shader, string name, params Type[] parameters) => shader.GetMethod(name, BindingFlags.Instance | BindingFlags.NonPublic, null, parameters, null); - // Mirror internals with no public C# math counterpart. Any other cultmath_* function must match one. - private static readonly string[] MirrorOnly = { "cultmath_snoise_mod289", "cultmath_snoise_permute" }; - - private static readonly float[] Specials = { 0.0f, -0.0f, 1.0f, -1.0f, 0.5f, -2.75f, 3.0f, 1.0e-7f, 1.0e4f, -1.0e4f, 1.0e7f, float.NaN }; + // Shader constants with no C# twin of the same name (empty when every constant has one). + private static readonly string[] ConstantsWithoutTwin = { "CULTMATH_MAX_SITES" }; /// - /// Every mirror function with a C# math counterpart returns the same bits (any NaN equals any NaN; + /// Every static const of the compiled HLSL mirror (a static literal CULTMATH_* field, whatever its access) is the + /// same float32, bit for bit, as the math constant of the same name without the prefix (private ones + /// included), so a pin edited in one runtime and not the other fails here whichever constant it is. + /// A constant with neither a twin nor a listing in ConstantsWithoutTwin fails too. + /// + [Fact] + public void EveryShaderConstantEqualsItsCSharpTwin() + { + var (assembly, errors) = CompileShaderMirror(); + Assert.True(assembly is not null, string.Join(Environment.NewLine, errors)); + var shader = assembly!.GetType("CultMathHlsl.HlslShader")!; + var constants = shader.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static) + .Where(f => f.IsLiteral && f.FieldType == typeof(float) && f.Name.StartsWith("CULTMATH_", StringComparison.Ordinal)) + .ToArray(); + Assert.True(constants.Length >= 10, $"only {constants.Length} shader constants were found by reflection"); + foreach (var constant in constants) + { + var name = constant.Name["CULTMATH_".Length..]; + var twin = typeof(math).GetField(name, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); + if (twin is null) + { + Assert.True(ConstantsWithoutTwin.Contains(constant.Name), $"{constant.Name} has no math.{name} and is not listed in ConstantsWithoutTwin"); + continue; + } + + var shaderValue = (float)constant.GetRawConstantValue()!; + var mathValue = (float)twin.GetValue(null)!; + Assert.True(BitConverter.SingleToInt32Bits(shaderValue) == BitConverter.SingleToInt32Bits(mathValue), + $"{constant.Name} is {shaderValue:R} in the shader and math.{name} is {mathValue:R}"); + } + } + + // Special values every mirror argument takes: zeros, ties, negatives, large values, NaN and both infinities. + private static readonly float[] Specials = { 0.0f, -0.0f, 1.0f, -1.0f, 0.5f, -2.75f, 3.0f, 1.0e-7f, 1.0e4f, -1.0e4f, 1.0e7f, float.NaN, float.PositiveInfinity, float.NegativeInfinity }; + + /// + /// Every mirror function matches the math function of the same name, public or private (a function with no + /// twin fails, and nothing is exempt), with a struct parameter mapped by name and fields to the CultMath + /// type of the same name, and returns the same bits (any NaN equals any NaN; /// -0 differs from 0) over random inputs, every special value in every argument (ties, zeros, - /// negatives, NaN, large values, integer lattice points), special pairs, and vectors whose first two + /// negatives, NaN, infinities, large values, integer lattice points), special pairs, and vectors whose first two /// components tie (x0.x == x0.y in snoise). This proves the text of CultMath.hlsl computes the same /// float32 results as C# math on the CPU. It does not prove GPU agreement: driver sin precision alone /// makes cultmath_hash and value noise differ bit for bit on hardware. The mirror's intrinsics are C# @@ -76,6 +136,16 @@ public sealed class HlslSourceCompatibilityTests for (var k = 0; k < 64; k++) { var values = Enumerable.Range(0, 32).Select(_ => Next()).ToArray(); cases.Add(i => values[i]); } for (var k = 0; k < 16; k++) { var values = Enumerable.Range(0, 32).Select(_ => Next()).ToArray(); cases.Add(i => values[i & ~1]); } + // Distinct sites closer than 1e-2 (slots 3-6 are the owner and 7-10 the other site of + // cultmath_power_border_step): a length guard wider than "coincident" changes the result for these only. + for (var k = 0; k < 16; k++) + { + var values = Enumerable.Range(0, 32).Select(_ => Next()).ToArray(); + for (var c = 0; c < 3; c++) values[7 + c] = values[3 + c] + (random.NextSingle() * 2.0f - 1.0f) * 1.0e-3f; + values[7] += 2.0e-4f; + cases.Add(i => values[i]); + } + // Points aimed squarely at cellular's HLSL mirror (F6/F3 Soul findings): the generic random // and special-value cases above pass ~92 inputs through cultmath_cellular and never happen to // hit a point where a radius-2 cell wins (about 3.5e-5 of points, Soul measured) or an @@ -113,23 +183,18 @@ public sealed class HlslSourceCompatibilityTests var mismatches = new List(); var compared = new HashSet(); - foreach (var mirror in shaderType.GetMethods(BindingFlags.Instance | BindingFlags.NonPublic).Where(m => m.Name.StartsWith("cultmath_"))) + foreach (var mirror in shaderType.GetMethods(BindingFlags.Instance | BindingFlags.NonPublic).Where(m => m.Name.StartsWith("cultmath_") && !m.GetParameters().Any(p => p.ParameterType.IsArray))) { var types = mirror.GetParameters().Select(p => p.ParameterType).ToArray(); - var counterpart = typeof(math).GetMethod(mirror.Name["cultmath_".Length..], BindingFlags.Public | BindingFlags.Static, null, types, null); - if (counterpart is null) - { - Assert.Contains(mirror.Name, MirrorOnly); - continue; - } + var counterpart = Twin(shaderType, mirror.Name["cultmath_".Length..], types); + Assert.True(counterpart is not null, $"{mirror.Name} has no C# math function of the same name and parameter types, public or private"); compared.Add(mirror.Name); foreach (var input in cases) { var slot = 0; - var args = types.Select(t => Scalars.Contains(t) ? Scalar(t, input(slot++)) - : Activator.CreateInstance(t, Components(t).Select(f => Scalar(f.FieldType, input(slot++))).ToArray())!).ToArray(); - var expected = Values(counterpart.Invoke(null, args)!); + var args = types.Select(t => Build(t, () => input(slot++))).ToArray(); + var expected = Values(counterpart!.Invoke(null, args.Select(a => CopyFields(a, TwinType(shaderType, a.GetType())!)).ToArray())!); var actual = Values(mirror.Invoke(shader, args)!); if (!BitwiseEqual(expected, actual)) { @@ -139,7 +204,218 @@ public sealed class HlslSourceCompatibilityTests } Assert.True(mismatches.Count == 0, $"{mismatches.Count} mismatches:{Environment.NewLine}{string.Join(Environment.NewLine, mismatches.Take(12))}"); - Assert.Equal(120, compared.Count); + // The three site-array functions are compared by SiteArrayMirrorsMatchCSharp, which draws their counts and arrays. + Assert.Equal(140, compared.Count); + } + + /// + /// The shader functions that take a site array and a count are bit-equal to C#'s span functions on the same + /// arguments: at least 64 compared cases each, counts 0 to the capacity with filler after the count (a loop bound that + /// ignores the count reads it), the lattice at rings up to 17. A case C# refuses is skipped and counted. + /// + [Fact] + public void SiteArrayMirrorsMatchCSharp() + { + var (assembly, errors) = CompileShaderMirror(); + Assert.True(assembly is not null, string.Join(Environment.NewLine, errors)); + var shaderType = assembly!.GetType("CultMathHlsl.HlslShader")!; + var shader = Activator.CreateInstance(shaderType); + Assert.Equal(17, SiteArrays.FarPoints[0].Ring); + Assert.All(SiteArrays.FarPoints, far => Assert.InRange(far.Ring, 8, LatticeMaxRing)); + + var draws = new (string Name, Func Draw)[] + { + ("power_border", SiteArrays.PowerBorderArguments), + ("lattice_cell_distance", SiteArrays.LatticeCellDistanceArguments), + ("weighted_lattice_cells", SiteArrays.LatticeArguments), + }; + foreach (var (name, draw) in draws) + { + var mirror = shaderType.GetMethod("cultmath_" + name, BindingFlags.Instance | BindingFlags.NonPublic)!; + var twin = typeof(SiteArrays).GetMethod(name, BindingFlags.Static | BindingFlags.NonPublic)!; + Assert.Equal(twin.GetParameters().Select(p => p.ParameterType), mirror.GetParameters().Select(p => p.ParameterType)); + var random = new System.Random(0x517E); + int compared = 0, refused = 0; + for (var i = 0; i < 160; i++) + { + var args = draw(random); + object expected; + try { expected = twin.Invoke(null, args)!; } + catch (TargetInvocationException e) when (e.InnerException is ArgumentException) { refused++; continue; } + var actual = Values(mirror.Invoke(shader, args)!); + Assert.True(BitwiseEqual(Values(expected), actual), + $"{name} case {i}: C# {string.Join(" ", Values(expected).Select(v => v.Value))}, mirror {string.Join(" ", actual.Select(v => v.Value))}"); + compared++; + } + + Assert.True(compared >= 64, $"{name} compared only {compared} cases ({refused} refused)"); + } + } + + /// A consumer defines CULTMATH_MAX_SITES before including the library; the mirror compiles with the capacity changed. + [Fact] + public void TheSiteCapacityIsOverridable() + { + var (assembly, errors) = CompileShaderMirror(defines: new Dictionary { ["CULTMATH_MAX_SITES"] = 4 }); + Assert.True(assembly is not null, string.Join(Environment.NewLine, errors)); + var shaderType = assembly!.GetType("CultMathHlsl.HlslShader")!; + Assert.Equal(4, (int)shaderType.GetField("CULTMATH_MAX_SITES", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static)!.GetRawConstantValue()!); + var sites = new[] { new float4(0, 0, 0, 1), new float4(10, 0, 0, 1), new float4(0, 10, 0, 2), new float4(-10, 0, 0, 1) }; + var border = (float4)shaderType.GetMethod("cultmath_power_border", BindingFlags.Instance | BindingFlags.NonPublic)!.Invoke(Activator.CreateInstance(shaderType), new object[] { new float3(1, 1, 0), sites, 4 })!; + Assert.Equal(power_border(new float3(1, 1, 0), sites), border); + } + + /// + /// The 1500 arguments (a, b, lo, hi, t0, t1) at which integral_clamp_linear's zero-length rule, its lo + /// normalisation and its infinite bounds all bite: a in {-2.5, 0, 1.5}, b in {-1.5, -0, 0, 2}, lo in + /// {-inf, -1, 0.5, 3, +inf}, hi in {-inf, -0.5, 1, 4, +inf}, and (t0, t1) in {(0, 0), (1.25, 1.25), (-1, 2), + /// (2, -1), (0, 1e-30)}. One spelling, read by the mirror grid test and by the GLSL clamp shadow test. + /// + internal static IReadOnlyList IntegralClampLinearEdgeGrid { get; } = BuildIntegralClampLinearEdgeGrid(); + + private static List BuildIntegralClampLinearEdgeGrid() + { + var inf = float.PositiveInfinity; + var grid = new List(); + foreach (var a in new[] { -2.5f, 0.0f, 1.5f }) + foreach (var b in new[] { -1.5f, -0.0f, 0.0f, 2.0f }) + foreach (var lo in new[] { -inf, -1.0f, 0.5f, 3.0f, inf }) + foreach (var hi in new[] { -inf, -0.5f, 1.0f, 4.0f, inf }) + foreach (var (t0, t1) in new[] { (0.0f, 0.0f), (1.25f, 1.25f), (-1.0f, 2.0f), (2.0f, -1.0f), (0.0f, 1.0e-30f) }) + grid.Add(new[] { a, b, lo, hi, t0, t1 }); + return grid; + } + + /// + /// The edge grid followed by the committed GLSL fixture's cases of the three integral_clamp_linear families + /// (GlslMirrorTests.IntegralClampLinearFixtureCases, decoded): one list, read by the mirror test and by the + /// clamp-shadow test. The grid fixes a in {-2.5, 0, 1.5}, so a guard keyed on a past 1.75 hides from it + /// (Soul s4); the fixture's random a in [-4, 4] closes that. + /// + internal static IReadOnlyList IntegralClampLinearCases => IntegralClampLinearEdgeGrid.Concat(GlslMirrorTests.IntegralClampLinearFixtureCases).ToArray(); + + /// + /// The compiled mirror's cultmath_integral_clamp_linear returns C#'s bits on every edge case (the grid and + /// the fixture's cases), and C#'s result is never NaN there. The generic case set catches each of the function's guards (the held and + /// kept stretch guards, the flat branch's zero-length guard) only by its rotation: with the kept guard + /// removed it finds 0 mismatches, with the held guard removed 1 once infinities join the specials, and the + /// edge grid finds 246 for either every time. + /// + [Fact] + public void IntegralClampLinearMirrorMatchesCSharpOnTheEdgeCases() + { + var (assembly, errors) = CompileShaderMirror(); + Assert.True(assembly is not null, string.Join(Environment.NewLine, errors)); + var shaderType = assembly!.GetType("CultMathHlsl.HlslShader")!; + var shader = Activator.CreateInstance(shaderType); + var mirror = ShaderFunction(shaderType, "cultmath_integral_clamp_linear", Enumerable.Repeat(typeof(float), 6).ToArray())!; + + var mismatches = new List(); + var cases = IntegralClampLinearCases; + foreach (var c in cases) + { + var expected = integral_clamp_linear(c[0], c[1], c[2], c[3], c[4], c[5]); + var actual = (float)mirror.Invoke(shader, c.Cast().ToArray())!; + Assert.False(float.IsNaN(expected), $"C# returns NaN at ({string.Join(", ", c)})"); + if (BitConverter.SingleToInt32Bits(expected) != BitConverter.SingleToInt32Bits(actual)) + mismatches.Add($"({string.Join(", ", c)}): C# {expected:R}, mirror {actual:R}"); + } + + Assert.True(mismatches.Count == 0, $"{mismatches.Count} of {cases.Count} cases differ:{Environment.NewLine}{string.Join(Environment.NewLine, mismatches.Take(12))}"); + } + + /// + /// At a SpanStage the shader has no identity constant for, so C#'s identity (copied field by field) is the + /// argument: the mirror's cultmath_span_fbm and cultmath_span_ridged return the field of the mirror's own + /// cultmath_fbm_grad and cultmath_ridged_grad, bit for bit, for 0 to 20 octaves over random and simplex-tie + /// points. The shader-side statement of math.SpanStage.Identity (design decision a: no shader identity). + /// + [Fact] + public void SpanStagesAtIdentityAreFbmAndRidgedInTheMirror() + { + var (assembly, errors) = CompileShaderMirror(); + Assert.True(assembly is not null, string.Join(Environment.NewLine, errors)); + var shaderType = assembly!.GetType("CultMathHlsl.HlslShader")!; + var shader = Activator.CreateInstance(shaderType); + var (pathType, stageType) = SpanTypes(shaderType); + var spanArguments = new[] { pathType, stageType, typeof(int), typeof(float), typeof(float) }; + var pairs = new[] + { + (Span: ShaderFunction(shaderType, "cultmath_span_fbm", spanArguments)!, Plain: ShaderFunction(shaderType, "cultmath_fbm_grad", typeof(float3), typeof(int), typeof(float), typeof(float))!), + (Span: ShaderFunction(shaderType, "cultmath_span_ridged", spanArguments)!, Plain: ShaderFunction(shaderType, "cultmath_ridged_grad", typeof(float3), typeof(int), typeof(float), typeof(float))!), + }; + var identity = CopyFields(SpanStage.Identity, stageType); + + var random = new System.Random(0x57A6E2); + var compared = 0; + foreach (var p in SpanStageTests.Points(random)) + { + var octaves = random.Next(0, 21); + var lacunarity = 1.4f + 1.2f * random.NextSingle(); + var gain = 0.3f + 0.5f * random.NextSingle(); + var path = CopyFields(new SpanPath { midpoint = p, velocity = new float3(0.6f, 0.0f, 0.8f), speed = 1.0f, acceleration = 0.5f, halfLength = 0.25f }, pathType); + foreach (var (span, plain) in pairs) + { + var field = FieldOf(span.Invoke(shader, new object[] { path, identity, octaves, lacunarity, gain })!, "field"); + var expected = plain.Invoke(shader, new object[] { p, octaves, lacunarity, gain })!; + Assert.True(BitwiseEqual(Values(expected), Values(field)), $"{span.Name} at {p}, {octaves} octaves: {string.Join(" ", Values(field).Select(v => v.Value))} is not {plain.Name} {string.Join(" ", Values(expected).Select(v => v.Value))}"); + compared++; + } + } + + Assert.True(compared >= 460, $"only {compared} identity comparisons ran"); + } + + /// + /// The generic comparison draws every argument from [-100, 100] (and specials), where the octave loop's + /// frequency, stretch and span terms saturate: 0 or 16 octaves, a Hessian bound pinned at its global value. + /// This sweep draws SpanStageTests' realistic stages and spans (4000, one in four with a zero axis, one in + /// four with a point span, halfLength 0), both stages, and the mirror must return C#'s bits for the whole + /// SpanNoise. Each of stretched and unstretched stages, and of positive and zero fold, must be met at least + /// 500 times, or the sweep proves nothing about that branch. + /// + [Fact] + public void SpanStageMirrorMatchesCSharpBitForBitOnRealisticSpans() + { + var (assembly, errors) = CompileShaderMirror(); + Assert.True(assembly is not null, string.Join(Environment.NewLine, errors)); + var shaderType = assembly!.GetType("CultMathHlsl.HlslShader")!; + var shader = Activator.CreateInstance(shaderType); + var (pathType, stageType) = SpanTypes(shaderType); + var spanArguments = new[] { pathType, stageType, typeof(int), typeof(float), typeof(float) }; + var mirrors = new[] { ShaderFunction(shaderType, "cultmath_span_fbm", spanArguments)!, ShaderFunction(shaderType, "cultmath_span_ridged", spanArguments)! }; + + var random = new System.Random(0x5EED4); + float Next(float extent) => (random.NextSingle() * 2.0f - 1.0f) * extent; + int stretched = 0, unstretched = 0, folded = 0, flat = 0; + for (var i = 0; i < 4000; i++) + { + var drawn = SpanStageTests.Stage.Draw(random); + var stage = drawn.S; + if (i % 4 == 1) + stage.axis = new float3(0.0f, 0.0f, 0.0f); + var halfLength = i % 4 == 2 ? 0.0f : new[] { 0.02f, 0.1f, 0.5f, 2.0f }[random.Next(4)]; + var span = SpanStageTests.Span.Draw(random, new float3(Next(30.0f), Next(30.0f), Next(30.0f)), halfLength, random.NextSingle() * 2.0f); + var arguments = new object[] { CopyFields(span.Path, pathType), CopyFields(stage, stageType), drawn.Octaves, drawn.Lacunarity, drawn.Gain }; + if (dot(stage.axis, stage.axis) > 0.0f && stage.stretch != 1.0f) + stretched++; + else + unstretched++; + for (var m = 0; m < 2; m++) + { + var expected = m == 0 ? span_fbm(span.Path, stage, drawn.Octaves, drawn.Lacunarity, drawn.Gain) : span_ridged(span.Path, stage, drawn.Octaves, drawn.Lacunarity, drawn.Gain); + var actual = mirrors[m].Invoke(shader, arguments)!; + Assert.True(BitwiseEqual(Values(expected), Values(actual)), + $"{mirrors[m].Name} differs from C# at midpoint {span.Path.midpoint}, halfLength {halfLength:R}, {drawn.Octaves} octaves: C# {string.Join(" ", Values(expected).Select(v => v.Value))}, mirror {string.Join(" ", Values(actual).Select(v => v.Value))}"); + if (m == 1 && expected.fold > 0.0f) + folded++; + else if (m == 1) + flat++; + } + } + + Assert.True(stretched >= 500 && unstretched >= 500 && folded >= 500 && flat >= 500, + $"the sweep meets a branch too rarely: stretched {stretched}, unstretched {unstretched}, fold > 0 {folded}, fold = 0 {flat} of 4000"); } /// @@ -352,14 +628,66 @@ public sealed class HlslSourceCompatibilityTests } // Integer arguments take the bit pattern of the float input, so specials become 0, 0x80000000, NaN bits, ... - private static readonly Type[] Scalars = { typeof(float), typeof(int), typeof(uint) }; + // A bool argument is true when its float input is positive. + private static readonly Type[] Scalars = { typeof(float), typeof(int), typeof(uint), typeof(bool) }; private static object Scalar(Type t, float f) => t == typeof(float) ? f + : t == typeof(bool) ? f > 0.0f : t == typeof(int) ? BitConverter.SingleToInt32Bits(f) : (object)(uint)BitConverter.SingleToInt32Bits(f); - // Scoped to scalar-typed fields: this only ever builds function ARGUMENTS (float2/3/4, int2/3/4, ...), - // never a struct-of-struct return, so it must not recurse. - private static FieldInfo[] Components(Type t) => t.GetFields().Where(f => !f.IsStatic && Scalars.Contains(f.FieldType)).ToArray(); + private static FieldInfo[] InstanceFields(Type t) => t.GetFields(BindingFlags.Public | BindingFlags.Instance); + + // One function ARGUMENT from the case's scalars, in field order: a scalar from its float, a vector by the + // constructor taking its scalar fields, a struct field by field, recursively. + private static object Build(Type t, Func next) + { + if (Scalars.Contains(t)) + return Scalar(t, next()); + var fields = InstanceFields(t); + var constructor = t.GetConstructor(fields.Select(f => f.FieldType).ToArray()); + if (constructor is not null) + return constructor.Invoke(fields.Select(f => Build(f.FieldType, next)).ToArray()); + var value = Activator.CreateInstance(t)!; + foreach (var field in fields) + field.SetValue(value, Build(field.FieldType, next)); + return value; + } + + // The CultMath type a mirror parameter type stands for: itself, or for a type nested in HlslShader the + // CultMath type of the same name, only if both have the same instance fields by name, type (mapped + // likewise) and order. Null when there is no such twin. + private static Type? TwinType(Type shaderType, Type mirror) + { + if (mirror.DeclaringType != shaderType) + return mirror; + var twin = typeof(math).Assembly.GetType("CultMath." + mirror.Name); + if (twin is null) + return null; + var mine = InstanceFields(mirror); + var theirs = InstanceFields(twin); + return mine.Length == theirs.Length && mine.Zip(theirs).All(p => p.First.Name == p.Second.Name && TwinType(shaderType, p.First.FieldType) == p.Second.FieldType) ? twin : null; + } + + // The math function of the mirror function's name, with its parameter types mapped, public or private. + private static MethodInfo? Twin(Type shaderType, string name, Type[] mirrorTypes) + { + var types = mirrorTypes.Select(t => TwinType(shaderType, t)).ToArray(); + return types.Any(t => t is null) ? null + : typeof(math).GetMethod(name, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static, null, types!, null); + } + + // A struct value as another struct type of the same fields by name: itself when the type is the same. + private static object CopyFields(object source, Type target) + { + if (source.GetType() == target) + return source; + var copy = Activator.CreateInstance(target)!; + foreach (var field in InstanceFields(target)) + field.SetValue(copy, CopyFields(source.GetType().GetField(field.Name)!.GetValue(source)!, field.FieldType)); + return copy; + } + + private static object FieldOf(object value, string name) => value.GetType().GetField(name)!.GetValue(value)!; /// /// One flattened scalar leaf of a (possibly nested) return value: its declaration path (field @@ -412,11 +740,23 @@ public sealed class HlslSourceCompatibilityTests : string.Empty); } - /// The documented HLSL-to-C# transformations, and nothing else. - internal static string TransformHlslToCSharp(string hlsl) + /// + /// The text without its include-guard lines. A capacity macro (#ifndef X, #define X n, #endif, a + /// consumer-overridable default) is not a guard: gives the text it becomes, from its name and value. + /// + internal static string DropGuards(string source, Func capacity) => + Regex.Replace(source, @"(?m)^#ifndef (CULTMATH_MAX_\w+)\r?\n#define \1 (\d+)\r?\n#endif[ \t]*$|^[ \t]*#(ifndef|define|endif)\b.*$", + match => match.Groups[1].Success ? capacity(match.Groups[1].Value, match.Groups[2].Value) : string.Empty); + + /// + /// The documented HLSL-to-C# transformations, and nothing else. is C# source a + /// test supplies, placed first in the class body: it is not a transformation of the HLSL. + /// + internal static string TransformHlslToCSharp(string hlsl, string members = "", IReadOnlyDictionary? defines = null) { - // 1. Include guards (#ifndef/#define/#endif) are dropped; C# has no textual include. - var source = Regex.Replace(hlsl, @"(?m)^\s*#(ifndef|define|endif)\b.*$", string.Empty); + // 1. Include guards (#ifndef/#define/#endif) are dropped; C# has no textual include. A capacity macro + // (#ifndef X, #define X n, #endif) becomes `const int X = n;`, or the value a test defines for X. + var source = DropGuards(hlsl, (name, value) => $"const int {name} = {(defines is not null && defines.TryGetValue(name, out var defined) ? defined : value)};"); // 2. Functions taking Texture2D/SamplerState resources are dropped; GPU resources have // no CultMath analog. @@ -430,18 +770,24 @@ public sealed class HlslSourceCompatibilityTests // 5. Struct fields gain `public`; HLSL has no field access-modifier concept, and a C# struct's // fields default to private, which would hide them from the mirror test's reflection-based - // field comparison (invariant 8's one struct return shape, e.g. CultCellular). + // field comparison (invariant 8's one struct return shape, e.g. CultCellular) and the struct + // arguments' copies (SpanPath, SpanStage), which reflection reads and writes by field name. source = Regex.Replace(source, @"(?ms)(struct\s+\w+\s*\{)(.*?)(\};)", m => m.Groups[1].Value + Regex.Replace(m.Groups[2].Value, @"(?m)^(\s*)(\w+\s+\w+;)", "$1public $2") + m.Groups[3].Value); - // 6. The file body is wrapped in a class; C# has no free functions. - return "using CultMath;\nusing static CultMath.math;\nnamespace CultMathHlsl;\npublic class HlslShader\n{\n" + source + "\n}\n"; + // 6. An array parameter `T name[N]` becomes `T[] name`; the mirror takes the array whole and the count beside it. + source = Regex.Replace(source, @"\b(\w+) (\w+)\[CULTMATH_MAX_\w+\]", "$1[] $2"); + + // 7. The file body is wrapped in a class; C# has no free functions. + return "using CultMath;\nusing static CultMath.math;\nnamespace CultMathHlsl;\npublic class HlslShader\n{\n" + members + source + "\n}\n"; } - internal static (Assembly? Assembly, IReadOnlyList Errors) CompileShaderMirror() + internal static (Assembly? Assembly, IReadOnlyList Errors) CompileShaderMirror(string members = "", IReadOnlyDictionary? defines = null, Func? mutate = null) { var hlsl = ReadShaderSource(FindCultMathRoot()); - var tree = CSharpSyntaxTree.ParseText(TransformHlslToCSharp(hlsl)); + if (mutate is not null) + hlsl = mutate(hlsl); + var tree = CSharpSyntaxTree.ParseText(TransformHlslToCSharp(hlsl, members, defines)); var references = ((string)AppContext.GetData("TRUSTED_PLATFORM_ASSEMBLIES")!) .Split(Path.PathSeparator) .Append(typeof(math).Assembly.Location) diff --git a/packages/cultmath/tests/CultMath.Tests/LatticeCellsTests.cs b/packages/cultmath/tests/CultMath.Tests/LatticeCellsTests.cs new file mode 100644 index 00000000..f6363da1 --- /dev/null +++ b/packages/cultmath/tests/CultMath.Tests/LatticeCellsTests.cs @@ -0,0 +1,460 @@ +using Xunit; +using static CultMath.math; + +namespace CultMath.Tests; + +/// +/// The weighted lattice cell function and its public steps. The oracle and the double reference are written here +/// from the public steps and the spec formula; the ring search is never the reference for itself. +/// +public sealed class LatticeCellsTests +{ + internal const float Cell = 260.0f; + internal const float Falloff = 120.0f; + internal const float Drift = 0.7f; + internal static readonly float2 Normal = new(0.6f, 0.8f); + + internal sealed record Look(float Boost, float Stretch, float Smoothing, float Falloff = LatticeCellsTests.Falloff); + + internal static readonly Look[] Looks = + { + new(1.6f, 1.0f, 0.35f), new(1.6f, 2.0f, 0.35f), new(LatticeMaxBoost, LatticeMaxStretch, LatticeMaxSmoothing), new(0.0f, 1.0f, 0.05f), + }; + + internal static float4[] Bodies(float t) + { + var bodies = new float4[6]; + for (var i = 0; i < bodies.Length; i++) + { + var angle = 0.001f * (i + 1) * t + i; + var radius = 300.0f + 220.0f * i; + bodies[i] = new float4(radius * MathF.Cos(angle), radius * MathF.Sin(angle), 0.0f, 40.0f + 40.0f * i); + } + return bodies; + } + + private static float CellWeight(float2 cell, float time, float4[] bodies, Look look) + { + var site = lattice_site(cell, time, Drift); + var border = power_border(new float3((cell + 0.5f) * Cell, 0.0f), bodies).w; + return lattice_weight(site.z, border, look.Boost, look.Falloff); + } + + // Folds F1, F2, id and smooth over the box of the given radius in absolute row-major order. + internal static float4 BoxFold(float2 p, float time, float4[] bodies, Look look, int radius, + Dictionary<(int, int), float> weights, float2? unitNormal = null) + { + var q = p / Cell; + var c0 = floor(q); + var cells = new List<(float2 cell, float d)>(); + for (var dz = -radius; dz <= radius; dz++) + for (var dx = -radius; dx <= radius; dx++) + { + var cell = c0 + new float2(dx, dz); + var key = ((int)cell.x, (int)cell.y); + if (!weights.TryGetValue(key, out var w)) + weights[key] = w = CellWeight(cell, time, bodies, look); + var site = lattice_site(cell, time, Drift); + cells.Add((cell, lattice_distance(q, site.xy, w, unitNormal ?? Normal, look.Stretch))); + } + float f1 = 1.0e30f, f2 = 1.0e30f; + var win = default(float2); + foreach (var (cell, d) in cells) + { + if (d < f1) { f2 = f1; f1 = d; win = cell; } + else if (d < f2) f2 = d; + } + var m = f1 + look.Smoothing; + foreach (var (_, d) in cells) + m = lattice_smooth_step(m, d, f1, look.Smoothing); + var id = pcg4d(new int4((int)win.x, (int)win.y, 0, 0)); + return new float4(f1, f2, m, cellular_unit(id.w)); + } + + internal static float4 Call(float2 p, float time, float4[] bodies, Look look, float2? normal = null) => + weighted_lattice_cells(p, time, bodies, Cell, Drift, look.Boost, look.Falloff, look.Smoothing, normal ?? Normal, look.Stretch); + + internal static float2 RandomPoint(System.Random r) => + new((r.NextSingle() * 2.0f - 1.0f) * 1500.0f, (r.NextSingle() * 2.0f - 1.0f) * 1500.0f); + + [Fact] + public void RingSearchEqualsTheFullBoxOracle() + { + var r = new System.Random(41); + foreach (var look in Looks) + for (var batch = 0; batch < 20; batch++) + { + var time = 13.0f * batch; + var bodies = Bodies(time); + var weights = new Dictionary<(int, int), float>(); + for (var i = 0; i < 1000; i++) + { + var p = RandomPoint(r); + var expected = BoxFold(p, time, bodies, look, 12, weights); + var actual = Call(p, time, bodies, look); + Assert.Equal(expected, actual); + } + } + } + + internal delegate bool Stop(int k, float f1, float f2, Look look); + + internal static readonly (string name, Stop stop)[] Rules = + { + ("correct", (k, f1, f2, l) => k > 1 && 0.5f * (k - 1) >= max(f2, f1 + 2.0f * l.Smoothing)), + ("cutoff F1 + k", (k, f1, f2, l) => k > 1 && 0.5f * (k - 1) >= max(f2, f1 + l.Smoothing)), + ("bound 0.5*k", (k, f1, f2, l) => k > 0 && 0.5f * k >= max(f2, f1 + 2.0f * l.Smoothing)), + ("greatest weight", (k, f1, f2, l) => k > 1 && (1.0f + l.Boost) * (k - 1) >= max(f2, f1 + 2.0f * l.Smoothing)), + ("F1 only", (k, f1, f2, l) => k > 1 && 0.5f * (k - 1) >= f1 + 2.0f * l.Smoothing), + }; + + // The radius of the box a search with the given exit rule visits (rings 0 to k - 1 when it stops before ring k). + internal static int Radius(float2 p, float time, float4[] bodies, Look look, Stop stop, + Dictionary<(int, int), float> weights) + { + var q = p / Cell; + var c0 = floor(q); + float f1 = 1.0e30f, f2 = 1.0e30f; + for (var k = 0; k <= LatticeMaxRing; k++) + { + if (stop(k, f1, f2, look)) + return k - 1; + for (var dz = -k; dz <= k; dz++) + for (var dx = -k; dx <= k; dx++) + { + if (Math.Max(Math.Abs(dx), Math.Abs(dz)) != k) + continue; + var cell = c0 + new float2(dx, dz); + var key = ((int)cell.x, (int)cell.y); + if (!weights.TryGetValue(key, out var w)) + weights[key] = w = CellWeight(cell, time, bodies, look); + var d = lattice_distance(q, lattice_site(cell, time, Drift).xy, w, Normal, look.Stretch); + if (d < f1) { f2 = f1; f1 = d; } + else if (d < f2) f2 = d; + } + } + return LatticeMaxRing; + } + + [Fact] + public void ConstructedPointsRealizeTheExitBound() + { + var failed = new Dictionary(); + var r = new System.Random(7); + foreach (var look in new[] { Looks[2], Looks[3] }) + for (var batch = 0; batch < 20; batch++) + { + var time = 29.0f * batch; + var bodies = Bodies(time); + var weights = new Dictionary<(int, int), float>(); + for (var i = 0; i < 1500; i++) + { + var p = RandomPoint(r); + var expected = BoxFold(p, time, bodies, look, 12, weights); + foreach (var (name, stop) in Rules) + { + var got = BoxFold(p, time, bodies, look, Math.Max(0, Radius(p, time, bodies, look, stop, weights)), weights); + if (!got.Equals(expected)) + failed[name] = failed.GetValueOrDefault(name) + 1; + } + } + } + Assert.False(failed.ContainsKey("correct")); + foreach (var (name, _) in Rules.Skip(1)) + Assert.True(failed.GetValueOrDefault(name) > 0, name + " is not caught by any point"); + } + + [Fact] + public void SmoothIgnoresCellsBeyondTheBand() + { + var r = new System.Random(3); + for (var i = 0; i < 20000; i++) + { + var k = 0.05f + 0.95f * r.NextSingle(); + var f1 = 8.0f * r.NextSingle(); + var m = f1 + k - (r.NextSingle() < 0.5f ? 0.0f : 2.0f * k * r.NextSingle()); + var far = f1 + 2.0f * k + 5.0f * r.NextSingle(); + Assert.Equal(m, lattice_smooth_step(m, far, f1, k)); + var near = f1 + 2.0f * k * r.NextSingle(); + Assert.True(lattice_smooth_step(m, near, f1, k) <= f1 + k); + } + Assert.NotEqual(1.0f, lattice_smooth_step(1.0f + 0.35f, 1.0f + 0.35f, 1.0f, 0.35f)); + } + + private static float2 Dir(System.Random r) + { + var a = r.NextSingle() * TAU; + return new float2(MathF.Cos(a), MathF.Sin(a)); + } + + [Fact] + public void ContinuousAcrossCellBoundariesAndBorders() + { + var look = Looks[1]; + var bodies = Bodies(11.0f); + var r = new System.Random(5); + var worst = 0.0f; + for (var line = 0; line < 6; line++) + { + var a = RandomPoint(r); + var dir = Dir(r); + const int steps = 4000; + var length = 6.0f * Cell; + var prev = Call(a, 11.0f, bodies, look); + for (var s = 1; s <= steps; s++) + { + var cur = Call(a + dir * (length * s / steps), 11.0f, bodies, look); + var step = length / steps / Cell; + // A weighted distance changes at most weight * stretch per cell unit of travel. + Assert.True(abs(cur.z - prev.z) < 12.0f * step + 1e-3f); + Assert.True(abs(cur.x - prev.x) < 12.0f * step + 1e-5f * 12.0f); + worst = max(worst, abs((cur.x - cur.z) - (prev.x - prev.z))); + prev = cur; + } + } + Assert.True(worst < 12.0f * 6.0f / 4000 * 2.0f + 1e-3f); + // Straddling a lattice cell boundary by 1e-3 of a cell. + for (var i = 0; i < 300; i++) + { + var p = RandomPoint(r); + var edge = new float2(MathF.Round(p.x / Cell) * Cell, p.y); + var lo = Call(edge - new float2(1e-3f * Cell, 0.0f), 11.0f, bodies, look); + var hi = Call(edge + new float2(1e-3f * Cell, 0.0f), 11.0f, bodies, look); + Assert.True(abs(lo.x - hi.x) < 1e-3f * 24.0f); + Assert.True(abs(lo.y - hi.y) < 1e-3f * 24.0f); + Assert.True(abs(lo.z - hi.z) < 1e-3f * 24.0f); + Assert.True(abs((lo.x - lo.z) - (hi.x - hi.z)) < 1e-3f * 24.0f); + } + } + + [Fact] + public void WeightsAreContinuousAsBodiesOrbit() + { + var look = Looks[2]; + var cells = Enumerable.Range(0, 576).Select(i => new float2(i % 24 - 12, i / 24 - 12)).ToArray(); + var prev = new float[cells.Length]; + for (var s = 0; s <= 300 * 60; s++) + { + var bodies = Bodies(s / 60.0f); + for (var i = 0; i < cells.Length; i++) + { + var site = lattice_site(cells[i], 0.0f, Drift); + var border = power_border(new float3((cells[i] + 0.5f) * Cell, 0.0f), bodies).w; + var w = lattice_weight(site.z, border, look.Boost, Falloff) / site.z; + if (s > 0) + Assert.True(abs(w - prev[i]) <= 0.01f * look.Boost, $"cell {cells[i]} at {s}: {prev[i]} -> {w}"); + prev[i] = w; + } + } + } + + [Fact] + public void F1F2AndSmoothAreContinuousThroughWinnerSwaps() + { + var r = new System.Random(19); + var bodies = Bodies(11.0f); + var swaps = 0; + foreach (var look in new[] { Looks[1], Looks[2] }) + for (var line = 0; line < 6; line++) + { + var a = RandomPoint(r); + var b = RandomPoint(r); + float2 At(float t) => a + (b - a) * t; + const int Steps = 4000; + for (var s = 1; s <= Steps; s++) + { + float lo = (s - 1) / (float)Steps, hi = s / (float)Steps; + if (Call(At(lo), 11.0f, bodies, look).w == Call(At(hi), 11.0f, bodies, look).w) + continue; + swaps++; + for (var i = 0; i < 40; i++) + { + var mid = 0.5f * (lo + hi); + if (Call(At(mid), 11.0f, bodies, look).w == Call(At(lo), 11.0f, bodies, look).w) lo = mid; else hi = mid; + } + var before = Call(At(lo), 11.0f, bodies, look); + var after = Call(At(hi), 11.0f, bodies, look); + var bound = 12.0f * length(At(hi) - At(lo)) / Cell + 1e-5f * 12.0f; + Assert.True(abs(before.x - after.x) < bound, $"F1 {before.x} -> {after.x}"); + Assert.True(abs(before.y - after.y) < bound, $"F2 {before.y} -> {after.y}"); + Assert.True(abs(before.z - after.z) < bound, $"smooth {before.z} -> {after.z}"); + } + } + Assert.True(swaps >= 20, $"only {swaps} winner swaps crossed"); + } + + [Fact] + public void TheCapIsReachedAndMatchesTheFullBox() + { + // A cell whose every neighbour is boosted far and stretched needs ring 17, past the cap a smaller bound would set. + var look = new Look(LatticeMaxBoost, LatticeMaxStretch, LatticeMaxSmoothing, 1.0e6f); + var p = new float2(1446.7345f, -680.7637f); + const float Time = 97.69269f; + var bodies = Bodies(Time); + var weights = new Dictionary<(int, int), float>(); + var ring = Radius(p, Time, bodies, look, Rules[0].stop, weights); + Assert.InRange(ring, 13, LatticeMaxRing); + Assert.Equal(BoxFold(p, Time, bodies, look, LatticeMaxRing, weights), Call(p, Time, bodies, look)); + // The cap is the greatest ring the range's worst case can need: the exit holds once 0.5 (k - 1) reaches the + // larger of the F2 and F1 + 2 smoothing bounds, which are (1 + boost) stretch sqrt(3.25) and (1 + boost) stretch sqrt(2) + 2 smoothing. + var f2Bound = (1.0f + LatticeMaxBoost) * LatticeMaxStretch * MathF.Sqrt(3.25f); + var bandBound = (1.0f + LatticeMaxBoost) * LatticeMaxStretch * MathF.Sqrt(2.0f) + 2.0f * LatticeMaxSmoothing; + Assert.Equal((int)MathF.Ceiling(2.0f * max(f2Bound, bandBound)), LatticeMaxRing); + } + + [Fact] + public void AnExactTieChangesOnlyTheIdToTheEarlierRowMajorCell() + { + // Cells sharing a base weight and, at these coordinates, a rounded site: a query on that site is at distance 0 from both. + foreach (var (earlier, time) in new[] { (new float2(6003486, 3996 + 6000000), 0.0f), (new float2(6007572, 2713 + 6000000), 4.07f) }) + { + var later = earlier + new float2(0, 1); + var siteA = lattice_site(earlier, time, 1.0f); + Assert.Equal(siteA, lattice_site(later, time, 1.0f)); + var got = weighted_lattice_cells(siteA.xy, time, Array.Empty(), 1.0f, 1.0f, 0.0f, 1.0f, 0.01f, Normal, 1.0f); + var idOf = (float2 c) => cellular_unit(pcg4d(new int4((int)c.x, (int)c.y, 0, 0)).w); + Assert.NotEqual(idOf(earlier), idOf(later)); + Assert.Equal(new float4(0.0f, 0.0f, got.z, idOf(earlier)), got); + } + } + + private static void Refuses(string parameter, Action call) => + Assert.Equal(parameter, Assert.Throws(call).ParamName); + + [Fact] + public void RefusesOutsideTheRange() + { + var b = Bodies(0.0f); + var p = new float2(10.0f, 20.0f); + var n = Normal; + float4 W(float2? pp = null, float time = 0, float cell = Cell, float drift = Drift, float boost = 1.6f, float falloff = Falloff, + float smoothing = 0.35f, float2? normal = null, float stretch = 1.5f, float4[]? bodies = null) => + weighted_lattice_cells(pp ?? p, time, bodies ?? b, cell, drift, boost, falloff, smoothing, normal ?? n, stretch); + + W(boost: 0.0f); W(boost: LatticeMaxBoost); W(stretch: 1.0f); W(stretch: LatticeMaxStretch); + W(smoothing: LatticeMaxSmoothing); W(normal: float2.zero, stretch: 1.0f); W(normal: new float2(1.0e-45f, 0.0f)); W(bodies: Array.Empty()); + Refuses("p", () => W(pp: new float2(float.NaN, 0))); + Refuses("cellSize", () => W(cell: 0.0f)); + Refuses("cellSize", () => W(cell: float.PositiveInfinity)); + Refuses("cellSize", () => W(cell: 1.0e37f)); + Refuses("p", () => W(pp: new float2(3.0e38f, 0))); + Refuses("p", () => W(pp: new float2(0, 1.0e10f))); + Refuses("p", () => W(pp: new float2(3.3e38f, 0), cell: 1.0e36f)); + Refuses("time", () => W(time: float.PositiveInfinity)); + Refuses("drift", () => W(drift: float.NaN)); + Refuses("drift", () => W(time: 3.0e38f, drift: 2.0f)); + W(time: 1.0e30f, drift: 1.0e-30f); + Refuses("boost", () => W(boost: -0.01f)); + Refuses("boost", () => W(boost: LatticeMaxBoost + 0.01f)); + Refuses("falloff", () => W(falloff: 0.0f)); + Refuses("falloff", () => W(falloff: float.NaN)); + Refuses("smoothing", () => W(smoothing: 0.0f)); + Refuses("smoothing", () => W(smoothing: LatticeMaxSmoothing + 0.01f)); + Refuses("stretch", () => W(stretch: 0.99f)); + Refuses("stretch", () => W(stretch: LatticeMaxStretch + 0.01f)); + Refuses("stretchNormal", () => W(normal: float2.zero)); + Refuses("stretchNormal", () => W(normal: new float2(float.NaN, 1))); + Refuses("bodies", () => W(bodies: new[] { new float4(float.NaN, 0, 0, 1) })); + Refuses("bodies", () => W(bodies: new[] { new float4(0, 0, 0, float.PositiveInfinity) })); + } + + [Fact] + public void RingsStayWellInsideTheCap() + { + var r = new System.Random(41); + var rings = new List(); + foreach (var look in Looks) + for (var batch = 0; batch < 20; batch++) + { + var time = 13.0f * batch; + var bodies = Bodies(time); + var weights = new Dictionary<(int, int), float>(); + for (var i = 0; i < 300; i++) + rings.Add(Radius(RandomPoint(r), time, bodies, look, Rules[0].stop, weights)); + } + Assert.True(rings.Max() <= LatticeMaxRing - 2, $"greatest ring {rings.Max()}"); + rings.Sort(); + Assert.Equal((3, 7, 8), (rings[rings.Count / 2], rings[rings.Count * 99 / 100], rings[^1])); + } + + + [Fact] + public void StretchNormalIsNormalised() + { + var bodies = Bodies(3.0f); + var r = new System.Random(8); + for (var i = 0; i < 50; i++) + { + var p = RandomPoint(r); + Assert.Equal(Call(p, 3.0f, bodies, Looks[1]), Call(p, 3.0f, bodies, Looks[1], Normal * 7.0f)); + } + } + + [Fact] + public void ANormalOfAnyMagnitudeActsAsItsDirection() + { + // A tiny normal once normalised to length 0.944 and a huge one to zero; both then missed a winning cell. + var none = Array.Empty(); + var look = new Look(0.0f, 1.0f, 0.01f); + var invSqrt2 = new float2(0.70710677f, 0.70710677f); + var cases = new (float2 given, float2 unit)[] + { + (new float2(3.0e-23f, 4.0e-23f), Normal), (new float2(6.0e29f, 8.0e29f), Normal), + (new float2(1.0e30f, 1.0e30f), invSqrt2), (new float2(1.0e-44f, 1.0e-44f), invSqrt2), (new float2(3.0e38f, 3.0e38f), invSqrt2), + }; + var weights = new Dictionary<(int, int), float>(); + foreach (var (given, unit) in cases) + { + var miss = new float2(-1040.0f, -1481.7773f); + Assert.Equal(BoxFold(miss, 54.725235f, none, look, 12, weights, unit), Call(miss, 54.725235f, none, look, given)); + var r = new System.Random(3); + for (var i = 0; i < 300; i++) + { + var p = RandomPoint(r); + Assert.Equal(BoxFold(p, 7.0f, none, Looks[1], 12, weights, unit), Call(p, 7.0f, none, Looks[1], given)); + } + } + } + + [Fact] + public void MatchesTheProbeFormula() + { + var look = Looks[1]; + var r = new System.Random(2); + var bodies = Bodies(5.0f); + for (var i = 0; i < 2000; i++) + { + var p = RandomPoint(r); + var got = Call(p, 5.0f, bodies, look); + var nrm = (x: (double)Normal.x, y: (double)Normal.y); + var q = (x: (double)p.x / Cell, y: (double)p.y / Cell); + var ds = new List(); + for (var cz = (int)Math.Floor(q.y) - 8; cz <= (int)Math.Floor(q.y) + 8; cz++) + for (var cx = (int)Math.Floor(q.x) - 8; cx <= (int)Math.Floor(q.x) + 8; cx++) + { + var h = pcg3d(new int3(cx, cz, 0)); + double u0 = cellular_unit(h.x), u1 = cellular_unit(h.y), u2 = cellular_unit(h.z); + var ph = 2 * Math.PI; + var sx = cx + 0.5 + 0.5 * Math.Sin(Drift * 5.0 + ph * u0); + var sy = cz + 0.5 + 0.5 * Math.Sin(Drift * 5.0 + ph * u1); + var border = power_border(new float3(((float)cx + 0.5f) * Cell, ((float)cz + 0.5f) * Cell, 0), bodies).w; + var weight = (0.5 + 0.5 * u2) * (1 + look.Boost * Math.Exp(-Math.Pow(border / (double)Falloff, 2))); + double vx = sx - q.x, vy = sy - q.y; + double a = vx * nrm.x + vy * nrm.y, c = vx * nrm.y - vy * nrm.x; + ds.Add(weight * Math.Sqrt(look.Stretch * look.Stretch * a * a + c * c)); + } + var d = ds.OrderBy(x => x).ToArray(); + double m = d[0] + look.Smoothing; + foreach (var dd in ds) + { + if (dd >= d[0] + 2 * look.Smoothing) continue; + var h = Math.Clamp(0.5 + 0.5 * (m - dd) / look.Smoothing, 0, 1); + h = h * h * (3 - 2 * h); + m = Math.Min(m + (dd - m) * h - h * (1 - h) * look.Smoothing / (1 + 3 * look.Smoothing), d[0] + look.Smoothing); + } + Assert.InRange(got.x - d[0], -1e-4, 1e-4); + Assert.InRange(got.y - d[1], -1e-4, 1e-4); + Assert.InRange(got.z - m, -1e-4, 1e-4); + } + } +} diff --git a/packages/cultmath/tests/CultMath.Tests/NoiseBoundTests.cs b/packages/cultmath/tests/CultMath.Tests/NoiseBoundTests.cs index 312770ba..9d48c5f3 100644 --- a/packages/cultmath/tests/CultMath.Tests/NoiseBoundTests.cs +++ b/packages/cultmath/tests/CultMath.Tests/NoiseBoundTests.cs @@ -18,7 +18,8 @@ namespace CultMath.Tests; /// mutations of the test's own fields and marches: w(z0) for w(z1) in VoidField.WeightBound must fail /// WeightBoundEnclosesOneSignedNoise; CarveRadius for HollowRadius in the lo test of VoidField.Compose /// and BodyDepth without |dir| must fail AnalyticBodyMatchesFineMarch; the footprint march's pre-body -/// integration dropped, or LodStep doubled, must fail IntervalSkipHalvesEvaluations's depth agreement. +/// integration dropped, or LodStep doubled, must fail IntervalSkipHalvesEvaluations's depth agreement; LodStep's +/// footprint z theta scaled x2 (or x4) must fail it at LOD-far. /// public sealed class NoiseBoundTests { @@ -469,8 +470,8 @@ public sealed class NoiseBoundTests /// /// Pins SNOISE_LIPSCHITZ: no |snoise_grad| over 1e5 seeded points exceeds it, and the ascent from - /// MeasureLipschitz's witness reaches a maximum that, times 1.10, is the constant to within half a - /// percent, so a constant lowered (or raised) by 1% fails here. + /// MeasureLipschitz's witness reaches a maximum that, times 1.10, equals the constant bit for bit + /// (the expression MeasureLipschitz prints), so any moved constant fails here. /// [Fact] public void LipschitzConstantPinsSampledGradients() @@ -479,8 +480,8 @@ public sealed class NoiseBoundTests Assert.True(sampled <= SNOISE_LIPSCHITZ, $"|snoise_grad| reaches {sampled:R}, above SNOISE_LIPSCHITZ {SNOISE_LIPSCHITZ:R}"); var refined = AscendGradientNorm(LipschitzWitness); Assert.True(refined <= SNOISE_LIPSCHITZ, $"|snoise_grad| reaches {refined:R}, above SNOISE_LIPSCHITZ {SNOISE_LIPSCHITZ:R}"); - var ratio = SNOISE_LIPSCHITZ / (1.10f * refined); - Assert.True(MathF.Abs(ratio - 1.0f) <= 0.005f, $"SNOISE_LIPSCHITZ is {ratio:R} times 1.10 x the re-measured {refined:R}; re-run MeasureLipschitz and re-pin"); + var measured = 1.10f * refined; + Assert.True(SNOISE_LIPSCHITZ == measured, $"SNOISE_LIPSCHITZ is {SNOISE_LIPSCHITZ:R}, the re-measured 1.10 x {refined:R} is {measured:R}; re-run MeasureLipschitz and re-pin"); } // ---- The curvature and 2D Lipschitz constants (math.Affine.cs, math.Interval.cs) ---- @@ -609,8 +610,8 @@ public sealed class NoiseBoundTests /// /// Pins SNOISE_HESSIAN: no Hessian norm over 1e5 seeded points exceeds it, and the ascent from - /// MeasureHessian's witness reaches a maximum that, times 1.10, is the constant to within half a - /// percent, so a constant moved by 1% fails here. + /// MeasureHessian's witness reaches a maximum that, times 1.10, equals the constant bit for bit + /// (the expression MeasureHessian prints), so any moved constant fails here. /// [Fact] public void HessianConstantPinsSampledCurvature() @@ -619,39 +620,240 @@ public sealed class NoiseBoundTests Assert.True(sampled <= SNOISE_HESSIAN, $"the Hessian norm reaches {sampled:R}, above SNOISE_HESSIAN {SNOISE_HESSIAN:R}"); var refined = Ascend(HessianNorm, HessianWitness); Assert.True(refined <= SNOISE_HESSIAN, $"the Hessian norm reaches {refined:R}, above SNOISE_HESSIAN {SNOISE_HESSIAN:R}"); - var ratio = SNOISE_HESSIAN / (1.10 * refined); - Assert.True(Math.Abs(ratio - 1.0) <= 0.005, $"SNOISE_HESSIAN is {ratio:R} times 1.10 x the re-measured {refined:R}; re-run MeasureHessian and re-pin"); + var measured = (float)(refined * 1.10); + Assert.True(SNOISE_HESSIAN == measured, $"SNOISE_HESSIAN is {SNOISE_HESSIAN:R}, the re-measured 1.10 x {refined:R} is {measured:R}; re-run MeasureHessian and re-pin"); } // ---- The third-derivative constant (math.Span.cs) ---- - // The symmetric third-derivative tensor of snoise at p, entry (i * 3 + j) * 3 + k: central differences - // of snoise_hessian along each axis at h = 1e-3 over the exact float32 steps, symmetrised over the six - // index orders (the Hessian is symmetric, so only the derivative index can differ). - private static double[] ThirdTensor(float3 p) + private static float3 CultMod289(float3 v) => v - floor(v * (1.0f / 289.0f)) * 289.0f; + private static float4 CultMod289(float4 v) => v - floor(v * (1.0f / 289.0f)) * 289.0f; + private static float4 CultPermute(float4 v) => CultMod289(((v * 34.0f) + 10.0f) * v); + + // The four simplex corners of snoise at (vx, vy, vz): each corner's offset x_c from the point, and its + // gradient direction p_c, in double, with snoise_hessian's lattice, step() tie order and (float) hash, + // so one corner table serves the Hessian and its derivative. Key names the lattice cell and traversal + // order: two points with the same key are differentiated through the same corners. + internal static (double[][] X, double[][] P, double[] Key) Corners(double vx, double vy, double vz) { - const float h = 1.0e-3f; - var d = new double[27]; - for (var k = 0; k < 3; k++) + const double cx = 1.0 / 6.0; + const double cy = 1.0 / 3.0; + var skew = (vx + vy + vz) * cy; + double ix = Math.Floor(vx + skew), iy = Math.Floor(vy + skew), iz = Math.Floor(vz + skew); + var unskew = (ix + iy + iz) * cx; + double x0 = vx - ix + unskew, y0 = vy - iy + unskew, z0 = vz - iz + unskew; + double gx = x0 >= y0 ? 1.0 : 0.0, gy = y0 >= z0 ? 1.0 : 0.0, gz = 1.0 - (x0 >= z0 ? 1.0 : 0.0); + double lx = 1.0 - gx, ly = 1.0 - gy, lz = 1.0 - gz; + double i1x = Math.Min(gx, lz), i1y = Math.Min(gy, lx), i1z = Math.Min(gz, ly); + double i2x = Math.Max(gx, lz), i2y = Math.Max(gy, lx), i2z = Math.Max(gz, ly); + var x = new[] { - var e = new float3(k == 0 ? h : 0.0f, k == 1 ? h : 0.0f, k == 2 ? h : 0.0f); - var forward = Step(k == 0 ? p.x : k == 1 ? p.y : p.z, h, out var back); - var plus = snoise_hessian(p + e); - var minus = snoise_hessian(p - e); + new[] { x0, y0, z0 }, + new[] { x0 - i1x + cx, y0 - i1y + cx, z0 - i1z + cx }, + new[] { x0 - i2x + cy, y0 - i2y + cy, z0 - i2z + cy }, + new[] { x0 - 0.5, y0 - 0.5, z0 - 0.5 }, + }; + + var i = CultMod289(new float3((float)ix, (float)iy, (float)iz)); + var hash = CultPermute(CultPermute(CultPermute( + i.z + new float4(0.0f, (float)i1z, (float)i2z, 1.0f)) + i.y + new float4(0.0f, (float)i1y, (float)i2y, 1.0f)) + i.x + new float4(0.0f, (float)i1x, (float)i2x, 1.0f)); + const float n = 0.142857142857f; + var ns = new float3(2.0f * n, 0.5f * n - 1.0f, n); + var j = hash - 49.0f * floor(hash * ns.z * ns.z); + var xs = floor(j * ns.z); + var ys = floor(j - 7.0f * xs); + var gxs = xs * ns.x + ns.y; + var gys = ys * ns.x + ns.y; + var h = 1.0f - abs(gxs) - abs(gys); + var b0 = new float4(gxs.x, gxs.y, gys.x, gys.y); + var b1 = new float4(gxs.z, gxs.w, gys.z, gys.w); + var s0 = floor(b0) * 2.0f + 1.0f; + var s1 = floor(b1) * 2.0f + 1.0f; + var sh = -step(h, 0.0f); + var a0 = new float4(b0.x, b0.z, b0.y, b0.w) + new float4(s0.x, s0.z, s0.y, s0.w) * new float4(sh.x, sh.x, sh.y, sh.y); + var a1 = new float4(b1.x, b1.z, b1.y, b1.w) + new float4(s1.x, s1.z, s1.y, s1.w) * new float4(sh.z, sh.z, sh.w, sh.w); + var p0 = new float3(a0.x, a0.y, h.x); + var p1 = new float3(a0.z, a0.w, h.y); + var p2 = new float3(a1.x, a1.y, h.z); + var p3 = new float3(a1.z, a1.w, h.w); + var norm = 1.79284291400159f - 0.85373472095314f * new float4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)); + p0 *= norm.x; + p1 *= norm.y; + p2 *= norm.z; + p3 *= norm.w; + double[] Of(float3 v) => new double[] { v.x, v.y, v.z }; + return (x, new[] { Of(p0), Of(p1), Of(p2), Of(p3) }, new[] { ix, iy, iz, i1x, i1y, i1z, i2x, i2y, i2z }); + } + + // The Hessian of snoise at v in double, entry i * 3 + j: snoise_hessian's per-corner derivation, summed + // over Corners. A corner with m = 0.5 - |x|^2 <= 0 contributes nothing. + internal static double[] HessianDouble(double vx, double vy, double vz) + { + var (x, p, _) = Corners(vx, vy, vz); + var hessian = new double[9]; + for (var c = 0; c < 4; c++) + { + var m = 0.5 - (x[c][0] * x[c][0] + x[c][1] * x[c][1] + x[c][2] * x[c][2]); + if (m <= 0.0) + continue; + var s = p[c][0] * x[c][0] + p[c][1] * x[c][1] + p[c][2] * x[c][2]; for (var i = 0; i < 3; i++) - for (var j = 0; j < 3; j++) - d[(i * 3 + j) * 3 + k] = (plus[i][j] - (double)minus[i][j]) / (forward + back); + for (var k = 0; k < 3; k++) + hessian[i * 3 + k] += 105.0 * (48.0 * m * m * s * x[c][i] * x[c][k] + - 8.0 * m * m * m * (p[c][k] * x[c][i] + p[c][i] * x[c][k] + (i == k ? s : 0.0))); } + return hessian; + } + + // The value of snoise at v in double: 105 sum m^4 s over Corners, the kernel's exact value (the tied + // kernel, as HessianDouble is its exact Hessian). + internal static double ValueDouble(double vx, double vy, double vz) + { + var (x, p, _) = Corners(vx, vy, vz); + var total = 0.0; + for (var c = 0; c < 4; c++) + { + var m = 0.5 - (x[c][0] * x[c][0] + x[c][1] * x[c][1] + x[c][2] * x[c][2]); + if (m <= 0.0) + continue; + total += 105.0 * m * m * m * m * (p[c][0] * x[c][0] + p[c][1] * x[c][1] + p[c][2] * x[c][2]); + } + + return total; + } + + // The gradient of snoise at v in double: 105 sum (m^4 p - 8 m^3 s x) over Corners, the derivative of + // ValueDouble (every corner's x moves one for one with v, dm = -2 x, ds = p). + internal static double[] GradDouble(double vx, double vy, double vz) + { + var (x, p, _) = Corners(vx, vy, vz); + var gradient = new double[3]; + for (var c = 0; c < 4; c++) + { + var m = 0.5 - (x[c][0] * x[c][0] + x[c][1] * x[c][1] + x[c][2] * x[c][2]); + if (m <= 0.0) + continue; + var s = p[c][0] * x[c][0] + p[c][1] * x[c][1] + p[c][2] * x[c][2]; + for (var i = 0; i < 3; i++) + gradient[i] += 105.0 * (m * m * m * m * p[c][i] - 8.0 * m * m * m * s * x[c][i]); + } + + return gradient; + } + + /// + /// GradDouble is the kernel's gradient: within float rounding of snoise_grad (L1 distance at most 2e-4) + /// at 300 seeded points of [-20, 20]^3, the way ExactReferenceIsTheKernel pins ValueDouble. + /// + [Fact] + public void GradDoubleIsTheKernelsGradient() + { + var random = new System.Random(0x6BAD); + double Coordinate() => random.NextDouble() * 40.0 - 20.0; + for (var k = 0; k < 300; k++) + { + var p = new float3((float)Coordinate(), (float)Coordinate(), (float)Coordinate()); + var exact = GradDouble(p.x, p.y, p.z); + var kernel = snoise_grad(p); + var distance = Math.Abs(exact[0] - kernel.x) + Math.Abs(exact[1] - kernel.y) + Math.Abs(exact[2] - kernel.z); + Assert.True(distance <= 2.0e-4, $"GradDouble({p}) is {exact[0]:R}, {exact[1]:R}, {exact[2]:R}, snoise_grad {kernel.x:R}, {kernel.y:R}, {kernel.z:R}"); + } + } + + private static double Delta(int a, int b) => a == b ? 1.0 : 0.0; + + // The symmetric third-derivative tensor of snoise at p, entry (i * 3 + j) * 3 + k, in closed form: + // snoise_hessian's per-corner entry 105 (48 m^2 s x_i x_j - 8 m^3 (p_j x_i + p_i x_j + s delta_ij)) + // differentiated by x_k (dm = -2 x_k, ds = p_k, every corner's x moves one for one with p), which sums + // to 105 (-192 m s x_i x_j x_k + 48 m^2 (p_k x_i x_j + p_j x_i x_k + p_i x_j x_k) + // + 48 m^2 s (delta_ik x_j + delta_jk x_i + delta_ij x_k) - 8 m^3 (p_j delta_ik + p_i delta_jk + p_k delta_ij)). + // Symmetric in i, j and k by construction, so there is no symmetrising pass. + private static double[] ThirdTensor(float3 p) + { + var (x, g, _) = Corners(p.x, p.y, p.z); var t = new double[27]; - for (var i = 0; i < 3; i++) - for (var j = 0; j < 3; j++) - for (var k = 0; k < 3; k++) - t[(i * 3 + j) * 3 + k] = (d[(i * 3 + j) * 3 + k] + d[(i * 3 + k) * 3 + j] + d[(j * 3 + i) * 3 + k] - + d[(j * 3 + k) * 3 + i] + d[(k * 3 + i) * 3 + j] + d[(k * 3 + j) * 3 + i]) / 6.0; + for (var c = 0; c < 4; c++) + { + var m = 0.5 - (x[c][0] * x[c][0] + x[c][1] * x[c][1] + x[c][2] * x[c][2]); + if (m <= 0.0) + continue; + var s = g[c][0] * x[c][0] + g[c][1] * x[c][1] + g[c][2] * x[c][2]; + for (var i = 0; i < 3; i++) + for (var j = 0; j < 3; j++) + for (var k = 0; k < 3; k++) + t[(i * 3 + j) * 3 + k] += 105.0 * (-192.0 * m * s * x[c][i] * x[c][j] * x[c][k] + + 48.0 * m * m * (g[c][k] * x[c][i] * x[c][j] + g[c][j] * x[c][i] * x[c][k] + g[c][i] * x[c][j] * x[c][k]) + + 48.0 * m * m * s * (Delta(i, k) * x[c][j] + Delta(j, k) * x[c][i] + Delta(i, j) * x[c][k]) + - 8.0 * m * m * m * (g[c][j] * Delta(i, k) + g[c][i] * Delta(j, k) + g[c][k] * Delta(i, j))); + } + return t; } + /// + /// ThirdTensor is the third derivative of snoise: HessianDouble is the kernel's Hessian (within float + /// rounding of snoise_hessian over 200 seeded points, which proves Corners is the kernel's lattice), + /// and the closed form equals central differences of HessianDouble, Richardson-extrapolated from steps + /// h = 1e-3 and 2e-3 (error O(h^4)), at every one of 27 entries of every point whose neighbours share + /// its lattice cell and clear every corner's support edge. Dropping or mis-signing any term of the closed form moves some entry by far more + /// than the tolerance. + /// + [Fact] + public void ThirdTensorMatchesDifferencesOfTheHessian() + { + var random = new System.Random(0x7D1); + var compared = 0; + var largest = 0.0; + var worst = 0.0; + for (var n = 0; n < 400; n++) + { + var p = new float3(Uniform(random, -256.0f, 256.0f), Uniform(random, -256.0f, 256.0f), Uniform(random, -256.0f, 256.0f)); + var hd = HessianDouble(p.x, p.y, p.z); + var kernel = snoise_hessian(p); + if (n < 200) + for (var i = 0; i < 3; i++) + for (var j = 0; j < 3; j++) + Assert.True(Math.Abs(hd[i * 3 + j] - kernel[i][j]) <= 0.1, $"HessianDouble({p}) entry {i},{j} is {hd[i * 3 + j]:R}, snoise_hessian {kernel[i][j]:R}"); + + double[] At(int axis, double delta) => + HessianDouble(p.x + (axis == 0 ? delta : 0.0), p.y + (axis == 1 ? delta : 0.0), p.z + (axis == 2 ? delta : 0.0)); + var (corner, _, key) = Corners(p.x, p.y, p.z); + // A corner whose support edge (m = 0) lies within the differencing window has a kink in the + // Hessian's second derivative there, which the O(h^4) extrapolation does not cover. + if (corner.Any(c => Math.Abs(0.5 - (c[0] * c[0] + c[1] * c[1] + c[2] * c[2])) < 0.01)) + continue; + var sameCell = true; + for (var axis = 0; axis < 3; axis++) + foreach (var delta in new[] { -2.0e-3, 2.0e-3 }) + sameCell &= Corners(p.x + (axis == 0 ? delta : 0.0), p.y + (axis == 1 ? delta : 0.0), p.z + (axis == 2 ? delta : 0.0)).Key.SequenceEqual(key); + if (!sameCell) + continue; + + var closed = ThirdTensor(p); + compared++; + for (var k = 0; k < 3; k++) + { + var (plus1, minus1, plus2, minus2) = (At(k, 1.0e-3), At(k, -1.0e-3), At(k, 2.0e-3), At(k, -2.0e-3)); + for (var i = 0; i < 3; i++) + for (var j = 0; j < 3; j++) + { + var d1 = (plus1[i * 3 + j] - minus1[i * 3 + j]) / 2.0e-3; + var d2 = (plus2[i * 3 + j] - minus2[i * 3 + j]) / 4.0e-3; + var richardson = (4.0 * d1 - d2) / 3.0; + var entry = closed[(i * 3 + j) * 3 + k]; + largest = Math.Max(largest, Math.Abs(entry)); + worst = Math.Max(worst, Math.Abs(entry - richardson) / (1.0 + Math.Abs(entry))); + } + } + } + + output.WriteLine($"IV-REPORT third oracle: {compared} points, largest entry {largest:R}, worst relative difference from the Richardson differences {worst:R}"); + Assert.True(compared >= 250, $"only {compared} of 400 points kept their lattice cell and cleared the support edges"); + Assert.True(largest >= 200.0, $"the largest third-derivative entry compared is {largest:R}: the check has no teeth"); + Assert.True(worst <= 1.0e-6, $"the closed-form third tensor differs from the differenced Hessian by {worst:R} (relative)"); + } + // T(u, u, u) for a symmetric 3-tensor. private static double Cubic(double[] t, double[] u) { @@ -748,8 +950,8 @@ public sealed class NoiseBoundTests } /// - /// The provenance of SNOISE_THIRD: the largest operator norm of snoise's third-derivative tensor - /// (ThirdNorm) over 1e6 seeded points of [-256, 256]^3, the 1e4 largest refined by ascent over the point, + /// The provenance of SNOISE_THIRD: the largest operator norm of snoise's closed-form third-derivative + /// tensor (ThirdNorm, ThirdTensor) over 1e6 seeded points of [-256, 256]^3, the 1e4 largest refined by ascent over the point, /// times 1.10, on the tied kernel. Prints the start whose ascent reached the maximum, which /// ThirdConstantPinsSampled climbs from again, and a sweep of 20,000 directions at the point the /// ascent ends on (the tensor norm there against the largest cubic form the sweep finds, so the @@ -780,12 +982,12 @@ public sealed class NoiseBoundTests } // The start MeasureThird printed as its witness. - private static readonly float3 ThirdWitness = new(-168.3755f, -3.8205261f, -109.16948f); + private static readonly float3 ThirdWitness = new(-184.81363f, -34.250977f, 68.26865f); /// /// Pins SNOISE_THIRD: no third-derivative norm over 1e5 seeded points exceeds it, and the ascent from - /// MeasureThird's witness reaches a maximum that, times 1.10, is the constant to within half a - /// percent, so a constant moved by 1% fails here. + /// MeasureThird's witness reaches a maximum that, times 1.10, equals the constant bit for bit + /// (the expression MeasureThird prints), so any moved constant fails here. /// [Fact] public void ThirdConstantPinsSampled() @@ -794,8 +996,8 @@ public sealed class NoiseBoundTests Assert.True(sampled <= SNOISE_THIRD, $"the third-derivative norm reaches {sampled:R}, above SNOISE_THIRD {SNOISE_THIRD:R}"); var refined = Ascend(ThirdNorm, ThirdWitness); Assert.True(refined <= SNOISE_THIRD, $"the third-derivative norm reaches {refined:R}, above SNOISE_THIRD {SNOISE_THIRD:R}"); - var ratio = SNOISE_THIRD / (1.10 * refined); - Assert.True(Math.Abs(ratio - 1.0) <= 0.005, $"SNOISE_THIRD is {ratio:R} times 1.10 x the re-measured {refined:R}; re-run MeasureThird and re-pin"); + var measured = (float)(refined * 1.10); + Assert.True(SNOISE_THIRD == measured, $"SNOISE_THIRD is {SNOISE_THIRD:R}, the re-measured 1.10 x {refined:R} is {measured:R}; re-run MeasureThird and re-pin"); } /// @@ -856,7 +1058,7 @@ public sealed class NoiseBoundTests /// /// Pins SNOISE2_LIPSCHITZ as LipschitzConstantPinsSampledGradients pins SNOISE_LIPSCHITZ: 1e5 seeded - /// points under it, and the ascent from MeasureLipschitz2's witness within half a percent of it / 1.10. + /// points under it, and the ascent from MeasureLipschitz2's witness, times 1.10, equals it bit for bit (the expression MeasureLipschitz2 prints). /// [Fact] public void Lipschitz2ConstantPins() @@ -865,8 +1067,8 @@ public sealed class NoiseBoundTests Assert.True(sampled <= SNOISE2_LIPSCHITZ, $"|grad snoise2| reaches {sampled:R}, above SNOISE2_LIPSCHITZ {SNOISE2_LIPSCHITZ:R}"); var refined = Ascend2(Gradient2Norm, Lipschitz2Witness); Assert.True(refined <= SNOISE2_LIPSCHITZ, $"|grad snoise2| reaches {refined:R}, above SNOISE2_LIPSCHITZ {SNOISE2_LIPSCHITZ:R}"); - var ratio = SNOISE2_LIPSCHITZ / (1.10 * refined); - Assert.True(Math.Abs(ratio - 1.0) <= 0.005, $"SNOISE2_LIPSCHITZ is {ratio:R} times 1.10 x the re-measured {refined:R}; re-run MeasureLipschitz2 and re-pin"); + var measured = (float)(refined * 1.10); + Assert.True(SNOISE2_LIPSCHITZ == measured, $"SNOISE2_LIPSCHITZ is {SNOISE2_LIPSCHITZ:R}, the re-measured 1.10 x {refined:R} is {measured:R}; re-run MeasureLipschitz2 and re-pin"); } /// @@ -2781,7 +2983,9 @@ public sealed class NoiseBoundTests } var lodFar = VoidField.LodFar(); - ReportVoid($"{lodFar.Name} N=8 (LOD far)", Run(lodFar, 8, 32, 0x701D, lod: true)); + var far = Run(lodFar, 8, 32, 0x701D, lod: true); + ReportVoid($"{lodFar.Name} N=8 (LOD far)", far); + Assert.True(far.MaxLodDepthError <= 2.0 * far.MaxRefDepthError, $"at LOD-far, the one field where LodStep's footprint branch bites, the footprint-aware march's optical depth is off the converged march's by {far.MaxLodDepthError:G6} relative, more than twice the fixed-step march's {far.MaxRefDepthError:G6}"); var shipped = VoidField.Shipped(); var headline = Run(shipped, 8, 200, 0x5417, lod: true); diff --git a/packages/cultmath/tests/CultMath.Tests/PhacelleTests.cs b/packages/cultmath/tests/CultMath.Tests/PhacelleTests.cs index b64f70b1..71f5b452 100644 --- a/packages/cultmath/tests/CultMath.Tests/PhacelleTests.cs +++ b/packages/cultmath/tests/CultMath.Tests/PhacelleTests.cs @@ -93,12 +93,12 @@ public sealed class PhacelleTests var actual = math.phacelle(p, side, offset, normalization); var expected = Evaluate(p, side, offset, normalization); - maxError = Math.Max(maxError, Math.Max(Math.Abs(actual.cos.w - expected.Cos), Math.Abs(actual.sin.w - expected.Sin))); + maxError = Math.Max(maxError, Math.Max(Math.Abs(actual.cosine.w - expected.Cos), Math.Abs(actual.sine.w - expected.Sin))); if (expected.RawLength >= 1.0 - normalization + ThresholdBand) { // The output magnitude is 1 wherever the raw magnitude reaches 1 - normalization. above++; - var magnitude = Math.Sqrt((double)actual.cos.w * actual.cos.w + (double)actual.sin.w * actual.sin.w); + var magnitude = Math.Sqrt((double)actual.cosine.w * actual.cosine.w + (double)actual.sine.w * actual.sine.w); Assert.True(Math.Abs(magnitude - 1.0) < ValueTolerance, $"magnitude {magnitude} above the threshold at {p}"); } else if (expected.RawLength <= 1.0 - normalization - ThresholdBand) @@ -130,10 +130,10 @@ public sealed class PhacelleTests var quarter = math.phacelle(p, side, offset + 0.25f, 0.5f); var whole = math.phacelle(p, side, offset + 1.0f, 0.5f); - Assert.True(MathF.Abs(quarter.cos.w + basePhasor.sin.w) < 2.0e-5f); - Assert.True(MathF.Abs(quarter.sin.w - basePhasor.cos.w) < 2.0e-5f); - Assert.True(MathF.Abs(whole.cos.w - basePhasor.cos.w) < 2.0e-5f); - Assert.True(MathF.Abs(whole.sin.w - basePhasor.sin.w) < 2.0e-5f); + Assert.True(MathF.Abs(quarter.cosine.w + basePhasor.sine.w) < 2.0e-5f); + Assert.True(MathF.Abs(quarter.sine.w - basePhasor.cosine.w) < 2.0e-5f); + Assert.True(MathF.Abs(whole.cosine.w - basePhasor.cosine.w) < 2.0e-5f); + Assert.True(MathF.Abs(whole.sine.w - basePhasor.sine.w) < 2.0e-5f); } } @@ -166,9 +166,9 @@ public sealed class PhacelleTests if (distance > 0.0) above++; else below++; var analytic = math.phacelle(p, side, offset, normalization); - var numericCos = CentralDifference(q => math.phacelle(q, side, offset, normalization).cos.w, p, GradientEps); - var numericSin = CentralDifference(q => math.phacelle(q, side, offset, normalization).sin.w, p, GradientEps); - maxError = MathF.Max(maxError, MathF.Max(MaxComponentError(numericCos, analytic.cos), MaxComponentError(numericSin, analytic.sin))); + var numericCos = CentralDifference(q => math.phacelle(q, side, offset, normalization).cosine.w, p, GradientEps); + var numericSin = CentralDifference(q => math.phacelle(q, side, offset, normalization).sine.w, p, GradientEps); + maxError = MathF.Max(maxError, MathF.Max(MaxComponentError(numericCos, analytic.cosine), MaxComponentError(numericSin, analytic.sine))); } Assert.True(above >= 150 && below >= 150, $"{above} points above and {below} below the threshold"); @@ -199,7 +199,7 @@ public sealed class PhacelleTests var flow = math.normalize(tangent); var sideDirection = math.cross(hat, flow); var phasor = math.phacelle(hat * radiusInCells, sideDirection * math.TAU, 0.25f, 0.5f); - var gradient = new float3(phasor.cos.x, phasor.cos.y, phasor.cos.z); + var gradient = new float3(phasor.cosine.x, phasor.cosine.y, phasor.cosine.z); alongFlow += Math.Abs(math.dot(gradient, flow)); acrossFlow += Math.Abs(math.dot(gradient, sideDirection)); used++; @@ -232,7 +232,7 @@ public sealed class PhacelleTests { var low = math.phacelle(SetAxis(p, axis, GetAxis(p, axis) - steps[k] * 0.5f), side, offset, 0.5f); var high = math.phacelle(SetAxis(p, axis, GetAxis(p, axis) + steps[k] * 0.5f), side, offset, 0.5f); - maxDifference[k] = MathF.Max(maxDifference[k], MathF.Max(MathF.Abs(low.cos.w - high.cos.w), MathF.Abs(low.sin.w - high.sin.w))); + maxDifference[k] = MathF.Max(maxDifference[k], MathF.Max(MathF.Abs(low.cosine.w - high.cosine.w), MathF.Abs(low.sine.w - high.sine.w))); } } @@ -260,8 +260,8 @@ public sealed class PhacelleTests var pruned = math.phacelle(p, side, offset, normalization); var unpruned = math.phacelle(p, side, offset, normalization, false); - AssertBitEqual(unpruned.cos, pruned.cos); - AssertBitEqual(unpruned.sin, pruned.sin); + AssertBitEqual(unpruned.cosine, pruned.cosine); + AssertBitEqual(unpruned.sine, pruned.sine); } } @@ -325,8 +325,8 @@ public sealed class PhacelleTests var pruned = math.phacelle(p, PruneCutSide, PruneCutOffset, PruneCutNormalization); var unpruned = math.phacelle(p, PruneCutSide, PruneCutOffset, PruneCutNormalization, false); - AssertBitEqual(unpruned.cos, pruned.cos); - AssertBitEqual(unpruned.sin, pruned.sin); + AssertBitEqual(unpruned.cosine, pruned.cosine); + AssertBitEqual(unpruned.sine, pruned.sine); } } diff --git a/packages/cultmath/tests/CultMath.Tests/SiteArrays.cs b/packages/cultmath/tests/CultMath.Tests/SiteArrays.cs new file mode 100644 index 00000000..b656a874 --- /dev/null +++ b/packages/cultmath/tests/CultMath.Tests/SiteArrays.cs @@ -0,0 +1,160 @@ +using CultMath; +using static CultMath.math; + +namespace CultMath.Tests; + +/// +/// The shader's site-array functions as C# twins. A shader function cannot take a span, so +/// cultmath_power_border, cultmath_lattice_cell_distance and cultmath_weighted_lattice_cells take +/// float4 sites[CULTMATH_MAX_SITES] and a count; reflection cannot pass a , so each +/// twin takes the array and the count and calls the span function on sites[..count]. This table is the one +/// place that maps them, read by the mirror test and by the GLSL fixture. The draws are the cases both run. +/// +internal static class SiteArrays +{ + /// The shader's default CULTMATH_MAX_SITES; the device families spell their array with it. + internal const int Capacity = 128; + + internal static float4 power_border(float3 p, float4[] sites, int count) => math.power_border(p, sites.AsSpan(0, count)); + + internal static float lattice_cell_distance( + float2 q, float2 cell, float time, float drift, float4[] bodies, int count, float cellSize, float boost, float falloff, + float2 normal, float stretch) => + math.lattice_cell_distance(q, cell, time, drift, bodies.AsSpan(0, count), cellSize, boost, falloff, normal, stretch); + + internal static float4 weighted_lattice_cells( + float2 p, float time, float4[] bodies, int count, float cellSize, float drift, float boost, float falloff, + float smoothing, float2 stretchNormal, float stretch) => + math.weighted_lattice_cells(p, time, bodies.AsSpan(0, count), cellSize, drift, boost, falloff, smoothing, stretchNormal, stretch); + + // The array the shader receives: the sites, then filler a loop running past the count would read. The filler is + // finite and large, so a loop bound that ignores the count changes the result. + private static float4[] Padded(IReadOnlyList sites) + { + var array = new float4[Capacity]; + for (var i = 0; i < Capacity; i++) + array[i] = i < sites.Count ? sites[i] : new float4(40.0f * (i + 1), -30.0f * (i + 1), 7.0f, 90.0f + i); + return array; + } + + private static float Uniform(System.Random r, float lo, float hi) => lo + (hi - lo) * r.NextSingle(); + + // Counts 0, 1, 6, 16 and the capacity are drawn often; the rest of [0, Capacity] fills between. + private static int Count(System.Random r) => r.Next(3) == 0 ? r.Next(Capacity + 1) : new[] { 0, 1, 6, 16, Capacity }[r.Next(5)]; + + // Bodies on slow orbits (float4(position.xy, 0, sigma)), spread over the plane the lattice cells cover. + private static float4[] Orbit(System.Random r, int count, float time) + { + var bodies = new List(); + for (var i = 0; i < count; i++) + { + var angle = 0.001f * (i + 1) * time + i; + var radius = 100.0f + 2400.0f * r.NextSingle(); + bodies.Add(new float4(radius * MathF.Cos(angle), radius * MathF.Sin(angle), 0.0f, Uniform(r, 20.0f, 300.0f))); + } + + return Padded(bodies); + } + + internal static object[] PowerBorderArguments(System.Random r) + { + var count = Count(r); + var sites = new List(); + for (var i = 0; i < count; i++) + sites.Add(new float4(Uniform(r, -1500.0f, 1500.0f), Uniform(r, -1500.0f, 1500.0f), Uniform(r, -200.0f, 200.0f), Uniform(r, 10.0f, 300.0f))); + return new object[] { new float3(Uniform(r, -1500.0f, 1500.0f), Uniform(r, -1500.0f, 1500.0f), Uniform(r, -200.0f, 200.0f)), Padded(sites), count }; + } + + internal static object[] LatticeCellDistanceArguments(System.Random r) + { + var angle = Uniform(r, 0.0f, 6.2831855f); + var look = LatticeCellsTests.Looks[r.Next(LatticeCellsTests.Looks.Length)]; + var cell = new float2(r.Next(-300, 300), r.Next(-300, 300)); + var count = Count(r); + return new object[] + { + new float2(Uniform(r, -1500.0f, 1500.0f), Uniform(r, -1500.0f, 1500.0f)) / LatticeCellsTests.Cell, cell, Uniform(r, 0.0f, 200.0f), LatticeCellsTests.Drift, + Orbit(r, count, Uniform(r, 0.0f, 200.0f)), count, LatticeCellsTests.Cell, look.Boost, look.Falloff, new float2(MathF.Cos(angle), MathF.Sin(angle)), look.Stretch, + }; + } + + // The unit-less normals the function normalises itself: ordinary, 3-4-5, tiny, huge, and zero (stretch 1 only). + private static readonly float2[] Normals = { LatticeCellsTests.Normal, new(3.0f, 4.0f), new(3.0e-30f, -4.0e-30f), new(1.0e30f, 2.0e30f), new(0.0f, 0.0f) }; + + internal static readonly LatticeCellsTests.Look WidestLook = new(LatticeMaxBoost, LatticeMaxStretch, LatticeMaxSmoothing, 1.0e6f); + + /// + /// Points whose ring search runs to ring 8 or past it under the widest look (boost, stretch and smoothing at their + /// maxima, falloff so wide that every cell is boosted), found once by the radius the exit rule visits, and the + /// ring-17 point of LatticeCellsTests.TheCapIsReachedAndMatchesTheFullBox first. Each is (p, time). + /// + internal static readonly IReadOnlyList<(float2 P, float Time, int Ring)> FarPoints = FindFarPoints(); + + private static List<(float2, float, int)> FindFarPoints() + { + var found = new List<(float2, float, int)>(); + var cap = (new float2(1446.7345f, -680.7637f), 97.69269f); + found.Add((cap.Item1, cap.Item2, LatticeCellsTests.Radius(cap.Item1, cap.Item2, LatticeCellsTests.Bodies(cap.Item2), WidestLook, LatticeCellsTests.Rules[0].stop, new Dictionary<(int, int), float>()))); + var r = new System.Random(0x1A77); + while (found.Count < 12) + { + var p = LatticeCellsTests.RandomPoint(r); + var time = 13.0f * r.Next(20); + var ring = LatticeCellsTests.Radius(p, time, LatticeCellsTests.Bodies(time), WidestLook, LatticeCellsTests.Rules[0].stop, new Dictionary<(int, int), float>()); + if (ring >= 8) + found.Add((p, time, ring)); + } + + return found; + } + + /// + /// Points where an exit one ring early (the rule "bound 0.5*k") returns another result than the exact search, found once by + /// running both on the six orbiting bodies under each look: the cases that pin the ring exit to the bit. + /// + internal static readonly IReadOnlyList<(float2 P, float Time, LatticeCellsTests.Look Look)> ExitBoundPoints = FindExitBoundPoints(); + + private static List<(float2, float, LatticeCellsTests.Look)> FindExitBoundPoints() + { + var found = new List<(float2, float, LatticeCellsTests.Look)>(); + var looks = LatticeCellsTests.Looks.Append(WidestLook).ToArray(); + var r = new System.Random(0xE517); + while (found.Count < 24) + { + var p = LatticeCellsTests.RandomPoint(r); + var time = 13.0f * r.Next(20); + var look = looks[r.Next(looks.Length)]; + var bodies = LatticeCellsTests.Bodies(time); + var early = LatticeCellsTests.Radius(p, time, bodies, look, LatticeCellsTests.Rules[2].stop, new Dictionary<(int, int), float>()); + if (early >= LatticeCellsTests.Radius(p, time, bodies, look, LatticeCellsTests.Rules[0].stop, new Dictionary<(int, int), float>())) + continue; + if (!LatticeCellsTests.BoxFold(p, time, bodies, look, Math.Max(0, early), new Dictionary<(int, int), float>()).Equals(LatticeCellsTests.Call(p, time, bodies, look))) + found.Add((p, time, look)); + } + + return found; + } + + internal static object[] LatticeArguments(System.Random r) + { + switch (r.Next(4)) + { + case 0: + var far = FarPoints[r.Next(FarPoints.Count)]; + return Lattice(far.P, far.Time, Padded(LatticeCellsTests.Bodies(far.Time)), 6, WidestLook, LatticeCellsTests.Normal); + case 1: + var tight = ExitBoundPoints[r.Next(ExitBoundPoints.Count)]; + return Lattice(tight.P, tight.Time, Padded(LatticeCellsTests.Bodies(tight.Time)), 6, tight.Look, LatticeCellsTests.Normal); + } + + var time = 13.0f * r.Next(20); + var normal = Normals[r.Next(Normals.Length)]; + var look = normal.x == 0.0f ? LatticeCellsTests.Looks[0] : LatticeCellsTests.Looks[r.Next(LatticeCellsTests.Looks.Length)]; + var count = Count(r); + return Lattice(LatticeCellsTests.RandomPoint(r), time, Orbit(r, count, time), count, look, normal); + } + + private static object[] Lattice(float2 p, float time, float4[] bodies, int count, LatticeCellsTests.Look look, float2 normal) => + new object[] { p, time, bodies, count, LatticeCellsTests.Cell, LatticeCellsTests.Drift, + look.Boost, look.Falloff, look.Smoothing, normal, look.Stretch }; +} diff --git a/packages/cultmath/tests/CultMath.Tests/SiteCellsTests.cs b/packages/cultmath/tests/CultMath.Tests/SiteCellsTests.cs new file mode 100644 index 00000000..432d669f --- /dev/null +++ b/packages/cultmath/tests/CultMath.Tests/SiteCellsTests.cs @@ -0,0 +1,517 @@ +using Xunit; +using static CultMath.math; + +namespace CultMath.Tests; + +/// +/// The site cells (power and multiplicative scores, the fold, the border), the Gabriel margin and gate, and the +/// out-free segment distance. Every reference is written here in double from the site data, never by calling the +/// function under test. +/// +public sealed class SiteCellsTests +{ + private static float4[] RandomSites(System.Random r, int max) + { + var count = r.Next(max + 1); + var sites = new float4[count]; + for (var i = 0; i < count; i++) + { + sites[i] = i > 0 && r.Next(4) == 0 + ? sites[r.Next(i)] + : new float4(Span(r, 10.0f), Span(r, 10.0f), Span(r, 10.0f), 0.5f + 2.5f * r.NextSingle()); + } + + return sites; + } + + private static float Span(System.Random r, float extent) => (r.NextSingle() * 2.0f - 1.0f) * extent; + + private static float3 Point(System.Random r) => new(Span(r, 10.0f), Span(r, 10.0f), Span(r, 10.0f)); + + private static double PowerReference(float3 p, float4 s) + { + double dx = (double)p.x - s.x, dy = (double)p.y - s.y, dz = (double)p.z - s.z; + return dx * dx + dy * dy + dz * dz - (double)s.w * s.w; + } + + private static double MultiplicativeReference(float3 p, float4 s) + { + double dx = (double)p.x - s.x, dy = (double)p.y - s.y, dz = (double)p.z - s.z; + return Math.Sqrt(dx * dx + dy * dy + dz * dz) / s.w; + } + + // Checks cells against the stable (score, index) order of a double reference. A pair whose reference scores + // differ by less than a float's resolution may legitimately order either way, so such a pair is skipped; an + // exact tie (a duplicated site) is compared. + private static int CheckFold(CultSiteCells cells, double[] reference) + { + var order = Enumerable.Range(0, reference.Length).OrderBy(i => reference[i]).ThenBy(i => i).ToArray(); + if (order.Length < 2) + { + Assert.Equal(-1.0f, cells.secondSite); + Assert.Equal(1.0e30f, cells.second.w); + } + + if (order.Length < 1) + { + Assert.Equal(-1.0f, cells.nearestSite); + Assert.Equal(1.0e30f, cells.nearest.w); + return 0; + } + + bool Clear(int a, int b) => reference[a] == reference[b] || Math.Abs(reference[b] - reference[a]) > 1.0e-4 * (1.0 + Math.Abs(reference[b])); + if (order.Length >= 2 && !Clear(order[0], order[1])) + return 0; + Assert.Equal((float)order[0], cells.nearestSite); + if (order.Length < 2 || (order.Length > 2 && !Clear(order[1], order[2]))) + return 1; + Assert.Equal((float)order[1], cells.secondSite); + return 1; + } + + [Fact] + public void PowerAndMultiplicativeCellsAreTheTwoSmallestScoresInIndexOrder() + { + var r = new System.Random(0x517E); + var checkedSpans = 0; + for (var n = 0; n < 4000; n++) + { + var sites = RandomSites(r, 12); + var p = Point(r); + checkedSpans += CheckFold(power_cells(p, sites), sites.Select(s => PowerReference(p, s)).ToArray()); + checkedSpans += CheckFold(multiplicative_cells(p, sites), sites.Select(s => MultiplicativeReference(p, s)).ToArray()); + } + + Assert.True(checkedSpans > 5000, $"only {checkedSpans} spans were comparable"); + } + + [Fact] + public void ExactTiesKeepTheLowerIndexFirst() + { + var site = new float4(1.0f, 2.0f, 3.0f, 1.5f); + var sites = new[] { site, site, site }; + var cells = power_cells(new float3(0.0f, 0.0f, 0.0f), sites); + Assert.Equal(0.0f, cells.nearestSite); + Assert.Equal(1.0f, cells.secondSite); + } + + // TN2: for power scores F2 - F1 is affine, so site_cells_border is the distance to the bisector plane of the + // two winners {x : |x - s1|^2 - w1^2 = |x - s2|^2 - w2^2}, computed here in double. That is not the distance + // to the nearest site's cell boundary (PowerBorderIsTheLeastRadicalPlaneDistance). + [Fact] + public void SiteCellsBorderIsTheDistanceToTheWinnersBisector() + { + var r = new System.Random(0xB0DE); + var compared = 0; + for (var n = 0; n < 3000; n++) + { + var sites = RandomSites(r, 8); + if (sites.Length < 3) + continue; + var p = Point(r); + var reference = sites.Select(s => PowerReference(p, s)).ToArray(); + var order = Enumerable.Range(0, sites.Length).OrderBy(i => reference[i]).ThenBy(i => i).ToArray(); + if (reference[order[1]] - reference[order[0]] < 1.0e-2 || reference[order[2]] - reference[order[1]] < 1.0e-2) + continue; + var (a, b) = (sites[order[0]], sites[order[1]]); + double nx = 2.0 * ((double)a.x - b.x), ny = 2.0 * ((double)a.y - b.y), nz = 2.0 * ((double)a.z - b.z); + var norm = Math.Sqrt(nx * nx + ny * ny + nz * nz); + if (norm < 1.0e-2) + continue; + var expected = (reference[order[1]] - reference[order[0]]) / norm; + + var border = site_cells_border(power_cells(p, sites)); + Assert.InRange(border.w, expected - 1.0e-4 * expected - 1.0e-3, expected + 1.0e-4 * expected + 1.0e-3); + // F2 - F1 grows toward the nearest site: the normal is (s1 - s2) / |s1 - s2|. + Assert.InRange(border.x, nx / norm - 1.0e-3, nx / norm + 1.0e-3); + Assert.InRange(border.y, ny / norm - 1.0e-3, ny / norm + 1.0e-3); + Assert.InRange(border.z, nz / norm - 1.0e-3, nz / norm + 1.0e-3); + compared++; + } + + Assert.True(compared > 1000, $"only {compared} borders were comparable"); + } + + [Fact] + public void BorderIsEmptyWithoutASecondSite() + { + var one = power_cells(new float3(1.0f, 2.0f, 3.0f), new[] { new float4(0.0f, 0.0f, 0.0f, 1.0f) }); + Assert.Equal(new float4(0.0f, 0.0f, 0.0f, 1.0e30f), site_cells_border(one)); + Assert.Equal(new float4(0.0f, 0.0f, 0.0f, 1.0e30f), site_cells_border(site_cells_empty())); + } + + // Two sites with weights w1 != w2: the border |p - s1| / w1 = |p - s2| / w2 is the Apollonius circle, centre + // (w1^2 s2 - w2^2 s1) / (w1^2 - w2^2), radius w1 w2 |s1 - s2| / |w1^2 - w2^2| (built in double). On it the + // multiplicative border distance vanishes; off it the distance is nonzero. + [Fact] + public void MultiplicativeBorderVanishesOnTheApolloniusCircle() + { + var r = new System.Random(0xA9011); + for (var n = 0; n < 300; n++) + { + var s1 = new float4(Span(r, 5.0f), Span(r, 5.0f), 0.0f, 1.0f + 2.0f * r.NextSingle()); + var s2 = new float4(Span(r, 5.0f), Span(r, 5.0f), 0.0f, 1.0f + 2.0f * r.NextSingle()); + double w1 = s1.w, w2 = s2.w, k = w1 * w1 - w2 * w2; + double sep = Math.Sqrt(Math.Pow((double)s1.x - s2.x, 2) + Math.Pow((double)s1.y - s2.y, 2)); + if (Math.Abs(k) < 0.5 || sep < 1.0) + continue; + double cx = (w1 * w1 * s2.x - w2 * w2 * s1.x) / k, cy = (w1 * w1 * s2.y - w2 * w2 * s1.y) / k; + var radius = w1 * w2 * sep / Math.Abs(k); + if (radius > 50.0) + continue; + + var sites = new[] { s1, s2 }; + var angle = r.NextDouble() * 2.0 * Math.PI; + var on = new float3((float)(cx + radius * Math.Cos(angle)), (float)(cy + radius * Math.Sin(angle)), 0.0f); + var onBorder = site_cells_border(multiplicative_cells(on, sites)); + Assert.True(Math.Abs(onBorder.w) < 1.0e-3 * radius + 1.0e-3, $"on the circle: {onBorder.w}"); + + var off = new float3((float)(cx + 1.5 * radius * Math.Cos(angle)), (float)(cy + 1.5 * radius * Math.Sin(angle)), 0.0f); + var offBorder = site_cells_border(multiplicative_cells(off, sites)); + Assert.True(Math.Abs(offBorder.w) > 1.0e-2 * radius, $"off the circle: {offBorder.w}"); + } + } + + // Central differences in double of each score's value against the returned gradient. + [Fact] + public void ScoreGradientsAreAnalytic() + { + var r = new System.Random(0x6AAD); + const double h = 1.0e-3; + for (var n = 0; n < 500; n++) + { + var site = RandomSites(r, 1).FirstOrDefault(new float4(1.0f, -2.0f, 0.5f, 1.5f)); + var p = Point(r); + if (Math.Abs(p.x - site.x) + Math.Abs(p.y - site.y) + Math.Abs(p.z - site.z) < 1.0f) + continue; + foreach (var (score, reference) in new (Func, Func)[] { (power_score, PowerReference), (multiplicative_score, MultiplicativeReference) }) + { + var got = score(p, site); + var axes = new[] { new float3((float)h, 0.0f, 0.0f), new float3(0.0f, (float)h, 0.0f), new float3(0.0f, 0.0f, (float)h) }; + var expected = axes.Select(a => (reference(p + a, site) - reference(p - a, site)) / (2.0 * h)).ToArray(); + var scale = 1.0 + Math.Abs(expected[0]) + Math.Abs(expected[1]) + Math.Abs(expected[2]); + Assert.True(Math.Abs(got.x - expected[0]) < 2.0e-3 * scale, "x"); + Assert.True(Math.Abs(got.y - expected[1]) < 2.0e-3 * scale, "y"); + Assert.True(Math.Abs(got.z - expected[2]) < 2.0e-3 * scale, "z"); + Assert.Equal(reference(p, site), got.w, 1.0e-3 * (1.0 + Math.Abs(got.w))); + } + } + } + + [Fact] + public void MultiplicativeGradientIsZeroAtTheSite() + { + var site = new float4(1.0f, 2.0f, 3.0f, 2.0f); + var score = multiplicative_score(new float3(1.0f, 2.0f, 3.0f), site); + Assert.Equal(new float4(0.0f, 0.0f, 0.0f, 0.0f), score); + } + + private static double MarginReference(float4 a, float4 b, float4 o) + { + double mx = ((double)a.x + b.x) / 2, my = ((double)a.y + b.y) / 2, mz = ((double)a.z + b.z) / 2; + var rr = Math.Sqrt(Math.Pow((double)a.x - b.x, 2) + Math.Pow((double)a.y - b.y, 2) + Math.Pow((double)a.z - b.z, 2)) / 2; + var d = Math.Sqrt(Math.Pow(o.x - mx, 2) + Math.Pow(o.y - my, 2) + Math.Pow(o.z - mz, 2)); + return (d - rr) / rr; + } + + private static double SmoothstepReference(double lo, double hi, double x) + { + var t = Math.Clamp((x - lo) / (hi - lo), 0.0, 1.0); + return t * t * (3.0 - 2.0 * t); + } + + [Fact] + public void SoftGabrielGateFollowsTheEmptyDiscMargin() + { + var a = new float4(-2.0f, 0.0f, 0.0f, 1.0f); + var b = new float4(2.0f, 0.0f, 0.0f, 1.0f); + // On the diameter circle (radius 2 about the origin): margin 0, gate 0.5. At half radius: margin -0.5, gate 0. + Assert.Equal(0.5f, soft_gabriel_gate(new[] { a, b, new float4(0.0f, 2.0f, 0.0f, 1.0f) }, 0, 1, 0.15f), 6); + Assert.Equal(0.0f, soft_gabriel_gate(new[] { a, b, new float4(0.0f, 1.0f, 0.0f, 1.0f) }, 0, 1, 0.15f)); + Assert.Equal(1.0f, soft_gabriel_gate(new[] { a, b }, 0, 1, 0.15f)); + + var r = new System.Random(0x6ABE); + for (var n = 0; n < 500; n++) + { + var sites = RandomSites(r, 9); + if (sites.Length < 3 || sites[0].Equals(sites[1])) + continue; + var first = r.Next(sites.Length); + var second = (first + 1 + r.Next(sites.Length - 1)) % sites.Length; + var softness = 0.05f + 0.5f * r.NextSingle(); + var margin = Enumerable.Range(0, sites.Length).Where(k => k != first && k != second).Min(k => MarginReference(sites[first], sites[second], sites[k])); + if (!double.IsFinite(margin)) + continue; + Assert.Equal(SmoothstepReference(-softness, softness, margin), soft_gabriel_gate(sites, first, second, softness), 1.0e-3); + } + + // Continuity: a tiny radial step of a third site moves the gate by a small share of the softness band. + var prev = soft_gabriel_gate(new[] { a, b, new float4(0.0f, 1.8f, 0.0f, 1.0f) }, 0, 1, 0.3f); + for (var y = 1.8f; y < 2.2f; y += 0.001f) + { + var gate = soft_gabriel_gate(new[] { a, b, new float4(0.0f, y, 0.0f, 1.0f) }, 0, 1, 0.3f); + Assert.True(Math.Abs(gate - prev) < 0.01f, $"step at y={y}"); + prev = gate; + } + } + + [Fact] + public void SpanFunctionsRefuseBadInputsWithoutEchoingThem() + { + var good = new float4(0.0f, 0.0f, 0.0f, 1.0f); + var marker = 12345.678f; + foreach (var weight in new[] { 0.0f, -marker, float.NaN, float.PositiveInfinity }) + { + var e = Assert.Throws(() => multiplicative_cells(default, new[] { good, new float4(1.0f, 1.0f, 1.0f, weight) })); + Assert.Equal("sites", e.ParamName); + Assert.DoesNotContain("12345", e.Message); + } + + foreach (var weight in new[] { float.NaN, float.PositiveInfinity, float.NegativeInfinity }) + Assert.Equal("sites", Assert.Throws(() => power_cells(default, new[] { good, new float4(1.0f, 1.0f, 1.0f, weight) })).ParamName); + + var three = new[] { good, new float4(1.0f, 0.0f, 0.0f, 1.0f), new float4(0.0f, 1.0f, 0.0f, 1.0f) }; + Assert.Equal("second", Assert.Throws(() => soft_gabriel_gate(three, 1, 1, 0.1f)).ParamName); + Assert.Equal("first", Assert.Throws(() => soft_gabriel_gate(three, -1, 1, 0.1f)).ParamName); + Assert.Equal("second", Assert.Throws(() => soft_gabriel_gate(three, 0, 3, 0.1f)).ParamName); + foreach (var softness in new[] { 0.0f, -marker, float.NaN, float.PositiveInfinity }) + { + var e = Assert.Throws(() => soft_gabriel_gate(three, 0, 1, softness)); + Assert.Equal("softness", e.ParamName); + Assert.DoesNotContain("12345", e.Message); + } + } + + [Fact] + public void OutFreeDistanceToSegmentEqualsTheOutForm() + { + var r = new System.Random(0x5E61); + for (var n = 0; n < 2000; n++) + { + var p = new float2(Span(r, 5.0f), Span(r, 5.0f)); + var start = new float2(Span(r, 5.0f), Span(r, 5.0f)); + var end = r.Next(8) == 0 ? start : new float2(Span(r, 5.0f), Span(r, 5.0f)); + var outForm = distance_to_segment(p, start, end, out var closest); + Assert.Equal(BitConverter.SingleToInt32Bits(outForm), BitConverter.SingleToInt32Bits(distance_to_segment(p, start, end))); + Assert.Equal(distance(p, closest), outForm); + double sx = (double)end.x - start.x, sy = (double)end.y - start.y, qx = (double)p.x - start.x, qy = (double)p.y - start.y; + var t2 = sx * sx + sy * sy > 0.0 ? Math.Clamp((qx * sx + qy * sy) / (sx * sx + sy * sy), 0.0, 1.0) : 0.0; + var expected2 = Math.Sqrt(Math.Pow(qx - t2 * sx, 2) + Math.Pow(qy - t2 * sy, 2)); + Assert.Equal(expected2, outForm, 1.0e-4 * (1.0 + expected2)); + + var p3 = new float3(Span(r, 5.0f), Span(r, 5.0f), Span(r, 5.0f)); + var a3 = new float3(Span(r, 5.0f), Span(r, 5.0f), Span(r, 5.0f)); + var b3 = r.Next(8) == 0 ? a3 : new float3(Span(r, 5.0f), Span(r, 5.0f), Span(r, 5.0f)); + var got = distance_to_segment(p3, a3, b3); + if (a3.Equals(b3)) + { + Assert.Equal(distance(p3, a3), got); + continue; + } + + double ex = (double)b3.x - a3.x, ey = (double)b3.y - a3.y, ez = (double)b3.z - a3.z; + double px = (double)p3.x - a3.x, py = (double)p3.y - a3.y, pz = (double)p3.z - a3.z; + var t = Math.Clamp((px * ex + py * ey + pz * ez) / (ex * ex + ey * ey + ez * ez), 0.0, 1.0); + var expected = Math.Sqrt(Math.Pow(px - t * ex, 2) + Math.Pow(py - t * ey, 2) + Math.Pow(pz - t * ez, 2)); + Assert.Equal(expected, got, 1.0e-4 * (1.0 + expected)); + } + } + + // The cell of the owner is the intersection of the half-spaces of its radical planes. Reference in double, + // written here: x.d = c with d = s2 - s1, c = (|s2|^2 - |s1|^2 + w1^2 - w2^2) / 2, signed distance (c - p.d) / |d|. + private static (double Distance, double[] Normal) CellBoundary(float3 p, float4[] sites, int owner) + { + var best = double.PositiveInfinity; + var normal = new double[3]; + var s1 = new[] { (double)sites[owner].x, sites[owner].y, sites[owner].z }; + var q = new[] { (double)p.x, p.y, p.z }; + for (var k = 0; k < sites.Length; k++) + { + var s2 = new[] { (double)sites[k].x, sites[k].y, sites[k].z }; + var d = new[] { s2[0] - s1[0], s2[1] - s1[1], s2[2] - s1[2] }; + var dd = d[0] * d[0] + d[1] * d[1] + d[2] * d[2]; + if (k == owner || dd == 0.0) + continue; + double w1 = sites[owner].w, w2 = sites[k].w; + var c = (s2.Sum(v => v * v) - s1.Sum(v => v * v) + w1 * w1 - w2 * w2) / 2.0; + var distance = (c - (q[0] * d[0] + q[1] * d[1] + q[2] * d[2])) / Math.Sqrt(dd); + if (distance < best) + { + best = distance; + normal = new[] { -d[0] / Math.Sqrt(dd), -d[1] / Math.Sqrt(dd), -d[2] / Math.Sqrt(dd) }; + } + } + + return (best, normal); + } + + // Spans with duplicated sites, zero weights, collinear sites and single-site spans. + private static float4[] AwkwardSites(System.Random r) + { + var count = 1 + r.Next(9); + var collinear = r.Next(5) == 0; + var sites = new float4[count]; + for (var i = 0; i < count; i++) + { + var weight = r.Next(5) == 0 ? 0.0f : 0.5f + 2.5f * r.NextSingle(); + sites[i] = i > 0 && r.Next(4) == 0 ? sites[r.Next(i)] + : collinear ? new float4(Span(r, 10.0f), 0.0f, 0.0f, weight) + : new float4(Span(r, 10.0f), Span(r, 10.0f), Span(r, 10.0f), weight); + } + + return sites; + } + + [Fact] + public void PowerBorderIsTheLeastRadicalPlaneDistance() + { + var r = new System.Random(0xCE11); + var finite = 0; + var unbounded = 0; + for (var n = 0; n < 6000; n++) + { + var sites = AwkwardSites(r); + var p = Point(r); + var reference = sites.Select(s => PowerReference(p, s)).ToArray(); + var order = Enumerable.Range(0, sites.Length).OrderBy(i => reference[i]).ThenBy(i => i).ToArray(); + if (order.Length > 1 && reference[order[1]] - reference[order[0]] < 1.0e-2 && reference[order[1]] != reference[order[0]]) + continue; + var (distance, normal) = CellBoundary(p, sites, order[0]); + var border = power_border(p, sites); + if (double.IsPositiveInfinity(distance)) + { + Assert.Equal(1.0e30f, border.w); + unbounded++; + continue; + } + + Assert.InRange(border.w, distance - 1.0e-4 * Math.Abs(distance) - 1.0e-4, distance + 1.0e-4 * Math.Abs(distance) + 1.0e-4); + finite++; + // The normal is the minimising plane's, pointing into the cell, when that plane is clear of the rest. + var others = Enumerable.Range(0, sites.Length).Where(k => k != order[0]).Select(k => CellBoundary(p, new[] { sites[order[0]], sites[k] }, 0).Distance).Where(v => !double.IsPositiveInfinity(v)).OrderBy(v => v).ToArray(); + if (others.Length > 1 && others[1] - others[0] > 1.0e-2) + { + Assert.InRange(border.x, normal[0] - 1.0e-3, normal[0] + 1.0e-3); + Assert.InRange(border.y, normal[1] - 1.0e-3, normal[1] + 1.0e-3); + Assert.InRange(border.z, normal[2] - 1.0e-3, normal[2] + 1.0e-3); + } + } + + Assert.True(finite > 2500 && unbounded > 50, $"{finite} bounded and {unbounded} unbounded cells were compared"); + } + + [Fact] + public void ADuplicateOfTheOwnerLeavesTheCellBorderToTheOtherSites() + { + var a = new float4(0.0f, 0.0f, 0.0f, 1.0f); + var far = new float4(10.0f, 0.0f, 0.0f, 1.0f); + // p is nearer the owner's duplicate than anything else: the duplicate is the second-nearest site. + var border = power_border(new float3(1.0f, 0.0f, 0.0f), new[] { a, a, far }); + Assert.Equal(4.0f, border.w, 1.0e-4f); + Assert.Equal(-1.0f, border.x, 1.0e-5f); + // Only coincident sites: the cell has no bounding plane. + Assert.Equal(1.0e30f, power_border(new float3(1.0f, 0.0f, 0.0f), new[] { a, a }).w); + Assert.Equal(1.0e30f, power_border(new float3(1.0f, 0.0f, 0.0f), new[] { a }).w); + Assert.Equal(1.0e30f, power_border(new float3(1.0f, 0.0f, 0.0f), ReadOnlySpan.Empty).w); + } + + // Close sites seen from a far query: the plane distance must not cancel (the old gradient-difference form + // had 1.5e-4 relative error at this geometry and 3.5e-3 at coordinates near 1e4). + [Theory] + [InlineData(0.0f)] + [InlineData(10000.0f)] + public void PowerBorderKeepsItsPrecisionForCloseSitesAndAFarQuery(float shift) + { + var sites = new[] { new float4(shift - 1.453f, shift + 1.986f, 0.0f, 13.085f), new float4(shift - 1.539f, shift + 2.103f, 0.0f, 5.113f) }; + var p = new float3(shift - 154.2f, shift + 188.9f, 0.0f); + var expected = CellBoundary(p, sites, (int)power_cells(p, sites).nearestSite).Distance; + Assert.True(expected > 100.0); + Assert.InRange(power_border(p, sites).w, expected * (1.0 - 1.0e-5), expected * (1.0 + 1.0e-5)); + } + + [Fact] + public void CoincidentGabrielPairHasMarginMinusOne() + { + var a = new float3(1.0f, 2.0f, 3.0f); + foreach (var other in new[] { a, new float3(0.0f, 0.0f, 0.0f), new float3(9.0f, -4.0f, 2.0f) }) + Assert.Equal(-1.0f, gabriel_margin(a, a, other)); + + var pair = new[] { new float4(a, 1.0f), new float4(a, 1.0f), new float4(5.0f, 5.0f, 5.0f, 1.0f) }; + Assert.Equal(0.0f, soft_gabriel_gate(pair, 0, 1, 0.15f)); + // smoothstep(-3, 3, -1) = 3t^2 - 2t^3 at t = 1/3. + Assert.Equal(7.0 / 27.0, soft_gabriel_gate(pair, 0, 1, 3.0f), 1.0e-5); + Assert.Equal(1.0f, soft_gabriel_gate(pair[..2], 0, 1, 0.15f)); + } + + [Fact] + public void CellSpansRefuseNonFinitePositionsAndQueriesAndOverlongSpans() + { + var good = new float4(0.0f, 0.0f, 0.0f, 1.0f); + var origin = new float3(0.0f, 0.0f, 0.0f); + foreach (var bad in new[] { float.NaN, float.PositiveInfinity, float.NegativeInfinity }) + { + var site = new[] { new float4(bad, 0.0f, 0.0f, 1.0f), good, new float4(2.0f, 0.0f, 0.0f, 1.0f) }; + Assert.Equal("sites", Assert.Throws(() => power_cells(origin, site)).ParamName); + Assert.Equal("sites", Assert.Throws(() => multiplicative_cells(origin, site)).ParamName); + Assert.Equal("sites", Assert.Throws(() => power_border(origin, site)).ParamName); + Assert.Equal("sites", Assert.Throws(() => soft_gabriel_gate(site, 1, 2, 0.1f)).ParamName); + var query = new float3(0.0f, bad, 0.0f); + Assert.Equal("p", Assert.Throws(() => power_cells(query, new[] { good })).ParamName); + Assert.Equal("p", Assert.Throws(() => multiplicative_cells(query, new[] { good })).ParamName); + Assert.Equal("p", Assert.Throws(() => power_border(query, new[] { good })).ParamName); + } + + // Indices are floats, exact only to 2^24: a span of 2^24 + 1 real sites is refused for its length. + var overlong = new float4[(1 << 24) + 1]; + foreach (var call in new Func[] + { + () => Assert.Throws(() => power_cells(origin, overlong)), + () => Assert.Throws(() => multiplicative_cells(origin, overlong)), + () => Assert.Throws(() => power_border(origin, overlong)), + }) + { + var e = call(); + Assert.Equal("sites", e.ParamName); + Assert.Contains("2^24", e.Message); + } + } + + [Fact] + public void SegmentClosestIsTheClampedFootOfThePerpendicular() + { + var start = new float3(0.0f, 0.0f, 0.0f); + var end = new float3(4.0f, 0.0f, 0.0f); + Assert.Equal(new float3(2.0f, 0.0f, 0.0f), segment_closest(new float3(2.0f, 3.0f, 1.0f), start, end)); + Assert.Equal(end, segment_closest(new float3(9.0f, 3.0f, 1.0f), start, end)); + Assert.Equal(start, segment_closest(new float3(-9.0f, 3.0f, 1.0f), start, end)); + Assert.Equal(start, segment_closest(new float3(2.0f, 3.0f, 1.0f), start, start)); + Assert.Equal(new float2(4.0f, 0.0f), segment_closest(new float2(9.0f, 3.0f), new float2(0.0f, 0.0f), new float2(4.0f, 0.0f))); + } + + [Fact] + public void PowerBorderStepOutsideTheOwnersCellReportsDistanceZeroWithThatPlanesNormal() + { + var left = new float4(0.0f, 0.0f, 0.0f, 1.0f); + var right = new float4(4.0f, 0.0f, 0.0f, 1.0f); + var empty = new float4(0.0f, 0.0f, 0.0f, 1.0e30f); + var inside = power_border_step(new float3(1.0f, 0.0f, 0.0f), left, right, empty); + Assert.Equal(new float4(-1.0f, 0.0f, 0.0f, 1.0f), inside); + var outside = power_border_step(new float3(3.5f, 0.0f, 0.0f), left, right, empty); + Assert.Equal(new float4(-1.0f, 0.0f, 0.0f, 0.0f), outside); + } + + [Fact] + public void PowerBorderStepLeavesTheBorderAloneForASiteCoincidentWithTheOwner() + { + var owner = new float4(1.0f, 2.0f, 3.0f, 1.0f); + var heavier = new float4(1.0f, 2.0f, 3.0f, 2.0f); + var running = new float4(1.0f, 0.0f, 0.0f, 5.0f); + foreach (var other in new[] { owner, heavier }) + foreach (var border in new[] { running, new float4(0.0f, 0.0f, 0.0f, 1.0e30f) }) + { + var result = power_border_step(new float3(4.0f, 4.0f, 4.0f), owner, other, border); + Assert.Equal(border.x, result.x); + Assert.Equal(border.w, result.w); + } + } +} diff --git a/packages/cultmath/tests/CultMath.Tests/SpanPrimitiveTests.cs b/packages/cultmath/tests/CultMath.Tests/SpanPrimitiveTests.cs index 44814195..dea5ab0c 100644 --- a/packages/cultmath/tests/CultMath.Tests/SpanPrimitiveTests.cs +++ b/packages/cultmath/tests/CultMath.Tests/SpanPrimitiveTests.cs @@ -319,6 +319,63 @@ public sealed class SpanPrimitiveTests Assert.True(zeroSlopes > 10_000 && reversed > 40_000 && both > 2_000 && neither > 2_000, $"the sample meets a branch too rarely: {zeroSlopes} flat, {reversed} reversed, {both} both, {neither} neither"); } + /// + /// An infinite bound never reached by the line contributes nothing, not infinity times zero: relu + /// (hi = +inf) and its mirror (lo = -inf) give the finite integral, whether the line crosses the finite + /// bound inside the span or not. Both branches give +0 for a zero-length span. + /// + [Fact] + public void IntegralClampLinearIsFiniteForInfiniteBounds() + { + var inf = float.PositiveInfinity; + // t over [0, 1] clamped below at 0: all ramp, 1/2. + Assert.Equal(0.5f, integral_clamp_linear(0.0f, 1.0f, 0.0f, inf, 0.0f, 1.0f)); + // t - 1/2 over [0, 1] clamped below at 0: 0 until 1/2, then the ramp's 1/8. + Assert.Equal(0.125f, integral_clamp_linear(-0.5f, 1.0f, 0.0f, inf, 0.0f, 1.0f)); + // The falling line 1/2 - t clamped below at 0 is the mirror: 1/8 over [0, 1]. + Assert.Equal(0.125f, integral_clamp_linear(0.5f, -1.0f, 0.0f, inf, 0.0f, 1.0f)); + // lo = -inf: clamp(t, -inf, 1/2) over [0, 1] is t up to 1/2 then 1/2 (1/8 + 1/4), and 1 - t clamped + // above at 1/2 is 1/2 until t = 1/2 and then falls (1/4 + 1/8). + Assert.Equal(0.375f, integral_clamp_linear(0.0f, 1.0f, -inf, 0.5f, 0.0f, 1.0f)); + Assert.Equal(0.375f, integral_clamp_linear(1.0f, -1.0f, -inf, 0.5f, 0.0f, 1.0f)); + // Both infinite: the line itself, the trapezoid, in either direction. + Assert.Equal(7.5f, integral_clamp_linear(0.0f, 1.0f, -inf, inf, 1.0f, 4.0f)); + Assert.Equal(-7.5f, integral_clamp_linear(0.0f, 1.0f, -inf, inf, 4.0f, 1.0f)); + // A line starting on the finite bound and rising into the infinite one: all ramp, the integral of t over [2, 4]. + Assert.Equal(6.0f, integral_clamp_linear(0.0f, 1.0f, 2.0f, inf, 2.0f, 4.0f)); + + // The flat branch obeys the same zero-length rule: a stretch of zero length contributes +0 however + // infinite the bound it would be clamped to, and a nonzero length of an infinite constant is infinite. + // The bit patterns are compared because Assert.Equal treats -0 as 0. + Assert.Equal(0, BitConverter.SingleToInt32Bits(integral_clamp_linear(-2.3244874f, -0.0f, 0.0f, -inf, 1.429815f, 1.429815f))); + Assert.Equal(0, BitConverter.SingleToInt32Bits(integral_clamp_linear(1.5f, 0.0f, inf, inf, 2.0f, 2.0f))); + Assert.Equal(0, BitConverter.SingleToInt32Bits(integral_clamp_linear(1.5f, -0.0f, -inf, -inf, 0.0f, 0.0f))); + Assert.Equal(inf, integral_clamp_linear(1.5f, 0.0f, inf, inf, 0.0f, 2.0f)); + Assert.Equal(inf, integral_clamp_linear(1.5f, 0.0f, -inf, -inf, 2.0f, 0.0f)); + + // The sloped branch gives +0 for a zero-length span too, not -0: the direction sign never meets a + // zero total, whichever way the line leans and whatever the bounds. + Assert.Equal(0, BitConverter.SingleToInt32Bits(integral_clamp_linear(1.0f, 2.0f, -inf, inf, 1.0f, 1.0f))); + Assert.Equal(0, BitConverter.SingleToInt32Bits(integral_clamp_linear(-3.0f, -2.0f, 0.0f, 5.0f, 1.0f, 1.0f))); + Assert.Equal(0, BitConverter.SingleToInt32Bits(integral_clamp_linear(0.5f, 1.0f, 0.0f, inf, 0.0f, 0.0f))); + } + + /// + /// lo above hi is normalised before the flat branch reads it: with b = 0 the answer is hi times the + /// span (what clamp(a, lo, hi) gives with lo = min(lo, hi)), and with b != 0 the same. The GLSL + /// lowering would otherwise call clamp with minVal above maxVal, which is undefined there. + /// + [Fact] + public void IntegralClampLinearNormalisesBeforeTheFlatBranch() + { + // b = 0: a above both, below both and between them all give hi. + foreach (var a in new[] { 9.0f, -9.0f, 3.5f }) + Assert.Equal(2.0f * 3.0f, integral_clamp_linear(a, 0.0f, 5.0f, 2.0f, 0.0f, 3.0f)); + // b != 0: hi everywhere, whichever way the line runs. + Assert.Equal(2.0f * 3.0f, integral_clamp_linear(0.0f, 1.0f, 5.0f, 2.0f, 0.0f, 3.0f)); + Assert.Equal(2.0f * 3.0f, integral_clamp_linear(9.0f, -1.0f, 5.0f, 2.0f, 0.0f, 3.0f)); + } + [Fact] public void IntegralClampLinearHasExactValuesOnTheBinaryFloats() { diff --git a/packages/cultmath/tests/CultMath.Tests/SpanStageTests.cs b/packages/cultmath/tests/CultMath.Tests/SpanStageTests.cs new file mode 100644 index 00000000..dc1784f9 --- /dev/null +++ b/packages/cultmath/tests/CultMath.Tests/SpanStageTests.cs @@ -0,0 +1,941 @@ +using Xunit; +using static CultMath.math; + +namespace CultMath.Tests; + +/// +/// span_fbm and span_ridged (math.Span.cs): the octave stages of a warp chain over a span. At the identity +/// transform they are fbm_grad and ridged_grad; their gradient is the derivative of their value through the +/// stretch and the per-octave scaling; curvature bounds the Hessian of the field in q and fold the departure +/// of a ridged sum from its midpoint branch, at every point of every span the tests draw, in the regime +/// where the local third-derivative term is what holds the bound and in the one where the global pin is. +/// Lines starting IV-REPORT carry the numbers the cut report quotes. +/// +public sealed class SpanStageTests +{ + private readonly ITestOutputHelper output; + + public SpanStageTests(ITestOutputHelper output) => this.output = output; + + private static float Uniform(System.Random random, float lo, float hi) => lo + (hi - lo) * random.NextSingle(); + + private static float3 Vector(System.Random random, float lo, float hi) => new(Uniform(random, lo, hi), Uniform(random, lo, hi), Uniform(random, lo, hi)); + + private static float3 UnitVector(System.Random random) + { + float3 v; + do + { + v = Vector(random, -1.0f, 1.0f); + } + while (dot(v, v) is > 1.0f or < 0.01f); + return normalize(v); + } + + private static float LogUniform(System.Random random, float lo, float hi) => MathF.Exp(Uniform(random, MathF.Log(lo), MathF.Log(hi))); + + private static float Signed(System.Random random, float magnitude) => random.Next(2) == 0 ? magnitude : -magnitude; + + private static readonly float3 None = new(0.0f, 0.0f, 0.0f); + + private static double L1(double[] v) => Math.Abs(v[0]) + Math.Abs(v[1]) + Math.Abs(v[2]); + + // One draw of the stage parameters: every one of them off its identity value, over the ranges the stage + // takes in use (stage-parameter-range): |frequency| 1e-3..10, stretch 1e-2..1e2, |lacunarity| 0.5..3, + // |gain| 0.1..1.2, the last three and frequency with random signs where a sign is meaningful, + // octaveStep nonzero in every component. + internal readonly record struct Stage(SpanStage S, int Octaves, float Lacunarity, float Gain) + { + public static Stage Draw(System.Random random, int maxOctaves = 8, int minOctaves = 1) => new( + new SpanStage + { + frequency = Signed(random, LogUniform(random, 1.0e-3f, 10.0f)), + stretch = LogUniform(random, 1.0e-2f, 1.0e2f), + axis = UnitVector(random) * Uniform(random, 0.5f, 3.0f), + shift = Vector(random, -8.0f, 8.0f), + offset = Vector(random, -8.0f, 8.0f), + octaveStep = new float3(Signed(random, Uniform(random, 0.1f, 3.0f)), Signed(random, Uniform(random, 0.1f, 3.0f)), Signed(random, Uniform(random, 0.1f, 3.0f))), + }, + random.Next(minOctaves, maxOctaves + 1), + Signed(random, Uniform(random, 0.5f, 3.0f)), + Signed(random, Uniform(random, 0.1f, 1.2f))); + + // A draw whose octave coordinates stay under `limit` for every q with |q|_1 <= qL1: the fastest + // octave's |f_o| |M| is capped by rejection. For the derivative checks, where float rounding of the + // coordinate must not swamp a difference quotient. + public static Stage DrawSmooth(System.Random random, float limit, float qL1, int maxOctaves = 8, int minOctaves = 1) + { + while (true) + { + var stage = Draw(random, maxOctaves, minOctaves); + var worst = 0.0; + for (var o = 0; o < stage.Octaves; o++) + worst = Math.Max(worst, Math.Abs(stage.Scale(o)) * (stage.Norm() * qL1 + L1(Components(stage.S.shift))) + L1(Components(stage.S.offset)) + o * L1(Components(stage.S.octaveStep))); + if (worst < limit) + return stage; + } + } + + public SpanNoise Fbm(SpanPath path) => span_fbm(path, S, Octaves, Lacunarity, Gain); + + public SpanNoise Ridged(SpanPath path) => span_ridged(path, S, Octaves, Lacunarity, Gain); + + public SpanNoise Fbm(SpanPath path, int octaves) => span_fbm(path, S, octaves, Lacunarity, Gain); + + public SpanNoise Ridged(SpanPath path, int octaves) => span_ridged(path, S, octaves, Lacunarity, Gain); + + // M = frequency (I + (1/stretch - 1) a a^T) in double, a the normalised axis (none for a zero axis). + public double[,] Matrix() + { + var m = new double[3, 3]; + var a = Components(S.axis); + var length = Math.Sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2]); + for (var i = 0; i < 3; i++) + for (var j = 0; j < 3; j++) + m[i, j] = S.frequency * ((i == j ? 1.0 : 0.0) + (length > 0.0 && S.stretch != 1.0f ? (1.0 / S.stretch - 1.0) * a[i] * a[j] / (length * length) : 0.0)); + return m; + } + + // Octave o's noise-space point for the span point q, in double from the same inputs. + public double[] PointD(float3 q, int octave) + { + var m = Matrix(); + var scale = Math.Pow(Lacunarity, octave); + var x = new double[3]; + var qv = Components(q); + var shift = Components(S.shift); + var offset = Components(S.offset); + var step = Components(S.octaveStep); + for (var i = 0; i < 3; i++) + { + var mq = 0.0; + for (var j = 0; j < 3; j++) + mq += m[i, j] * qv[j]; + x[i] = scale * (mq + shift[i]) + offset[i] + octave * step[i]; + } + + return x; + } + + public float3 Point(float3 q, int octave) + { + var x = PointD(q, octave); + return new float3((float)x[0], (float)x[1], (float)x[2]); + } + + // S_o: the magnitudes octave o's coordinate roundings are relative to, plus the span's reach. + public double Magnitude(SpanPath path, int octave) + { + var m = Matrix(); + var qv = Components(path.midpoint); + var mq = new double[3]; + for (var i = 0; i < 3; i++) + for (var j = 0; j < 3; j++) + mq[i] += m[i, j] * qv[j]; + var scale = Math.Abs(Scale(octave)); + return scale * (L1(mq) + L1(Components(S.shift))) + L1(Components(S.offset)) + octave * L1(Components(S.octaveStep)) + + Math.Sqrt(3.0) * scale * Norm() * path.speed * path.halfLength; + } + + public double MaxMagnitude(SpanPath path) + { + var largest = 0.0; + for (var o = 0; o < Octaves; o++) + largest = Math.Max(largest, Magnitude(path, o)); + return largest; + } + + // Octave o as a stage of its own: one octave at the scaled frequency, shift and offset. + public Stage OneOctave(int octave) => new( + new SpanStage { frequency = S.frequency * (float)Scale(octave), stretch = S.stretch, axis = S.axis, shift = S.shift * (float)Scale(octave), offset = S.offset + (float)octave * S.octaveStep, octaveStep = None }, + 1, 1.0f, 1.0f); + + public double Amplitude(int octave) => Math.Pow(Gain, octave); + + public double Scale(int octave) => Math.Pow(Lacunarity, octave); + + // The spectral norm of M: frequency times the larger of 1 and 1/stretch. + public double Norm() => Math.Abs(S.frequency) * Math.Max(1.0, 1.0 / S.stretch); + } + + private static double[] Components(float3 v) => new double[] { v.x, v.y, v.z }; + + private static SpanPath PathAt(float3 q) => new() { midpoint = q, velocity = None, speed = 0.0f, acceleration = 0.0f, halfLength = 0.0f }; + + // A span through q: velocity v, constant acceleration c of norm `acceleration`, so q(t) = q + v t + c t^2 / 2; + // the speed bound is |v| plus what c can add over halfLength. + internal readonly record struct Span(SpanPath Path, float3 Acceleration) + { + public static Span Draw(System.Random random, float3 q, float halfLength, float acceleration) + { + var velocity = UnitVector(random) * Uniform(random, 0.2f, 3.0f); + return new Span(new SpanPath { midpoint = q, velocity = velocity, speed = length(velocity) + acceleration * halfLength, acceleration = acceleration, halfLength = halfLength }, UnitVector(random) * acceleration); + } + + public float3 At(float t) => Path.midpoint + Path.velocity * t + Acceleration * (0.5f * t * t); + } + + // The operator norm of a symmetric 3x3 matrix (entries in row-major order): the larger |eigenvalue|. + private static double SymmetricNorm(double[] a) + { + var p1 = a[1] * a[1] + a[2] * a[2] + a[5] * a[5]; + var q = (a[0] + a[4] + a[8]) / 3.0; + if (p1 == 0.0) + return Math.Max(Math.Abs(a[0]), Math.Max(Math.Abs(a[4]), Math.Abs(a[8]))); + var p2 = (a[0] - q) * (a[0] - q) + (a[4] - q) * (a[4] - q) + (a[8] - q) * (a[8] - q) + 2.0 * p1; + var s = Math.Sqrt(p2 / 6.0); + var b = new[] { (a[0] - q) / s, a[1] / s, a[2] / s, a[3] / s, (a[4] - q) / s, a[5] / s, a[6] / s, a[7] / s, (a[8] - q) / s }; + var r = Math.Clamp((b[0] * (b[4] * b[8] - b[5] * b[7]) - b[1] * (b[3] * b[8] - b[5] * b[6]) + b[2] * (b[3] * b[7] - b[4] * b[6])) / 2.0, -1.0, 1.0); + var phi = Math.Acos(r) / 3.0; + return Math.Max(Math.Abs(q + 2.0 * s * Math.Cos(phi)), Math.Abs(q + 2.0 * s * Math.Cos(phi + 2.0 * Math.PI / 3.0))); + } + + // The exact Hessian in q of the stage field at span point q (signed per octave for a ridged sum), by the + // chain rule from the double kernel's Hessian: sum over octaves of weight_o f_o^2 M H_o M, with every + // octave point computed in double from the same SpanStage. + private static double[] FieldHessian(Stage stage, float3 q, bool ridged) + { + var m = stage.Matrix(); + var total = new double[9]; + for (var o = 0; o < stage.Octaves; o++) + { + var x = stage.PointD(q, o); + var h = NoiseBoundTests.HessianDouble(x[0], x[1], x[2]); + var weight = stage.Amplitude(o) * stage.Scale(o) * stage.Scale(o) * (ridged ? -Math.Sign(NoiseBoundTests.ValueDouble(x[0], x[1], x[2])) : 1.0); + for (var i = 0; i < 3; i++) + for (var j = 0; j < 3; j++) + { + var sum = 0.0; + for (var k = 0; k < 3; k++) + for (var l = 0; l < 3; l++) + sum += m[i, k] * h[k * 3 + l] * m[l, j]; + total[i * 3 + j] += weight * sum; + } + } + + return total; + } + + private static bool SameBits(float4 a, float4 b) => + BitConverter.SingleToInt32Bits(a.x) == BitConverter.SingleToInt32Bits(b.x) && BitConverter.SingleToInt32Bits(a.y) == BitConverter.SingleToInt32Bits(b.y) + && BitConverter.SingleToInt32Bits(a.z) == BitConverter.SingleToInt32Bits(b.z) && BitConverter.SingleToInt32Bits(a.w) == BitConverter.SingleToInt32Bits(b.w); + + internal static IEnumerable Points(System.Random random) + { + for (var k = 0; k < 200; k++) + yield return Vector(random, -60.0f, 60.0f); + // The simplex tie set: x = y = z, and integer lattice points. + for (var k = 0; k < 30; k++) + { + var t = Uniform(random, -50.0f, 50.0f); + yield return new float3(t, t, t); + yield return new float3(random.Next(-40, 41), random.Next(-40, 41), random.Next(-40, 41)); + } + } + + /// + /// The exact reference the enclosure tests lean on is the kernel: the double ValueDouble is snoise to + /// within float rounding at small coordinates, so a sign taken from it is the kernel's sign. + /// + [Fact] + public void ExactReferenceIsTheKernel() + { + var random = new System.Random(0xE4AC7); + for (var k = 0; k < 300; k++) + { + var p = Vector(random, -20.0f, 20.0f); + Assert.InRange(NoiseBoundTests.ValueDouble(p.x, p.y, p.z) - snoise(p), -2.0e-4, 2.0e-4); + } + } + + /// + /// At SpanStage.Identity (also with an axis, stretch 1) and zero shift, offset and octaveStep, the field of + /// span_fbm and span_ridged is fbm_grad's and ridged_grad's, bit for bit, for 0 to 20 octaves (the clamp + /// included), every lacunarity and gain drawn, over random and simplex-tie points: any change to the octave + /// loop's order, scaling or accumulation, and any bit the rounding allowances put in the field, fails. + /// + [Fact] + public void SpanStagesAtIdentityAreFbmAndRidged() + { + var random = new System.Random(0x57A6E1); + foreach (var p in Points(random)) + { + var octaves = random.Next(0, 21); + var lacunarity = Uniform(random, 1.4f, 2.6f); + var gain = Uniform(random, 0.3f, 0.8f); + var stage = SpanStage.Identity; + if (random.Next(2) == 1) + stage.axis = UnitVector(random) * 2.0f; + var path = new SpanPath { midpoint = p, velocity = UnitVector(random), speed = 1.0f, acceleration = 0.5f, halfLength = 0.25f }; + var fbm = span_fbm(path, stage, octaves, lacunarity, gain); + var ridged = span_ridged(path, stage, octaves, lacunarity, gain); + Assert.True(SameBits(fbm.field, fbm_grad(p, octaves, lacunarity, gain)), $"span_fbm at {p}, {octaves} octaves: {fbm.field} is not fbm_grad {fbm_grad(p, octaves, lacunarity, gain)}"); + Assert.True(SameBits(ridged.field, ridged_grad(p, octaves, lacunarity, gain)), $"span_ridged at {p}, {octaves} octaves: {ridged.field} is not ridged_grad {ridged_grad(p, octaves, lacunarity, gain)}"); + Assert.Equal(0.0f, fbm.fold); + } + } + + /// + /// The gradient is the derivative of the value through the whole transform: with every parameter off its + /// identity (frequency of either sign, stretch both ways, axis, shift, offset, octaveStep, lacunarity and + /// gain of either sign, 4 to 8 octaves) field.xyz equals the fourth-order central difference of field.w + /// along each axis, within a tolerance built from the third-derivative pin (truncation) and float32 + /// rounding of the coordinates, and both agree with an independent octave sum. A dropped M or lacunarity + /// factor, M applied to the wrong side, a clamp on frequency, stretch or the octaveStep index, or a dropped + /// sign (abs of the scale or the amplitude) moves the field by the gradient itself. + /// + [Theory] + [InlineData(false)] + [InlineData(true)] + public void SpanStageGradientMatchesDifferences(bool ridged) + { + var random = new System.Random(ridged ? 0x6A1D : 0x6A1C); + var worst = 0.0; + var checkedCases = 0; + var spans = 0; + for (var k = 0; k < 6000 && spans < 80; k++) + { + var stage = Stage.DrawSmooth(random, 300.0f, 9.0f, 8, 4); + var q = Vector(random, -3.0f, 3.0f); + // The fold's crease at n = 0 is not differentiable: keep every octave's stencil clear of it. + if (ridged && Enumerable.Range(0, stage.Octaves).Any(o => abs(snoise(stage.Point(q, o))) < 0.15f)) + continue; + spans++; + var span = Span.Draw(random, q, 0.1f, 0.1f); + SpanNoise At(float3 p) + { + var path = span.Path; + path.midpoint = p; + return ridged ? stage.Ridged(path) : stage.Fbm(path); + } + + var centre = At(q); + // The value and gradient from an independent assembly of the octaves: pins shift, offset, octaveStep, + // M, lacunarity and gain themselves, which a value/gradient self-consistency check cannot see. + var matrix = stage.Matrix(); + var referenceValue = 0.0; + var referenceGradient = new double[3]; + for (var o = 0; o < stage.Octaves; o++) + { + var n = snoise_grad(stage.Point(q, o)); + var sign = ridged ? -Math.Sign(n.w) : 1.0; + referenceValue += stage.Amplitude(o) * (ridged ? 1.0 - Math.Abs(n.w) : n.w); + var g = new double[] { n.x, n.y, n.z }; + for (var i = 0; i < 3; i++) + for (var j = 0; j < 3; j++) + referenceGradient[i] += sign * stage.Amplitude(o) * stage.Scale(o) * matrix[i, j] * g[j]; + } + + var scale = 0.0; + for (var o = 0; o < stage.Octaves; o++) + scale += Math.Abs(stage.Amplitude(o) * stage.Scale(o)) * stage.Norm(); + var amplitudes = Enumerable.Range(0, stage.Octaves).Sum(o => Math.Abs(stage.Amplitude(o))); + Assert.True(Math.Abs(referenceValue - centre.field.w) <= 2.0e-3 * (1.0 + amplitudes), $"stage {stage}: the value is {centre.field.w:R}, an independent octave sum gives {referenceValue:R}"); + for (var i = 0; i < 3; i++) + Assert.True(Math.Abs(referenceGradient[i] - centre.field[i]) <= 1.0e-2 * (1.0 + scale), $"stage {stage}: gradient {"xyz"[i]} is {centre.field[i]:R}, an independent octave sum gives {referenceGradient[i]:R}"); + // A step of 0.02 in the noise space of the fastest octave. + var fastest = stage.Norm() * Enumerable.Range(0, stage.Octaves).Max(o => Math.Abs(stage.Scale(o))); + var h = (float)(0.02 / fastest); + for (var axis = 0; axis < 3; axis++) + { + var e = new float3(axis == 0 ? h : 0.0f, axis == 1 ? h : 0.0f, axis == 2 ? h : 0.0f); + double F(float3 p) => At(p).field.w; + var step = (double)(q + e)[axis] - (q - e)[axis]; + var d1 = (F(q + e) - F(q - e)) / step; + var d2 = (F(q + e * 2.0f) - F(q - e * 2.0f)) / ((double)(q + e * 2.0f)[axis] - (q - e * 2.0f)[axis]); + var estimate = (4.0 * d1 - d2) / 3.0; + var tolerance = 4.0e-2 * scale; + var error = Math.Abs(estimate - centre.field[axis]); + worst = Math.Max(worst, error / scale); + Assert.True(error <= tolerance, $"stage {stage}: d/d{"xyz"[axis]} of the value is {estimate:R} by differences and {centre.field[axis]:R} by span_{(ridged ? "ridged" : "fbm")} (tolerance {tolerance:R})"); + checkedCases++; + } + } + + Assert.True(checkedCases >= 120, $"only {checkedCases} derivatives were compared"); + output.WriteLine($"IV-REPORT span gradient ({(ridged ? "ridged" : "fbm")}): {checkedCases} derivatives, worst error {worst:R} of the summed octave gain"); + } + + /// + /// stretch 1, or a zero axis, is the isotropic stage bit for bit whatever the other of the two is; a non-unit + /// axis is its normalisation (the tested axes normalise exactly); a stretch that does apply changes the + /// result. + /// + [Fact] + public void SpanStageStretchAndAxis() + { + var random = new System.Random(0x57E7C4); + for (var k = 0; k < 60; k++) + { + var stage = Stage.DrawSmooth(random, 300.0f, 15.0f, 3, 3); + var q = Vector(random, -5.0f, 5.0f); + var span = Span.Draw(random, q, 0.2f, 0.3f); + var plain = stage with { S = stage.S with { stretch = 1.0f } }; + var noAxis = stage with { S = stage.S with { axis = None, stretch = 3.0f } }; + var reference = plain.Ridged(span.Path); + var isotropic = (plain with { S = plain.S with { axis = None } }).Ridged(span.Path); + var viaNoAxis = noAxis.Ridged(span.Path); + var narrow = (stage with { S = stage.S with { axis = None, stretch = 0.25f } }).Ridged(span.Path); + Assert.True(SameBits(reference.field, isotropic.field) && reference.curvature == isotropic.curvature && reference.fold == isotropic.fold, "stretch 1 with an axis differs from no axis"); + Assert.True(SameBits(isotropic.field, viaNoAxis.field) && isotropic.curvature == viaNoAxis.curvature && isotropic.fold == viaNoAxis.fold, "a zero axis with stretch 3 differs from the isotropic stage"); + Assert.True(SameBits(isotropic.field, narrow.field) && isotropic.curvature == narrow.curvature && isotropic.fold == narrow.fold, "a zero axis with stretch 0.25 differs from the isotropic stage"); + + var unit = stage with { S = stage.S with { axis = new float3(0.0f, 1.0f, 0.0f) } }; + var scaled = stage with { S = stage.S with { axis = new float3(0.0f, 2.0f, 0.0f) } }; + var a = unit.Fbm(span.Path); + var b = scaled.Fbm(span.Path); + Assert.True(SameBits(a.field, b.field) && a.curvature == b.curvature, "a non-unit axis differs from its normalisation"); + var stretched = unit.Fbm(span.Path); + Assert.False(SameBits(stretched.field, (unit with { S = unit.S with { stretch = 1.0f } }).Fbm(span.Path).field), "a stretch of " + unit.S.stretch + " did not change the field"); + } + } + + // The coordinate bands the enclosure tests draw: a large offset (0 keeps the drawn one) lifts S_o through + // the decades; Bucket names the decade a span's largest S_o is in. + private static readonly float[] OffsetScales = { 0.0f, 40.0f, 400.0f, 4.0e3f, 4.0e4f, 4.0e5f, 4.0e6f }; + + private static int Bucket(double magnitude) => magnitude < 1.0e2 ? 0 : magnitude < 1.0e3 ? 1 : magnitude < 1.0e4 ? 2 : magnitude < 1.0e5 ? 3 : magnitude < 1.0e6 ? 4 : 5; + + // byStep lifts the coordinate through octaveStep (octave o adds o octaveStep) instead of offset. + private static Stage Banded(System.Random random, float offsetScale, int octaves, bool byStep) + { + var stage = Stage.Draw(random, octaves); + if (offsetScale > 0.0f) + stage = stage with { S = byStep ? stage.S with { octaveStep = Vector(random, -offsetScale, offsetScale) } : stage.S with { offset = Vector(random, -offsetScale, offsetScale) } }; + return stage; + } + + private static void CheckCurvature(Stage stage, bool ridged, Span span, SpanNoise result, int samples, ref double tightest, ref int checkedPoints) + { + for (var s = 0; s < samples; s++) + { + var t = span.Path.halfLength * (2.0f * s / (samples - 1) - 1.0f); + var norm = SymmetricNorm(FieldHessian(stage, span.At(t), ridged)); + Assert.True(norm <= result.curvature * (1.0 + 1.0e-3), $"stage {stage}, span {span}: the Hessian norm at t = {t:R} is {norm:R}, above curvature {result.curvature:R}"); + tightest = Math.Min(tightest, result.curvature > 0.0 ? 1.0 - norm / result.curvature : 1.0); + checkedPoints++; + } + } + + /// + /// span-bounds-enclose, curvature: over seeded spans the operator norm of the exact field q-Hessian (chain + /// rule from the double kernel's Hessian, every octave point in double, M and the octave scales) at 64 + /// points per span never exceeds curvature, in the local regime (short spans, where the third-derivative + /// term is the bound) and the global one (long spans, where SNOISE_HESSIAN is), and in every coordinate + /// band from S_o under 1e2 to over 1e6, where the float32 kernel is no longer the exact one; at + /// halfLength 0 curvature is the widened local tier, the Frobenius norm of the midpoint Hessians plus + /// e_h, capped at the pin, scaled by amplitude, f_o^2 and |M|^2; and a span through MeasureHessian's + /// witness stays enclosed in 200 directions, which the Frobenius norm at the midpoint alone does not + /// guarantee. + /// + [Theory] + [InlineData(false)] + [InlineData(true)] + public void SpanCurvatureEnclosesTheHessianAlongTheSpan(bool ridged) + { + var random = new System.Random(ridged ? 0xC0DE2 : 0xC0DE1); + var tightest = 1.0; + var checkedPoints = 0; + var buckets = new int[6]; + foreach (var offsetScale in OffsetScales) + foreach (var halfLength in new[] { 0.02f, 0.5f, 8.0f }) + for (var k = 0; k < 8; k++) + { + var stage = Banded(random, offsetScale, 3, k % 2 == 1); + var span = Span.Draw(random, Vector(random, -30.0f, 30.0f), halfLength, Uniform(random, 0.0f, 2.0f)); + var result = ridged ? stage.Ridged(span.Path) : stage.Fbm(span.Path); + buckets[Bucket(stage.MaxMagnitude(span.Path))]++; + CheckCurvature(stage, ridged, span, result, 64, ref tightest, ref checkedPoints); + } + + Assert.True(buckets.All(count => count >= 3), $"the coordinate bands drawn are {string.Join(", ", buckets)} spans: a band is not reached"); + + // halfLength 0: the widened local tier. + for (var k = 0; k < 40; k++) + { + var stage = Stage.DrawSmooth(random, 100.0f, 90.0f, 3); + var q = Vector(random, -30.0f, 30.0f); + var span = Span.Draw(random, q, 0.0f, 1.0f); + var result = ridged ? stage.Ridged(span.Path) : stage.Fbm(span.Path); + var expected = 0.0; + for (var o = 0; o < stage.Octaves; o++) + { + var h = snoise_hessian(stage.Point(q, o)); + var frobenius = Math.Sqrt(Enumerable.Range(0, 9).Sum(i => (double)h[i / 3][i % 3] * h[i / 3][i % 3])); + var slack = Math.Pow(2.0, -10) + SNOISE_THIRD * Math.Pow(2.0, -20) * stage.Magnitude(span.Path, o); + expected += Math.Abs(stage.Amplitude(o)) * stage.Scale(o) * stage.Scale(o) * stage.Norm() * stage.Norm() * Math.Min(SNOISE_HESSIAN, frobenius + slack); + } + + Assert.InRange(result.curvature, expected * (1.0 - 1.0e-3), expected * (1.0 + 1.0e-3)); + } + + // Through the Hessian witness: one octave at the identity transform, the span's midpoint 0.1 to 0.5 away, + // moving toward the witness at speed 1, so the witness lies on the span. + var witness = new float3(-13.7920685f, -9.672134f, 61.563934f); + var identity = new Stage(SpanStage.Identity, 1, 2.0f, 0.5f); + var through = 0.0; + for (var k = 0; k < 200; k++) + { + var u = UnitVector(random); + var distance = Uniform(random, 0.1f, 0.5f); + var span = new Span(new SpanPath { midpoint = witness + u * distance, velocity = -u, speed = 1.0f, acceleration = 0.0f, halfLength = 0.6f }, None); + var result = ridged ? identity.Ridged(span.Path) : identity.Fbm(span.Path); + CheckCurvature(identity, ridged, span, result, 64, ref tightest, ref checkedPoints); + through = Math.Max(through, SymmetricNorm(FieldHessian(identity, witness, ridged))); + } + + Assert.True(through > 40.0, $"the witness Hessian norm is {through:R}: the through-the-witness spans do not reach the curvature"); + output.WriteLine($"IV-REPORT span curvature ({(ridged ? "ridged" : "fbm")}): {checkedPoints} points enclosed, bands {string.Join("/", buckets)}, least relative slack {tightest:R}, witness norm {through:R}"); + } + + /// + /// local-tier-coefficients-unpinned: a fixed span (found by an audit, kept) at SpanStage.Identity, one + /// octave, where the Hessian's operator norm at the end of the span (11.768) exceeds the local tier built + /// with half of SNOISE_THIRD's term (about 10.1) and the exact norm along the 64 sampled points stays + /// under curvature (12.526 before the allowance). + /// + [Theory] + [InlineData(false)] + [InlineData(true)] + public void SpanCurvatureEnclosesThePinnedRankOneSpan(bool ridged) + { + var stage = new Stage(SpanStage.Identity, 1, 2.0f, 0.5f); + var span = new Span(new SpanPath { midpoint = new float3(144.93297f, -286.08800f, -53.59360f), velocity = new float3(-0.02139f, 0.17122f, -0.98500f), speed = 1.0f, acceleration = 0.0f, halfLength = 0.01f }, None); + var result = ridged ? stage.Ridged(span.Path) : stage.Fbm(span.Path); + var tightest = 1.0; + var points = 0; + CheckCurvature(stage, ridged, span, result, 64, ref tightest, ref points); + var end = SymmetricNorm(FieldHessian(stage, span.At(span.Path.halfLength), ridged)); + Assert.True(end > 10.5 && result.curvature >= end, $"the end-of-span norm is {end:R} and curvature {result.curvature:R}: the span no longer pins the local tier"); + } + + // Octave o's amplitude-weighted value (n_o gain^o, or gain^o (1 - |n_o|) for ridged) at `point`, read from + // production: the difference of span_fbm's (span_ridged's) field at o + 1 and at o octaves. + private static double[] OctaveValues(Stage stage, float3 point, bool ridged) + { + var path = PathAt(point); + var values = new double[stage.Octaves]; + var previous = 0.0; + for (var k = 1; k <= stage.Octaves; k++) + { + var total = ridged ? stage.Ridged(path, k).field.w : stage.Fbm(path, k).field.w; + values[k - 1] = total - previous; + previous = total; + } + + return values; + } + + // The departure of the octave sum from its midpoint branch, sum_o gain^o (s_o n_o - |n_o|) with s_o the + // sign of n_o at the midpoint, peaked over `samples` points of the span: Float for the field span_ridged + // and span_fbm themselves evaluate (read octave by octave through OctaveValues), Exact for the double + // kernel. Rounding bounds what the float differences of the accumulating sums can lose. + private static (double Float, double Exact, double Rounding) BranchDeparture(Stage stage, Span span, int samples) + { + var amplitudes = new float[stage.Octaves]; + var weight = 1.0f; + var sum = 0.0; + for (var o = 0; o < stage.Octaves; o++) + { + amplitudes[o] = weight; + sum += Math.Abs(weight); + weight *= stage.Gain; + } + + var middle = OctaveValues(stage, span.Path.midpoint, false); + var signs = Enumerable.Range(0, stage.Octaves).Select(o => Math.Sign(middle[o]) * Math.Sign(amplitudes[o])).ToArray(); + var peakFloat = 0.0; + var peakExact = 0.0; + for (var s = 0; s < samples; s++) + { + var t = span.Path.halfLength * (2.0f * s / (samples - 1) - 1.0f); + var point = span.At(t); + var n = OctaveValues(stage, point, false); + var r = OctaveValues(stage, point, true); + var departureFloat = 0.0; + var departureExact = 0.0; + for (var o = 0; o < stage.Octaves; o++) + { + departureFloat += signs[o] * n[o] - (amplitudes[o] - r[o]); + var x = stage.PointD(point, o); + var exact = NoiseBoundTests.ValueDouble(x[0], x[1], x[2]); + departureExact += stage.Amplitude(o) * (signs[o] * exact - Math.Abs(exact)); + } + + peakFloat = Math.Max(peakFloat, Math.Abs(departureFloat)); + peakExact = Math.Max(peakExact, Math.Abs(departureExact)); + } + + return (peakFloat, peakExact, stage.Octaves * Math.Pow(2.0, -22) * sum); + } + + // Newton steps from q to the exact kernel's n = 0 (the float gradient steers, the double value decides). + private static float3 ProjectToZero(float3 q) + { + for (var iteration = 0; iteration < 4; iteration++) + { + var n = snoise_grad(q); + var gg = (double)n.x * n.x + (double)n.y * n.y + (double)n.z * n.z; + if (gg < 1.0e-12) + break; + var v = NoiseBoundTests.ValueDouble(q.x, q.y, q.z); + q = new float3((float)(q.x - v * n.x / gg), (float)(q.y - v * n.y / gg), (float)(q.z - v * n.z / gg)); + } + + return q; + } + + /// + /// span-bounds-enclose, fold: for span_ridged, the value's departure from the midpoint branch (each + /// octave's gain^o (s n - |n|), s the sign of n at the midpoint, summed) never exceeds fold at 64 points of + /// every span, measured twice: for the float field span_ridged itself evaluates at the path point, and for + /// the exact octave sum (double kernel); in every coordinate band from S_o under 1e2 to over 1e6. fold is + /// positive on spans that do cross zero (and the departure there is not trivially zero), exactly 0 for + /// span_fbm and when no octave can reach zero. + /// + [Fact] + public void SpanFoldEnclosesTheBranchDeviation() + { + var random = new System.Random(0xF01D); + var crossing = 0; + var largest = 0.0; + var tightestFloat = 1.0; + var tightestExact = 1.0; + var buckets = new int[6]; + foreach (var offsetScale in OffsetScales) + for (var k = 0; k < 60; k++) + { + var stage = Banded(random, offsetScale, 3, k / 2 % 2 == 1); + var halfLength = new[] { 0.02f, 0.1f, 0.5f, 2.0f }[random.Next(4)]; + // Draw midpoints with small noise values so spans cross zero, as well as arbitrary ones. + var q = Vector(random, -30.0f, 30.0f); + if (k % 2 == 0) + { + var best = q; + var smallest = float.MaxValue; + for (var trial = 0; trial < 40; trial++) + { + var candidate = Vector(random, -30.0f, 30.0f); + var value = abs(snoise(stage.Point(candidate, 0))); + if (value < smallest) + (smallest, best) = (value, candidate); + } + + q = best; + } + + var span = Span.Draw(random, q, halfLength, Uniform(random, 0.0f, 2.0f)); + buckets[Bucket(stage.MaxMagnitude(span.Path))]++; + var fold = stage.Ridged(span.Path).fold; + Assert.Equal(0.0f, stage.Fbm(span.Path).fold); + var (peakFloat, peakExact, rounding) = BranchDeparture(stage, span, 64); + Assert.True(peakFloat <= fold * (1.0 + 1.0e-3) + 1.0e-6 + rounding, $"stage {stage}, span {span}: the float branch departure is {peakFloat:R}, above fold {fold:R}"); + Assert.True(peakExact <= fold * (1.0 + 1.0e-3) + 1.0e-6, $"stage {stage}, span {span}: the exact branch departure is {peakExact:R}, above fold {fold:R}"); + if (fold > 0.0) + crossing++; + largest = Math.Max(largest, Math.Max(peakFloat, peakExact)); + if (fold > 0.0 && peakFloat > 0.0) + tightestFloat = Math.Min(tightestFloat, peakFloat / fold); + if (fold > 0.0 && peakExact > 0.0) + tightestExact = Math.Min(tightestExact, peakExact / fold); + } + + Assert.True(buckets.All(count => count >= 3), $"the coordinate bands drawn are {string.Join(", ", buckets)} spans: a band is not reached"); + Assert.True(crossing >= 100, $"only {crossing} of {OffsetScales.Length * 60} spans had a positive fold"); + Assert.True(largest > 0.1, $"the largest branch departure drawn is {largest:R}: the check has no teeth"); + output.WriteLine($"IV-REPORT span fold: {crossing} spans with fold > 0, bands {string.Join("/", buckets)}, largest departure {largest:R}, tightest departure / fold {tightestFloat:R} (float) {tightestExact:R} (exact)"); + + // An octave that cannot reach zero: a midpoint where |n| is large and a short span give fold exactly 0. + var calm = new Stage(SpanStage.Identity, 1, 2.0f, 0.5f); + var found = 0; + for (var k = 0; k < 400 && found < 20; k++) + { + var q = Vector(random, -30.0f, 30.0f); + if (abs(snoise(q)) < 0.6f) + continue; + found++; + Assert.Equal(0.0f, calm.Ridged(new SpanPath { midpoint = q, velocity = new float3(1.0f, 0.0f, 0.0f), speed = 1.0f, acceleration = 0.0f, halfLength = 0.01f }).fold); + } + + Assert.True(found >= 5, $"only {found} calm midpoints found"); + } + + /// + /// The Gl reach term over a long span: a straight path from rest along -s grad n (s the sign of n at the + /// midpoint), identity stage, one octave, half-length 6, found by an audit and kept. The path reaches + /// n = 0 and the branch departure (about 0.387) is covered only if the gradient bound grows by + /// Hl nu halfLength over the span; a reach that shrinks with halfLength (nu / halfLength) puts fold at + /// 0.384 and fails here, as does any reach right only for half-lengths up to sqrt 2. + /// + [Fact] + public void SpanFoldEnclosesTheLongPathFromRest() + { + var stage = new Stage(SpanStage.Identity, 1, 2.0f, 0.5f); + const float halfLength = 6.0f; + const float acceleration = 0.0055555557f; + var span = new Span(new SpanPath { midpoint = new float3(7.634474f, 24.228996f, -3.7595012f), velocity = None, speed = acceleration * halfLength, acceleration = acceleration, halfLength = halfLength }, new float3(-0.9375727f, -0.07116994f, 0.3404294f) * acceleration); + var fold = stage.Ridged(span.Path).fold; + var (departureFloat, departureExact, rounding) = BranchDeparture(stage, span, 129); + Assert.True(Math.Max(departureFloat, departureExact) > 0.3, $"the branch departure is {Math.Max(departureFloat, departureExact):R}: the span no longer crosses zero"); + Assert.True(departureFloat <= fold * (1.0 + 1.0e-3) + 1.0e-6 + rounding, $"the float branch departure is {departureFloat:R}, above fold {fold:R}"); + Assert.True(departureExact <= fold * (1.0 + 1.0e-3) + 1.0e-6, $"the exact branch departure is {departureExact:R}, above fold {fold:R}"); + } + + /// + /// A midpoint within float noise of n = 0, on a path that does not move: halfLength 0 (a point), and + /// halfLength 1 under a speed bound far above the path's motion (speed is an upper bound, so that is a + /// legal SpanPath, and composed chains pass loose ones). The exact kernel's sign at such a midpoint is + /// opposite to the float one in about a fifth of the draws, so fold must still cover the exact + /// departure there: a fold forced to 0 at halfLength 0, or an S_o whose reach term drives e_n below + /// zero under the loose bound, leaves it 0 and fails. span_fbm's fold is 0 throughout. + /// Near the origin S_o is tiny (scales 1e-4 and 1e-2 of the coordinate), and only the value allowance's + /// absolute term 2^-14 carries the kernel's own rounding: the exact departure there is the coordinate's + /// rounding times the gradient (1e-11 to 1e-9), so the exact check's additive tolerance is 1e-13, under it. + /// A larger tolerance absorbs a dropped absolute term whole. + /// + [Theory] + [InlineData(false)] + [InlineData(true)] + public void SpanFoldEnclosesTheExactBranchAtANearZeroMidpoint(bool loose) + { + var random = new System.Random(loose ? 0x100E : 0x4A11); + var stage = new Stage(SpanStage.Identity, 1, 2.0f, 0.5f); + var crossing = 0; + foreach (var scale in new[] { 1.0e-4f, 1.0e-2f, 30.0f, 300.0f, 3000.0f }) + for (var k = 0; k < 300; k++) + { + var q = ProjectToZero(Vector(random, -scale, scale)); + var speed = loose ? 4.0f * (abs(q.x) + abs(q.y) + abs(q.z) + 20.0f) : 0.0f; + var span = new Span(new SpanPath { midpoint = q, velocity = None, speed = speed, acceleration = 0.0f, halfLength = loose ? 1.0f : 0.0f }, None); + var fold = stage.Ridged(span.Path).fold; + var (departureFloat, departureExact, rounding) = BranchDeparture(stage, span, 2); + Assert.Equal(0.0f, stage.Fbm(span.Path).fold); + Assert.True(departureExact <= fold * (1.0 + 1.0e-3) + 1.0e-13, $"midpoint {q}, speed {speed:R}: the exact branch departure is {departureExact:R}, above fold {fold:R}"); + Assert.True(departureFloat <= fold * (1.0 + 1.0e-3) + 1.0e-9 + rounding, $"midpoint {q}, speed {speed:R}: the float branch departure is {departureFloat:R}, above fold {fold:R}"); + if (departureExact > 0.0) + crossing++; + } + + Assert.True(crossing >= 80, $"only {crossing} of 1500 midpoints had an exact sign opposite to the float one: the check has no teeth"); + } + + /// + /// The step term of S_o, alone: an octaveStep of random direction and magnitude 1e3 to 1e5 (log-uniform) at + /// the identity stage, two octaves, the midpoint moved until octave 1's coordinate (2 q + step) sits on + /// the kernel's n = 0 (a Newton projection of that coordinate, then q = (x - step) / 2). There the + /// coordinate's float rounding (ulp 0.004 to 0.008) is what separates the float kernel from the exact one, + /// and only |o octaveStep|_1 in S_o carries it: the exact branch departure stays within fold, span_fbm's + /// fold is 0, and at least 100 draws have an exact sign opposite to the float one. Without the step term + /// fold is the 2^-14 and the small-coordinate rounding alone, and the departure passes it. + /// + [Fact] + public void SpanFoldEnclosesTheExactBranchAtLargeOctaveSteps() + { + var random = new System.Random(0x57E9); + var crossing = 0; + for (var k = 0; k < 600; k++) + { + var step = UnitVector(random) * LogUniform(random, 1.0e3f, 1.0e5f); + var transform = SpanStage.Identity; + transform.octaveStep = step; + var stage = new Stage(transform, 2, 2.0f, 0.5f); + var q = (ProjectToZero(Vector(random, -30.0f, 30.0f) + step) - step) * 0.5f; + var span = new Span(new SpanPath { midpoint = q, velocity = None, speed = 0.0f, acceleration = 0.0f, halfLength = 0.0f }, None); + var fold = stage.Ridged(span.Path).fold; + var (_, departureExact, _) = BranchDeparture(stage, span, 2); + Assert.Equal(0.0f, stage.Fbm(span.Path).fold); + Assert.True(departureExact <= fold * (1.0 + 1.0e-3) + 1.0e-9, $"octaveStep {step}, midpoint {q}: the exact branch departure is {departureExact:R}, above fold {fold:R}"); + if (departureExact > 0.0) + crossing++; + } + + Assert.True(crossing >= 100, $"only {crossing} of 600 midpoints had an exact sign opposite to the float one: the check has no teeth"); + } + + /// + /// The allowance a span computes covers the float kernel's read at every point of its path: the identity + /// stage, the midpoint within |q|_inf 1, a velocity of random direction and speed 1 to 1e3 (log-uniform), + /// a halfLength 1 to 1e3, so path points lie out to about 1e6. At 16 points of the straight path + /// q + v t the value, the gradient's length and the Hessian's Frobenius norm of the float kernel are + /// within math.span_slack(math.span_rounding(...)) of the exact kernel's, the reach term of S_o included. + /// Teeth: the largest value error exceeds the allowance computed with nu = 0 by more than 10 times. + /// + [Fact] + public void SpanAllowanceCoversReadsAlongTheSpan() + { + var random = new System.Random(0x5EA4); + double worstValue = 0.0, worstGradient = 0.0, worstHessian = 0.0, teeth = 0.0; + for (var k = 0; k < 200; k++) + { + var q = Vector(random, -1.0f, 1.0f); + var speed = LogUniform(random, 1.0f, 1.0e3f); + var velocity = UnitVector(random) * speed; + var halfLength = LogUniform(random, 1.0f, 1.0e3f); + var slack = span_slack(span_rounding(1.0f, q, SpanStage.Identity, None, speed, halfLength)); + var midpointSlack = span_slack(span_rounding(1.0f, q, SpanStage.Identity, None, 0.0f, halfLength)); + for (var j = 0; j < 16; j++) + { + var x = q + velocity * (halfLength * (j / 7.5f - 1.0f)); + var value = NoiseBoundTests.ValueDouble(x.x, x.y, x.z); + var gradient = NoiseBoundTests.GradDouble(x.x, x.y, x.z); + var hessian = NoiseBoundTests.HessianDouble(x.x, x.y, x.z); + var read = snoise_grad(x); + var h = snoise_hessian(x); + var valueError = Math.Abs(read.w - value); + var gradientError = Math.Sqrt(Math.Pow(read.x - gradient[0], 2) + Math.Pow(read.y - gradient[1], 2) + Math.Pow(read.z - gradient[2], 2)); + var hessianError = Math.Sqrt(Math.Pow(h._m00 - hessian[0], 2) + Math.Pow(h._m01 - hessian[1], 2) + Math.Pow(h._m02 - hessian[2], 2) + + Math.Pow(h._m10 - hessian[3], 2) + Math.Pow(h._m11 - hessian[4], 2) + Math.Pow(h._m12 - hessian[5], 2) + + Math.Pow(h._m20 - hessian[6], 2) + Math.Pow(h._m21 - hessian[7], 2) + Math.Pow(h._m22 - hessian[8], 2)); + Assert.True(valueError <= slack.x, $"midpoint {q}, speed {speed:R}, halfLength {halfLength:R}, point {x}: the value error {valueError:R} is past the allowance {slack.x:R}"); + Assert.True(gradientError <= slack.y, $"midpoint {q}, speed {speed:R}, halfLength {halfLength:R}, point {x}: the gradient error {gradientError:R} is past the allowance {slack.y:R}"); + Assert.True(hessianError <= slack.z, $"midpoint {q}, speed {speed:R}, halfLength {halfLength:R}, point {x}: the Hessian error {hessianError:R} is past the allowance {slack.z:R}"); + worstValue = Math.Max(worstValue, valueError / slack.x); + worstGradient = Math.Max(worstGradient, gradientError / slack.y); + worstHessian = Math.Max(worstHessian, hessianError / slack.z); + teeth = Math.Max(teeth, valueError / midpointSlack.x); + } + } + + output.WriteLine($"IV-REPORT span allowance: largest fraction of e_n {worstValue:F3}, e_g {worstGradient:F3}, e_h {worstHessian:F3}; largest value error over the allowance without the reach {teeth:F1}"); + Assert.True(teeth > 10.0, $"the largest value error is only {teeth:F1} times the allowance without the reach: the check has no teeth"); + } + + /// + /// The fold's acceleration term, alone, at the identity stage and under a transform (frequency 2.5, stretch + /// 0.5, shift and offset): the midpoint velocity is zero and the acceleration points along the gradient + /// (in q), against the sign of n, so n reaches zero and crosses it on the way to the span's ends by + /// acceleration only. Without the acceleration term, with the gradient bound under the gradient the path + /// reaches, or with the transform's norm f_o |M| misplaced in it, the departure from the midpoint branch + /// exceeds fold. + /// + [Theory] + [InlineData(false)] + [InlineData(true)] + public void SpanFoldCoversAccelerationAlone(bool transformed) + { + var random = new System.Random(transformed ? 0xACCE2 : 0xACCE1); + var stage = transformed + ? new Stage(new SpanStage { frequency = 2.5f, stretch = 0.5f, axis = new float3(0.0f, 1.0f, 0.0f), shift = new float3(0.3f, -1.2f, 2.1f), offset = new float3(5.0f, -3.0f, 7.0f), octaveStep = None }, 1, 2.0f, 0.5f) + : new Stage(SpanStage.Identity, 1, 2.0f, 0.5f); + var m = stage.Matrix(); + var cases = 0; + var crossings = 0; + var tightest = double.MaxValue; + for (var trial = 0; trial < 400_000 && cases < 150; trial++) + { + var q = Vector(random, -60.0f, 60.0f); + var n = snoise_grad(stage.Point(q, 0)); + var gradient = new float3((float)(m[0, 0] * n.x + m[0, 1] * n.y + m[0, 2] * n.z), (float)(m[1, 0] * n.x + m[1, 1] * n.y + m[1, 2] * n.z), (float)(m[2, 0] * n.x + m[2, 1] * n.y + m[2, 2] * n.z)); + var halfLength = Uniform(random, 0.05f, 0.15f); + var acceleration = Uniform(random, 4.0f, 12.0f); + // n at the midpoint close enough to zero that the acceleration alone carries it across. + if (length(gradient) < 1.5f || abs(n.w) > 0.4f * length(gradient) * acceleration * halfLength * halfLength * 0.5f) + continue; + var c = -(float)Math.Sign(n.w) * acceleration * normalize(gradient); + var span = new Span(new SpanPath { midpoint = q, velocity = None, speed = acceleration * halfLength, acceleration = acceleration, halfLength = halfLength }, c); + var fold = stage.Ridged(span.Path).fold; + var departure = 0.0; + for (var s = 0; s < 64; s++) + { + var value = (double)snoise(stage.Point(span.At(halfLength * (2.0f * s / 63 - 1.0f)), 0)); + departure = Math.Max(departure, Math.Abs(Math.Sign(n.w) * value - Math.Abs(value))); + } + + if (departure > 0.0) + crossings++; + Assert.True(departure <= fold * (1.0 + 1.0e-3), $"q {q}, acceleration {acceleration:R}, half-length {halfLength:R}: the branch departure is {departure:R}, above fold {fold:R}"); + if (departure > 0.0) + tightest = Math.Min(tightest, departure / fold); + cases++; + } + + Assert.True(crossings >= 100, $"only {crossings} of {cases} paths crossed zero by acceleration alone"); + output.WriteLine($"IV-REPORT span fold, acceleration only ({(transformed ? "transformed" : "identity")}): {crossings} of {cases} paths cross zero, tightest departure / fold {tightest:R}"); + } + + /// + /// The fold's velocity term under a stretch: the velocity runs along the stretched axis (M scales it by + /// 1/stretch), the midpoint is where n reaches zero inside the span, so the departure is about twice + /// |grad n . w| halfLength and a velocity stretched the wrong way (or not at all) puts fold under it. + /// + [Theory] + [InlineData(0.25f)] + [InlineData(0.5f)] + [InlineData(4.0f)] + public void SpanFoldCoversTheStretchedVelocity(float stretch) + { + var random = new System.Random(0x57E1C + (int)(stretch * 8.0f)); + var cases = 0; + var crossings = 0; + var tightest = double.MaxValue; + for (var trial = 0; trial < 400_000 && cases < 60; trial++) + { + var axis = UnitVector(random); + var stage = new Stage(new SpanStage { frequency = Uniform(random, 0.5f, 2.0f), stretch = stretch, axis = axis, shift = Vector(random, -4.0f, 4.0f), offset = Vector(random, -4.0f, 4.0f), octaveStep = None }, 1, 2.0f, 0.5f); + var q = Vector(random, -30.0f, 30.0f); + var velocity = axis * Uniform(random, 0.5f, 2.0f); + var halfLength = 0.05f; + var path = new SpanPath { midpoint = q, velocity = velocity, speed = length(velocity), acceleration = 0.0f, halfLength = halfLength }; + var n = snoise_grad(stage.Point(q, 0)); + var m = stage.Matrix(); + var w = new double[3]; + for (var i = 0; i < 3; i++) + w[i] = m[i, 0] * velocity.x + m[i, 1] * velocity.y + m[i, 2] * velocity.z; + var along = Math.Abs(n.x * w[0] + n.y * w[1] + n.z * w[2]); + if (along < 2.0 || Math.Abs(n.w) > 0.5 * along * halfLength) + continue; + var fold = stage.Ridged(path).fold; + var departure = 0.0; + for (var s = 0; s < 64; s++) + { + var t = halfLength * (2.0f * s / 63 - 1.0f); + var value = (double)snoise(stage.Point(q + velocity * t, 0)); + departure = Math.Max(departure, Math.Abs(Math.Sign(n.w) * value - Math.Abs(value))); + } + + if (departure > 0.0) + crossings++; + Assert.True(departure <= fold * (1.0 + 1.0e-3), $"stage {stage}, q {q}: the branch departure is {departure:R}, above fold {fold:R}"); + if (departure > 0.0) + tightest = Math.Min(tightest, departure / fold); + cases++; + } + + Assert.True(crossings >= 30, $"only {crossings} of {cases} paths crossed zero along the stretched velocity"); + output.WriteLine($"IV-REPORT span fold, stretched velocity {stretch}: {crossings} of {cases} paths cross zero, tightest departure / fold {tightest:R}"); + } + + /// + /// Both bounds are sums over the octaves, weighted by |gain|^o: for a stage of several octaves, + /// curvature and fold equal the weighted sum of the bounds of each octave taken as a stage of its own, + /// to within the rounding of forming the octave's coordinate another way. A weight misplaced (gain + /// instead of |gain|, a division for a product), a dropped octave or a mis-scaled octave fails. + /// + [Fact] + public void SpanBoundsAreSumsOverTheOctaves() + { + var random = new System.Random(0x0C7A5); + var compared = 0; + for (var k = 0; k < 80; k++) + { + var stage = Stage.DrawSmooth(random, 300.0f, 90.0f, 5, 2); + var span = Span.Draw(random, Vector(random, -30.0f, 30.0f), new[] { 0.02f, 0.1f, 0.5f }[k % 3], Uniform(random, 0.0f, 2.0f)); + var whole = stage.Ridged(span.Path); + double curvature = 0.0, fold = 0.0; + for (var o = 0; o < stage.Octaves; o++) + { + var one = stage.OneOctave(o).Ridged(span.Path); + var weight = Math.Abs(stage.Amplitude(o)); + curvature += weight * one.curvature; + fold += weight * one.fold; + } + + Assert.InRange(whole.curvature, curvature * (1.0 - 5.0e-3) - 1.0e-4, curvature * (1.0 + 5.0e-3) + 1.0e-4); + Assert.InRange(whole.fold, fold * (1.0 - 5.0e-3) - 1.0e-4, fold * (1.0 + 5.0e-3) + 1.0e-4); + if (fold > 1.0e-3) + compared++; + } + + Assert.True(compared >= 20, $"only {compared} of 80 stages had a fold to compare"); + } +} diff --git a/packages/cultmath/tests/CultMath.Tests/fixtures/device-bounds-lavapipe.txt b/packages/cultmath/tests/CultMath.Tests/fixtures/device-bounds-lavapipe.txt new file mode 100644 index 00000000..42706157 --- /dev/null +++ b/packages/cultmath/tests/CultMath.Tests/fixtures/device-bounds-lavapipe.txt @@ -0,0 +1,253 @@ +# renderer llvmpipe (LLVM 20.1.2, 256 bits) +# identity glslang-tools 15.1.0-2~ubuntu0.24.04.2; mesa-vulkan-drivers 25.2.8-0ubuntu0.24.04.4; dxc libdxcompiler.so: 1.9(1-0d3ee6b5)(1.9.0.1); apt snapshot 20261016T000000Z +# route index glsl tolerance exact cases worst u1 NaN-class mismatches result sha256; written only by CULTMATH_WRITE_DEVICE_BOUNDS=1 +lavapipe-glsl 0 float cultmath_snoise(vec3) ulp-bounded 86 88.5 0 546a5fd0ec6ff9e958b281791d2ea75409e8085d07eca0578ca31c373251cbd3 +lavapipe-glsl 1 float cultmath_snoise(vec2) ulp-bounded 141 111.71875 0 2ceef683245300198343565b581de6978efdc92970ee8ae1b8f4b2fcfb732cbb +lavapipe-glsl 2 vec4 cultmath_snoise_grad(vec3) ulp-bounded 68 617.5 0 cb8b652fde6b9b11fa9f5a6e120a3fed7ead5b69db2ccf981240c9b098343984 +lavapipe-glsl 3 vec4 cultmath_fbm_grad(vec3, int, float, float) ulp-bounded 11 2812 0 7cfbaadc05c186be8122ee5cbd8f4932b256d2cb0239acbd7ba6290f8976ca06 +lavapipe-glsl 4 vec4 cultmath_ridged_grad(vec3, int, float, float) ulp-bounded 9 3510 0 937908e0e35a863a1dc80c624c0f384461db28500aa5de2010a292d61a13368b +lavapipe-glsl 5 CultCellular cultmath_cellular(vec3) ulp-bounded 199 1 0 ec144b78ccb06b565bdcb514f941f1823bb2cb8ec519b45f8a034ef50ef1b871 +lavapipe-glsl 6 ivec3 cultmath_pcg3d(ivec3) exact 256 0 0 a410be8431cbc976fd6b7af9c83a71858d0f9ccb9e7f2c8fda94d5ca2db62176 +lavapipe-glsl 7 ivec4 cultmath_pcg4d(ivec4) exact 256 0 0 d22bad50369da1bb343cfa0457565fa795a9374dd354c7cedeaa84b1f4fcb5e1 +lavapipe-glsl 8 vec2 cultmath_iv_point(float) ulp-bounded 256 0 0 4345669b712d86cc70869adee43d1b371bb5acbf767fd0ad4c96e6bdd2167eae +lavapipe-glsl 9 vec2 cultmath_iv_add(vec2, vec2) ulp-bounded 256 0 0 71fb79c72089090255803a20bdda0ab592b71edf7e4ff2e35a1e4407bb203f91 +lavapipe-glsl 10 vec2 cultmath_iv_sub(vec2, vec2) ulp-bounded 256 0 0 a94e8e5a7315fe885499a0984755d2fc8dfaaa0a2cd776ae70d06fa061e5526e +lavapipe-glsl 11 vec2 cultmath_iv_neg(vec2) ulp-bounded 256 0 0 c659fe8af49f9d27717efae94578fcd76a0d8db173755b008c10314e71509018 +lavapipe-glsl 12 vec2 cultmath_iv_mul(vec2, vec2) ulp-bounded 256 0 0 1bef7438c091e05e39918e961e2154161ffb86192f35917ea344250560803ce0 +lavapipe-glsl 13 vec2 cultmath_iv_scale(vec2, float) ulp-bounded 256 0 0 f7cabee9534c5867efaa66ded529feab679065fed8e277d48804f8a127cfb1da +lavapipe-glsl 14 vec2 cultmath_iv_abs(vec2) ulp-bounded 256 0 0 06b1b8506452333155949472f815ce84542614e434633f4824ff708377b6b622 +lavapipe-glsl 15 vec2 cultmath_iv_min(vec2, vec2) ulp-bounded 256 0 0 a324b35cb4a7c5fa0c95050814175df5d8279efe4359f3898e14208cc87ecaaa +lavapipe-glsl 16 vec2 cultmath_iv_max(vec2, vec2) ulp-bounded 256 0 0 d68412262ca234c1da130fc5217ba6856da3e92e435c28c1fbdbf3692a89e1fa +lavapipe-glsl 17 vec2 cultmath_iv_sqr(vec2) ulp-bounded 256 0 0 dbbb0e0df015456393452377d689732428a9a8e24d8e2b407ee9620593b4c46b +lavapipe-glsl 18 vec2 cultmath_iv_sqrt(vec2) ulp-bounded 256 0 0 95bd15d1b283713fc632ced350f5da1b89f8f73e6618329773db1b52acd29991 +lavapipe-glsl 19 vec2 cultmath_iv_clamp(vec2, float, float) ulp-bounded 256 0 0 abe9daf24930a5e3a49ec994c4cae3a0c27b9d019d6d93ec1963ec3daad664a0 +lavapipe-glsl 20 vec2 cultmath_iv_saturate(vec2) ulp-bounded 256 0 0 0f844ef8c4d9a9f748c80677bbbfc36b5f6e682eb87c2d46e7e20635d5f55c26 +lavapipe-glsl 21 vec2 cultmath_iv_smoothstep(float, float, vec2) ulp-bounded 256 0 0 3d5944a4c43feb91d6786924e0f5439c05285d28ff1f500b5582893758dd4ce5 +lavapipe-glsl 22 vec2 cultmath_iv_lerp(vec2, vec2, float) ulp-bounded 256 0 0 96b09e90a3fbbfe81379a29a23b676e490bc7dc6bb731450197707e6cf4c573f +lavapipe-glsl 23 vec2 cultmath_iv_snoise_ball(vec3, float) ulp-bounded 242 54 0 570eb031260c8f4aab42edc57a5fa1d0da70e8a4e6f0b4bf68208c15506f7cb5 +lavapipe-glsl 24 vec2 cultmath_iv_fbm_ball(vec3, float, int, float, float) ulp-bounded 250 56 0 9e7017426314537f84c58dcdd1f85188cbe8f4dd9ababed887f60776cf861ebf +lavapipe-glsl 25 vec4 cultmath_iv_frustum_ball(vec2, float, float, float, float) ulp-bounded 198 1.6457063576593662 0 327c306aa4d06aecbb2681d8808c6dbf0567e87b54a6067c68001e36b3e52169 +lavapipe-glsl 26 vec2 cultmath_iv_exp(vec2) ulp-bounded, platform exp 7 7.526057804152758 0 b4af8232dc3dd782cc6d790e928ede0f6ba6dfdffd6c71dd9494fb58973e485c +lavapipe-glsl 27 CultPhasor cultmath_phacelle(vec3, vec3, float, float) ulp-bounded, platform exp, sin, cos; across platforms |diff| <= 2^-20 max(|v|, 1); on a device |diff| <= 2^-18 max(|v|, 1) 0 18.5 0 705b4c18027a0838218645e9368c3749ae4b5bf75e0485985725e8e72b73ab88 +lavapipe-glsl 28 float cultmath_snoise(vec3) ulp-bounded, on the simplex tie set 127 112 0 6929326e4f27726d7bbdbac3a7823209e2ecfcd301018ef164527c4c1a9f7ae8 +lavapipe-glsl 29 vec4 cultmath_snoise_grad(vec3) ulp-bounded, on the simplex tie set 102 546.5 0 6173a812fd4059fa19bce84d34858c6035cdda98aa21a2b210e611cbd58c29d6 +lavapipe-glsl 30 vec3 cultmath_af_point(float) ulp-bounded 256 0 0 7aa8ec07c8804cc92400c8a5c0f0d301db2ca4b7c4593a40c4223df306dab4c8 +lavapipe-glsl 31 vec3 cultmath_af_symbol(float, float) ulp-bounded 256 0 0 041476b7fda30584d1b555d8ee5ffbf29f111d8fa97f0a47acba8c16641e222f +lavapipe-glsl 32 vec3 cultmath_af_from_iv(vec2) ulp-bounded 256 0 0 306fe58a3268199fc8fd845a32d956f349a790422fa5c87d5a0824636cb55424 +lavapipe-glsl 33 vec2 cultmath_af_range(vec3) ulp-bounded 256 0 0 6245eeba19473d69d0d8155e20e2e6089a6843140723d23ed5d501064023a44a +lavapipe-glsl 34 vec3 cultmath_af_add(vec3, vec3) ulp-bounded 256 0 0 cb1cb3fc69224837342de767525d332687b9d3e17b3de255c28e2f0f65f32640 +lavapipe-glsl 35 vec3 cultmath_af_sub(vec3, vec3) ulp-bounded 256 0 0 a8fad8ea86cf61841430293fdd9840a54008160250114040380c9634c63bb17e +lavapipe-glsl 36 vec3 cultmath_af_neg(vec3) ulp-bounded 256 0 0 e485acf8ee21c6d880621cc6216b3b2a78318f56f5864b33c5509be27e22a694 +lavapipe-glsl 37 vec3 cultmath_af_scale(vec3, float) ulp-bounded 256 0 0 8b0c8a540fea82fe058efc42ffa38dbd69850e579cefe5fdbc4c164b715ec15d +lavapipe-glsl 38 vec3 cultmath_af_add_iv(vec3, vec2) ulp-bounded 256 0 0 620f747e6ba53014c9714a8dbfaa3ff93f281c80938bd035ef64657e3bdc1a16 +lavapipe-glsl 39 vec3 cultmath_af_mul(vec3, vec3) ulp-bounded 256 0 0 9dd029d56132560877ea155cf09e1b9519c2721acac462b10ac64afe7d01e134 +lavapipe-glsl 40 vec3 cultmath_af_snoise(vec3, vec3, float) ulp-bounded 53 90.75 0 bdfd575faf2016af642b9280ecf77e34673babf2420362537ae5d1dba7cebe64 +lavapipe-glsl 41 vec3 cultmath_af_fbm(vec3, vec3, float, int, float, float) ulp-bounded 28 97.5 0 188d2e6eb49daa0eda38ed0c9b947b8b9f2c0a4c426665bdd25c72efa477933e +lavapipe-glsl 42 vec3 cultmath_af_frustum_axis(vec2, float, float) ulp-bounded 256 0 0 9a6daac34242d264db9dedc40c8c074ea0fd188af9c04bb1658d0693111eabee +lavapipe-glsl 43 vec4 cultmath_af_frustum_ball(vec2, float, float, float, float) ulp-bounded 256 0 0 45522a4b8e0e31f90e9e9e3af245182305ca8bb27abf1ab61b04f6c35b606112 +lavapipe-glsl 44 vec2 cultmath_iv_snoise_ball(vec2, float) ulp-bounded 244 46 0 edcfa49ec6c1e01fdb920c3265a79ca781e2edefdfe8a11f9cae3bf985b3687d +lavapipe-glsl 45 vec3 cultmath_af_snoise(vec3, vec3, float) ulp-bounded, reach 1e-6 to 1e-3 75 46.9375 0 1a66868821ee19096da857fe52df70207f0d9daa20d5939440edf1ad8f4c0455 +lavapipe-glsl 46 vec3 cultmath_af_fbm(vec3, vec3, float, int, float, float) ulp-bounded, reach 1e-6 to 1e-3 27 102.5 0 42246db4e19a1da20433517cdc7016dda375ea70dc90d1a777679bfd76fb59e8 +lavapipe-glsl 47 float cultmath_cycles_divide(float, float) ulp-bounded 256 0 0 87f143c57806ad52c3295cde67e97f31e39c8572b8c0a4b8c577e6fcd8ecbebf +lavapipe-glsl 48 float cultmath_cycles_power(float, float) ulp-bounded, platform pow 136 4.918926113980705 0 0e62db5ea32fdb9fdd3a9b135a914ddadd3231bdee0ff15c709102b26bb89186 +lavapipe-glsl 49 float cultmath_cycles_logarithm(float, float) ulp-bounded, platform log 146 4.94622778071426 0 5b2bf1411512c7e5a3f4b335a16fc3ba00ba0784bb87acb14b7d1b9dd551b2f3 +lavapipe-glsl 50 float cultmath_cycles_sqrt(float) ulp-bounded 256 0 0 6d4beb34e93ae304b3d9d30f203fb6c2ba222affc0efc35bb5441528e9062a9a +lavapipe-glsl 51 float cultmath_cycles_inverse_sqrt(float) ulp-bounded 256 0 0 71aadd5bd384b9ca2eb89827de53af810a1350b02177de1987e9405e4a6e9ad8 +lavapipe-glsl 52 float cultmath_cycles_modulo(float, float) ulp-bounded 256 0 0 cf055cafcb5b2d4789a0a2d5cfbc8bc79f52df646b60f5e47db3f994680949e9 +lavapipe-glsl 53 float cultmath_cycles_floored_modulo(float, float) ulp-bounded 256 0 0 b781fd31c3671b332d7c726f1ef38c28119d0cda26f45a8a8f788127e73b60cd +lavapipe-glsl 54 float cultmath_cycles_wrap(float, float, float) ulp-bounded 256 0 0 76c0b9fc35952c0557b4c1bd51d970851de7faa427dc6772a5cbad8851c9b4f8 +lavapipe-glsl 55 float cultmath_cycles_snap(float, float) ulp-bounded 256 0 0 1211752ef48e46517f14eee689ada2e425688e0e7b1f3e10491d0099b19c7a96 +lavapipe-glsl 56 float cultmath_cycles_pingpong(float, float) ulp-bounded 256 0 0 968ec85b73586bc37d1a0ce850c48b9ba55f9de42b0f05dee908fa307300887c +lavapipe-glsl 57 float cultmath_cycles_smooth_min(float, float, float) ulp-bounded 256 0 0 9e5ef2547c138970e8edcaf669a1f43e54982b7f113ace2e1ca0ba7712bfc052 +lavapipe-glsl 58 float cultmath_cycles_smooth_max(float, float, float) ulp-bounded 256 0 0 25e92186c7fcfd8692595b6be6fbb16add05cc97b9347129e46dccefe518f6ea +lavapipe-glsl 59 float cultmath_cycles_compare(float, float, float) ulp-bounded 256 0 0 525e89cb65b42d49ebecdc542a82e5833aa5abc12de0baf85dcb5d628966f1f6 +lavapipe-glsl 60 float cultmath_cycles_round(float) ulp-bounded 256 0 0 ace31f9ef6b3990cfd2deafd3bb831393b17a5c605de645d351096dd37469ecf +lavapipe-glsl 61 float cultmath_cycles_trunc(float) ulp-bounded 256 0 0 ff8954688fa6017fdb94e9f2d76f1bebd4403dc961185b5e911a13341107f3b6 +lavapipe-glsl 62 float cultmath_cycles_fract(float) ulp-bounded 256 0 0 8f9ca486ba15de9d17103ab201c42a2e71d8b813752690c503971786abdf20ee +lavapipe-glsl 63 float cultmath_cycles_sign(float) ulp-bounded 256 0 0 6d4d58598959072125f811e50a6b4cb399946ffb53bcc12d66e985e3ae1f7237 +lavapipe-glsl 64 float cultmath_cycles_map_range_linear(float, float, float, float, float) ulp-bounded 256 0 0 153c7636170f2c2df751da7d4108b264048a0c2441eea4175a07d52283bc34f8 +lavapipe-glsl 65 float cultmath_cycles_map_range_stepped(float, float, float, float, float, float) ulp-bounded 256 0 0 75391d2c4ae437bbb7de824fff0ee2a4cface26160589a2546051fd7fe6302ea +lavapipe-glsl 66 float cultmath_cycles_map_range_smoothstep(float, float, float, float, float) ulp-bounded 256 0 0 202bd26423a4ffe30698d093ab79a6d3aa0d388402f8a0059733695bcbc7bef8 +lavapipe-glsl 67 float cultmath_cycles_map_range_smootherstep(float, float, float, float, float) ulp-bounded 256 0 0 fb98cb86965fda6c1e8b4f348009a997bfa8b38ba78c85a6c7c5aa3daff2c9b5 +lavapipe-glsl 68 float cultmath_cycles_clamp_minmax(float, float, float) ulp-bounded 256 0 0 13093e4a629a5f7eaeafa6dca36af46692d323ebc7565bfc052195c13d820d9c +lavapipe-glsl 69 float cultmath_cycles_clamp_range(float, float, float) ulp-bounded 256 0 0 801145eabd38a9b92f5fb81aa5d9d4c6a9a977c8514f753e92a039f66099dbbb +lavapipe-glsl 70 float cultmath_cycles_mix_float(float, float, float) ulp-bounded 256 0 0 555151462568cdf0c4557c44b299fc5085149dbe7f9b8e77995b0ae84094701b +lavapipe-glsl 71 vec3 cultmath_cycles_mix_vector(float, vec3, vec3) ulp-bounded 256 0 0 024dfa0de6980161524c7d26c0ccbac06769764b7b1f05e1ddaa2de3d26f5e9e +lavapipe-glsl 72 vec3 cultmath_cycles_rgb_to_hsv(vec3) ulp-bounded 256 0 0 eec7cf189745ddc1c001297a42ab404b4186607f32a38a3b053122104f7c7b38 +lavapipe-glsl 73 vec3 cultmath_cycles_hsv_to_rgb(vec3) ulp-bounded 256 0 0 1391d6304ba96b5f271c1fc66935785bf496d40c6a66d07669dbd9b36b7fd0f2 +lavapipe-glsl 74 float cultmath_cycles_rgb_to_bw(vec3) ulp-bounded 256 0 0 d3c13195d2fd31e8fe5d0a8127d2650fe7b54ab0681d259735b891ef6c48a3d0 +lavapipe-glsl 75 vec2 cultmath_cycles_ramp_index(float, int) ulp-bounded 256 0 0 62dbe8cdbd7a7cc64367dbe49f6554ee6660ba686bff145ec043f6932bea1f4e +lavapipe-glsl 76 vec3 cultmath_cycles_mix_blend(float, vec3, vec3) ulp-bounded 256 0 0 98d559290d1eea28711099f58334c3013ded3d8055ffe2c460463fd8e6920e8a +lavapipe-glsl 77 vec3 cultmath_cycles_mix_add(float, vec3, vec3) ulp-bounded 203 1.280824945387952 0 a6eb4ea72d93fadd76258113bcec9e2aa6a3557f7ffbbd018591b411826372e5 +lavapipe-glsl 78 vec3 cultmath_cycles_mix_mul(float, vec3, vec3) ulp-bounded 256 0 0 d8c88a3734b9a6298dbfddafb2f4261639d9292f2c3282bd2de93ac87dc64aff +lavapipe-glsl 79 vec3 cultmath_cycles_mix_screen(float, vec3, vec3) ulp-bounded 256 0 0 18a96f09e992efa4ffeccb6882a25d0a95eddd5c552f38081f9e9cbaeb302ba2 +lavapipe-glsl 80 vec3 cultmath_cycles_mix_overlay(float, vec3, vec3) ulp-bounded 256 0 0 0d432008ddc87cf7c9728417be9dc5fbfbbff109b70696606c069bedb6f34455 +lavapipe-glsl 81 vec3 cultmath_cycles_mix_sub(float, vec3, vec3) ulp-bounded 224 0.9887614915449221 0 43f38c46c85ec8e9bd50c40d273090301b56e45072d396e6840aba4b85d36ea0 +lavapipe-glsl 82 vec3 cultmath_cycles_mix_div(float, vec3, vec3) ulp-bounded 256 0 0 595b729b984c7eafac49d571e213b70cab0cc3961c0875fd44f14f0eef712f6b +lavapipe-glsl 83 vec3 cultmath_cycles_mix_diff(float, vec3, vec3) ulp-bounded 256 0 0 0f1494d72ef1aa26250df833c36c0059bfabc957ad46939f48095714f44724ab +lavapipe-glsl 84 vec3 cultmath_cycles_mix_exclusion(float, vec3, vec3) ulp-bounded 256 0 0 49ac2faf217ebce63ea6f21aef3d865936106f1f461258d8f1dc0ebbc87ddb6e +lavapipe-glsl 85 vec3 cultmath_cycles_mix_dark(float, vec3, vec3) ulp-bounded 256 0 0 446ec94675d81f6d228b70c79d9d857898f26522dd274305ae3c9dcf01e79d2e +lavapipe-glsl 86 vec3 cultmath_cycles_mix_light(float, vec3, vec3) ulp-bounded 256 0 0 a2d1efef2a24fc3d55a9fc05aec5396e9e8360ff3e2f5f2c3987b828d21600b1 +lavapipe-glsl 87 vec3 cultmath_cycles_mix_dodge(float, vec3, vec3) ulp-bounded 256 0 0 f75638b3350d6d10342c679b22051f854fe21cf886c7e1ec337ec66ec5b4e208 +lavapipe-glsl 88 vec3 cultmath_cycles_mix_burn(float, vec3, vec3) ulp-bounded 256 0 0 96405c0838ddd0d2201909253f0a120ec1f73bed7d196d1c74f63ec36a28646b +lavapipe-glsl 89 vec3 cultmath_cycles_mix_hue(float, vec3, vec3) ulp-bounded 256 0 0 3a010be30109d2782af0eb52c0d71b668caa30ed9817fbcfa2763a424f0d5235 +lavapipe-glsl 90 vec3 cultmath_cycles_mix_sat(float, vec3, vec3) ulp-bounded 256 0 0 0d5fded68d4f56dcfe97fd5e2aee9644ac0d176572c069bc9aa8afa29a83ddaf +lavapipe-glsl 91 vec3 cultmath_cycles_mix_val(float, vec3, vec3) ulp-bounded 256 0 0 8b4f5e0be561175c0417791b42ed18dc2c8a0330d6f98421f6dcc89bfe152a81 +lavapipe-glsl 92 vec3 cultmath_cycles_mix_color(float, vec3, vec3) ulp-bounded 256 0 0 00067b1567bcd6c07a81fa5002f145dfca22437a3f3df5389b2665334d14909b +lavapipe-glsl 93 vec3 cultmath_cycles_mix_soft(float, vec3, vec3) ulp-bounded 157 1.9750388068880254 0 ed7c5508ca0543cc20a5f0c5624e75e3ca2a2d6044d481816eeda2edc50c0592 +lavapipe-glsl 94 vec3 cultmath_cycles_mix_linear(float, vec3, vec3) ulp-bounded 256 0 0 672435cc30bcbbb253cce7316ee0712b1a18f06924bc89cea2d3388dd164a15d +lavapipe-glsl 95 float cultmath_cycles_arcsine(float) ulp-bounded, platform asin 154 2734.286809678319 0 f28f3ed0a53ffeebdfa84865d2d3d41590e6b46fc1578d40e1215e2a9e1af585 +lavapipe-glsl 96 float cultmath_cycles_arccosine(float) ulp-bounded, platform acos 79 1046.8674409774287 0 22a2c38ab5a232cdbb33cf0c133362581a398f64a4d0d5d6dd89dc5af06bd890 +lavapipe-glsl 97 float cultmath_cycles_arctan2(float, float) ulp-bounded, platform atan 6 25.5 0 2c60447d80186f6dc9726f19c09fa96ec3f66d8f5688968da533d9195ea463c4 +lavapipe-glsl 98 mat3 cultmath_snoise_hessian(vec3) ulp-bounded 30 1358.4375 0 62bbafb8420ed5aaa0ce11d1470ca98945e690b186c33a1e7cf4d71478396465 +lavapipe-glsl 99 mat3 cultmath_snoise_hessian(vec3) ulp-bounded, on the simplex tie set 110 1317.4754224467295 0 0efd9b3a637b46033ed0351f64de274db4d9ce05bb83dd1ce57afb3ceaea26bc +lavapipe-glsl 100 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded 256 0 0 84bf9c9a2126b3114a692507cc54f58d313afc33de8a1cac83969cc508433cbe +lavapipe-glsl 101 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded, lo above hi and infinite bounds 256 0 0 ff999094d7794aa525e0f9f9a067aa21408a59559aa546cace3b1bb4a8c7f96d +lavapipe-glsl 102 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded, zero-length spans and flat infinite clamps 256 0 0 c3cc48f4edcac6801b9223f12d289934916431bdfaea8f68af33a1b833ab9860 +lavapipe-glsl 103 SpanNoise cultmath_span_fbm(SpanPath, SpanStage, int, float, float) ulp-bounded 7 1012477.3459086476 0 97c531c3a690e056d95e949e243ae74111d4a93a39fd22c0358a103b3bb14bc1 +lavapipe-glsl 104 SpanNoise cultmath_span_ridged(SpanPath, SpanStage, int, float, float) ulp-bounded 8 948534.9108393334 0 54fd229d69439ff3318690b7802143f8410dc7ece30ad0d56ccc4b68bf39bec2 +lavapipe-glsl 105 vec4 cultmath_snoise_grad(vec3) ulp-bounded, coordinate bands 1e-4 to 1e2 116 249.5 0 fff9658a8ec055766c9327ee9b680cf7fb83736c472ae90a11e50d6d2a053fdc +lavapipe-glsl 106 vec4 cultmath_snoise_grad(vec3) ulp-bounded, coordinate bands 1e2 to 4e6 70 11866336.625 0 833484714ebcea59d86e0fbc2eaa4ae247c29541703763989e6758547dbf6db8 +lavapipe-glsl 107 mat3 cultmath_snoise_hessian(vec3) ulp-bounded, coordinate bands 1e-4 to 1e2 120 980.7417469278579 0 3ea43dabe0091ea8e994c1dfc65c7274ed38b9343d4d1d06f7caa09c806c91df +lavapipe-glsl 108 mat3 cultmath_snoise_hessian(vec3) ulp-bounded, coordinate bands 1e2 to 4e6 46 164827710.09171063 0 0984abe5fff2e2df93b053a5b5dbdd4eacd816d26144d8352497614e45159c07 +lavapipe-glsl 109 float cultmath_distance_to_segment(vec2, vec2, vec2) ulp-bounded 256 0 0 56d4972116081037d01476cb26a7981a35e9a949eb739df87e331fef9a25e424 +lavapipe-glsl 110 vec2 cultmath_segment_closest(vec2, vec2, vec2) ulp-bounded 256 0 0 fb6b7e9038f9138584d8d0c427578088f06ae21d7510d20e899cac3c3833dbd9 +lavapipe-glsl 111 float cultmath_distance_to_segment(vec3, vec3, vec3) ulp-bounded 226 1.60911149933558 0 ad66ebd8fb9d743d5c74491a7657f92d1cfa04b76ae65e090112e369881cf0ce +lavapipe-glsl 112 vec3 cultmath_segment_closest(vec3, vec3, vec3) ulp-bounded 214 32 0 4cdb6d7124e502786a4c4b082da3b94b8bde1e2082d14efa8245cbbe6b10a978 +lavapipe-glsl 113 vec4 cultmath_power_border_step(vec3, vec4, vec4, vec4) ulp-bounded 214 43 0 fdfdff73434a146489b002af5e80663658b2dd7b86105a7e65bdab755ab54a5e +lavapipe-glsl 114 vec4 cultmath_power_score(vec3, vec4) ulp-bounded 207 1.4619722193127032 0 dc1aa639ae1dc44003a0f5d8c7c99b2e3d7f51b158c96b3c3bd7a9f7df6d927e +lavapipe-glsl 115 vec4 cultmath_multiplicative_score(vec3, vec4) ulp-bounded 234 1.5529504197086745 0 ee1af26ac82489e8d363e7a6b6b59da7dacfb397d4bc9a723dd68607a69da41a +lavapipe-glsl 116 CultSiteCells cultmath_site_cells_insert(CultSiteCells, vec4, int) ulp-bounded 256 0 0 bfad8b369011cfbf14644fec68ce65620694fcbf3cd3804f54953d55587313fc +lavapipe-glsl 117 vec4 cultmath_site_cells_border(CultSiteCells) ulp-bounded 228 1.069496760346883 0 d7b478bef7e6f80902d0b5b255cb4fca30757ff6b9d25dac2030b037a8d342ce +lavapipe-glsl 118 float cultmath_gabriel_margin(vec3, vec3, vec3) ulp-bounded 201 2 0 6a80fbef486de496a08b7c8e7f9f65e2cc0f5b9f93abe50c43e84ad88d1ed034 +lavapipe-glsl 119 vec3 cultmath_lattice_site(vec2, float, float) ulp-bounded 256 0 0 84df739c336796638dcf0a99c328a4b8c150c25d80e02248d4b6d023dc13161f +lavapipe-glsl 120 float cultmath_lattice_weight(float, float, float, float) ulp-bounded 231 2.0671110200639147 0 434cdf5603abc2942aa624b9d2e98d5f1231706c86180a80439bc8b72bdd066e +lavapipe-glsl 121 float cultmath_lattice_distance(vec2, vec2, float, vec2, float) ulp-bounded 256 0 0 ba3fa3bdb4f5f5b2478a4ddfb2e08f2f425e997778a716884e43b13d6ed050b5 +lavapipe-glsl 122 float cultmath_lattice_smooth_step(float, float, float, float) ulp-bounded 256 0 0 6cbeddde536b12e83873f2e5ac60d16bef22049d2a7dea61af0ff1e0d5b84740 +lavapipe-glsl 123 vec4 cultmath_power_border(vec3, vec4[128], int) ulp-bounded 188 65.72121683891783 0 8427c2b99109a4f59ff745fdb87f261deb1cbae34ce99bc1ae05ebb7f9963b4d +lavapipe-glsl 124 vec4 cultmath_weighted_lattice_cells(vec2, float, vec4[128], int, float, float, float, float, float, vec2, float) ulp-bounded 179 3 0 fd3b58c4e2ba8a7bf801a1e6cdff82468abcb368442bc98b2583fda9d2e6f823 +lavapipe-hlsl 0 float cultmath_snoise(vec3) ulp-bounded 94 122.6875 0 5d41c14241a13124f2e1b49f230f5df0c48d0d69fb1be9ef2f33dc1702bf0b0a +lavapipe-hlsl 1 float cultmath_snoise(vec2) ulp-bounded 204 1 0 81d9c62726afdccbbe4ffef173b5c92731eb6bf5927b3979d653e50dbd5d4064 +lavapipe-hlsl 2 vec4 cultmath_snoise_grad(vec3) ulp-bounded 71 617.5 0 f7e9ed1707cdb015efaba0e0150193309da0d4c125349518f8b7c60a17b25790 +lavapipe-hlsl 3 vec4 cultmath_fbm_grad(vec3, int, float, float) ulp-bounded 8 5043.031516667752 0 d60ec63e283433334da31e8f7ab396f6bfac473ed3a59e50f1db0db320ba37b9 +lavapipe-hlsl 4 vec4 cultmath_ridged_grad(vec3, int, float, float) ulp-bounded 12 3510 0 3a545af386da2e9c04f665e1fc42120e687b0f832c9afdad3a87ecdddf813a20 +lavapipe-hlsl 5 CultCellular cultmath_cellular(vec3) ulp-bounded 199 1 0 ec144b78ccb06b565bdcb514f941f1823bb2cb8ec519b45f8a034ef50ef1b871 +lavapipe-hlsl 6 ivec3 cultmath_pcg3d(ivec3) exact 256 0 0 a410be8431cbc976fd6b7af9c83a71858d0f9ccb9e7f2c8fda94d5ca2db62176 +lavapipe-hlsl 7 ivec4 cultmath_pcg4d(ivec4) exact 256 0 0 d22bad50369da1bb343cfa0457565fa795a9374dd354c7cedeaa84b1f4fcb5e1 +lavapipe-hlsl 8 vec2 cultmath_iv_point(float) ulp-bounded 256 0 0 4345669b712d86cc70869adee43d1b371bb5acbf767fd0ad4c96e6bdd2167eae +lavapipe-hlsl 9 vec2 cultmath_iv_add(vec2, vec2) ulp-bounded 256 0 0 71fb79c72089090255803a20bdda0ab592b71edf7e4ff2e35a1e4407bb203f91 +lavapipe-hlsl 10 vec2 cultmath_iv_sub(vec2, vec2) ulp-bounded 256 0 0 a94e8e5a7315fe885499a0984755d2fc8dfaaa0a2cd776ae70d06fa061e5526e +lavapipe-hlsl 11 vec2 cultmath_iv_neg(vec2) ulp-bounded 256 0 0 c659fe8af49f9d27717efae94578fcd76a0d8db173755b008c10314e71509018 +lavapipe-hlsl 12 vec2 cultmath_iv_mul(vec2, vec2) ulp-bounded 256 0 0 1bef7438c091e05e39918e961e2154161ffb86192f35917ea344250560803ce0 +lavapipe-hlsl 13 vec2 cultmath_iv_scale(vec2, float) ulp-bounded 256 0 0 f7cabee9534c5867efaa66ded529feab679065fed8e277d48804f8a127cfb1da +lavapipe-hlsl 14 vec2 cultmath_iv_abs(vec2) ulp-bounded 256 0 0 06b1b8506452333155949472f815ce84542614e434633f4824ff708377b6b622 +lavapipe-hlsl 15 vec2 cultmath_iv_min(vec2, vec2) ulp-bounded 256 0 0 a324b35cb4a7c5fa0c95050814175df5d8279efe4359f3898e14208cc87ecaaa +lavapipe-hlsl 16 vec2 cultmath_iv_max(vec2, vec2) ulp-bounded 256 0 0 d68412262ca234c1da130fc5217ba6856da3e92e435c28c1fbdbf3692a89e1fa +lavapipe-hlsl 17 vec2 cultmath_iv_sqr(vec2) ulp-bounded 256 0 0 dbbb0e0df015456393452377d689732428a9a8e24d8e2b407ee9620593b4c46b +lavapipe-hlsl 18 vec2 cultmath_iv_sqrt(vec2) ulp-bounded 256 0 0 95bd15d1b283713fc632ced350f5da1b89f8f73e6618329773db1b52acd29991 +lavapipe-hlsl 19 vec2 cultmath_iv_clamp(vec2, float, float) ulp-bounded 256 0 0 abe9daf24930a5e3a49ec994c4cae3a0c27b9d019d6d93ec1963ec3daad664a0 +lavapipe-hlsl 20 vec2 cultmath_iv_saturate(vec2) ulp-bounded 256 0 0 0f844ef8c4d9a9f748c80677bbbfc36b5f6e682eb87c2d46e7e20635d5f55c26 +lavapipe-hlsl 21 vec2 cultmath_iv_smoothstep(float, float, vec2) ulp-bounded 256 0 0 3d5944a4c43feb91d6786924e0f5439c05285d28ff1f500b5582893758dd4ce5 +lavapipe-hlsl 22 vec2 cultmath_iv_lerp(vec2, vec2, float) ulp-bounded 256 0 0 96b09e90a3fbbfe81379a29a23b676e490bc7dc6bb731450197707e6cf4c573f +lavapipe-hlsl 23 vec2 cultmath_iv_snoise_ball(vec3, float) ulp-bounded 244 54 0 f36530a4cd8c9fdc1c73e7ddb6782cd11cbf8493e2ee7b0656e818812504267e +lavapipe-hlsl 24 vec2 cultmath_iv_fbm_ball(vec3, float, int, float, float) ulp-bounded 252 75 0 a1677ea42ce91a5d2b6f83fa7c44879b7a184ed4631108d7a1c6e710bf26ff02 +lavapipe-hlsl 25 vec4 cultmath_iv_frustum_ball(vec2, float, float, float, float) ulp-bounded 198 1.6457063576593662 0 327c306aa4d06aecbb2681d8808c6dbf0567e87b54a6067c68001e36b3e52169 +lavapipe-hlsl 26 vec2 cultmath_iv_exp(vec2) ulp-bounded, platform exp 7 7.526057804152758 0 b4af8232dc3dd782cc6d790e928ede0f6ba6dfdffd6c71dd9494fb58973e485c +lavapipe-hlsl 27 CultPhasor cultmath_phacelle(vec3, vec3, float, float) ulp-bounded, platform exp, sin, cos; across platforms |diff| <= 2^-20 max(|v|, 1); on a device |diff| <= 2^-18 max(|v|, 1) 0 18.5 0 705b4c18027a0838218645e9368c3749ae4b5bf75e0485985725e8e72b73ab88 +lavapipe-hlsl 28 float cultmath_snoise(vec3) ulp-bounded, on the simplex tie set 144 99 0 be76512b18eb678194dad0c4726c0aef9ba34012b60b79d24c2df27989707145 +lavapipe-hlsl 29 vec4 cultmath_snoise_grad(vec3) ulp-bounded, on the simplex tie set 111 546.5 0 124d4be07cbb66edab644e649c081cb7c8be5d99b6c1d84fec5d7ef65c76ed0f +lavapipe-hlsl 30 vec3 cultmath_af_point(float) ulp-bounded 256 0 0 7aa8ec07c8804cc92400c8a5c0f0d301db2ca4b7c4593a40c4223df306dab4c8 +lavapipe-hlsl 31 vec3 cultmath_af_symbol(float, float) ulp-bounded 256 0 0 041476b7fda30584d1b555d8ee5ffbf29f111d8fa97f0a47acba8c16641e222f +lavapipe-hlsl 32 vec3 cultmath_af_from_iv(vec2) ulp-bounded 256 0 0 306fe58a3268199fc8fd845a32d956f349a790422fa5c87d5a0824636cb55424 +lavapipe-hlsl 33 vec2 cultmath_af_range(vec3) ulp-bounded 256 0 0 6245eeba19473d69d0d8155e20e2e6089a6843140723d23ed5d501064023a44a +lavapipe-hlsl 34 vec3 cultmath_af_add(vec3, vec3) ulp-bounded 256 0 0 cb1cb3fc69224837342de767525d332687b9d3e17b3de255c28e2f0f65f32640 +lavapipe-hlsl 35 vec3 cultmath_af_sub(vec3, vec3) ulp-bounded 256 0 0 a8fad8ea86cf61841430293fdd9840a54008160250114040380c9634c63bb17e +lavapipe-hlsl 36 vec3 cultmath_af_neg(vec3) ulp-bounded 256 0 0 e485acf8ee21c6d880621cc6216b3b2a78318f56f5864b33c5509be27e22a694 +lavapipe-hlsl 37 vec3 cultmath_af_scale(vec3, float) ulp-bounded 256 0 0 8b0c8a540fea82fe058efc42ffa38dbd69850e579cefe5fdbc4c164b715ec15d +lavapipe-hlsl 38 vec3 cultmath_af_add_iv(vec3, vec2) ulp-bounded 256 0 0 620f747e6ba53014c9714a8dbfaa3ff93f281c80938bd035ef64657e3bdc1a16 +lavapipe-hlsl 39 vec3 cultmath_af_mul(vec3, vec3) ulp-bounded 256 0 0 9dd029d56132560877ea155cf09e1b9519c2721acac462b10ac64afe7d01e134 +lavapipe-hlsl 40 vec3 cultmath_af_snoise(vec3, vec3, float) ulp-bounded 54 61 0 052ba44c08e92f1a9176d99c99c3939686c8e05f1398c3a184e0edf246cd565c +lavapipe-hlsl 41 vec3 cultmath_af_fbm(vec3, vec3, float, int, float, float) ulp-bounded 32 99.125 0 21f78108b9704a4b6dca1f74445c4a07f0fe235b222100c083346eae69833a3e +lavapipe-hlsl 42 vec3 cultmath_af_frustum_axis(vec2, float, float) ulp-bounded 256 0 0 9a6daac34242d264db9dedc40c8c074ea0fd188af9c04bb1658d0693111eabee +lavapipe-hlsl 43 vec4 cultmath_af_frustum_ball(vec2, float, float, float, float) ulp-bounded 256 0 0 45522a4b8e0e31f90e9e9e3af245182305ca8bb27abf1ab61b04f6c35b606112 +lavapipe-hlsl 44 vec2 cultmath_iv_snoise_ball(vec2, float) ulp-bounded 253 0.5 0 401da9e2e59377ac82a602dc86614e9c0418ee2ee8d38eecea45b5406ebca611 +lavapipe-hlsl 45 vec3 cultmath_af_snoise(vec3, vec3, float) ulp-bounded, reach 1e-6 to 1e-3 79 35.59375 0 9e9d24960b0514ee1fa795aead7629b8a61b65eec94aa1f25a94c0c754a1d992 +lavapipe-hlsl 46 vec3 cultmath_af_fbm(vec3, vec3, float, int, float, float) ulp-bounded, reach 1e-6 to 1e-3 24 122.75 0 7f941b1f0c76d9f2121027a555ae7f2a741cc164402f0df75237198ac97f850b +lavapipe-hlsl 47 float cultmath_cycles_divide(float, float) ulp-bounded 256 0 0 87f143c57806ad52c3295cde67e97f31e39c8572b8c0a4b8c577e6fcd8ecbebf +lavapipe-hlsl 48 float cultmath_cycles_power(float, float) ulp-bounded, platform pow 136 4.918926113980705 0 0e62db5ea32fdb9fdd3a9b135a914ddadd3231bdee0ff15c709102b26bb89186 +lavapipe-hlsl 49 float cultmath_cycles_logarithm(float, float) ulp-bounded, platform log 146 4.94622778071426 0 5b2bf1411512c7e5a3f4b335a16fc3ba00ba0784bb87acb14b7d1b9dd551b2f3 +lavapipe-hlsl 50 float cultmath_cycles_sqrt(float) ulp-bounded 256 0 0 6d4beb34e93ae304b3d9d30f203fb6c2ba222affc0efc35bb5441528e9062a9a +lavapipe-hlsl 51 float cultmath_cycles_inverse_sqrt(float) ulp-bounded 256 0 0 71aadd5bd384b9ca2eb89827de53af810a1350b02177de1987e9405e4a6e9ad8 +lavapipe-hlsl 52 float cultmath_cycles_modulo(float, float) ulp-bounded 256 0 0 cf055cafcb5b2d4789a0a2d5cfbc8bc79f52df646b60f5e47db3f994680949e9 +lavapipe-hlsl 53 float cultmath_cycles_floored_modulo(float, float) ulp-bounded 256 0 0 b781fd31c3671b332d7c726f1ef38c28119d0cda26f45a8a8f788127e73b60cd +lavapipe-hlsl 54 float cultmath_cycles_wrap(float, float, float) ulp-bounded 256 0 0 76c0b9fc35952c0557b4c1bd51d970851de7faa427dc6772a5cbad8851c9b4f8 +lavapipe-hlsl 55 float cultmath_cycles_snap(float, float) ulp-bounded 256 0 0 1211752ef48e46517f14eee689ada2e425688e0e7b1f3e10491d0099b19c7a96 +lavapipe-hlsl 56 float cultmath_cycles_pingpong(float, float) ulp-bounded 256 0 0 968ec85b73586bc37d1a0ce850c48b9ba55f9de42b0f05dee908fa307300887c +lavapipe-hlsl 57 float cultmath_cycles_smooth_min(float, float, float) ulp-bounded 256 0 0 9e5ef2547c138970e8edcaf669a1f43e54982b7f113ace2e1ca0ba7712bfc052 +lavapipe-hlsl 58 float cultmath_cycles_smooth_max(float, float, float) ulp-bounded 256 0 0 25e92186c7fcfd8692595b6be6fbb16add05cc97b9347129e46dccefe518f6ea +lavapipe-hlsl 59 float cultmath_cycles_compare(float, float, float) ulp-bounded 256 0 0 525e89cb65b42d49ebecdc542a82e5833aa5abc12de0baf85dcb5d628966f1f6 +lavapipe-hlsl 60 float cultmath_cycles_round(float) ulp-bounded 256 0 0 ace31f9ef6b3990cfd2deafd3bb831393b17a5c605de645d351096dd37469ecf +lavapipe-hlsl 61 float cultmath_cycles_trunc(float) ulp-bounded 256 0 0 ff8954688fa6017fdb94e9f2d76f1bebd4403dc961185b5e911a13341107f3b6 +lavapipe-hlsl 62 float cultmath_cycles_fract(float) ulp-bounded 256 0 0 8f9ca486ba15de9d17103ab201c42a2e71d8b813752690c503971786abdf20ee +lavapipe-hlsl 63 float cultmath_cycles_sign(float) ulp-bounded 256 0 0 6d4d58598959072125f811e50a6b4cb399946ffb53bcc12d66e985e3ae1f7237 +lavapipe-hlsl 64 float cultmath_cycles_map_range_linear(float, float, float, float, float) ulp-bounded 256 0 0 153c7636170f2c2df751da7d4108b264048a0c2441eea4175a07d52283bc34f8 +lavapipe-hlsl 65 float cultmath_cycles_map_range_stepped(float, float, float, float, float, float) ulp-bounded 256 0 0 75391d2c4ae437bbb7de824fff0ee2a4cface26160589a2546051fd7fe6302ea +lavapipe-hlsl 66 float cultmath_cycles_map_range_smoothstep(float, float, float, float, float) ulp-bounded 256 0 0 202bd26423a4ffe30698d093ab79a6d3aa0d388402f8a0059733695bcbc7bef8 +lavapipe-hlsl 67 float cultmath_cycles_map_range_smootherstep(float, float, float, float, float) ulp-bounded 256 0 0 fb98cb86965fda6c1e8b4f348009a997bfa8b38ba78c85a6c7c5aa3daff2c9b5 +lavapipe-hlsl 68 float cultmath_cycles_clamp_minmax(float, float, float) ulp-bounded 256 0 0 13093e4a629a5f7eaeafa6dca36af46692d323ebc7565bfc052195c13d820d9c +lavapipe-hlsl 69 float cultmath_cycles_clamp_range(float, float, float) ulp-bounded 256 0 0 801145eabd38a9b92f5fb81aa5d9d4c6a9a977c8514f753e92a039f66099dbbb +lavapipe-hlsl 70 float cultmath_cycles_mix_float(float, float, float) ulp-bounded 256 0 0 555151462568cdf0c4557c44b299fc5085149dbe7f9b8e77995b0ae84094701b +lavapipe-hlsl 71 vec3 cultmath_cycles_mix_vector(float, vec3, vec3) ulp-bounded 256 0 0 024dfa0de6980161524c7d26c0ccbac06769764b7b1f05e1ddaa2de3d26f5e9e +lavapipe-hlsl 72 vec3 cultmath_cycles_rgb_to_hsv(vec3) ulp-bounded 256 0 0 eec7cf189745ddc1c001297a42ab404b4186607f32a38a3b053122104f7c7b38 +lavapipe-hlsl 73 vec3 cultmath_cycles_hsv_to_rgb(vec3) ulp-bounded 256 0 0 1391d6304ba96b5f271c1fc66935785bf496d40c6a66d07669dbd9b36b7fd0f2 +lavapipe-hlsl 74 float cultmath_cycles_rgb_to_bw(vec3) ulp-bounded 256 0 0 d3c13195d2fd31e8fe5d0a8127d2650fe7b54ab0681d259735b891ef6c48a3d0 +lavapipe-hlsl 75 vec2 cultmath_cycles_ramp_index(float, int) ulp-bounded 256 0 0 62dbe8cdbd7a7cc64367dbe49f6554ee6660ba686bff145ec043f6932bea1f4e +lavapipe-hlsl 76 vec3 cultmath_cycles_mix_blend(float, vec3, vec3) ulp-bounded 256 0 0 98d559290d1eea28711099f58334c3013ded3d8055ffe2c460463fd8e6920e8a +lavapipe-hlsl 77 vec3 cultmath_cycles_mix_add(float, vec3, vec3) ulp-bounded 203 1.280824945387952 0 a6eb4ea72d93fadd76258113bcec9e2aa6a3557f7ffbbd018591b411826372e5 +lavapipe-hlsl 78 vec3 cultmath_cycles_mix_mul(float, vec3, vec3) ulp-bounded 256 0 0 d8c88a3734b9a6298dbfddafb2f4261639d9292f2c3282bd2de93ac87dc64aff +lavapipe-hlsl 79 vec3 cultmath_cycles_mix_screen(float, vec3, vec3) ulp-bounded 256 0 0 18a96f09e992efa4ffeccb6882a25d0a95eddd5c552f38081f9e9cbaeb302ba2 +lavapipe-hlsl 80 vec3 cultmath_cycles_mix_overlay(float, vec3, vec3) ulp-bounded 256 0 0 0d432008ddc87cf7c9728417be9dc5fbfbbff109b70696606c069bedb6f34455 +lavapipe-hlsl 81 vec3 cultmath_cycles_mix_sub(float, vec3, vec3) ulp-bounded 224 0.9887614915449221 0 43f38c46c85ec8e9bd50c40d273090301b56e45072d396e6840aba4b85d36ea0 +lavapipe-hlsl 82 vec3 cultmath_cycles_mix_div(float, vec3, vec3) ulp-bounded 256 0 0 595b729b984c7eafac49d571e213b70cab0cc3961c0875fd44f14f0eef712f6b +lavapipe-hlsl 83 vec3 cultmath_cycles_mix_diff(float, vec3, vec3) ulp-bounded 256 0 0 0f1494d72ef1aa26250df833c36c0059bfabc957ad46939f48095714f44724ab +lavapipe-hlsl 84 vec3 cultmath_cycles_mix_exclusion(float, vec3, vec3) ulp-bounded 256 0 0 49ac2faf217ebce63ea6f21aef3d865936106f1f461258d8f1dc0ebbc87ddb6e +lavapipe-hlsl 85 vec3 cultmath_cycles_mix_dark(float, vec3, vec3) ulp-bounded 256 0 0 446ec94675d81f6d228b70c79d9d857898f26522dd274305ae3c9dcf01e79d2e +lavapipe-hlsl 86 vec3 cultmath_cycles_mix_light(float, vec3, vec3) ulp-bounded 256 0 0 a2d1efef2a24fc3d55a9fc05aec5396e9e8360ff3e2f5f2c3987b828d21600b1 +lavapipe-hlsl 87 vec3 cultmath_cycles_mix_dodge(float, vec3, vec3) ulp-bounded 256 0 0 f75638b3350d6d10342c679b22051f854fe21cf886c7e1ec337ec66ec5b4e208 +lavapipe-hlsl 88 vec3 cultmath_cycles_mix_burn(float, vec3, vec3) ulp-bounded 256 0 0 96405c0838ddd0d2201909253f0a120ec1f73bed7d196d1c74f63ec36a28646b +lavapipe-hlsl 89 vec3 cultmath_cycles_mix_hue(float, vec3, vec3) ulp-bounded 256 0 0 3a010be30109d2782af0eb52c0d71b668caa30ed9817fbcfa2763a424f0d5235 +lavapipe-hlsl 90 vec3 cultmath_cycles_mix_sat(float, vec3, vec3) ulp-bounded 256 0 0 0d5fded68d4f56dcfe97fd5e2aee9644ac0d176572c069bc9aa8afa29a83ddaf +lavapipe-hlsl 91 vec3 cultmath_cycles_mix_val(float, vec3, vec3) ulp-bounded 256 0 0 8b4f5e0be561175c0417791b42ed18dc2c8a0330d6f98421f6dcc89bfe152a81 +lavapipe-hlsl 92 vec3 cultmath_cycles_mix_color(float, vec3, vec3) ulp-bounded 256 0 0 00067b1567bcd6c07a81fa5002f145dfca22437a3f3df5389b2665334d14909b +lavapipe-hlsl 93 vec3 cultmath_cycles_mix_soft(float, vec3, vec3) ulp-bounded 157 1.9750388068880254 0 ed7c5508ca0543cc20a5f0c5624e75e3ca2a2d6044d481816eeda2edc50c0592 +lavapipe-hlsl 94 vec3 cultmath_cycles_mix_linear(float, vec3, vec3) ulp-bounded 256 0 0 672435cc30bcbbb253cce7316ee0712b1a18f06924bc89cea2d3388dd164a15d +lavapipe-hlsl 95 float cultmath_cycles_arcsine(float) ulp-bounded, platform asin 154 2734.286809678319 0 f28f3ed0a53ffeebdfa84865d2d3d41590e6b46fc1578d40e1215e2a9e1af585 +lavapipe-hlsl 96 float cultmath_cycles_arccosine(float) ulp-bounded, platform acos 79 1046.8674409774287 0 22a2c38ab5a232cdbb33cf0c133362581a398f64a4d0d5d6dd89dc5af06bd890 +lavapipe-hlsl 97 float cultmath_cycles_arctan2(float, float) ulp-bounded, platform atan 6 25.5 0 2c60447d80186f6dc9726f19c09fa96ec3f66d8f5688968da533d9195ea463c4 +lavapipe-hlsl 98 mat3 cultmath_snoise_hessian(vec3) ulp-bounded 33 2377.8799856935966 0 a64853839f394cc7c367ba5e107caa8bb396f07cf202263aa917095dd1c939f7 +lavapipe-hlsl 99 mat3 cultmath_snoise_hessian(vec3) ulp-bounded, on the simplex tie set 132 1317.4754224467295 0 9066a49e50731881583ffca16c949171bb61578a1dfd497c54dafe773ab49488 +lavapipe-hlsl 100 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded 256 0 0 84bf9c9a2126b3114a692507cc54f58d313afc33de8a1cac83969cc508433cbe +lavapipe-hlsl 101 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded, lo above hi and infinite bounds 256 0 0 ff999094d7794aa525e0f9f9a067aa21408a59559aa546cace3b1bb4a8c7f96d +lavapipe-hlsl 102 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded, zero-length spans and flat infinite clamps 256 0 0 c3cc48f4edcac6801b9223f12d289934916431bdfaea8f68af33a1b833ab9860 +lavapipe-hlsl 103 SpanNoise cultmath_span_fbm(SpanPath, SpanStage, int, float, float) ulp-bounded 3 1024946.5723514018 0 f6395b9f2609d914894c35b442719be3cc3e11d07c5f0bae5a8719651e60cd4e +lavapipe-hlsl 104 SpanNoise cultmath_span_ridged(SpanPath, SpanStage, int, float, float) ulp-bounded 7 948534.9108393334 0 2adfdc4e6c81ee0bc7bb7869c55207f5033b4176104bc36dce1528ae0a5fe39b +lavapipe-hlsl 105 vec4 cultmath_snoise_grad(vec3) ulp-bounded, coordinate bands 1e-4 to 1e2 119 423.1430718408491 0 a94c38d1baa651a6faa510920cbe9d1f9528c0adb863ba6e35d835588ad00a58 +lavapipe-hlsl 106 vec4 cultmath_snoise_grad(vec3) ulp-bounded, coordinate bands 1e2 to 4e6 73 13116827.1875 0 9ad0fd577b26aa717534c0693df97ee41bcded0768f442739b98f505e4a2a430 +lavapipe-hlsl 107 mat3 cultmath_snoise_hessian(vec3) ulp-bounded, coordinate bands 1e-4 to 1e2 122 980.7417469278579 0 0977fa6f446e4f916a9b938ce24ea32df6aa912dc991c182014d309dc0efb1cb +lavapipe-hlsl 108 mat3 cultmath_snoise_hessian(vec3) ulp-bounded, coordinate bands 1e2 to 4e6 51 164827710.09171063 0 c87f8a091b11770f7ffd8f01cf421f3fa139b58b7bcfbb6afa171ad5bca10c7b +lavapipe-hlsl 109 float cultmath_distance_to_segment(vec2, vec2, vec2) ulp-bounded 256 0 0 56d4972116081037d01476cb26a7981a35e9a949eb739df87e331fef9a25e424 +lavapipe-hlsl 110 vec2 cultmath_segment_closest(vec2, vec2, vec2) ulp-bounded 256 0 0 fb6b7e9038f9138584d8d0c427578088f06ae21d7510d20e899cac3c3833dbd9 +lavapipe-hlsl 111 float cultmath_distance_to_segment(vec3, vec3, vec3) ulp-bounded 226 1.60911149933558 0 ad66ebd8fb9d743d5c74491a7657f92d1cfa04b76ae65e090112e369881cf0ce +lavapipe-hlsl 112 vec3 cultmath_segment_closest(vec3, vec3, vec3) ulp-bounded 214 32 0 4cdb6d7124e502786a4c4b082da3b94b8bde1e2082d14efa8245cbbe6b10a978 +lavapipe-hlsl 113 vec4 cultmath_power_border_step(vec3, vec4, vec4, vec4) ulp-bounded 214 43 0 fdfdff73434a146489b002af5e80663658b2dd7b86105a7e65bdab755ab54a5e +lavapipe-hlsl 114 vec4 cultmath_power_score(vec3, vec4) ulp-bounded 207 1.4619722193127032 0 dc1aa639ae1dc44003a0f5d8c7c99b2e3d7f51b158c96b3c3bd7a9f7df6d927e +lavapipe-hlsl 115 vec4 cultmath_multiplicative_score(vec3, vec4) ulp-bounded 234 1.5529504197086745 0 ee1af26ac82489e8d363e7a6b6b59da7dacfb397d4bc9a723dd68607a69da41a +lavapipe-hlsl 116 CultSiteCells cultmath_site_cells_insert(CultSiteCells, vec4, int) ulp-bounded 256 0 0 bfad8b369011cfbf14644fec68ce65620694fcbf3cd3804f54953d55587313fc +lavapipe-hlsl 117 vec4 cultmath_site_cells_border(CultSiteCells) ulp-bounded 228 1.069496760346883 0 d7b478bef7e6f80902d0b5b255cb4fca30757ff6b9d25dac2030b037a8d342ce +lavapipe-hlsl 118 float cultmath_gabriel_margin(vec3, vec3, vec3) ulp-bounded 201 2 0 6a80fbef486de496a08b7c8e7f9f65e2cc0f5b9f93abe50c43e84ad88d1ed034 +lavapipe-hlsl 119 vec3 cultmath_lattice_site(vec2, float, float) ulp-bounded 256 0 0 84df739c336796638dcf0a99c328a4b8c150c25d80e02248d4b6d023dc13161f +lavapipe-hlsl 120 float cultmath_lattice_weight(float, float, float, float) ulp-bounded 231 2.0671110200639147 0 434cdf5603abc2942aa624b9d2e98d5f1231706c86180a80439bc8b72bdd066e +lavapipe-hlsl 121 float cultmath_lattice_distance(vec2, vec2, float, vec2, float) ulp-bounded 256 0 0 ba3fa3bdb4f5f5b2478a4ddfb2e08f2f425e997778a716884e43b13d6ed050b5 +lavapipe-hlsl 122 float cultmath_lattice_smooth_step(float, float, float, float) ulp-bounded 256 0 0 6cbeddde536b12e83873f2e5ac60d16bef22049d2a7dea61af0ff1e0d5b84740 +lavapipe-hlsl 123 vec4 cultmath_power_border(vec3, vec4[128], int) ulp-bounded 188 65.72121683891783 0 8427c2b99109a4f59ff745fdb87f261deb1cbae34ce99bc1ae05ebb7f9963b4d +lavapipe-hlsl 124 vec4 cultmath_weighted_lattice_cells(vec2, float, vec4[128], int, float, float, float, float, float, vec2, float) ulp-bounded 179 3 0 fd3b58c4e2ba8a7bf801a1e6cdff82468abcb368442bc98b2583fda9d2e6f823 diff --git a/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json b/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json index 605a60a6..f2ab1f19 100644 --- a/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json +++ b/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json @@ -7082,7 +7082,7 @@ }, { "glsl": "CultPhasor cultmath_phacelle(vec3, vec3, float, float)", - "tolerance": "ulp-bounded, platform exp, sin, cos; across platforms |diff| <= 2^-20 max(|v|, 1)", + "tolerance": "ulp-bounded, platform exp, sin, cos; across platforms |diff| <= 2^-20 max(|v|, 1); on a device |diff| <= 2^-18 max(|v|, 1)", "platform": "Ubuntu 24.04.5 LTS; .NET 10.0.12", "cases": [ "c01d8630 41b2cd8c 41ea274c bfa19894 40aeb6ce 40918978 3e9be843 3f000000 -> bf74d9fb 3fb71956 bf35fe4e 3f21280a c01277e2 403b5fe4 40464bbd bd5b4455", @@ -26478,6 +26478,6298 @@ "bfdafc5c 404ff2aa bfb94d31 bfa4f005 bfc84ee5 c007567c -> 3f4bbcce", "c001df13 00000000 bfe57b78 bfe564b4 40132a80 3f82db94 -> 40128a76" ] + }, + { + "glsl": "float cultmath_integral_clamp_linear(float, float, float, float, float, float)", + "tolerance": "ulp-bounded, lo above hi and infinite bounds", + "cases": [ + "bf0b2a84 c0384244 ff800000 3f9a007c bfc80642 3f5f8200 -> be62fdf0", + "bf903e72 be013e00 ff800000 3f8f124e bfed81c9 4015f3f2 -> c09b895f", + "bffd4268 c0197f86 bfa70b86 7f800000 3ffe5ff8 403e73b0 -> bfa5200e", + "3fb686b4 3ff53690 3f75cfa4 7f800000 be0b6280 4027937e -> 4127a25f", + "bf6bb2f0 c0383fa6 ff800000 3e887584 3faa2b50 3fdde568 -> c009d85d", + "40753aee bf2c5544 bff5b17c 7f800000 3eb30210 402b63e8 -> 40d19059", + "3fd7e728 3f14eae8 3feba88f bff6ba08 bf9bd95e 3f98cd80 -> c094bc52", + "bf55b874 00000000 3f797988 bfe54df5 bfe638a0 3fe6ac28 -> c0ce6a80", + "3fefa58c 00000000 3f9f2a45 bee349b4 bf88b77e c008c9f7 -> 3ef305bd", + "bffd1d32 bff52532 3f14b7bc 7f800000 3f5aeb88 c03b152e -> c0937293", + "4009824e 4052b500 3fc0ea57 bd8e5390 bf7fd568 c0074df4 -> 3d9ea9bd", + "bfdc0802 4061136c be801d20 7f800000 4026e128 40380bc4 -> 4008013a", + "404ffab4 c04ecac4 3fc30ebc bf5da486 be657b80 bff22a7a -> 3fb8d46a", + "3e979c80 3fc0a8cc 3e84ffd0 7f800000 bff86de6 c01bf43d -> be03ea8c", + "c06f0bd2 bf78e25c ff800000 3f877bf0 be80f2f0 bf904c04 -> 402bb6a3", + "3fb318a4 00000000 3f1431a4 bf507b64 bfb71488 bdc34ac0 -> bf8b283f", + "bf87a14e 3dc402c0 ff800000 7f800000 3fe7c320 3fe21f08 -> 3d205f08", + "bfa11404 3f9901dc 3ebdb318 7f800000 3f28ace8 3f096210 -> bd39812e", + "c05920f3 bfc9fe26 3f1ee26e be71a1f0 bf82654b c01a834a -> 3ea89ad5", + "c00556d0 3feebf88 3ef66d70 7f800000 3ea319f0 3f547630 -> 3e7c0825", + "3f828c34 bfe13e0c bd879b50 7f800000 bf9ee05a 3ff55834 -> 40351a31", + "3f656160 bfe976f4 3ff8708d be711278 c00d46e0 4004c750 -> bf810990", + "4049950c 00000000 3f952f50 bc8be500 3fc0e688 3fcb9310 -> babaa746", + "3fabe24c c00711ba 3e068070 7f800000 bf63a110 bf5d45ac -> 3da264c8", + "c0233b98 3fff1294 ff800000 7f800000 402d3600 bf8aac5f -> 40626228", + "3feaba90 c053efca bfecf755 7f800000 40364634 bfffca21 -> c0e1bf93", + "4028f0cc c0612055 3f54dc54 7f800000 402ad238 40290ec6 -> bcbbaf79", + "beb04698 00000000 3f91dbd1 bf53ed66 c00b6465 3f074058 -> c00f62e0", + "406fa864 00000000 3f8b20ef 3e6939a0 bfea8224 3f191d90 -> 3f0db236", + "405fd6fe c0040094 ff800000 7f800000 4002336c be60d030 -> c06a8a31", + "bfb75c48 40201468 ff800000 7f800000 401b77ac 3f03cff8 -> c089cb06", + "40056938 3fe8379c ff800000 7f800000 3fa99ba0 3f9ad530 -> bf018a9f", + "c0556eb0 bc1a2300 3febcf2d bf9750a7 401435c0 c0068484 -> 40a71cf1", + "bef4a0d0 c0415561 bf7228f4 7f800000 403de0a8 bf882153 -> 3fc8f311", + "3e800c00 3e8da060 ff800000 3f7a9082 bda76760 3ff23f68 -> 3f7cfbd7", + "c0467619 00000000 3f4bbbfc bfd7b41d bfd61757 bde41880 -> c028612a", + "3ed56780 bf10add8 3dee9d20 7f800000 bfb672ae 3ffb8258 -> 3fbd0bef", + "4012d6b4 c06f1e30 ff800000 bf78a9fa bf853cf4 3f966510 -> c01493b8", + "c04d58e5 c06ee722 ff800000 3ed04950 3f141838 3fe7dd48 -> c1174a8e", + "3ea47f80 00000000 3f8a8816 3e8963e8 be6dc380 bf4225c8 -> be1096c4", + "4066fa60 c060a340 ff800000 7f800000 3f090cac bf6a8060 -> c0c6a530", + "c077191e 401e0304 3feefde4 bfc95e30 402dbf82 c0021a52 -> 40ef01d3", + "bfd20336 3e8d73f0 3f4e9f9a 3c550000 3f341614 3f8712b0 -> 3b95dd74", + "400b9982 401c9b94 3eb71990 7f800000 3f87b77c 3f41d668 -> bfaae6cb", + "3d15a000 c0799975 ff800000 beedd366 3e647880 bf775c28 -> 3f11e714", + "bf799da4 403f9dfa ff800000 bed08894 4012d1f4 3d588080 -> 3f70da61", + "3fbe1938 00000000 3ff40bd3 beaf5330 3f890abc 401b8f60 -> beee7080", + "3fbd70bc 3f7e1758 ff800000 7f800000 bef05ab8 4026cf76 -> 40fa0e87", + "c0229dc4 c036d32c ff800000 bf150af0 bffe5218 bfdccf14 -> be1c157f", + "bfe6ffe0 bf050038 3f01e041 bfac9dd0 c023de33 3ebccc20 -> c07cd000", + "3f687838 bd8e3b60 3f8f366c bff818ea c000ee81 3e4c9570 -> c08957e4", + "40722c5a 00000000 3fe691e1 be4fc540 3f4be2d8 3fb86d78 -> be05e3b8", + "3ff4b594 00000000 3f1dfd73 bf0697d8 3ffe2e30 c001ddfd -> 400718b2", + "c02fd649 3e5cc9a0 3fceabb6 bfb7fe6e c03c4bcd c0006605 -> bfac3327", + "c014e4f0 c0405a98 ff800000 3f66a948 c0105010 c016cee8 -> bdbb4834", + "bee72060 bedb74f0 3f0387d0 3e392a40 3e224820 c005bf10 -> bed02668", + "40665c3a 00000000 3fcf9ca4 bf880bb7 3d7a3a40 bedafe30 -> 3f05005c", + "3e912a30 bb7e1400 3ff1f167 bed87abc bfc5ea97 bf1a21fc -> becc6313", + "beb05d40 00000000 3fc08ab6 bdce7480 c004a2b4 bf4b4290 -> be03f88a", + "4007114a bf958182 bfa630e2 7f800000 3d523180 3f4c1688 -> 3f9a2e6d", + "bfc774c6 bfd46d30 ff800000 7f800000 bf0b93a0 3f89ac50 -> c04f49cb", + "c05a4f76 00000000 3faf89fd bfdd25e1 3f7c6fb0 be91f730 -> 400c8ee2", + "3db006c0 bf96efd4 ff800000 7f800000 3f98cc04 3fa107e0 -> bdb31de7", + "3fe5ebd4 402a5cb6 ff800000 7f800000 3fbd84a0 4036fb00 -> 412701cd", + "be130280 bf83421c 3f2d0fb4 bfc6d309 3fda2328 bfac537c -> 4097a0d3", + "bf998358 c07f2a7b bfdf42db 7f800000 3fe33530 3ec8fa80 -> 401a54fe", + "c003a422 c051b8fa 3fd169fb 3ec3f8b8 3ec1a460 3eb330b8 -> bc310236", + "c07db7cb 40652b7c bf8650a4 7f800000 3ee24aa0 bfbcc298 -> 4000b7e7", + "c050b426 c064494a ff800000 7f800000 be2c1ea0 3fda20ac -> c133bf2e", + "3ff5bf38 00000000 3febe24a bf246e24 bf8b52fe 3fee7658 -> bff2a785", + "3fef8560 00000000 3fd6bcb1 bf2f4aa8 be05c480 c018ada4 -> 3fc5a368", + "407e47fc bfee3d8c 3f3fd258 bef79ec8 be86f720 3f373aa8 -> bef28150", + "407a9322 4077a70c ff800000 3f16e5c0 4039278e 3e53b450 -> bfcaad7c", + "3ff74adc c074514c ff800000 7f800000 c036692f c00d50d4 -> 40ee1477", + "c0109599 407dcdfc ff800000 3e9826e8 3ff9ef34 bfbad3e8 -> 40f87d8c", + "c064d37e 3fabd540 ff800000 3f0b3400 403d2aee be4aadc0 -> 40ae0317", + "404dda66 405d6af2 bfecf98f 7f800000 3fdd9fe0 3f9e5abc -> c08419fa", + "3f8b94c0 00000000 3fd01cae bfabedbb c0053eb8 3f34f7f8 -> c06fbe1b", + "bfa782ce bfe55598 ff800000 7f800000 bfc85400 bf4eb930 -> 3f1e65b3", + "3fd827f8 c0721f90 ff800000 3faf1ee4 bf6c2dd0 bfd3bc9c -> bf801f26", + "3fe3ef4c 3ff5aa80 bd3e6540 7f800000 3b849000 c036e89e -> bf3e81f6", + "c02720c9 00000000 3fb39588 bffd0e72 bfa5ccee be3dcb80 -> c00c7148", + "4025b204 c0178ad4 ff800000 3f966f62 4035bc96 bf2b03dc -> 3fea7626", + "3f4c5f00 4027a106 bfc3f62d 7f800000 c02341c1 40397f36 -> 4127220a", + "4020b9d8 bfca59f4 ff800000 befd6a32 bffea84d 3fc48c50 -> bfdf5315", + "3fb6059c c03aeb32 ff800000 3f258852 403fb10c 4039b3a0 -> 3f2c3f36", + "3f66acd0 00000000 3f998fea bd8d6c10 3c347200 beab4b58 -> 3cc37c8b", + "bff98cd2 3fb23794 ff800000 3f9b5268 bfcfafe2 3e806180 -> c0ae1e58", + "3f8dc374 3f98a9f8 ff800000 7f800000 bb9b6000 bfe8226a -> bd2be404", + "3f974950 400380f8 ff800000 3d3dd240 c024f56a 400d0d90 -> c07f64b5", + "c07d5b40 bf3a9a3c bf194916 7f800000 3f22b430 bf990456 -> 3f8c5559", + "c07aaed0 402e17d8 ff800000 3fbe27ba bf0fb180 bee83ca0 -> bf121273", + "c00db16a 00000000 3f42cc80 bf57ab38 3ff8c090 3f2679ac -> 3f8b7054", + "3f2cbc60 00000000 3fa3b2db bfc92692 3e942528 c0390c40 -> 409ff36f", + "405fd66a c06cf16e 3e7196c0 7f800000 bf7c1f74 c0305c79 -> c193a29a", + "c044711a c031a2d6 ff800000 7f800000 bebb27d8 3f1155a0 -> c0481673", + "3cf92600 40353762 ff800000 beb7b1b2 bfe10d3c bfd7a9aa -> beb5ece8", + "bfbf100e 00000000 3f3505d8 bff3e8be 3ff63008 bfac1142 -> 40c7401d", + "3f207060 404afd72 bf21122c 7f800000 bf309db8 bfff02d4 -> 3f51c609", + "bf5fae3c 3f0789e0 3f6b63ec 7f800000 3fd8303c bfd41c44 -> c044e8b3", + "3d089500 bf897fbc ff800000 bf4a15df 402b3ed8 c0343436 -> 40c967b0", + "3fddab38 c00a9c2c 3f69bb9a bf8fd314 3fbe5748 3f862be0 -> 3efc747a", + "c061e050 bfa97d26 ff800000 3fda986a 3f9d338c bff7ceed -> 411af31e", + "404a3c54 404c5c1c bf6b4b74 7f800000 bf9c49de be6718b0 -> 3f58a2fb", + "406590ca 3f04dcb0 3fcaaecd bef9b444 4039241a bfe373d9 -> 4011c234", + "3fb551f8 c0020910 3fdfaf6f bfdeb6d5 bfe83ede 4005a37a -> c0d94966", + "c016a797 bfb2770e ff800000 7f800000 401cfafa bfa01d21 -> 413d2608", + "3f1c90a8 00000000 3fc3bac8 bf888bc0 3fe88cdc 3e344ba0 -> 3fe008e9", + "c0559cc6 bfb71176 3fed70d2 bf903083 3f4f3594 c023931e -> 40729e34", + "3fae840c 00000000 3f97115a 3e924de0 3d02eb80 3fb3f834 -> 3ec90777", + "3fc27378 3f494498 bf7d02b8 7f800000 c012410c 400ab734 -> 40d1dbb7", + "bf9e10e2 3f390bf0 ff800000 7f800000 3f972c38 3ed4cf28 -> 3f00e4ca", + "c07d7329 00000000 3f0da4a8 3d818360 c03ddfa2 bfbf8568 -> 3dbe7380", + "3e116060 00000000 3f420c52 3ec06c78 3f564cb8 bf92c392 -> bf3edb08", + "4063ad1e c07e35a3 ff800000 3f462e80 c00212a7 bf6ed200 -> 3f59e669", + "4044483e 402d13a2 3d50ef40 7f800000 402d46cc 40146fd2 -> c075046a", + "3fac2414 3f8b40ac be01e540 7f800000 bf682450 c02f685b -> 3dfedeea", + "c05e65ff c05526f6 3f909a1c bf042384 bfe455e8 bf6eb6bc -> bee10136", + "be776a10 403fd276 3f89268b bf2a53f8 3d3d1180 3e9358c0 -> be249f9f", + "4064ee2e 00000000 3f5e66be 3ec864c0 3e805e10 bf7f648c -> befa2911", + "4074ae32 00000000 3fcdee98 bf64354e bfffca31 3f252220 -> c016cfdc", + "bf87c254 00000000 3fc36d6f 3eaff918 bffe4cd0 400b1ff8 -> 3fb70933", + "c052c89e 4013111e ff800000 3f96e1b2 3f19be14 3f5ed320 -> bedd88e9", + "c009eb35 3fddee68 ff800000 3f044578 bf3ef864 bfa138ba -> 3ffff3a9", + "40691b74 00000000 3fe4e5aa bfb43ed8 3fe3f06c c01bd382 -> 40bdf578", + "3f830a4c c0531431 ff800000 be90363a 40370edc c03245db -> 4139b209", + "3fb8e818 c02ff12b 3fc3a58f bfcd1179 c018b019 3f67df5c -> c0a8bedc", + "3fc93094 3f22f3a0 ff800000 7f800000 4009c918 c01fb787 -> c0d99551", + "3fc13038 bee9dde8 3fcc6902 3dd5f6c0 3df0a1a0 3fcc1fc8 -> 3e1e094a", + "407033da 3f6849a8 bfce467d 7f800000 3fda1130 3fad13ac -> bfe73ad0", + "c031489e c07e39cd ff800000 7f800000 4019c98e c02a48fe -> 4136f1e3", + "c046dc6d 00000000 3fad6b49 bfd899d8 400b65bc bf10f6a4 -> 40949b6a", + "c05e533f c06d210a ff800000 7f800000 3f206210 be288850 -> 405b3391", + "bf7e85d0 40416500 3f8fdc10 be82a520 3fa35f7c c0056fbe -> 3f5b917e", + "40396ff6 402734d2 ff800000 3f60c942 bfc38654 c002fd20 -> 3f6b736f", + "404b1340 00000000 3fc2fb3c bfae7f84 3e430fe0 3e03e530 -> 3dac39e9", + "3f8f488c 00000000 3f6cafbe bf8aa584 3fbddcd4 bf809474 -> 402c76f4", + "40663df8 3f8cd5dc 3f9f57b4 bd8e8900 bfe9f0a6 3f955598 -> be556613", + "bf3bf700 4031fd74 ff800000 7f800000 40096f2c 40372942 -> 408e78dd", + "3f3342d0 c0272e74 ff800000 7f800000 bfeab9ec c0281aa2 -> c0a59170", + "3f3da9b8 00000000 3fb2875a bf319468 3fd6bb68 c000ec58 -> 4023e82d", + "40341d6e 40582d68 ff800000 bf1bc556 bfe0d240 bffe1562 -> 3f4d1a78", + "bf757580 c05a3300 ff800000 bea6f0e8 c02f51c4 c032f8fa -> 3c987746", + "3f86552c 3ed0c070 ff800000 7f800000 40146420 bfaf990a -> c092bb03", + "bdbde020 3f2abbb8 3f2459f1 bfe3ca0b 3f8583a4 3e88a890 -> 3fb0cd8b", + "bedefe38 3f839e38 ff800000 7f800000 40125092 3fb84be8 -> bfa05876", + "3ce15b00 c0108368 ff800000 3fc394ba 3feeb264 c0303e82 -> 3e29a2c0", + "bf995e24 bfd7be92 ff800000 3eddd4cc 3f4f9ff8 3fab76f4 -> bfcbaca5", + "404e6a02 401151c4 ff800000 7f800000 3ea4ac10 bf1f8304 -> c02e4f3d", + "bf0d3864 bfbd35da ff800000 7f800000 3f9e5764 3ff89eb8 -> c002f92a", + "3fb41270 3ee36b90 3ef72070 7f800000 40224ce2 403fee2c -> 3f9c3661", + "c044e618 3fe4f860 ff800000 bf3ab3d6 c02a551f bfc0667b -> c0fc1a14", + "3ea3d780 4021e21a ff800000 7f800000 403324b8 bff2fb70 -> c0db5ad7", + "3fd54e2c 3e944f40 ff800000 3fcca272 40391af2 bff0c14f -> c0e79db9", + "c01b99d7 3f90b97c ff800000 3edae39c 3ee34220 3e7c4700 -> 3ece6418", + "c01ae2cc 3f06c418 bebfa5e0 7f800000 c03305be c0029bb0 -> be90f9fd", + "bffa97b2 c0436485 bfbd3ae5 7f800000 3f685908 bf686f08 -> 3fe960f8", + "4052b922 3faad6ec ff800000 7f800000 be46c010 4001a130 -> 4120547c", + "c003292a 3ff31fd0 be378c10 7f800000 bed82bc8 3fdbb9f8 -> 3e008adc", + "c028fa52 402ef08c ff800000 3f970044 3fd06e10 401db5a4 -> 3f7c6de2", + "bf90e906 40570af6 3fe4ea7d beb7e66c bfa3f8a8 bef68628 -> be9308c8", + "3f59deb0 405c57b2 ff800000 bf4de4a9 403de08c bfad59ea -> 40993e1e", + "bfaf4754 bf8fbd24 3f25c0ac bf858e0c c03acd27 3fecabb0 -> c09f307e", + "bf90e182 40282582 3fc46df6 be554ce0 bf8271ba 3fe93108 -> bf177dcf", + "406af308 403a4800 ff800000 3f32aef0 bf8ba032 3fd28940 -> 3ff382a1", + "bf5d937c bfd430f6 ff800000 3f7dcd38 bedb1fd8 bfca9e2c -> bf3f7814", + "401da4d4 40116556 3f98ec71 be8d3d0c bfce7124 4012e7a8 -> bf89ff65", + "3fe228d8 00000000 3f9f5144 bd4de720 bfc2152a c003ee96 -> 3ce080a7", + "bfd65224 bf871dca bfc4fa72 7f800000 3e38c7c0 3f0a0458 -> bf0d4dd8", + "3eedae10 c0467403 ff800000 bead9056 3faca370 3fba4780 -> bed3e1b9", + "3f9285bc c035a27e ff800000 7f800000 3f8532a4 c0322863 -> c15d6539", + "400e0294 c0645562 ff800000 bf1e37fc 3f2ab790 bfa0f5e6 -> 3f983c47", + "406445f8 c056a1ed ff800000 7f800000 bf750180 3e926600 -> 40baa1c2", + "3f7ed1b0 3fd8acf4 3fdd35f6 bfab6e2e 3f9f492c bfa55d57 -> 405966f4", + "c073d5f9 4006818a ff800000 bf2ec36c 40021aee 3fc28b80 -> 3eb34fac", + "3fc831b0 00000000 3fdd735e bf1fdb88 bd8b8a80 bfb0546d -> 3f5152f5", + "c067b803 c053ee97 ff800000 7f800000 bf8d0f45 bf39c214 -> be65295f", + "40454632 3e33fe40 bef215e0 7f800000 3f873d84 bfc71e5b -> c0fdfdd3", + "c0371b4a 00000000 3f0d7f2c bf9b65f8 3f08eedc bd93ca60 -> 3f3cabee", + "4062a26e 4026084e 3f23621f bff89ca8 400e0fdc 3f65e738 -> 40244a41", + "bebe03d8 3d2fdd80 ff800000 3f835eb0 3f11c9b0 3eaa4138 -> 3daab3ea", + "c0657d7b 3e276860 bf506f04 7f800000 403635f6 4021d69e -> 3e84b269", + "bfafc7b8 bfc778be 3eb2bac8 7f800000 bf254a34 bf9c07fc -> be5744a1", + "c0249e78 bfae5444 bfb04f0c 7f800000 3f2a68e0 403dd784 -> c04acf36", + "c068736e bebe7aa8 ff800000 7f800000 402a1540 c01ed528 -> 4196ac89", + "3fd0127c bf5169a8 3fa4f77c bf8b48c4 3ff02d34 bfd3d383 -> 4075ecde", + "405aa754 c0423731 be096ae0 7f800000 3f1cc1f0 401cf950 -> 3e6661fd", + "3f86b240 3fabb848 ff800000 bf6ee45f 402ca76a 3f352178 -> 3fedb7fa", + "3ecdd950 00000000 3fd260dc bf811808 bfb00f52 400ccb1a -> c066c75e", + "bea6feb0 00000000 3fcca4b9 3ea249c0 bf2cfa20 3d67ae80 -> 3e6dac20", + "3e4a0840 00000000 3ffae0e6 be04b4c0 3e11a6d0 3fad4750 -> be20c604", + "c0799f76 bf85594e 3fe783e2 3ebf4b78 be03f160 bff50393 -> bf2ac2e6", + "bf8c7388 4032a74c ff800000 3fe1876e bfb9ecec bedcf780 -> c0738770", + "3e93efb0 be81bd00 ff800000 3ec55218 becf8b40 3e3f1150 -> 3e3fdd04", + "406241ca c05de18a ff800000 3e80529c bf271fe8 3e73c080 -> 3e64a338", + "c025c02c 00000000 3f5603c2 bf6d7634 c01aa5c0 bf56b0c0 -> bfbb5354", + "3fef160c c0039d40 ff800000 3f874ce4 3e683f80 c0037449 -> c01a4b84", + "40267ca2 00000000 3f31b7ee bfe701df bee92cf0 c01afc8e -> 40631bbc", + "befbf118 401fad5a ff800000 7f800000 bed93b70 c02a5de4 -> 411b762d", + "407c371e c07c0783 ff800000 3f5d20c4 3fa0bb70 c033ef8b -> c0447def", + "4029034e 403c0c0a 3feb36aa bfff3283 3fcad320 c01c200a -> 41005d70", + "3fd1dcc8 c06ea2f7 ff800000 3fff5a82 4038caf0 c03aedd4 -> 409ff98d", + "bfc1e3d2 3f8f931c bee4a428 7f800000 4004a430 4016cbd2 -> 3e8cbd70", + "4070c488 bffe9414 ff800000 7f800000 bf09ef98 3e37a380 -> 403d563f", + "bf8adb0a 00000000 3f530965 be6b63c8 c03047db 3e033610 -> bf29a108", + "3fceea28 3e77c340 ff800000 7f800000 401ff396 bf846d89 -> c0cad675", + "4057d9c8 00000000 3f937e61 bfe2a4ae 3d64f300 3e46d0e0 -> be7aafaf", + "c04cbc5e bf19041c ff800000 becedaf0 c00c7b5c bed40f78 -> c089dd29", + "c034a3ce c0451745 ff800000 3de07e90 c00b3cd8 3da72fe0 -> bfb2f3c5", + "bf2408a4 bfa6832c 3fe35a97 bf5850d4 3fdb6c9c 3fafe434 -> 3e93235a", + "3edb64e0 00000000 3f1f66ec 3eb80448 bfc4daee bf910b46 -> 3e14f87a", + "3fdc6cbc 40590126 ff800000 7f800000 c00231b2 c027f93b -> 406956a4", + "4040c116 40220f9e bfa796c8 7f800000 bf8e5c1a bed7c408 -> 3f3d3b10", + "3f86c7e4 00000000 3fb33aa0 bfc61af4 bf882bc6 c03e63cf -> 403d4a4a", + "40135a32 00000000 3f010b69 bfc53aac 401c8ada 3f067e58 -> 403d666e", + "3fb9ea54 3f667088 ff800000 7f800000 40126b4e bfaa9476 -> c0da143e", + "c0458ed9 40793090 bfaa3bb6 7f800000 bf67a36c 3fc9ac68 -> bf5677fd", + "40688054 c059af7c bfd79392 7f800000 3e2cf960 400c88b0 -> bddc33e8", + "4050b46a c008e7a1 bfc31ca2 7f800000 bbee3c00 3f8f245c -> 40154f21", + "3eca3830 3fddaec4 3fa6bd9f bfe8d46a 3f5c7528 c010e3f2 -> 40b5e713", + "c03e9e6b 40136fc6 3f655bb7 3e7a6900 c0033d1b 400e901c -> 3f85e95a", + "c06d2fc3 3f1626f8 3fa64533 3c6a4000 bebb86b0 bfc4f666 -> bc895477", + "400fca88 c034b1dd ff800000 7f800000 3e1b8dd0 3f763ae0 -> 3f0bd978", + "407c94a4 401ad33a bef86e10 7f800000 3f8a308c 401adac0 -> 412f5c0a", + "c03f7b9c bebc9828 3ffe5c68 befd807c bf8113ec 3ebca1e0 -> bf2e8422", + "4020cfe0 3fbfa9ec ff800000 bec74ee2 bf5da2c8 bec67c50 -> be3e93de", + "c00d2dee 3f50efe0 3fd8618f bfb19656 3f356f28 c025afbf -> 409266e9", + "bf44b364 c07447c3 bfd29b93 7f800000 bf8acc84 3fce3ab8 -> bf91d691", + "be9a1c78 befe9960 3f277228 7f800000 3e805e20 bfae4fde -> bf87017e", + "3f9e00fc bf88e102 ff800000 3eda1fc8 bff76283 3fee13f4 -> 3f76cb83", + "bf8ef440 bed711a0 ff800000 7f800000 3f32f3d4 be428170 -> 3f8b3ffe", + "be067930 bf9e417e bf853207 7f800000 bf648afc bf88e6d6 -> be43d727", + "bf7f9700 3fef7b1c 3f26c61f bfe0524f bf6d1eec c015e85e -> 401ed364", + "c03b0aad 3f01d8f0 bfb759c7 7f800000 403ced4e c01ba186 -> 40f6c684", + "bfe92a4c 00000000 3fe0c054 bff1c0f4 401ca664 3e9bbb10 -> 40818ca7", + "40158400 c07868c5 3fbaa390 3e7b5c90 3f0f2138 4035fb98 -> 3f0f8d26", + "c0252b55 402bdf3c ff800000 bf6bc7ac beec5098 bfd86ca4 -> 40d73441", + "c0439078 c02ab53c ff800000 3e5e0f60 3e709e60 c018c75b -> 401204ed", + "bff046aa c059b87e bf99fa11 7f800000 3f86a3f8 c030ae4e -> c0d2a314", + "40563928 bf14dc14 3ec4c038 7f800000 bfe97076 bed2e7d0 -> 40b49698", + "c014aa4e bdfe0340 3f3605dc bf8dcf77 bf297690 3e2aaf90 -> bf6b05c9", + "4006e3d2 3f612710 3f35e2c0 be124f38 c0008056 4023799c -> bf26dee6", + "bfce98fc 3cb4e000 ff800000 7f800000 c024ad6d c01767f0 -> beb1277d", + "401c9254 400d1d40 ff800000 7f800000 3fb53620 3edcd940 -> c08d3488", + "c0443ea5 40732a4e bfaecf9c 7f800000 c015d256 3f9feb58 -> c06ba7f1", + "3ff551d4 00000000 3f77cbec bef1ad68 bfb84901 3f451778 -> bf8580ed", + "3f38d8f0 00000000 3fd8c54d bfe14821 bf1befd8 3fb0f7f4 -> c06058a8", + "c033affa bf7d4dc8 ff800000 7f800000 40196ef2 3fa0ee0c -> 40a86678", + "bf2cc260 bf934a3e ff800000 bf714bc3 c01d504b 3ead2a20 -> c0291728", + "be5790e0 40534106 3f0bd833 bed0b664 befbb698 bf08982c -> 3c8c11c8", + "bfa83d6c 00000000 3fa24e71 be275838 bee3f830 bff605bb -> 3e77224e", + "4078f8f2 403b7202 bfe30e3b 7f800000 bdeac340 bf99fb7f -> c00891ab", + "400729d0 40616b48 ff800000 bf461e6f be2caae0 3ff7ba54 -> bfd06ba6", + "bf4c31ec 3ff690f8 ff800000 bedca326 c03b59a8 40086c3c -> c138ac1b", + "bda07260 3f5f9400 3f44ceb8 bf7d7ac4 3e564320 bf1a9360 -> 3f4e178c", + "bf878b18 c05db95e ff800000 3ff43ee2 3f871b38 bf1df154 -> 4042a94e" + ] + }, + { + "glsl": "float cultmath_integral_clamp_linear(float, float, float, float, float, float)", + "tolerance": "ulp-bounded, zero-length spans and flat infinite clamps", + "cases": [ + "80000000 80000000 3ff65b76 7f800000 40101a44 40101a44 -> 00000000", + "00000000 bffab8a4 7f800000 7f800000 3f12b010 3f12b010 -> 00000000", + "00000000 80000000 bf34a3ac 7f800000 3fd46400 3fd46400 -> 00000000", + "80000000 c00a0d51 7f800000 7f800000 bf9849a6 bf9849a6 -> 00000000", + "00000000 00000000 ff800000 7f800000 3fe4a0ec 3fe4a0ec -> 00000000", + "80000000 beb441d8 be195228 3fb78208 c015d454 c015d454 -> 00000000", + "80000000 00000000 3efc18a0 7f800000 c0157e7c c0157e7c -> 00000000", + "00000000 80000000 3fcb9924 3f93c620 bdbbe200 bdbbe200 -> 00000000", + "80000000 3f16a5d0 3ff1278c bfaa73fc 403c47f4 403c47f4 -> 00000000", + "bfeded14 80000000 ff800000 ff800000 400aa252 400aa252 -> 00000000", + "4042a300 3ec80180 ff800000 7f800000 c0369fbd c0369fbd -> 00000000", + "bf834bb8 3ff1675c 3fccd224 3eea4e38 bfe4046f bfe4046f -> 00000000", + "80000000 80000000 7f800000 bfb8ed52 c015deb4 c03bb881 -> 3f5abd11", + "00000000 c004ae4d 7f800000 7f800000 4038c578 4038c578 -> 00000000", + "00000000 c04d2c62 ff800000 bd754b20 3fcc4a60 3fcc4a60 -> 00000000", + "c0363eaa 80000000 be8c9ea8 ff800000 3fba9ac0 3fba9ac0 -> 00000000", + "80000000 80000000 7f800000 bf4c4cd0 c003ca24 c003ca24 -> 00000000", + "3f92b974 80000000 ff800000 ff800000 c008d69e c008d69e -> 00000000", + "00000000 40441954 ff800000 7f800000 40217b3a 40217b3a -> 00000000", + "80000000 00000000 ff800000 7f800000 3f8c7c70 3f8c7c70 -> 00000000", + "3ea22a30 00000000 3f5708fc 7f800000 c03b518b c03b518b -> 00000000", + "00000000 00000000 ff800000 ff800000 c00c95a0 bf5a3618 -> ff800000", + "80000000 80000000 ff800000 7f800000 3fb3af0c 400bf204 -> 80000000", + "4060b036 00000000 3fa51834 ff800000 c023687e bff93c2a -> ff800000", + "00000000 80000000 7f800000 ff800000 bfe50f6f bfe50f6f -> 00000000", + "80000000 80000000 bfbcb16e bf944da4 3f89a670 3f89a670 -> 00000000", + "00000000 00000000 beaae9fc ff800000 3f9468b8 3f9468b8 -> 00000000", + "00000000 bf50c0d8 3f7f9d38 7f800000 3ed30c90 3ed30c90 -> 00000000", + "405610da 80000000 3fe8ba90 3e9602a0 3f1e7c70 3f1e7c70 -> 00000000", + "00000000 00000000 3f84dca4 3ed1edd8 bfb5cbe0 bfb5cbe0 -> 00000000", + "00000000 00000000 ff800000 7f800000 401d4be0 401d4be0 -> 00000000", + "bea92ba8 00000000 ff800000 bfbc161a bfce0954 bfce0954 -> 00000000", + "00000000 00000000 3ffabe24 ff800000 be94c538 be94c538 -> 00000000", + "3fdb9278 80000000 7f800000 ff800000 bfb80c20 3fad3c54 -> ff800000", + "00000000 80000000 7f800000 ff800000 bfa61865 bfa61865 -> 00000000", + "00000000 80000000 ff800000 bf84d6bd 3f403a2c 3f403a2c -> 00000000", + "405d8f82 be715bf0 7f800000 bff060d1 40252552 3fabcf50 -> 4014cf8e", + "80000000 bf8e4188 7f800000 7f800000 3f6acd98 3f6acd98 -> 00000000", + "bf2996a4 3feeb9fc 3ef574c0 ff800000 403f2da4 403f2da4 -> 00000000", + "404b1a90 80000000 7f800000 ff800000 40358f58 40358f58 -> 00000000", + "406964ea 3f1b1f88 ff800000 7f800000 3eace890 3fe2f1b0 -> 40c4dd90", + "00000000 406a2510 ff800000 bf7d18c8 3f024fac 3f024fac -> 00000000", + "00000000 00000000 3fc5fa3a 3fa07496 bf8fb485 bf8fb485 -> 00000000", + "80000000 80000000 bfbb7b60 ff800000 3e2af490 3e2af490 -> 00000000", + "80000000 3e5aa380 7f800000 bfd8835b 3fdb8594 3fdb8594 -> 00000000", + "3f74a1e0 4011863a bf0a69ae bff30675 3eb98b78 3eb98b78 -> 00000000", + "bfa52d40 00000000 ff800000 bfc83f64 c0094bc0 c0094bc0 -> 00000000", + "3fdf6ba8 3fa96b98 be04bc30 7f800000 c00c72cf c00c72cf -> 00000000", + "80000000 80000000 3faeecdc bebf17e8 3f5565c8 3f5565c8 -> 00000000", + "00000000 c07111a4 7f800000 ff800000 3fe4c6ec 3fe4c6ec -> 00000000", + "00000000 3d8861c0 ff800000 7f800000 bfb30a60 befc8658 -> bd69a824", + "00000000 00000000 ff800000 ff800000 3eaec780 3f4e3528 -> ff800000", + "80000000 00000000 3fa5cf60 7f800000 3f46b9c4 3f46b9c4 -> 00000000", + "80000000 00000000 3c95e600 ff800000 3f847fa4 3f847fa4 -> 00000000", + "00000000 00000000 3fd73136 ff800000 bf7d6bc8 40305c10 -> ff800000", + "80000000 bfe74ff0 ff800000 3e0ee410 3ecea760 3ecea760 -> 00000000", + "80000000 00000000 3f082ac0 ff800000 40151e54 40151e54 -> 00000000", + "80000000 80000000 ff800000 7f800000 bf63ab8c bf63ab8c -> 00000000", + "00000000 c0571bc6 7f800000 ff800000 bffa05e1 bf93391b -> ff800000", + "00000000 80000000 bded5bc0 7f800000 3f8f48f0 3e98cc20 -> 80000000", + "00000000 80000000 ff800000 bcf42a40 3f0ec9a8 3f0ec9a8 -> 00000000", + "80000000 00000000 ff800000 ff800000 beb280f8 beb280f8 -> 00000000", + "80000000 00000000 3f9f75f8 7f800000 bfe89986 bfe89986 -> 00000000", + "00000000 404345ca 7f800000 7f800000 bf8f67d5 3f9b0790 -> 7f800000", + "c02d14e5 c018b2de 7f800000 beabd00c bf628f58 bf628f58 -> 00000000", + "80000000 3fa81b84 7f800000 7f800000 bf7fcb58 402c99e8 -> 7f800000", + "405a6490 c015edd8 ff800000 7f800000 402b25a8 402b25a8 -> 00000000", + "00000000 80000000 ff800000 3faf5518 3e8458b0 bf17a4b0 -> 80000000", + "3ddcc380 c01b944b ff800000 3e1a4ed0 c02f5e1e c02f5e1e -> 00000000", + "80000000 80000000 7f800000 7f800000 bfae87ca bfae87ca -> 00000000", + "80000000 bf365dc8 7f800000 7f800000 3cb87a00 3cb87a00 -> 00000000", + "3c9b6800 3fd96c50 ff800000 7f800000 bfa0d940 bfa0d940 -> 00000000", + "80000000 3fe3b634 ff800000 bfb50e83 be879260 be879260 -> 00000000", + "40400d36 80000000 7f800000 7f800000 3fcbf0b0 3fcbf0b0 -> 00000000", + "00000000 c073a1d2 3e22f910 be8c4dd8 402c5370 402c5370 -> 00000000", + "c00c4bae bf7f88c8 7f800000 ff800000 3f50b1bc 3fc21d00 -> ff800000", + "00000000 beb0d330 bf6b718a 7f800000 bf2bffdc 4015e728 -> bf5e9010", + "80000000 407ee62e bfc8b0ac ff800000 bfe242a3 bfe242a3 -> 00000000", + "c00a085f 4000655e 7f800000 ff800000 402f7d2a 402f7d2a -> 00000000", + "80000000 80000000 7f800000 ff800000 3ec08940 3ec08940 -> 00000000", + "00000000 80000000 bfb3cb9a 3fae284c bf73e094 bf73e094 -> 00000000", + "80000000 80000000 7f800000 ff800000 402b9396 3fe25440 -> 7f800000", + "00000000 00000000 bfa90b1a 3e615980 bf113528 bf113528 -> 00000000", + "00000000 80000000 ba34e800 ff800000 401b67ce 401b67ce -> 00000000", + "c066c90e 00000000 bda3fa30 7f800000 40336df4 40336df4 -> 00000000", + "00000000 80000000 ff800000 ff800000 3f965088 bf746b10 -> 7f800000", + "80000000 00000000 bfbad0bc ff800000 beba6078 beba6078 -> 00000000", + "401d2f02 00000000 3fea9790 3d3f6080 bfafe5e0 bfafe5e0 -> 00000000", + "00000000 3f51ea80 7f800000 7f800000 3fcab42c 3fbfaad4 -> ff800000", + "00000000 00000000 ff800000 7f800000 3fe9ee70 3fe9ee70 -> 00000000", + "80000000 c034a2be 7f800000 ff800000 3df9d3c0 3df9d3c0 -> 00000000", + "3f1f29e8 80000000 ff800000 ff800000 3dfe57a0 3dfe57a0 -> 00000000", + "80000000 c058626d 7f800000 bff33e4d 401c9e9a 401c9e9a -> 00000000", + "00000000 4075df8a bfd1267c 3fff39cc bfbb7f91 bfbb7f91 -> 00000000", + "00000000 00000000 ff800000 7f800000 c0105faf c0105faf -> 00000000", + "00000000 80000000 3e8b28a0 7f800000 bfe3598a bfd7dee1 -> 3cc7ad83", + "00000000 00000000 ff800000 ff800000 bec241f0 bec241f0 -> 00000000", + "40322ac4 3f612ac8 ff800000 7f800000 bf3990c4 bf3990c4 -> 00000000", + "80000000 80000000 3fc155d6 ff800000 bfdcf5b0 c0339ef0 -> 7f800000", + "00000000 00000000 7f800000 3fb27a36 c027718a be8432c0 -> 40526f29", + "80000000 00000000 3e4910d0 3bf3c600 3ff7f7b0 3ff7f7b0 -> 00000000", + "80000000 00000000 7f800000 ff800000 bf853af2 bf853af2 -> 00000000", + "80000000 80000000 7f800000 7f800000 c03fcb21 c03fcb21 -> 00000000", + "3f1c4320 404b71ae ff800000 ff800000 c03b7ec3 3ef955b0 -> ff800000", + "80000000 00000000 7f800000 bf3589e8 c004199e 3f4c3114 -> c001e073", + "405882aa 3f58fe18 bf3c8892 ff800000 3f5ba17c 3f5ba17c -> 00000000", + "3ed60fd0 c0787bf7 7f800000 ff800000 c027a669 c027a669 -> 00000000", + "40415c10 00000000 ff800000 7f800000 3ed104e0 3ed104e0 -> 00000000", + "bfd396d0 00000000 ff800000 be9a61e8 c03e89c2 c03e89c2 -> 00000000", + "00000000 3f504908 7f800000 ff800000 3fa5c6a4 3fa5c6a4 -> 00000000", + "00000000 bffb884a ff800000 7f800000 be7903f0 3ecc3d80 -> bdc934ef", + "00000000 3f2bd2f8 ff800000 7f800000 bfaa3d52 bfaa3d52 -> 00000000", + "80000000 00000000 7f800000 7f800000 3ff3f280 3ff3f280 -> 00000000", + "00000000 3fe24c9c 7f800000 bff12655 3f102eb0 40087702 -> c03d302a", + "406358a8 00000000 3ef01bf8 7f800000 3ffedf74 3ffedf74 -> 00000000", + "00000000 00000000 7f800000 3fd89804 bfaebcbc bfaebcbc -> 00000000", + "80000000 80000000 ff800000 7f800000 bf843386 bf843386 -> 00000000", + "00000000 404be2c4 ff800000 3fc25892 3e4d0290 3e4d0290 -> 00000000", + "bf0e67fc 80000000 7f800000 ff800000 bffe5952 bffe5952 -> 00000000", + "00000000 3fa4f594 7f800000 3fe5d4dc bfafd589 bfafd589 -> 00000000", + "00000000 bf77c8f0 beefd1e4 ff800000 bf79e4d0 bf79e4d0 -> 00000000", + "00000000 3f2f9d20 7f800000 ff800000 c017a5d0 c017a5d0 -> 00000000", + "80000000 80000000 ff800000 bf4b5558 3f19e55c bf993596 -> 3fb6cea8", + "c04aecf2 bffdc53c 7f800000 7f800000 3ff42e04 3ff42e04 -> 00000000", + "00000000 bf8733ce bf30ee0c 7f800000 bfdf4843 bedbf9d0 -> 3fc139ba", + "80000000 80000000 7f800000 7f800000 3f65e7e8 3f65e7e8 -> 00000000", + "80000000 c01677e0 ff800000 ff800000 bf007e88 4034553c -> ff800000", + "c023ebaf 80000000 3e888168 3fd868b0 3fd88290 bee63c60 -> bf1223eb", + "00000000 00000000 7f800000 beb09d98 bfac21b0 bfa0ead4 -> bcf793d2", + "00000000 80000000 3fe85996 3f3ed978 c0316f65 c0316f65 -> 00000000", + "00000000 00000000 7f800000 7f800000 3fdab088 c005b692 -> ff800000", + "00000000 80000000 7f800000 3fc6a1dc 3f5b0e68 3f5b0e68 -> 00000000", + "80000000 80000000 7f800000 beae44f8 bf31265c bf31265c -> 00000000", + "80000000 80000000 3fd86ce6 bf6d3f26 3ff3c428 3feb4ba0 -> 3d7b359a", + "80000000 3f9d2860 ff800000 7f800000 3f665fd8 3f665fd8 -> 00000000", + "80000000 80000000 ff800000 ff800000 bf3d4470 401a79f4 -> ff800000", + "80000000 00000000 7f800000 3fb11030 bfeb92e0 bfeb92e0 -> 00000000", + "bfea040a 80000000 3f4a5d74 bea5d2c4 3f741340 40247da0 -> bf060c1d", + "80000000 401a5258 ff800000 bf87f253 bf009dc4 40089a4c -> c033879b", + "00000000 bfe60b72 7f800000 ff800000 40386c38 40386c38 -> 00000000", + "80000000 80000000 bfcf6e6c 7f800000 403515f0 403515f0 -> 00000000", + "00000000 3f90bd0c ff800000 ff800000 3fa3921c 3fa3921c -> 00000000", + "00000000 3f494080 ff800000 be21e630 bebcd298 bebcd298 -> 00000000", + "406a06a6 00000000 7f800000 3fecf07a 3f8a6220 3f8a6220 -> 00000000", + "bf720b18 00000000 7f800000 ff800000 c031ef1a c031ef1a -> 00000000", + "bfa18170 80000000 3c31b200 ff800000 bffa78f4 bffb00c0 -> 7f800000", + "80000000 c010f43c 3f35544c 7f800000 bd35a040 bd35a040 -> 00000000", + "400eec30 80000000 3fb9fe58 3ff68576 402f8fb0 402f8fb0 -> 00000000", + "00000000 3f727ac8 ff800000 7f800000 40196800 40196800 -> 00000000", + "00000000 80000000 beabf8b8 7f800000 40275b20 40275b20 -> 00000000", + "80000000 c06216f0 ff800000 ff800000 3fbcd710 3fbcd710 -> 00000000", + "3e2b8e20 be09a8c0 7f800000 ff800000 bf2dc6fc c01fc7d8 -> 7f800000", + "80000000 80000000 ff800000 bfdd501a bf26753c bf26753c -> 00000000", + "407b0f90 00000000 ff800000 bff2b216 3f233758 c02aa030 -> 40c87116", + "c01eb335 00000000 ff800000 3f3265c0 401b2e1e 3feb10c0 -> 3fbab530", + "80000000 00000000 3f838946 3f0a5c88 3f0a68f0 3f0a68f0 -> 00000000", + "80000000 80000000 ff800000 7f800000 c02c2d43 c02c2d43 -> 00000000", + "00000000 00000000 ff800000 ff800000 c0275de0 c0275de0 -> 00000000", + "4015a6ce 40201064 7f800000 7f800000 c023744b c023744b -> 00000000", + "00000000 00000000 bdbabbb0 bfd7fffc 3f7393f8 40147bb2 -> c013ce4d", + "00000000 00000000 7f800000 7f800000 402fac7a 402fac7a -> 00000000", + "00000000 00000000 7f800000 3f2cba98 4022c284 4022c284 -> 00000000", + "bf7649a8 3fd2428c 3eef5f18 7f800000 401ff64e 401ff64e -> 00000000", + "80000000 80000000 ff800000 bf58f31e 3f568188 3f568188 -> 00000000", + "80000000 4039be2c ff800000 ff800000 402c7c98 3f8ee1f0 -> 7f800000", + "c0762d7d 80000000 7f800000 3f97fcf0 3f0b0374 3f0b0374 -> 00000000", + "80000000 00000000 7f800000 ff800000 3f52ccd8 bfc0fc02 -> 7f800000", + "00000000 4070b1da 3f5b1dc4 bf13e846 bff47ea1 3f35263c -> bfc19734", + "80000000 00000000 3f9c9f20 3f65673c 3fb0e250 c004e4f9 -> c046574d", + "401ed582 00000000 bfb557e0 7f800000 3fe43a6c 402222b6 -> 3fee5b90", + "80000000 bfc22d2e bdcfeaa0 3fa464a0 bfbda1fd bfbda1fd -> 00000000", + "00000000 80000000 3b208000 bfaca132 c030f6ab c030f6ab -> 00000000", + "3f9d2ae4 80000000 7f800000 7f800000 400dc94c bdccfa00 -> ff800000", + "00000000 80000000 bfcfc459 bf3e3016 40200df4 40200df4 -> 00000000", + "80000000 80000000 7f800000 ff800000 3ec4ecd8 3ec4ecd8 -> 00000000", + "00000000 3f892e30 7f800000 7f800000 3f9fcfc8 3f9fcfc8 -> 00000000", + "80000000 c042469e 7f800000 3f89d6f0 c008d2e1 c008d2e1 -> 00000000", + "80000000 00000000 bfa9f914 7f800000 bfe56d87 bfe56d87 -> 00000000", + "00000000 00000000 7f800000 3e7e1130 bfe16440 bfade4e4 -> 3dcc6f4a", + "3fed278c c0175c36 7f800000 7f800000 4006c8da 4006c8da -> 00000000", + "00000000 80000000 ff800000 be0c0b68 3f5397e8 3f5397e8 -> 00000000", + "3eb88820 c0494d42 bef4f1f4 7f800000 c00a6ab0 bf5aa13c -> 40d5c9c0", + "4058173a 80000000 ff800000 bfb537a2 c021c9a4 c021c9a4 -> 00000000", + "bef693e8 c039c856 7f800000 3fe18074 3f047ec0 3eefba60 -> bdb20561", + "c005b8ad 00000000 be9992cc be1fb720 bfc55229 bfc55229 -> 00000000", + "00000000 00000000 bff6c59b 7f800000 3f121cd0 3f121cd0 -> 00000000", + "80000000 bf7e2114 bec9b580 ff800000 c0122268 c0122268 -> 00000000", + "c01aa58a 80000000 3ff5ddde ff800000 c0001a48 c0001a48 -> 00000000", + "00000000 00000000 7f800000 bfd66c9d c0177ec3 c0177ec3 -> 00000000", + "3f322310 80000000 7f800000 bf947393 3feaf4e8 3feaf4e8 -> 00000000", + "00000000 80000000 bfa02d07 ff800000 bfde7439 bfde7439 -> 00000000", + "00000000 80000000 ff800000 7f800000 c02b599c bfee1d64 -> 00000000", + "80000000 00000000 3fddd822 7f800000 3fb54f5c 3fb54f5c -> 00000000", + "00000000 4007f0d0 7f800000 ff800000 3f31f590 3f31f590 -> 00000000", + "405cb2f2 00000000 7f800000 3f8d6758 bfe7a6d8 bfe7a6d8 -> 00000000", + "00000000 40567352 ff800000 3fd0fb4e 4030ba98 4030ba98 -> 00000000", + "80000000 00000000 ff800000 7f800000 402e382c 402e382c -> 00000000", + "80000000 00000000 7f800000 ff800000 bd8df4c0 4000ba00 -> ff800000", + "400e00d0 00000000 7f800000 bf0354a0 3db22980 3db22980 -> 00000000", + "00000000 00000000 7f800000 bf1c13f0 c03fb2ac c03fb2ac -> 00000000", + "00000000 80000000 bff31dff ff800000 402821c6 402821c6 -> 00000000", + "80000000 c0689249 7f800000 7f800000 bf9fa480 4013c62c -> 7f800000", + "bfd95cea 00000000 7f800000 ff800000 c0173b18 c0173b18 -> 00000000", + "80000000 3e952d00 7f800000 bf8097d4 40302390 40302390 -> 00000000", + "80000000 80000000 ff800000 bfeffee4 c01eb36c be619270 -> c0879000", + "404b75a4 80000000 7f800000 ff800000 3e95b1b8 3e95b1b8 -> 00000000", + "c00e25f0 bfbdd6ae ff800000 ff800000 4026857e 4026857e -> 00000000", + "3fea06f4 00000000 bff0ce8a 7f800000 3fd74714 c025bd4f -> c0f9e9f2", + "80000000 00000000 7f800000 bfb96dd4 bd946640 3fe4f32c -> c02c8dcd", + "40261dbe 00000000 7f800000 3f3f6830 3fb95060 bfc2eb22 -> c00e2593", + "80000000 00000000 3fde5382 3f1fb348 3f5e8390 3f5e8390 -> 00000000", + "80000000 00000000 bf8a5d94 ff800000 40363990 3fbfa8c4 -> 7f800000", + "80000000 00000000 ff800000 ff800000 4005e244 4005e244 -> 00000000", + "4024309a 80000000 7f800000 7f800000 3fdecd88 3fdecd88 -> 00000000", + "00000000 00000000 7f800000 3f91238c 40079ca8 40079ca8 -> 00000000", + "00000000 00000000 7f800000 7f800000 3ff7960c bcc05800 -> ff800000", + "80000000 00000000 7f800000 7f800000 40065cc0 3fe91e88 -> ff800000", + "00000000 3fe389a0 bed1d474 bd357fc0 c01f4cc3 c01f4cc3 -> 00000000", + "00000000 00000000 bf0a3aa4 7f800000 c032ed34 c032ed34 -> 00000000", + "80000000 80000000 ff800000 7f800000 3d3a0e40 3d3a0e40 -> 00000000", + "80000000 80000000 ff800000 bf6eae48 bf888f74 bf888f74 -> 00000000", + "405c38fa 80000000 3e25bd20 bf0077c0 3f8d28cc 3f8d28cc -> 00000000", + "80000000 c05d2c4a ff800000 befb6b5c c00cb828 c00cb828 -> 00000000", + "403e43e6 80000000 bfb8ab82 ff800000 3faf7fb0 3faf7fb0 -> 00000000", + "00000000 bfd6fecc ff800000 3ed7c3c0 3f225020 beac0090 -> 3e7ee0dc", + "80000000 80000000 bfda0e7f 3f5b65d0 3f74fed0 3f74fed0 -> 00000000", + "80000000 c037e6c4 7f800000 7f800000 3fa63768 3fa63768 -> 00000000", + "80000000 00000000 ff800000 7f800000 402a7c9a 402a7c9a -> 00000000", + "3ff192cc bf9b4ede ff800000 ff800000 c01f8d5b c01f8d5b -> 00000000", + "00000000 bf801ad0 3f59ed4c ff800000 c02ff429 c02ff429 -> 00000000", + "403bdb5a 00000000 3fd09b08 7f800000 bfdc1271 bfdc1271 -> 00000000", + "4063f4fa bfd6c9cc be9b4e08 7f800000 bfde6f62 3cda9100 -> 410d15b2", + "80000000 80000000 ff800000 3ea3f328 be05b570 be05b570 -> 00000000", + "00000000 80000000 ff800000 3edcd728 3f53d948 3f53d948 -> 00000000", + "c03d9d24 80000000 ff800000 ff800000 bfd2feb9 bfaea521 -> ff800000", + "80000000 00000000 7f800000 ff800000 bfaa4ef0 bfaa4ef0 -> 00000000", + "3fbe989c 00000000 ff800000 bf955032 3f043390 3f043390 -> 00000000", + "00000000 00000000 ff800000 bfb66c20 3f5be7f0 c03ae854 -> 40ac5d0f", + "bfbd1070 00000000 7f800000 ff800000 3f097bf4 bfb0083c -> 7f800000", + "407eb752 80000000 7f800000 ff800000 4017e772 4017e772 -> 00000000", + "00000000 00000000 be3e4598 3fd93476 3f1bbd64 3f1bbd64 -> 00000000", + "80000000 3e011e80 bf8a1de8 3e70f440 c020ae44 c020ae44 -> 00000000", + "00000000 80000000 7f800000 ff800000 403ce988 403ce988 -> 00000000", + "80000000 00000000 7f800000 ff800000 bfec7761 bfec7761 -> 00000000", + "c01aacb0 80000000 7f800000 bffce4f3 be0040d0 be0040d0 -> 00000000", + "00000000 00000000 ff800000 ff800000 bf2f0254 bf2f0254 -> 00000000", + "80000000 3fc97bcc bf3468ec 7f800000 401fb7c2 c002f127 -> c06786d0", + "80000000 80000000 ff800000 ff800000 bf0a598c bf0a598c -> 00000000", + "00000000 00000000 beb9c524 ff800000 3f949a78 3f949a78 -> 00000000", + "00000000 80000000 7f800000 bfd73167 3fa7e328 403d13e6 -> c030c039", + "80000000 00000000 bfc58738 ff800000 3f5f8ea8 3f5f8ea8 -> 00000000", + "3fb9b348 4007bb94 7f800000 ff800000 3fe45408 3fe45408 -> 00000000", + "3fde732c 00000000 ff800000 bfd1e56f bffd7643 bffd7643 -> 00000000", + "00000000 00000000 3f29de30 ff800000 bece6e60 bece6e60 -> 00000000", + "80000000 00000000 bfaab168 ff800000 bf0391a0 bf0391a0 -> 00000000", + "00000000 00000000 3f54e0a8 ff800000 bfc96f89 bfc96f89 -> 00000000" + ] + }, + { + "glsl": "SpanNoise cultmath_span_fbm(SpanPath, SpanStage, int, float, float)", + "tolerance": "ulp-bounded", + "cases": [ + "c1e8c486 408859a0 4209df1c bfd405da bfae7f45 bf4bf283 40173577 3f3df92e 3dcccccd 3daf634f 40773997 bee454c8 3f4650cf 3f117634 c0fa9f30 40328fb0 c084111c 40cdfff8 c07fcc48 c038ffca bfe64a6f bf5f5c56 3f9985f8 00000003 bfce4600 bf721003 -> beabe5a4 3e0539c6 bec85e69 3f290ddc 4052379f 00000000", + "c189c6d0 c1a1a95d 421a9dca bb872588 3e566bda bf6d4d57 3f7a38ae 3fad719d 3ca3d70a 3ebd46b1 421ba090 3fee0ccb bf94d83b be4eaf17 c0ab18ec c04962ae 40fc3e12 c0cf5763 c03a6dfc c0b8d06c c0333f47 c03ee6a2 c03de320 00000002 3f4d9338 be75267e -> be3bfd40 bee86efe 3ed91f5c 3e81cb36 4084a651 00000000", + "4171abd0 4100b594 41e79c38 be3ab428 3e2e3b8c 3eef71ee 3f391044 3ec58756 3f000000 3eca832b 40052ea3 be9184d6 bf096b92 3e9cac7c c0b8afb0 c0333dc6 c0b5cd4a c09daa9c 40d488ba bd778080 be8986c5 bfa7b7ac c039408d 00000004 3fcc6857 3eedc0c3 -> 3f1c45fe bf4ac425 3e59bc0e bd0437f6 4236b592 00000000", + "413fd3c4 c1a2b8dc c0912300 bfe8af9f 3f1b8111 3e81713d 400477b9 3faec659 3dcccccd bd984a9a 3e99c3d4 3f8ea27a 3f81ec15 3f8b2e04 c012a21a 40f315bc be0985a0 c019d566 c0bc628e c09185dc 3f84d85e 3f13f3e2 3e584f9a 00000005 3f36a156 3f8b8bfb -> 3e0e7221 3ed5cfce 3eab833a bfb45f1d 40b42f1f 00000000", + "40cc6a60 4133d034 41fba404 4019b988 3f139385 bdf9342c 402025a7 3fba886c 3ca3d70a bc858213 3e57ffb3 be856941 3ec0c011 c01f90c2 4089161c c0398198 40b8e87e c0882fa9 c0b1f685 c0819f02 402dd736 3f69e33e 3ea75944 00000005 bf53e0b0 bf2cc0e8 -> 3b852f1f bcbbec36 3d84e78b beaff143 3e6d6e6a 00000000", + "4231d2d0 c1aba9ae c2443623 3fab6f26 3f949615 bfaa0f42 4024a6c8 3f371a21 3f000000 3fd49533 3c766fa8 bd74c1ac 3f46c890 bf22300b 40e8094c 3fb8b970 c0de5299 c04379f4 40ef200a c048773a 4011b36b bfa17c11 bfea954b 00000004 40268527 bf27efb8 -> 4192a37c c39cd16a 438302f6 3e4b2811 4c91e2f6 00000000", + "c1d5f064 c194386a 41126b84 3f14e7f8 bf8c110b c02d2ab0 406c4b7c 3fb75103 3f000000 bb1e41ea 3e8cb0c3 400e1b01 bf966cf6 3fb3d0d9 400a57b8 c08c3d74 c0ffb8de 40bcd070 c0b325de bfc386ac 3fff3828 3ff71900 3f9aaaed 00000005 bff19635 bf845b60 -> bd324040 3c409948 bd7ead2c bf4ae73a 3f8949ed 00000000", + "3f802d20 c1067134 403266e0 bef9b9e5 3fbf0341 400ab782 402b653c 3db224a6 3ca3d70a bf0a21be 40077d71 3f09df29 c00b90e7 3eb0cc37 c0d9333b c0bab75f 3fd6ec60 40517608 c0487e0e c0d3c302 401c3cff c0359246 4024ee5a 00000001 c0285ac4 3f0860c1 -> 3effe827 be8c1b9f bf47ac03 3ea47b0c 413d149f 00000000", + "c0836d58 c2303c12 40913c88 3f02a951 3e1f7eb6 3ed1d98a 3f32319f 3f947d04 3ca3d70a bcb992d2 3c348184 3c81fbb2 3fa2796b bf490d24 3f9b5978 c0b9b5f2 c0748930 3fd20130 c00b19d6 409533f4 3ed6e69c 4030b114 3e2fb80c 00000005 3f3ac510 bf575170 -> 3c9899c7 3ee5208d be555174 bf2747fe 4389f73a 00000000", + "41a3f724 41bf57d8 c13ed9ac beb5332d 3f9d9383 3f746b6b 3fcc7e55 3fcb0906 00000000 3f9961ef 3c829ece bf112939 3f0a57af be552572 bfa9bc30 3ffe5758 40d50412 40cee2b6 c00b50ca 3ff7abc8 bea63a7d 3f7418a4 bfd66bc1 00000001 3febb7c6 3f8c99db -> c2a5b4e1 4299db1e c202831a bed784d7 4814f9ee 00000000", + "41466c9c c1fa6241 c1f201bf 40135b9c 3db49ce0 3fe964c4 404b110d 3ef0334e 3f000000 be55c93d 3e6684ec 3efca50f 3edf817e bd858552 c089c9da 40e68558 c0c5c125 c09327a4 4091b76c c0ce1070 be672ed8 3e103ee6 3fe589bd 00000003 3f5eb2fe be83c4b9 -> 401d2baa 40155d06 be090d41 bdecadcc 426bf920 00000000", + "41ac8848 c1c8d5d4 419ee46c bf8c9a83 402d8df3 be472928 403e36fb 3ffee66a 3ca3d70a 3c0d46fd 3c9bf162 be45aca4 3e744a01 beffecc5 bdfa11c0 40e8be3e c05e040c 407fbba8 40c4bafc 40515ef8 bfdadd3c 40084c64 3fde692e 00000006 3fae2c08 bf96b088 -> 3fbcc2f2 c010e5d0 40891e28 3fb3f9b5 447c6731 00000000", + "419b84c0 c15badb0 c214e7f1 bb8b29e7 3daa323b 3f925209 3f9ead5f 3e3f838b 3f000000 bd8e1057 3e268108 bd159118 3f7093f8 4016ad5e 4084b7f4 bfb191ec c085323e c0dd4ed7 40b8b6ea c0aad83f 3f9b3a24 bfbea860 bfa670af 00000007 40396b71 3f10163d -> 3ebada3d 4055ed07 beae3ae8 bdfa7d0a 480b76e5 00000000", + "c143b798 bfb00160 4223b0d8 becb8c2b bfc907e3 c0163973 403861ba 3fb8ee45 3ca3d70a 3e148220 3e216a44 be96defc 3fa0263b 3e72019d 4054ad64 408aa782 c0503aaa bf3e6958 c06b28a6 3fc7e108 3de9226d bfb45af6 bf8380ea 00000005 bf0b7977 3f868b0a -> beabf28f 402103cc 3ea1bc39 3f395fb0 42751101 00000000", + "422a9ee6 c2326299 41f372d4 3fec7421 bf9372e2 3f2fc27c 4012182c 3f2e6e91 00000000 bbfe1a2f 3e296a80 bf0b2f4a 3f5a96a5 bf6c5440 c0847ef4 40dc54be 40c57ee4 40f1ed84 40b3d6a4 3e9905e0 400ce8a4 c021a8db be7632d0 00000001 bf0e10b9 3e183bcc -> 3b849332 bc153149 3cd46fda 3d19da97 3d3162ff 00000000", + "4227afd4 40ce3ae0 42073478 bff05385 bf94e2c8 bfb6d1dc 402855c6 3f4a0183 00000000 3d700ca9 3cf17e9b bf354721 c0104a71 3e96ed08 c0099b4a c0273c84 3e9904e0 bfef5e4c bfdb0ae8 c05e8768 bf72a154 3ffcb970 40045238 00000005 403015c7 3f497076 -> c23f9b32 c30a23fc 4190ca7e 3f7a647d 480bab76 00000000", + "41cd4e28 4123e7e8 419d3464 3d855d67 be8d5546 bbaa051a 3e913ca1 3f753fb6 00000000 bd6960a2 3f133dcd 3f01e8d0 bff5a312 c00aec5c 40d4420a 40f130d8 c0f8accf 3fb379f0 3feb0910 c07b13a8 bf6076c5 3e1b28ba bfaf18e8 00000007 bfdd6d30 bf26cf77 -> 3ded1a42 bf9eb62b bf0098b8 be2800c0 419aaf14 00000000", + "c0ce3178 c14c8710 422d6d32 3fbaec37 3f78eaf5 c01a82de 403f3ec3 3e439da5 3ca3d70a bdf42534 3f83d100 bd18b614 3d502dcc bf018def 3f023660 c0b0a519 4013d810 c0cedc18 c0e6f551 c094e390 bf8b784a c01bb2f7 c030fa23 00000002 bfd5b3fc bf21b657 -> 3e29ca4c bd2d2070 3e557ed5 3efe5d6d 3fa3f121 00000000", + "407c8a80 41976410 c1e42d6d 3f3e9daf 3f028cb3 bfa84f50 3fcc2381 3fd7b1da 00000000 c09b3fd5 41013bb7 bf2eacc7 3fbf8072 3eff3d88 c0b977dc 40df71c2 c0650a84 40fb91da c0c74236 40802768 400d565b 4036d0e7 c039a62d 00000003 c0104194 3f420f50 -> 40b6c1c0 41915625 c1f443d2 bdfc5598 463d0826 00000000", + "c101faa0 c2246379 419e1838 c009e8c5 becee55d bf7fcdae 401b62ed 3f6d5d9b 3ca3d70a bda14697 405922db 401a0b3b 3ec73f7a 3fcdcf23 401ff42c c0f26032 401cde2c c05766ba c003a452 402b5ad4 3f951e18 4026d012 3f74c1a3 00000004 4038df8e 3e8bae39 -> 3e05ec4a bd530b80 be5d051a 3e0e2536 40c738a6 00000000", + "c13346b0 41f6276c 420e4546 40178adc 3d688fb8 3f90314d 4027e8db 3ad4cb50 3f000000 c0b826b7 3d0395ab bf4c86f9 3eedefd0 3f208905 3ea5cc20 c0feaa41 40f98f92 c07ead52 c0b3dc38 40ffa62e 3ffdc042 3ec711bf bf69aa23 00000008 3ff4295f 3e4fcef2 -> c377f82c 4317cbf4 4357025f bee87499 4abde401 00000000", + "c2474822 c1897a80 41c5fa74 bfc081f2 be8f0bb5 3f30bf8f 3fe57cf7 3f92ac00 3dcccccd c0aed12c 3e5ce478 bde110f5 3f7dc9b0 be623f80 40423ec0 409cfa26 3fb06088 c0d4ed0c 40c858e4 c03b1ff0 c02515ed 3e2a6b6e be706064 00000008 400f667e 3f8c96aa -> 45e681de c680d80e 44b7fa2f bf7222fa 4fc96248 00000000", + "42372ab8 c0123920 4225584e 3e46a4a2 3f38d0c9 bfbe3847 3fdfdb66 3f5a88a6 3dcccccd bddbec60 41c5aab5 3e062c2f bf9aa084 bf989938 c0b0ce54 40a33b98 3ed8fe40 3ff775f0 40c03150 bee58900 c01eec70 3e095f6b bfa10dce 00000008 3f8ac558 3f513c21 -> 3c7c6a40 3ecbdd24 bee2f328 3e845d37 4035459e 00000000", + "408af178 41a23fa8 418c8748 c000fb6e bf820795 bfc09004 402fad5c 3fd0bde9 3ca3d70a 40860c6d 40827671 bc4a5e83 bef90d91 be202b0e 4098db26 402fe65c 4079706c 401b5a20 4045b8d4 407f17f4 401a1d80 3de32362 bf9e4e89 00000006 c0332eb7 be62299c -> c1188c68 c0127f11 40c75df0 bea077a4 47073620 00000000", + "41d25c84 c23c0cdf c20f60c1 3f8d74e3 3ff473f5 bdec94f5 4013ae54 3f7ae2a2 3dcccccd 410e0e65 420ae7ae bf185aa3 be33ad5a 3efe88a7 3ff42b10 403612ec c0fc7bfa c09fa6fe 40cf909e c04b20a6 bee9a968 bfee04e9 bfccb1d8 00000004 403a3287 3f80ce75 -> c3982d36 41ae3ea8 c3b0ac48 bf2e824c 4a3b65e2 00000000", + "c00eed60 c1f9c353 c1743468 be872098 3e9191d8 3f36174c 3f4f6966 3f533a57 00000000 be0116b2 3ed38680 bf8a2323 3ec91869 bf80b05d 40cbad9e be41b320 403de714 c0ee90b1 c0f14314 c00dbc3e 3fc8fa5b c01450e8 3e25ee7c 00000003 c002c1cb bf74062e -> 3f1683cd bb33fd00 3efa9cfc bea2e09e 422f39f5 00000000", + "c22ebbe2 bfbcbe00 c22d8ece bf82a489 3e172181 3e1d9f3d 3f8576bf 3e4fe027 00000000 3bdf54db 3e859a53 40187857 bf088117 bf10aa56 40e9dd06 406a649c c0ff713c 408f580a 40f7545a c01cd20a be0709c8 4007a19c bf6d7d6a 00000005 403d378e 3e631b0d -> 3b144e5d bb8aa09e bca31034 3dbcd6fd 3ec6ccc9 00000000", + "c22ef0d5 c226860f 40940d30 be5895d2 3ebd7d13 3ec06e4e 3f483a4b 3edaf920 3f000000 c0abe0a3 415e681d bfd20629 4006573e bf62800f 4071e64c 40b5e4fc bfc2d310 c09e99ba 409f7b52 40b652c0 4019908d 3febfe1f 403da491 00000004 3fd500b8 3ea02514 -> 4148d96f 4191920d 41827b8a 3ea70d30 45a3d818 00000000", + "c22ab0a6 c1efed8a c1640d50 3d9fca6a bd106bd7 3f13aed1 3f16996a 3e81dec4 3ca3d70a 3c6476c4 428f10ed 3f4db2b6 bf56e31f bfd534e0 3fa52e48 c0b55d62 409371a6 c0f16f5d c0598a22 40adb1e4 bf26a117 3fd32243 bffa4352 00000001 400b9c55 bf3e0c90 -> bc754ac8 bc1b4f65 bb250a07 bd0923d3 3b1e516a 00000000", + "40a078c0 c0d7f3c0 41a1e938 bd491ae4 bcdeb047 3f396332 3f39f17f 3f8ff087 00000000 bc7043bf 3c46f52c 3f6a46d5 bf2adf15 bf93bbd4 c0985fb4 c0360fe0 c04b17d0 3fadf058 c081cb7e 40aadfd8 3f288b0d 3fb367a9 c02c1802 00000003 3f8efdcf 3eb0e626 -> 3fc03631 bf8d1a48 bfedaf3f bed4d5e6 42531e27 00000000", + "c17b4514 41f29130 4239f0f2 3f66df55 bf0bb35d 3f2d47f0 3fa93fca 3f320b23 3dcccccd 404fd5ed 3fbc4642 bfe53418 3fa6f122 3fbba932 c0a46ade c0d6c057 3e3efe80 bf1f6658 bf3b1750 408c68ca c0123148 4039d763 c0216e01 00000006 40066bc4 be93f058 -> c0919b2b 3ff84acf 40ef8ea0 3ea0f90d 45db941c 00000000", + "c1e4c8de 41ba4210 41f58304 3fe0355b bf17bd14 bfd1b808 401e1eaf 3e2e0e8b 00000000 c0b58068 4140629c 3fbf9144 bf037b40 bfa5f2f9 3f72a940 bf9dbf00 4060d6d4 c0cea58c bdee2180 3e8c8d60 3fca08ba bfe5f40b bf44e87c 00000008 c03c5ddf 3edec443 -> 4218ab66 42b82b40 41e54382 beba9708 4bc3a406 00000000", + "c23b8ec2 c0f67120 bfb7ea00 3ea23f8e bd1489e8 be295efe 3eb81125 3c2cdef8 3ca3d70a bb23ab4d 3dd9ea35 bf2b45e5 be3d11d8 3f98b414 40950a00 40799824 c0b5a5d8 40452128 c05dd8d8 bb7d3000 bdf10c64 bfb40370 3f175799 00000007 bfd7c2f4 bee82815 -> bc60f16e 3c000a2c 3c48dc08 3e9cc376 3e617d62 00000000", + "c1ffb6ae 40d16fe8 c22cb319 3fa6d768 3f04eb30 3e987b4e 3fc095f9 3f33dfaf 3dcccccd 4111ef02 3e537bea bf28fb62 3f8f9cec 3e1391ff c04dc29c c0062e84 4003c4ac bfa336b4 409d1ad4 40dbb1d2 bf7c5fa8 bf18b4ab c0373f54 00000001 4032abc0 3e09e1d9 -> c2804c8f 4306791d 3f1d2285 bebaaa4b 47d3f531 00000000", + "c16393fc 40498970 418ac5ac 3cdecc73 3eb869ec 3eae8151 3efe45b3 3fe94915 00000000 3b465572 3cb84973 bed59b57 bf05e65f bf7860fe c0d0820b 403cbdc4 408f244a bfea3be8 c018d5b4 40845102 3f44f44e 3fbcec2d bf51f3fa 00000004 40293138 3e04c2c2 -> 3c20814b 3b0055d2 3c93ddf8 3f165b4c 3fb9d308 00000000", + "c20aefe4 42215ed0 c22c52b6 be905088 bef9e826 3e38e733 3f1783e3 3e286dc0 00000000 bbd33a6c 3d847d7c 3fb8294f 3f4ef38d 3daae83e 40983458 40a30048 c0945b14 bfffa0f0 c0cf7349 40c2d8ea 3feac2c6 3ff5a60e 3fdabe8f 00000005 bf8e354f bf8ad0dd -> 3b89aa80 3c7cdbc0 bd88b2db 3dcafe80 40082b55 00000000", + "415f15a4 c1083a08 bfab6ae0 3f3cca0b c02193d4 bf828f21 403dd42f 3fb9b05a 3dcccccd 3f1024d9 3d813dc8 3fba2622 3f82d30c 3f93d455 40dccd36 bfdc5f94 40d1ea54 c0a68a5e 408063e2 c0b073b1 c007d2bc 3ff18ff1 c00b1c3a 00000001 bfb90b0a bf276008 -> 411c24cb 40ff3ad8 40eefa13 3f4dee18 458a6d8e 00000000", + "c1dc0226 409882d0 40d35ff8 bfd2b98d 3e110a75 bf4489fe 3fee0283 3ebfae1b 3dcccccd 3de8bab1 3c906ea5 be987339 4034f869 3e08b5d4 40e7e21a 3fd059c8 c0e35bcd bfd884b4 bed42740 c0f4d7e6 bf83deb9 3f963d16 bf912118 00000001 4037422a bf16cfe5 -> 3fb1c646 c13a594c bebfe100 3ee903cb 45107853 00000000", + "c1c0eeb4 c1001f50 c24268b7 bd6375b0 bf1083b8 3ee0d78b 3f48d88e 3f2c0586 3dcccccd 3d584989 40072769 3f8b5bef be0d90e0 3efb19c9 3ff7db08 bfd805fc 3fe62820 bf1d1598 c057497e bfdf69c4 3f9c6557 3f9845f5 bf5f475b 00000007 bfe2eef0 bec6a711 -> bd023ce4 bc81719e 3985b870 3e82d970 3fd8d2dc 00000000", + "41fe142c 4129e8c8 420722a2 3fb719a3 3f07aec7 3ea19020 3fcd0f34 3ee27565 3dcccccd 3bd63e83 3ec92df7 401e93bf bf080be8 bfbb02e3 4095043c c0f4f28a be930370 c0f67ad4 c00bc180 40b8c902 3fee22ab bf8a91a3 bf61e0d4 00000005 3f99ab82 bee0349e -> 3d3ceb30 bc446e5b bce1c991 3eb49e6a 3c743699 00000000", + "41c572a4 422ec68c c1f32288 3fae2a74 bf3eb647 bfd111ec 40102ad0 3fa1aa0d 00000000 3d18a6b0 3d0300e0 3ed211fd 3f994298 c00638a2 3f718700 4094f6d2 bf8dfcbc 40c5d076 bf272e50 c00b6948 c03750d3 bf7b4183 bfa2e751 00000006 3ffc6326 bebc2c1a -> 3ebca933 3f63b3e6 bfc73e20 be48025e 440aa932 00000000", + "41c56454 41b4e2f4 42198eb4 3e80372a 400ec263 bfa44ab5 4025ff63 3ecd5750 3ca3d70a bcb58cc2 3dbcf515 beca9e70 be9efd37 3e82ffaa beec75a0 bfe12304 c062b746 c00359dc 40e5788c 4054deec 3fda2ca6 bfd453dd 3f1f991d 00000004 403b5f56 bf3dfad3 -> bfbc94b3 c00c4c14 3fd87bc6 bf994f8c 4472e934 00000000", + "c1968389 419c5290 41574878 3e8b71ee bf1638e3 bd5997cf 3f262bd8 3faa8f72 00000000 40bc546b 403bf13a bfcce6f8 bf9f7101 bf8bdb46 3fc392a0 40f77fe4 c0a56074 c0b626e2 40efa8be c04d2c92 3fe6c8be 3f66379d c0227eb6 00000005 c03ad71c 3f245067 -> 4226c89a 43521ddf c30fb345 bf3ce258 49df6efc 00000000", + "421bd68a 411fdd98 423cbf8e be548efe bf6338f9 bfa53c2a 3fca46fa 3fa6de72 00000000 406ebc6d 41f8ff42 be3ca009 3e3b8fa7 3eeb10e4 c0d58352 40f07626 c02f4e7e c0d59f52 3f619880 bf742230 c0359918 3fe22855 4032de16 00000001 c00c4f9a bf874eac -> bf96a4ae c101f10b 402567b6 3df261c9 438c40e2 00000000", + "41e52f20 c07fa660 c2125a47 bfb0a809 3eaee9b7 c01f78c2 4037bf99 3de3ff52 3ca3d70a 3bbddb34 41d9ae3e 3dcf8a72 becacbeb 3f1f5cbd c0c0c100 4057584c bf88d944 3f8adea0 409e9c82 40cf49c2 bfc7bdae bf72da19 c0152ff4 00000004 c0370912 3e06e652 -> bcb5b4f3 bc49d780 bb831683 bee32ef3 3b906ea9 00000000", + "c20d4088 c05ff650 c115b880 bf6affcf 3e4a16b5 3e857026 3f947bb7 3fed8cc3 3dcccccd bde039a2 3e3fef7e 4005c75e 3ee3191e 3ff8cdd5 c0c707b2 40d29c46 c0017c5e c0831230 bdb07400 c00a977a 4009f3be 3fb8f755 bea76d8b 00000003 c01d34eb bf862c5c -> c066d8c1 be715548 c09cbad0 3e4d8508 4460432b 00000000", + "419ab084 422b18a0 c224c589 3ed10fdb 3df3cccc 3e03d732 3ee38635 3f1934a8 00000000 40a28ea6 3f91d12a bf632bce 3f6c874e bfa3d715 40ca143a 408e86b2 c0a980d0 40d0505e 4079a004 be84c250 4001f40d 3e51007a 3f704b1b 00000008 3fcbaa7c bf601596 -> 4180b5e2 42057e34 41a5ea06 bf2036f1 48bd05d3 00000000", + "422cbd06 422a39b8 c1bae1a6 bfa99e27 3e1f7832 bf0a02bd 3fb832f3 3f42a27f 00000000 bb060bc9 3df1378b bff8e65c beecdc30 3f317d70 bfde1830 40960284 c0afbce1 c0b7298a 403446a8 c0421dd6 3fb22f59 bf2f7f36 401b3611 00000007 bfd58e15 bf3f4c6c -> 3e0ec8b3 3d41a222 bd37b7d0 3f0dc343 3f923c60 00000000", + "41c16600 c227f41b 42164b02 3e91f581 3f181509 3ec51185 3f435b26 3f9c159f 00000000 3d4e4a31 3f855e77 3d2c150f 3ea5edb0 befcab4c c0aaa9ae 401f8c98 c0b7778e 3ee1a280 4086e1e0 3ff8aff0 400eae78 c008adae beb2f91f 00000008 3f764865 3ea55a29 -> bd050a99 3c9e8e5b bdab7c49 3d01541f 3dbb79cd 00000000", + "41793ac0 c21b90c0 c24495cb 3df01ec4 bfaa85b9 3f90337a 3fdfd2de 3ea4a7a4 00000000 3c5a32d5 3fb87386 bf57545c 3f98a3f8 bf02afbb 40309794 bacbd000 40a73724 c049af8a 40eb94ee 3e032440 3faf67f9 3e0826c9 bfdb8c09 00000008 3fed06b5 3f773189 -> bf003889 be754bba bf6481ed c00ec382 42003844 00000000", + "4143e7a4 c067f020 c03a20e0 3ebdfdc4 bf0271f8 bf0baf33 3f758f84 3fa0a8bd 3dcccccd bdc025c0 3e394828 bee6e00c 3d880df4 bedccc9a 40a68ac2 c09f66b3 bee7f380 4022e6bc 402785e4 40a67ce0 3f1de3c6 3fce9d3d 3e97e9e0 00000004 bfe3bafb bf5664ad -> bfda0186 3e02adf4 c004277d 3f51c105 43da7a98 00000000", + "c2018b5b 414ce190 424261b8 c0155a97 bf08d91e bf7b1a69 402a7479 3f42dd79 3dcccccd 3a9b29b4 4196096f bf234a68 bebbd73b 3f24b59a c026670e 40cd86aa 40aafb56 c0ee3ca0 4004f840 3fb2a5c8 bf9056a3 401b0863 bfa6c9b3 00000002 c002183a bf30ad28 -> 3a417bd2 b8014a30 3a8553dd be124e4b 38d31734 00000000", + "bf277000 c201e667 bfc54760 beeea1ff 3e13e117 3f1a3ce1 3f483b8e 3eafba17 3ca3d70a 40c70c84 3da8b07a 3fd3ea87 3f8372ca bde015a8 bfc9adfc 3f6bf200 c0ccc83a 40365568 40bc71fc 4087ed02 c028cf87 3fddc284 3fce2112 00000006 40072c76 3f8bc4a2 -> 466aa96c 4613c14e c440b022 bef3290f 4e828636 00000000", + "c22f76a6 40bbdb50 409d6fd8 bd99697f be006249 be83c4b2 3f35829e 3f53835d 3f000000 bcd2b064 42ad700d 3ee70e84 bedf6418 3e932622 c0d7595c 400799f8 40deeece bfb8ce70 40f65dec bfc201c8 40309555 402a80cd bdd1465f 00000007 bfca1d28 bebf92ba -> bd735611 bd1003e1 3d2573fb be58623f 3e2cfcb2 00000000", + "41412ad0 c19c89ce 420bf800 bf4f1f57 3a8d57d5 bfeb1743 400071f7 3e894229 00000000 3a8a5569 3d948b2c bf79ff44 3f80c270 bf68becc 40146b98 40f7b15a 4075c1c0 c07ca6f0 c009d330 bedd2500 40226efb 3f91e81f bfced978 00000005 bf862e03 bf050c7e -> bbdf40a4 3bc686b1 bc0b0ec5 3f0efa17 3c0bdc50 00000000", + "41dd4500 c214cee9 c1996f6e beeede01 3ff1fffe bf8f302c 4010e151 3f6615c7 3ca3d70a 3be11e39 413d25a9 3eb785f6 3e1ada51 bf2318f3 be3dea80 3faedf60 40fddc08 c09c1185 40b3dcc8 3ee2c380 3f805874 be6c7114 3fca7239 00000007 3fd524a2 bf95c3ba -> 3f149a8f 3d33ba70 3ec5e2b6 c0644e78 40057d69 00000000", + "423db370 c22f3b46 4238826c bf92af59 be4d049e 40163097 4029c5cb 3eab4c59 3dcccccd 3f0b7aca 3e7ec0a4 bfb54f6c be229752 bf83053e be573d20 40694388 40ed4946 40b36d24 be8e4c90 c0dabb68 3fb40c04 403a8be0 befd22cb 00000002 401944c3 3eda83a1 -> 4011c48e bd84d96c 40350927 bed28986 4466069c 00000000", + "40c1a468 41678558 c13ca070 bf1ee3c4 3f6370cc bfb99cce 3ff76088 3f9c890e 3dcccccd bb771cd6 3d7441f8 bd281043 3edc4d63 3ee876be 40e4e86c 3fa55438 c0e84dbf c0d3ebf2 c0cb454a 40bd2836 bee346e1 c038877f 3e51a89a 00000001 3f406b20 3f946247 -> bb8f742d 3d5eba5a 3d53ca4e bc52783a 3e14fd49 00000000", + "4219e07c 422893ca 41db3958 3fb96177 3d4f921d bf0a9997 40162c22 3fcca806 3f000000 bd84fa3f 428903b3 3d6245d0 c000bb60 400706fc bf7ab710 4036a6dc 40ec6ed4 c0f3ab55 40d25b8c c0e67bcd 3eab56eb bfa38661 c03a4b78 00000001 bf8fb148 3e43505c -> 3c5da552 be6120d2 be5af53b 3e6de0f3 3e703713 00000000", + "4183cee4 421792a6 c1ff9628 3e2bddc1 3f38ab1d 3fc596f3 3fdb279e 3f83a55a 00000000 4047a6a1 3eaaeace bf2ccd03 bdf52839 3c98cec0 c0c00f8a bf75f628 4027a7b8 c0dbe5a2 3ebe7d60 40ae3968 400f0bb3 bff15000 400a2812 00000008 bf991a8b bead8475 -> bf569345 3fb688b4 40497ffc 3f136092 458b9880 00000000", + "c0f53c70 424147c6 c1684a8c bfffe56f 3f4a34bc 3f9f59b9 401f17f8 3db76e5b 3ca3d70a 3d895acb 41ad3a24 bf7fa4b7 bf1574da 3f72a54d 40de1440 c0dfa418 c01a23dc 40c9d96a 3fd707b0 408ad7d8 be212d0e bffb2917 3f333241 00000008 c0181047 bf8aa59a -> c0f97648 c3020c9c c28f1d1a 3fcba7d5 47baccec 00000000", + "424440fe c242d229 c1a21949 3e9d4867 c0127d2b 3f3859fd 401cdbeb 3fcbc712 3ca3d70a 3a9c120b 3cb0bc8b 3d9d13b1 bf79816f 3f07f7ac c093b382 bfdf9c74 bfae1a20 3fa1a630 c0f691e3 bf181aa0 c00edd46 c02c8ae2 bfe6e7ca 00000002 3f9ec80a 3eed332b -> bb6b48c3 3cb91fca bc257000 3f8ef87a 3e2cc81e 00000000", + "420d252a 3f1ef800 c0e0e3e0 3d3699bf bec8e55b 3ee8515d 3f452ef2 3fd7f779 3dcccccd bdb36116 410f8916 bedbdbdb c02127b3 3f8e79a1 3fc30b88 c062b7ce c0cb7371 c0e5a5e9 4079c1d4 bf811d44 c0130396 3fe08c3a 40275f1f 00000006 bf43c50f bf08d1c7 -> 3db11a11 3d3adb04 3e175b8a 3d041bfe 3eaa9013 00000000", + "41f99554 c0e978f8 c1a5566e bfc1d938 3f1585c9 c00fe2bf 403b7c51 3fc85c9c 3dcccccd bfca77a7 408f906d 3f193971 3f15a6d6 be17aa10 402f102c c09b3db1 40431dec c012636e 3fe8b270 c085fdb8 bfcd85e4 c0231cd2 4021ff47 00000002 3fcb3138 be1843a9 -> bfe9adc2 401ec9b6 bfa4935c be00f741 433f622b 00000000", + "3fd7b640 4245d3d8 bf8e5180 3feca912 bf34a12a bebbd25e 4023c3a3 3f8bcf74 3f000000 3c975c69 4235cc82 bf0c41d2 3ff61c42 3fc6f307 c09322ac 40084e1c 4059edb8 bffa9c00 bfafdba4 408d0172 bedf9348 c03d3a45 bfce93a1 00000001 40105a8c 3f881791 -> bc09e4d9 3b317d0b bbfbbf34 be549567 3c49833e 00000000", + "c2477acc c214cb3a 42282bc6 3fb65244 bfc3c184 3fe971bc 4031ca9b 3e56bb17 3ca3d70a bfeef7e0 3f03e904 3e956e75 3f8f101a bfb97a3c c0396f6c c0c405bc c0f08f4c c021f8a4 40ee6c78 c0edce19 bf6dbea8 4007f5c5 be66e1fe 00000001 bf7c545a 3f656811 -> bf928252 c0b01891 3faab05d 3e71b3c6 44369c78 00000000", + "40f320d0 420f2e18 420ae070 bf0864c1 bdb98fad 3e414e53 3fc8cdd2 3fff0f0a 3f000000 3bb65731 4201591a bc3cfd70 be89faf3 3ff952ef c024e734 c0f913ba 40ffb1a4 c099b85a c022c826 409b6c42 40118cef 3fa631bf be0ae912 00000005 402295bb bdf8a462 -> 3a308d2a bc7f529d baff4006 3f152f5d 3b8130d8 00000000", + "c2478100 c1ce6ae1 c154b250 bda51001 3e47eb88 bd32e22a 3e5cdc4e 3ff9c4ef 00000000 bc3f6b96 40037df2 bd4a95c4 400b361e 3f8b5169 40995294 40baf25a bf0b5c30 3fef7270 c0af5a50 40f5366c 3ed2fc71 400bcd2c bf86b4b8 00000004 3f0b01be 3f906982 -> 3c1a2e01 bc9249f7 3d19825b 3ea4c9b4 3bcdc99c 00000000", + "c157ab94 c167ed68 c2252a4e bfaec272 bdb64b67 bd78a1fc 3faf4d86 3f84a192 00000000 3bd006f0 41d92909 3f55e7d7 3fca9bd2 3fc863d5 4050f63c c0aac42e 409bf5e0 bf78e178 c03990b0 403f6f1c bf34598c 3ee5195a 400b5918 00000004 c023ceb9 3f4451db -> bd855545 3d917e22 bd0c6035 be8ef69f 3e4fb84a 00000000", + "c1db574c 3f594b40 422ae0ec bd615e31 3fb37a70 3f8504cd 3ff02116 3e84f74e 3f000000 bda33ae9 3df9df39 3f43211d 3fdee1ff 3e385923 c0d69a4c 40ed3eaa c0b73da6 40c3b098 402c0cd8 c001fa6a 3fdd7c50 3e98b4a6 3fa2e5a5 00000006 3f7705f8 beefa8cc -> 3e58a321 3eb79ea8 3ef26f55 bef98fe9 42273317 00000000", + "c20a8978 4205685c 417bf410 bf61a0db c00ee0e8 bf0439b9 401d2067 3ffd9df8 00000000 3d947e9c 418c3582 3d933996 be45b86a bfa6d9aa 3fc75310 407fac18 bf5800d0 bfa2f5b4 40e2c4c2 c0c061d0 c0281213 be91ef15 3eb2553f 00000006 bf0d2d29 3e2a2af1 -> bde71b4e 3e21c749 bd08dc4c 3ed587b1 3dd06a41 00000000", + "41ab007c 417d22a0 4156eb5c 3e1f3265 bdff4f7d bfe62d7a 3feade1a 3fa40c5e 3ca3d70a beda0990 41b48aed bda7fbaa bf103e93 3f4fb8d0 4037ab34 bff94fe0 bdf1c8c0 bf028420 c05d9d84 c083b42c c002d3f4 c0283631 3f2450a0 00000003 c0275336 bf1c0689 -> c0690514 4028b7a7 3fcf909f 3d3a6f83 43585e74 00000000", + "c0b44d48 4204f0f0 c1b650c9 bda3325f 3f769193 ba98aa64 3f9855b5 3ee50887 3f000000 bb313e35 3f39ba1e 3f5a7ea2 bee862b9 3f358fc3 4095fde8 3ff2c8f8 c07151f0 3ef56ca0 bfb22e08 409782fa 3f941f53 3ef3c426 bee0c01b 00000001 c015fe08 bf969217 -> 3b266d90 3a03fc72 3a065e30 3d129e66 39d697d0 00000000", + "41ca8930 c21b281c 3f20e700 3d726198 3f413a12 3b921f20 3f41d2b8 3f6e9a0d 00000000 3b3f955c 41c9570b bf402abc 3ec8b462 3d859281 402a10c8 c0406bf6 bf582c48 3eaac7c0 bfd74818 408c5902 c02f9e76 3fcea2f4 402b5d4e 00000001 c0165082 bf5bfc6a -> b9f1d0e1 bae5c874 3b991f17 be1e2685 38c80158 00000000", + "c02a9df0 4214aafa 423f371a 3e5b2aea 3e9663ec bf2d6447 3f59c4b9 3f51ea58 3dcccccd 3cbab03b 40e02258 3eb314b3 3fc9e004 bf2b624b bf47e428 40d16a7a c080b778 403a6a28 4093f8de c0c0d70b c039cead 40379675 bfef73d5 00000001 40368ca2 3f4bfb22 -> 3d026a32 3c7b95f9 3d122b58 3ec27786 3c20dd80 00000000", + "c131ca20 c215af01 415938b0 3dc732ce c00bb1cc 3c5874e3 400d5e50 3f994504 3ca3d70a 409819d1 3f8e0320 3fe5fea3 bec13260 bc60b3ec 3faac290 c0fcb67d 40373774 c0e75f4b 400a3724 40da64aa bfae5775 3fa08d9a 3ff9fb95 00000004 bfc525db 3f8fc6c1 -> c11e654e c1a19a91 c22b8617 3bc62030 4711c51e 00000000", + "c1607b64 41bc6314 c1de9344 be0e3bb0 3d95ab1e 3ec44392 3f9bcc61 3fcd8ec2 3f000000 baee3526 41e5a14b bffa1e59 bf418314 be4888fb c02765e0 c0c79b58 bfbb1adc 40e52ddc bfbd0214 4073a48c 3e775b14 3fa4e1a7 bf85a3e6 00000004 c0219fc9 3f51593d -> bc0ed100 3ca53395 3b5b7ef4 3f052be0 3c5d106c 00000000", + "c19a40d8 c236a3e2 c1454224 3fcbb0e1 401ec8f2 3eabbfab 403f3acb 3f892ac3 3ca3d70a 3a8e769b 3dc88277 bf9282d9 bd44f16d 3f15dd9d c07cf312 bf6d31d8 c0615196 40f7c944 c09dea16 3da8d080 3f640724 3f9844d2 3e83dfe4 00000004 402cc07a 3f14ea8a -> 3d8f6e5c 3c3c1e1d bd016fa7 3dd2b9b5 3eb1bb90 00000000", + "42228352 413da808 c1d62cff 3ecde4dc 3f6bf3b0 3f2e5852 3fef9f72 3fa854e4 3f000000 3bb035b4 423ddf19 bf3010e8 3ffb2f5f 3da2dc21 bffe7b54 3f33db50 405dd408 3ef82860 40dc470e c09c11a7 3ffbe340 3ed392a1 bfd5f962 00000006 3f5d90e4 3f03ea63 -> 3ab0594e 3a73af29 bb7c18c2 bf023296 3ad7ca4e 00000000", + "4147a208 c1dd0c6f 42236f7a 3f316555 bf91082f 3fbce821 40002582 3f574315 3ca3d70a bbae6b27 4066c805 3fa60ac4 bf55edd0 bef93874 bf266a98 c051acda 408b887e 40e17232 400788d4 c0dddb05 beb342d8 3e0f7e44 402ae8ca 00000005 400afeab 3f42424b -> bce95519 3cf9e170 3cb78152 bf349c12 3e5e4b0a 00000000", + "bf85a280 c1efbf95 c22b1c60 3ee3a0b3 3fde78eb bfa28fb4 400eb535 3fcb38a4 3ca3d70a 3bcc1631 3f197ab1 4009c84f bf87bf43 bf3fe060 c02269f6 40a48412 c08d8ecc 3f500120 40bfe67e 40661fd0 4038be27 402f0b5b 3feabcd4 00000005 4005cd93 be141c7e -> bc1d66fa 3c3ee2d2 3c8d6522 3e91c396 3ba7f7b4 00000000", + "c0d38930 c2395499 c20ad788 3ff07976 bfdfc4db 3f2c5886 4029cc72 3eb862bd 00000000 bfad59a8 3dcc3958 bf6911f5 bf8f407e 3f983dbc 40aba542 3e786a40 c0d46209 bf782370 bf9dc934 4083a84e be37ed5c 3e9b41bd 3fe34ebd 00000008 c02a3d1b 3ecacbe2 -> c0c7ad0c 410b6b81 40e25c0c 3cc2150e 4b9df232 00000000", + "41784a20 4195f57c 421c0e08 3da92aad be88ef1e bedcb0cd 3f2da822 3fd26d98 3dcccccd c0519ff3 4038f2d8 3fd39364 3fa4b5e5 3f369a92 40f95c70 c0151496 408f4d12 c00f9f4a 409f1124 406db770 400a50d7 3efcb5f1 c012951d 00000002 4006534c becf3c53 -> 407a39fa 4048fe0a c06b2519 3e7f799d 44cfa8de 00000000", + "4196f400 c202c6e9 c23a5f66 3ea1ce65 bfbc8d35 bf5d9ca7 3fecedf9 3f91335d 3dcccccd 409977e2 409d8f26 be6abec3 bdb5ce9b 3f1994ea c0b7373a c0c22490 40169f78 3fc14030 c0d2ed7a 40205dfc bfb9b45e 3ef4436b c03fd6d5 00000001 3fea6092 bde68c9a -> c08af436 40a024db 3eb9c3d6 3d5736b5 449ff984 00000000", + "41fa9c64 c240f078 c1bb1f89 bf085976 bf0e1a65 bf8d0709 3fc1d440 3fda440d 3dcccccd bf235a34 3c4c8be3 bf93338a 3fed90bb bfe1a8d6 c0a12834 c0b7fd70 c0fc0747 c0dfe301 402ef414 4099f948 4036afef 402ae4b8 3fda4e38 00000003 4014e6cc 3f128f0c -> c2959a32 42e43ed2 c2de1df4 3f638330 49f32056 00000000", + "40f71830 c2317a68 c18ebd70 3f7014de 3ee1695e 3e1a4532 3f87715e 3f0fcd0b 3ca3d70a bd517449 3ce29702 4009f12e bf9d99c9 bf9b15ee 40d69a0e c0590b12 c09936ee 40814958 408dc3a6 c0972414 403980b3 40296153 c0193d67 00000001 bff2b67e 3f0a886f -> 40467197 bfe9555f bfd77fc6 bef7d08c 433e2daa 00000000", + "c19ba0d0 40fb5420 40ea88f8 3f4fab49 bf468452 bf250bbe 3fb112de 3f643c27 3dcccccd c002f858 3c868164 3fe3e33b bf6615e1 3f97d6bc c0bac123 40724a90 40c51e78 c0ae1058 40a3df4a 40b27612 3fea9e1f 3f5f31db bf3353d4 00000004 bf45ed53 3ef587e4 -> 435c8c2a c2e8ef1e 4310c56d 3f08b37b 4992e9a1 00000000", + "422524a6 c10b82c4 c1f24915 bf5c79a5 3ecff885 c01389b9 402be820 3ff58f3e 3dcccccd 40050a80 3d3494cd 3ebadeff 3f32680b bfddeef4 40c25922 40b18bbc c0de018b 40ba37f4 3f6661f0 c0d3fd0d c0229493 be674012 3fac3c7b 00000005 3f9d11b4 bf8a8f33 -> c18b3483 c2a487d1 4303220f bfd3f220 49fbd527 00000000", + "be2c2800 c1bab7b2 41728ed0 bf3cdfe5 3fac8a5c 3fba3f64 400890d2 3f60fd0a 3ca3d70a c113054d 3f39ee05 bf1c5867 bdf04867 3f2e9ea8 c07d18ae c09b6eb0 409dacde bcf78500 c0b95baa 40381c30 bfc27550 3e102250 3fef5569 00000003 3f80212f bf59c6a7 -> c2104dc4 c1423776 c1bb7a9a 3dbf07a8 46b37394 00000000", + "41cd97ac c0a107d0 41bf5968 3fb97991 3f2615d8 3e55555b 3fd622c8 3f378a65 3dcccccd 3f170beb 4047123a bf858f1c 3f02c935 bf67cc5c bf1f4ff0 c09b3371 40cbd39a 3f8c61c8 40e5f30a c0a5f8be 402e2812 40275880 bf5e3db9 00000008 3f062074 3e8b6b9b -> 3ccc2fb6 3f6e4085 3e3e6883 be2f956d 41a73e5b 00000000", + "40666d70 c1553f00 c1f255cd 402d4b95 3f11b02a 3f05d7f1 403611d5 3fb97824 3ca3d70a bd119ed7 3e3ea5ee be99692d 3ee1228c c02b5480 bf6b6748 bfa4d980 403fd544 40ae8c46 c087fc0f c08d6931 40302ff4 3f62754a bfb753ba 00000006 c02624ad bf4ad807 -> 40b4e106 be6e2aea 401189ee be53b0e1 462946ff 00000000", + "41720bd0 c1a857bf c20da637 c009ccea bfc2b27b bc65ca46 402af96f 3fe16954 3ca3d70a 3b5026c4 3d3d5ba9 bf9534ea bf6ad7cd 3e2b8ae2 3ffe0248 c092b425 40bd1930 be96c170 bedd2080 c015c192 c009290f 3fc0d81a 3fcb9380 00000003 c0179741 bebd6f9b -> bde701d6 bdbdfe1c 3c61af7f 3eb8e265 3f905500 00000000", + "c09932f0 c1a08c32 c24284dd 3e9888bf 3f7c44c5 bf1a1bcf 3ffb8d13 3fc5ce66 3f000000 bc10fd33 3db74b78 bf2e2f31 3f2735bf 3fbac4c5 c0e43b33 40c4cefc c0c8f02e beb2fcb0 c02b0d98 c0a1d605 3fd852f2 bfe44619 4016060b 00000008 3f09a585 bf00e469 -> bd7fc259 3d7620fd 3e1a8567 3d7576b9 3f21ad80 00000000", + "4139de08 40bb59d0 40defd98 3e9b6afc bf9da589 3ec3525d 3fa98c4d 3faba29b 00000000 40592c1c 42af514a 3f0e99f0 be07a3d4 3f24214f 404746b4 c08e17ef 401ffff0 c0e722b9 bf12f5e8 c0bfacde 3f21bca3 c025314c bfe55442 00000007 3fc93482 3e140e89 -> bf0093f5 c0caef56 bf4411e3 3f0052ee 43d189db 00000000", + "c20eae22 bfb74d40 416229b0 3ef6ffeb bf897403 3f0408db 3fa4dbb5 3cdc9725 3dcccccd 3b04ffa7 40fc2093 3f1e6cf3 3fd5f9cd 3f24d58a c0f49898 402b35c8 408ad612 3fcfe350 bc611200 c0f73c75 4005e85d c0289cb5 401e284c 00000005 3f0f75ac bf12c2ac -> bb4604a1 3aabf60a ba9b7909 3ee6bd19 390f4da7 00000000", + "c1466ef8 42373018 423e2bf2 bf436d0d bf5721ef bfbec504 3ff23a28 3e40f355 3dcccccd bcbc0e25 400ab5e5 bf9df5fe bfe198ae 3faf5210 40dab95e 40e82ee2 4014c034 c0352792 bf561370 c0daea06 bf9a32b6 3fe79dbf 3fcde64b 00000005 40135d0d bec2361a -> 3d7103a4 3bdccd56 3ca113ce bd506ff5 3f4d2f62 00000000", + "41c0c8ec c11337f0 c1b85268 c010e57c beb34448 bf19e6b6 401a0dcd 3ff71332 3ca3d70a bffb1dad 3f9992f2 3faf5b70 bdc7849e 3c1c5999 4091dbfa bf5fffa8 40b5292a 3fe5dd58 4015a614 40fdb306 3ff94e30 c0266ef6 c025e157 00000005 c0093386 be404792 -> 40a7a07d 40bb279a bfb69dc8 be5e1f0e 444bb5b3 00000000", + "c1bbfa91 c1df299a c2428555 3df7ee3a 3f573b2b bf245c83 3f899019 3efea0fa 3ca3d70a bb34a430 3eee3e4f bdb9bbb1 3d771ef4 3f46ec89 c0b7409e 3fa4dbc8 bf825e28 409bb574 3f9946f8 c0ce23a7 c03705fb 3f23b93d bf006945 00000004 c019d9a8 3f2ab435 -> bc89c025 3cc7267e 3d48f612 be400e98 3d8d9ba2 00000000", + "c18362b2 41e6d504 41ac1f90 bfa10315 3eb76aec c00ada8b 402f9488 3ed72650 3f000000 bead7b20 3c6d50f7 3f6f0b39 bf73271e bd81742f bf906ca0 40d30aa6 bf8039fc 40d7afba c0a69f68 c086e656 bf4b30b9 3fab6183 bf9effd4 00000003 c00dd84f 3e7703ee -> 419cacb6 c1adc753 bfb0275a bda96644 47d56ddb 00000000", + "c155ecf0 c24504a5 c11ae52c bc07b885 be591e90 3eb31ce3 3ed17c8c 3fd6604e 00000000 c01df9ab 3e30160a 3f2d8ed4 bfc448df bf8e9158 40ffee12 401d274c 409e5880 c0ad0144 be727aa0 40f93678 3ff21fe5 3eb37090 bfc4c97d 00000002 bf5aabac bf62c118 -> c043b429 410165ba 41972486 3eaf6939 45f1f6ef 00000000", + "c207047c c207b1bf bece8800 beab00cd 3f1db9ef bfb93065 3fcf95a6 3f354857 3ca3d70a be5de13b 3c2aacfa 3d450d92 bf0c7fa9 bf218a1b 40cfd02e c0e76b93 40a4c222 3f8bb820 3f4a01a0 bea6cf50 bf81e3c7 bff24bbe 3ee63b9b 00000003 bf4d94af bf172b4a -> c02c050e 41ee19cd 420b1614 3d14301d 470f7bb4 00000000", + "419b26e4 c10def30 42213ffc bf7b7cf2 bf054b1c bf14d5b4 3fabc8b4 3f5fbf28 3dcccccd bd5e346e 4185b599 bea4d384 3f8cda8e 3f0cb8c8 40989d30 bf2b78e8 40d8dbf2 3eb3fd00 4099e148 4047bae0 be9e4549 3f00f3b9 c00dd826 00000001 3f1bbc2e 3e8aabcf -> 3def4edf 3ce2151a 3c2874bb 3ee546ae 3d89455f 00000000", + "c104d29c c23e34bb 423b8ab6 bf8c7de0 3fc8ca6b 3e0c7d9e 3ffa324c 3fe15be5 3ca3d70a 3fcc9674 3f2b4de3 3dc2d553 3fc0ee06 3f806820 409fe11e bf557af8 c058d084 403e749c 40077eb4 bf842d68 bfa0bb3f c02cf0de be2526db 00000006 bf1129d3 bf725f59 -> 3f77ae73 407861f9 3fd3061f 3fbd388a 43d56def 00000000", + "c22ddbd9 421b8aca 41cc961c bf4ba6ff 3e7259b2 3f083bb4 3f804972 3e270ac0 3dcccccd bd043a51 3d860b5a bebd5e4c 3f72e7ae bebb8dc8 3e475bc0 40902578 4086d3ea 3fcfa398 c0137f06 3c43d800 c022efd6 be8060b4 bec6b921 00000007 bfef68ae 3f2b6304 -> c00e1deb 40aebde0 c0261164 bd7b0cb8 4572cb65 00000000", + "4232eb54 41ddd130 41eaecbc bf3257db bfc92548 bf2b9e9b 3ff3c76b 3f1841b0 3dcccccd bc7dfce9 3ec050b4 3ef997ee 3d686c4c bfa25e08 40834b72 404cc590 407b0404 40805d7c 40b4dac8 beff6830 bedd4ab3 4008fd08 bfc5a176 00000004 c007bbe6 bf8c0e38 -> 3c82ca58 bf46f5ae 3f48b354 3e34f148 41578a7c 00000000", + "c129c2e8 421fefba c1934862 3ea99261 3dc52940 3f422c19 3f5ef81d 3ff19cc7 3ca3d70a bb1ea48e 417491a1 3e097475 3fd06d3a 3fc371e5 40c0a50c c0378dba 3f88c360 40ecf160 bfc77ba0 c003278a 3fd406b3 c029f863 bebe004b 00000003 bfc2333e bf04ff14 -> 3a96dcc2 bad8a71b 3acf1f7c beb5f833 3a04aa60 00000000", + "c102191c 41f6d880 c2240e80 bf9e6fd2 bff83793 3e89bfc0 40143d53 3fc7d63c 00000000 3d94bab6 3c9d4196 bd131bf2 3fc9bfea 3e647854 c0381d68 c0dfdddc 3e1cb8c0 c0935cec 4075f394 3f8b2660 3f874554 bf468926 bfacd13c 00000005 bfb89fbd bf120307 -> bd027786 40c6716e 3f47f2d6 bdb6800a 45044bd2 00000000", + "c109e37c 423ab412 c244c0bc 3fc283cf bf3e08c5 3fc94911 40254ba7 3f0bf588 3f000000 3e2f22ea 3fe8e89e be12e0f1 3f02ff99 bfd58896 402dd1a8 c097acd3 404b65a0 bf080d18 401e22f0 c03d7f56 bfcda515 3fb22062 bf3c7d53 00000003 bfecab04 3f8a29e1 -> be766de8 3fa2405c 3efe3198 bf27bb8e 41ee615f 00000000", + "c23309a9 423d3838 40c51858 bf280455 bf01bdfd 3f57b813 3f975348 3e8734be 00000000 bedf1887 3f4574bc 3fe1de97 3eab61fc 3e21c5bc bfd3c5ec 3f922128 408f12ba c0a03550 3f150f70 402d5d44 3fd24022 3fe1c175 bfa10c53 00000007 c033ab35 bf53ea0d -> 434c6e50 c344ae24 4081c8d8 bf6c05d4 499d8208 00000000", + "c205d1cc 41fad414 422af688 bfdc0842 3fd1d9d7 3fde48bb 404419e2 3f9b9127 3dcccccd bb34bed0 400d1a9b 3f5b03da 3fcaea29 bf96d831 406345d8 c0e63a75 3f483400 c0e35a7c bf4fe960 40e35740 c02cec87 bfde617e 3f5e0205 00000004 3fdea91c bf12b896 -> ba4b7088 3b874475 3b7322d4 bd2a2d11 3ad7201c 00000000", + "c16547ac c20ac8ce 42393d0a bfdd8d29 bfa8d46b bffce35d 4043c60f 3f9947ed 3dcccccd bba456bb 40133979 3fcc3812 3fad163a be86cdd4 40d5e77a c0f7a8b0 c0ccdb8c c0f977c5 c08f5642 4076cb80 be97373f befd3541 bfd03ade 00000006 bf2e9988 3edab5ee -> 3bd95994 3ab3ebe1 b9aef29c bf12071b 3a3087a7 00000000", + "c150e8a8 41a9d334 c237aab9 3e727d92 be8a2bc1 3de911e6 3fa12a80 3fe1e9a9 3f000000 baa89509 3e12ac41 bea7e14c 3f682bc4 be0e0c5c 40b9dc7a bfa98944 c0b51aea 3f23adc0 40d495d0 40f2fd1c c017e65e c015a822 c0204897 00000002 c03c844c bf0db83d -> bb9ddb44 baf22e6c 39a40fbe bec0cd62 3c814430 00000000", + "c1779330 41d3fcf8 41a600f4 bf84b3a8 3f886b05 3f6bf58f 3fe1c18e 3f37e791 3ca3d70a 3b9885d7 3c87bbb8 bf5f9d59 bf1c4315 bfb921c3 c0ec7d8e c0de5c2a beb8d4b0 40a4f472 3f0e52e0 c0bbe219 40301a24 c03fdb6d bf85a596 00000004 c01fc2ac bf384bef -> 3f5bb52a 3f1aa69c 3fb8daee bf00e1c5 43fa9db0 00000000", + "41be9900 c20a88c7 c2161cd6 3f8502bb 3efecf2b bec8ce39 3f9bc9d0 3fc9e830 00000000 ba93f6a6 429703bc bf8107d4 be9d8665 bf870835 40637668 402544ec 3fd46c70 bf569c68 c051be06 3db81080 bec5059e 401245bf 40098772 00000001 c01e1288 3f19ec9f -> ba5506b5 bb3ab429 3ad6cdbc 3e932cf7 3826fefe 00000000", + "420a161c c1dda6b7 4237410a 3fb1e4a7 bfd8263b 3f5303f5 4048ee38 3fcd6581 3f000000 bfc29bcd 4286b4a4 3f3e19d9 bf4dd026 c0219f30 40be10fc 4025cae4 c09462a9 40d91872 c00fc7cc be488d80 3fadb356 4005ca45 40019c6e 00000003 c0355962 3f9391e9 -> c03d4ca8 41cd7902 c1197b8c be144e02 4640d16c 00000000", + "c1a8178d 422c4494 c234d038 4020866a 3e7cea86 3f9be1f1 40335976 3d02b70c 3dcccccd 3d854124 3cab2025 bf0a2708 bdcc563f be922813 c0c409e8 c0d14a2a c0ed4a0b 40cba5fe c04d0bb4 404613b0 3f9b0eac c0043bc0 4025effc 00000006 c011dd6f bf6b971b -> c326e3be c22f33f6 c2b00a79 3e7123c2 49cfff22 00000000", + "419dba70 41d42290 c0c32cc0 bec3ea43 3e71f52d 3ff70490 400169f5 3ecfa6c6 3dcccccd bb81d7e5 409c17b9 3fa5aa94 3fde6df0 3f84086d 40fb4124 40b3f9a8 3f3bacc0 c0fdc0e9 c05ca8c2 40f38292 400e859e 3f80be0b 3fff24df 00000007 3f022513 3e344908 -> 3af6d349 bb694ecb 3a0664e8 3e41f6b4 39ba538f 00000000", + "420330c6 c2147000 41f5b308 3e551f4b 3e82597d 3fdb56b0 3fff75be 3f007a1a 3f000000 3ab12b42 401c116f bf87dfda bf87cb7c 4025464b 3f53dc00 40184c8c 4084e006 40e1710e 40995c6e 40f12b96 3f0d4980 bf5a92f6 4004250c 00000008 4010abf0 3f39443f -> 3c38460e bc9a163c 3a005e80 bec76465 3fa7c88a 00000000", + "c12385f8 c1e65dc0 c13c6bb8 bf910edf 3fc77619 bfc21f0e 4057153a 3fe89b3a 3f000000 bf97cc4d 3d9e94ae 3ffc5c42 3f9f0fdc beb2e76a c0db84b4 400251b0 3f97e4e0 405a79dc 3ecd9220 c0031f4a c03ae620 bf7eab86 c0115900 00000008 3fea95ba 3f24ce60 -> 42881fbf 4254e4b2 c1d00a1b bf12c739 4aa36bf5 00000000", + "c212ea52 41aed330 4139f090 bdd3402a 3ce1cc55 be557cde 3e6fdada 3dfaa7f6 00000000 3d61738f 42b01287 3dbf3187 3f13b43a 3f2adba3 c0cb92ef c0bbdc5e 3f8a8a60 4085fc8c 3f078c90 c02aa800 c008591e 3f9ccae4 3fd57ae6 00000002 403cebc1 3ee17800 -> bdee49fe 3d8956fb bd22a158 3f30c03c 3f0770eb 00000000", + "c0b9ebe8 41244100 41da3e60 bfae2d05 3f06c2cd 400023cb 402c6947 3eddba09 3f000000 bd84edcc 3f695644 c002ab23 3fc37a7a 3f8ed19b c047faf2 3f669f80 c0fff0ed 3f1e5080 c0eae7ee 3f8641a8 c005b3a9 4000dc92 c00d2f2d 00000007 401c3e30 3f43a4a3 -> 3f9d03e0 40996bd8 c1095e7a bf2a3718 4549bfd9 00000000", + "c20f41ae 41c9c26c c1fb25cc 3f883789 3fbc2152 3db4cc01 40017e1f 3ed38c4f 3f000000 3f24eb6d 3de1a947 3e9b06a8 3ebd7b94 402e28d2 c0a300f8 3fffc270 409625de bf8ce9f4 4087074a c0a7478e bf8e2a6d bf050d7e 4017eeaf 00000008 3f907b51 3f2f6238 -> bf873e65 c012649d c08efce6 bea67ed8 461b000b 00000000", + "c1f7d32f 41777d00 403ba2b0 bf76f9a4 3e9aae5a 3ea0d637 3f8899b1 3edb422f 3ca3d70a bad28065 42c373c2 be8c1970 3e509465 3fac2dce c0ca7f6e c0a874be 3eca41e0 c0874562 c0fb60e3 c018da5a 3fb68143 c017554d 40204b2b 00000008 3fc5da88 3f503532 -> bd19fa7f bca4a5df bb8fe62e 3e9587b4 3c3b4e2c 00000000", + "c240e292 c240d529 4221edf8 bd47d0ff bf341d00 befde147 3f657041 3fda58e0 3ca3d70a 4006ebac 3faea17b bfe89837 bfd258d2 3f03767d c02dd0f2 c0d5a872 c06af5f0 40e112e2 c0a9d016 406ebcd0 bf5e1cb8 402bc514 bf3b88aa 00000003 c00746e8 bf3b91ff -> c0b2af14 bfee5cce 41588d94 3e9c6286 4561ca00 00000000", + "c1d82cee 41ed0be0 41f8e9c4 bc031b68 bf75dde5 bf1dd613 3fa9e6a7 3fee20fb 3dcccccd bd154d01 3c5310cc bea13e4b 3f8a6c77 3e5d7174 c066e396 c0f9fe52 c0155474 4067fa40 408bf19c 40253a00 3fa7cd2b 400207c5 3f62cdd6 00000005 bff8989f be7bde8c -> 3fa466ae c0871dbc bf50d1bf be08e4dc 44f1004e 00000000", + "c2276238 420f0032 414a4be4 bf8c17d8 3f891faf 40069be0 402d4c5a 3f87b0ed 3dcccccd c0dbba32 3d05af0d bfbda55d 3fbc5a8a bfac9df7 c055c364 c082c504 c08357ed bf846728 bfea11c0 bf1a3d28 bdd5924e be4b7419 403be88e 00000007 bfd89c5b 3f13f683 -> c478219e 4482bba6 c4727164 bf33b67c 4cecde19 00000000", + "409f2940 41274e90 41b331e8 3ea8a0e0 bb96152a be703e62 3f626510 3f75bcf4 3f000000 3cb8e36d 3fb6f844 bf7c6c7e 3f69b02c be8de9cc 40db8062 3effb120 c0de2b4b bf3c6aa8 c0112c8c c06c1932 3fa89715 3f8dc080 c01852fd 00000002 bf906eb4 bf54cf9a -> 3c87e0ff bcef9918 3cdb0b18 3e0ba2e3 3cd3ab47 00000000", + "c220971a 4130d710 c21e3817 3fa7f44b bf93a64b bec3dd93 3fe831bf 3fa374f9 3ca3d70a 40a81448 3d959b27 bf428a9d 3f6e1cd6 bf67b1cd 3fc19a30 40a60378 c07201da c0f08919 40b8c2e0 407a1798 3f319590 be4be73e 3f659b84 00000008 3f48df07 3e554531 -> c250a5f3 4281b5a9 c27938c7 3ddbcfeb 48a11fd0 00000000", + "4174d1f0 4212c4a2 41f4822c 3ece5bc4 3e4f88e2 3edaa021 3f1f04f3 3fd510b4 00000000 c11072f3 3d6de2e2 3d2bfbef bef5b059 3e9dcb0a be124ea0 bfb3386c 401f6f4c c0ed874a 40f473b8 3f5f2d40 3fe0d2a1 40193791 3f237e9c 00000006 c0146259 bf0d4944 -> c0b9ddfc 434b4fee 41dbe69c bf988074 4dd4d0d6 00000000", + "422a9e6c c1c2c234 42315d34 bf993595 bda1eb53 3d9ea913 3faf4b56 3fd64ff1 3dcccccd 3c3257e5 406d8b0c 3f79a39c c0083f2e bf8f92ed 402bbffc 40ac62ee c0274126 c04adfc6 c0bbedb2 c0dfbcda c003f9aa bfb8e389 bfd43de8 00000003 bfef4c66 beb0da1e -> 3c228125 3c0fa1fb bab46fa0 3e954d31 3c14ceaf 00000000", + "c1dd7640 c21f703d c1c30514 bf5e4411 3eb4b4ef 3f3d55c8 3fac637a 3fc3b419 3dcccccd be59e869 42c7252f bf999b0d 3f4d0542 3dd4eee5 4050f204 c070f898 c0a786ba 40db4fb8 3f800a40 40970a2c 40125e01 bfde13a5 3fc406f6 00000007 402131fd bf5bb42d -> 418f4ce4 42094389 c2769237 3ca10ce0 479cfc89 00000000", + "c0b239b8 c0e96df8 c24018a3 c010a41e 3f1be7c4 bf80ed98 402bd6e7 3faf2525 3dcccccd 3e722e67 3e50cc35 3ea600ef beab5394 3f542568 40ae720c 40c747bc c09b6cd4 40db5484 c09da9b7 4094236c bf0e302a 3fb65a97 3f7304df 00000004 3fe01131 3e799c0a -> beba292d 3e306ec2 bef67cb7 bf4a53aa 434bbcb3 00000000", + "4226e8b8 4213fa96 42038b2a 3f6e8ee2 3d900443 3e53dc4f 3f7e07fb 3fe10bf3 3ca3d70a bbbe215d 3c9124ba 3fe5b845 3fc11bd4 beda750d 40a45424 c097028e c0ab1726 40cd7ae8 40574748 402ec740 3e8e16e8 40324175 3fab05fd 00000003 3ff87758 bf2eb31f -> 3f916fd0 3f6ceccf be879528 bcdc056c 420f5c8e 00000000", + "c15670bc c21d8367 c11f904c 3e2c16ce 3fa9b0fd bf191e3e 3fbb66af 3f4c9e97 00000000 3b2d1b67 41af6db8 becd8112 beda948e c013b797 bf0c01c0 c0644aa8 c070affc 408fc918 400b1d30 bf210740 3fc89aa7 bfa1136d be879fcc 00000006 bfddf7df 3f987caf -> bd8d2e81 be4148be 3d220862 c0350084 3e09369e 00000000", + "c18772a2 c2371f0d c1a7afd0 bf0bc957 3db499b6 3fb597b7 3fc5192e 3f5b3bba 3ca3d70a 3caf5e8c 3cca29e8 be3ef34d bf9e2a1d bf05707f bf780f58 c0c751ec 3fbf3118 c086207c c0de9222 c0f4a4fb 3f8f8de8 beb1e874 40266574 00000003 bfd22b41 bed320ae -> 3f31e972 40844ff7 3fe0c15c 3e842b9c 42dd8374 00000000", + "41a6a53c 42449a04 41eaa73c bf51b9ae bfeb56cd c0061dea 4058c8b9 3f76902a 3f000000 bafcf6ad 406b2b66 bf23ba2c bf8f39b0 3f14f7f7 c001b5d6 408c4796 c0f8cfb5 40e6b4f4 40db76a4 c04ca2d4 40281a77 3f4d10b6 40239d1d 00000007 40150f3e 3f03a75c -> 3afb2380 3c13366f 3ae81b6c bec20b9d 3e196f89 00000000", + "420e6872 c135c9bc 41cbc884 bf39cf61 bee0666d 3eab001a 3f694a67 3f9af79c 00000000 3b8a7c93 40c6f8ca 3fe0a7fa bf09b4fc 3fc886c5 c0913e1a c0d35560 40c3b020 400335b8 40544e64 4011e92c bf94bc6b bf97ae27 bf72b05d 00000006 401b14f0 3f814e35 -> 3e33ee4c bedbe538 bf0798b8 3f3e1a95 40458310 00000000", + "41319260 420756f6 405889a0 bda5f498 bdcd517f 3f01266a 3f056da9 3cce38bd 3ca3d70a c0285fb0 3caf4e1c 3edd165a bec37323 4028aa6e c0ad441a c0bdb9fb c0594c4e 40d313d0 c0cfa1f8 40532f80 c0179ab4 3fa38168 bf813371 00000007 bf0d8e98 bf3dc8a5 -> 4180ceb8 c12a0786 427e9042 bdb94f3f 4984bca6 00000000", + "414c68c8 c219422e 4205cc84 bf1cdda4 3e929055 bf3d35d0 3f803c59 3f70a91c 00000000 3b024a22 41a16752 bec863e7 3fb7b5a2 c01f1941 40e33472 c0551434 c0e72be6 40a55ef0 c01d8554 40e27ece bfc706ab bfcb2f2a 402205f4 00000004 3fecb06e 3f1157f4 -> 3c0a6f76 bb5b635e bb796dd2 bf10ac62 3af4a9f8 00000000", + "41c4f42c c0706e70 423032fe c013394b be36d098 be633622 40145907 3fa6d69c 00000000 be59267d 401f901f be1a6a3e 3fe1b1f4 3e572fec 40dbd160 c0d2817e c065537c bf2a50e0 c0874fc1 402e3e78 c02f45c7 3fc438dc 3e5790e4 00000001 bfd79716 bf1a3ba8 -> 3ea4a5de 3d4d45c9 3e73f1a5 3cea5a01 3f86b28f 00000000", + "423fbc36 c00462c0 41b7c170 bec40393 3f411b61 befcd259 3feb9804 3fdc7022 3f000000 3e87db87 3fba3a3a bec87ea6 be819efc 3ed65350 3ed52aa0 c0bdc1e2 c0c6e24b c00825bc c0fd9355 c03b2d1c 3fc11cdf 3eed7ef7 3fc85f19 00000004 40273e2e 3f3ac5e1 -> 402d56de bed67f6c bfc5adb2 bf5f6818 441748e6 00000000", + "4225e108 423003ec c05033b0 bfde4520 3f291fbd bf0721eb 3ff73971 3fa25b97 00000000 bd315b91 41a05390 3ed35fb4 3fdb8126 bfaba2ee bfaa0080 c0b8b54e c03d0848 40fde030 4049f830 c09d762a 3f905946 3fbc7d43 bff4d609 00000006 c03edf46 bf4a2432 -> bfc37e82 c0806ea2 c0a29720 bebdf3f8 446925d6 00000000", + "4244102a 41c4a340 408c4ba0 bef118c4 3e732b13 3e229845 3f3f7324 3ffc44b6 3dcccccd 3aedfb39 41ec7b9b 3f469d87 3fcd5448 3f5f64e3 40af6194 4045914c 3f870678 40af23de c0fcfa8b c06b60fc c02a0eff 4022346b 402a07c7 00000002 401d3eb8 3f27b2f2 -> 3b8fd80d bac32a20 ba893048 3e6ba3f0 3a14a1b3 00000000", + "bf242980 c21834ae 420c5ec4 3f0b671e 40312f2b bf71886f 403e6849 3faf5abb 00000000 c0483609 3c89b385 be980867 bd550287 3f28ca36 c0d24959 3f2ce9a0 40722dac 40d90416 c0d4887d 407f362c bf8d3728 40304bff bfe2cc30 00000003 401133c2 3e9f0110 -> c2849d93 c1781302 42f29542 3f18a76c 4aca5902 00000000", + "40fc6958 c2227c8c c106e18c 3fcd5cdf 3f87a06e bf92e7e2 4014d333 3e3083bd 3f000000 3aa26845 4219ae10 3e4ce9b1 3f056793 3e63e5ff 400e4c78 bf8e820c c0e418da 407e1c1c c09d9dd6 40980024 3e338efa bf8e4d42 c02d3e0e 00000003 c03e37c2 3eb9d7cf -> 3b57b221 3ad958d6 bbdda6ce be7480a4 3a28e571 00000000", + "c0501dc0 40b15f30 4145cc04 3f8a138d bf471bca 401523bd 402f0b14 3f050f16 3dcccccd 410aea46 3ca22c46 bf1c2810 c00b988a bd7fcfa5 c0bc250c c0cdd310 40e4a7ee c08db050 c01f82e4 c0d01bbc 3fac1bfe 400d883f bffd61d0 00000002 c00377dd 3e87ec87 -> 423705bc 42966b78 41727cf4 3e83017c 4bad1ff3 00000000", + "415c30b8 c1ea9e83 c22e46c8 bf26abf6 bf3ff199 bd59f7c5 3f8cc9d6 3e5807ba 3f000000 bd29b4a7 3e424bcf bff86100 3f3ebdd0 bf614c26 3dfaaf00 c0a29ae2 bf8f86d4 c0c3cbd8 40b33634 bf587068 3f31d2cb be5d7e62 bf9b9141 00000007 3f0f95c0 bf28e87d -> 3e0c261f 3d5052ec 3df3bbdf bec983fe 4051b150 00000000", + "c23c0f63 423e359e 41cd1ac4 3e99384b 3e24d60a 3ef141b2 3f14b906 3fb99056 00000000 bf68f0c0 3e9efa50 3fa665d1 3b89dbff be34a0ed bfdd23e0 c0ab593c 40cbcf4e 40b74250 c051b9d6 40b26c0c bff8d13a c01c2b0c 4009a921 00000004 3f313bfb bee7b5a6 -> 40af743e bd366847 c0608dee be8b2e9a 4340d80b 00000000", + "c1eeb71e c23bae34 40e3bec8 3f4905bf bf06ad4f bf80bc8a 3fb0a9e8 3fb94990 00000000 ba9379e6 3d32fffd bd817e7f c016a65b 3f9cead6 c083486c 3e871660 c050ce4c 40e243d2 40a4c16e 40d3c970 4012781b bfb71cfe 400239b5 00000008 4024160a 3e35f5c4 -> ba5e69ba bc8c462c 3c457983 bea31c49 3e703bbe 00000000", + "41a25b50 c11f87c4 c1ce8fdb 3ecbfe45 be855bd6 be9534d0 3f80d119 3f658125 3f000000 3b61fb97 3fb7c212 3f71711e beb760cd c01f4138 404449f8 c0e48740 402847e0 c03ee876 c0a85cb0 c0e84b77 c00dbd5c bf88ff7d bf57b6b6 00000004 c03d7061 bed6f0bc -> bbdf02f6 bccf45e6 bc91a0be be6c75fd 3d0b2bad 00000000", + "42130ba4 42275bb6 4182df7c 3ee2e334 bffd9891 be20c947 4005ac46 3dd6a604 3f000000 bbfdeb1d 42a20864 3fa11c83 be8e3a6a 3dceb8fe 3e202f80 be87efe0 c026a466 3fea27a0 bf58d9e0 3fe94168 c027cd0a bfe5f88e bf614cc3 00000005 400b40d5 bf184a0d -> bbffcb38 bcc9e4d3 3c8ec63d bf1968e4 3ea17334 00000000", + "419d601c c2278634 422bb378 bf34ffb8 3fe14fc3 3fb3bfa7 40170cee 3f4d1ca0 00000000 3e944811 423a0aa6 3fc55e53 bef7bcd1 3f083286 c0cc3292 408915c6 40e5056a c0eba824 c06457d0 407e8918 3e8c53dd 3e074a46 4001d383 00000007 3fc9eba9 bf43eec5 -> bda7f7b0 c06d09b0 c048aefd 3e3660c9 434cf4d4 00000000", + "c21d94ab 41efe03c c1f6a08b 3e670966 be118faa bf4e0120 3f735f4d 3f83c169 3dcccccd 3cc5e35f 427f40c8 3da75526 bf981beb 3eb123f7 bf9af9f0 bfb006d8 c05d1f6a c0023aba 40410e78 3feba428 3f3a7714 bfc1292a bf43a438 00000006 4015f471 bf34d909 -> 3ea39a1f bd93aec4 be72f8f1 3de52719 4216f664 00000000", + "421fc076 41930c00 422e64d4 bd811497 be3aaf22 3dcc12b0 3e74b108 3f8bcc79 3ca3d70a bddf2326 3d26ab81 3fb11195 bfa4c8b5 3f72030a c0f1c603 beeeafa0 40ae2f0e 405e35cc c0bd58f1 c0dbaa14 c004a6ef be471be9 c007a9aa 00000006 bf903613 bf3a2460 -> c0ad1b19 407e1e2a c040ac14 bf8f4497 449cac67 00000000", + "c0abad38 c22e0eb9 c18c74fa 3dea8398 3e164646 be5ba44f 3ee91346 3fdb2af3 3dcccccd 40a0b352 419e9b9d 3ef6207d beb3d973 3f0981e9 40ab3aba c0e2671e bfc40d1c 3f09af50 3f0edac0 c09a434a 3e43b9bc bfe6e686 3ff701f1 00000001 c01ad778 be4dce25 -> c0c72681 c174b505 c09a0983 3de3e08d 44af6853 00000000", + "be12d700 c0facf18 422b2a90 bf32db7f 3e8292c7 3fdffba9 3ff6f93e 3fb3eb94 3ca3d70a 4096bba1 41a20eeb 3faf50bf 3f8baa42 3fa8d7c1 bf9980f0 c0e30c1d 40e3b386 3fa5d8d0 c0931795 c09bf954 4021821a be86302f bf2f5455 00000007 3fa109c6 bedf6f33 -> c1108cd9 bfeecac8 412e4bf4 bdbba447 4566c98e 00000000", + "c0e20860 41d66d48 42358806 bf415802 3d7d1062 3ec3d5bb 3f59e875 3df2bdd9 3ca3d70a 3e2bca92 420a97bc 3ee500c4 bed0e5bc 3e54526d 3f610c60 bf9afed8 408a9a92 c0acd086 3f3aca30 4097af1a 3f8d742d c0397f85 3f5a769e 00000004 bfb131f4 3dfbdd17 -> 3e25d9eb 3e05902d bd3e0b06 be131fc8 3f55ee0c 00000000", + "c036df60 41ba9804 c189ad98 bed53e71 3f53fe78 bff90baf 400da30d 3ded1a47 3f000000 4044c4a1 42305376 3fa47144 be6d119d bfbe386c be8ab6e0 400023c4 4080af0a c0431e86 3ff52e40 c0a82c36 403b8c08 3efbe643 3f1ac0e6 00000005 bfb4d15a 3ee6ef4e -> c0c14e9f c158e15e c057941b bf16f247 4506a35b 00000000", + "40d73338 c1948fb2 419369b4 be1e0b2b 3fb499cd 3fa2ed30 3ff626d2 3f53e472 3ca3d70a bd879871 4029cc37 beae60e1 3e416f70 bf1e10cc c0a026a4 3f9ab2b8 c016205e 40369be4 40ebd0c2 c09b810e bf0ade3b bfe59531 bfd77a77 00000004 3f085fd0 bf49cc16 -> 3d827e46 bdd58719 bdd708dc bedce6f6 3e1e779a 00000000", + "c1cffe0a 410ae74c 40bb1c30 3da5c729 3f095f9d 3f749369 3fc68abb 3f679bc3 3f000000 bc135d81 407062f6 bd862c17 3f1ae843 3f101bce 40cf859c 4095deb4 c0eaea23 4022edbc c0b2092c c027279e bee5342b 3f5daeda c030461a 00000004 c00d642e 3f273a46 -> bdf2fa3d bda120a7 3dbb3e42 3ed1fb6b 3e3948ea 00000000", + "c114e4b0 40bd4bf8 40270ed0 bca0e0de bf080b06 3e69e7c3 3f9bea63 3fa3aae0 3f000000 bcab1ec4 413aa88a be81ac5b bf35000b 3fe9296f 40b7f148 3f05c1f0 3f378730 c01cd4d6 c0237a1e c0b8bdb8 3f8f0901 beb270d0 3f92e77c 00000002 3f0b535b 3f09885a -> 3a34b770 bd44e4da bca58112 3e89fd3a 3c734d55 00000000", + "c18578da 421d54f2 c232105f 3f1c7027 4028cc85 3f93774e 403c4e5c 3e7261a2 00000000 bf84fcec 3e251741 3e80276a bfd56fcd 3e42b20a c03d5930 c0a335ef 3d7ffe00 bfc4d3a4 40da09e6 c0363c28 c0056b4c bf4576ba 40116bc7 00000008 40361db0 3f261a4f -> c18e2d54 43b4d0c5 433f820f 3db71df8 4d96086b 00000000", + "c2145cd9 422f5978 c19fa3ef 3fd40fe6 3f4cc13a 3de56f89 3fef0634 3e788850 3dcccccd bcd34211 3e190175 3feb2b6f 3e5be914 3f8bd5d3 bf9bdc24 c09b4500 bf2dc2c8 37d00000 400286f8 40d71126 bfd0942d 3f157837 bdf7a952 00000004 3f210456 3e6bc520 -> 3f36cd27 3debfc18 3eab3724 3dc2e56e 3fa37cb6 00000000", + "c229d888 41ab1364 4218ef08 bd1cff46 c00ad13e 3ef2abfc 400e65f4 3e634cf8 3ca3d70a 40ccece9 3e0002dc c002accf bd130fb4 3d8df545 40b63ec2 bffecfac 405a5d14 4034e280 bf89bb64 3fb34860 bfdd75d4 bff1ad79 3f952cfd 00000004 3f606361 be84aafd -> c2a251d1 40867d30 c1727c5f beb9a6b4 4831c1a1 00000000", + "c2321c2e c2178788 40e5ca60 beb629e7 bd933622 bf375565 3f55d6b8 3fcf873d 3ca3d70a 3f09647d 3f86cea2 3e9cb2a9 3dae5ec0 3ec779ad 40513520 c08fa698 c037da8a c0aea9e9 c0c03f43 3f775e30 c035b731 3fc15f99 bfae1aab 00000008 3f94ab86 bf400553 -> 3f047524 40238a3c 405dda22 bf1c8576 429a54c9 00000000", + "c1bf3bb0 c1ca170e bfe1b300 bfb15c0e 3ff72717 3fbd857c 4034ad4d 3f931728 3ca3d70a 40566381 3ce9a815 3fcfc014 3fcd44aa 3fd1518b 40f25ff0 40982eb8 4082005e c0a11ce9 c05a0a06 3fc7eb70 bf812599 bf7a1cc1 403ed847 00000004 c0129bf0 3e7ba45c -> c217a220 c22198c0 c23a9954 397b8670 4a8ece48 00000000", + "41a8aadc 41c666d8 c18df3a4 3f5dd420 bfc1bc12 3e9ea267 40055cac 3f1ff6aa 3f000000 3b8ec885 3d9d92f5 400ae5db 3e8fb09f 3d215081 be131ce0 c08dff9a be8d2ff0 c08d1412 c0067926 400c3ef0 bf3dba2f 3e51e234 3f4eb834 00000003 c0059863 bee46123 -> 3dbd3f74 3cd1e30b bad97876 bc24b50c 3f98d264 00000000", + "c14cd2fc c0200460 c232429d bd0e42e3 3ebc185c bdb846b5 3ec3430c 3d9e7d28 3ca3d70a 3cb371e2 41174ea6 3f1d8d61 bf024021 3e051c6e c08c0e34 40f4848e c047ba74 40587c6c 3fbb76f0 bf5fa8c0 c0388025 be52221c c01a077c 00000002 4031a30b 3f529e8d -> bcd3cd14 bc6fdfa6 bb09c7e0 be907924 3d831e76 00000000", + "4079a960 423cd28c 3ec36e80 bfa2c1e5 bf772a54 bfd8f62c 402f7f8f 3f53c742 3f000000 3bccc239 3c9f0b0d 3fe140e4 3fc006a3 3fd7fc8c 3f0d40c0 4001fc38 3f593870 bfa00a6c c09e2e02 40cdcfb0 40107533 401b9e56 bf191062 00000002 c0363889 bf86f36c -> 3cd99238 bcc32a98 3d173050 3e9d0fe2 425c1e1e 00000000", + "c1551f00 4082b550 c171221c 3f00e9f6 3ec68d36 400931c3 401b2afa 3ff1674b 3dcccccd bb335276 3c6b130f bedb5ac6 3e80c784 bef7e4fc 400e0d64 409cdb4c c00c4c6a c0a266a8 c0ef4aa3 3f4e2a30 403003a7 3ff44d2b bfe9eff1 00000006 bf4063ce 3e08f1f2 -> bdf2ca97 3d93f44a be0759c4 bd6800e1 3fe76da7 00000000", + "4240fefc c21041b3 c23abc15 bf85ab3e 3edffd61 401a331f 40479663 3f69af06 3f000000 bd429213 3da733ab bf9d4b04 bdb71732 3f8ceef5 c0a8b9dd 40cb2b9a 3f161110 c0579f54 40ba0cb6 c0392384 bfbaa1c8 c00f3486 400809a5 00000006 c00b76fc 3f6a5cd4 -> 4147188f bf41e4c2 c1a1709e bd96b257 47145ce3 00000000", + "41bde074 c1c7c246 4131dbbc bfc1098a beef27bb 3eaba05c 40220c6c 3feb0410 3f000000 bff794bd 3cade4c1 3f66f99e c00bbfb8 3e15ae1d c05cde54 bdebf9c0 40cdb8ca c00cc8de 3f0d1840 c02f215c bfe57800 3f842cfc 3fb0471f 00000006 40350f98 3f3ddfea -> 451b9ec3 c5bb28dd 437f4bfe becb536c 4f741e02 00000000", + "41457c78 c1bcd52e 41e4f868 bd418989 3e9a0ab9 be2f31cc 3eb74959 3db172a3 3dcccccd c0079d97 3eb40f82 3f078adc bf2a492d 401578d5 3fee3eb0 bfe182d8 c0b72bae 40ccb500 c0046aba bff226b0 bf1e9bc4 3e2c0b75 40196c71 00000006 bff7ecfc bf97cba9 -> 4319e8a7 4367cfbc c42fb02a 3e4b15f0 4a8a9b98 00000000", + "c1757f00 41a17a04 c23fdfdc c01c6053 3f8fe40c bf0c315d 40353347 3e312466 3f000000 3ca66f17 3e430e2a 3f4d712d bf0084bf 3f068bac 40423344 c0bb3c56 403eed60 c0eb1b2f c070ea68 c030823c bf5c4f47 bf89243f 401d107b 00000008 bfffb15e 3f8629a8 -> 4272e22a c2107abc 41ca1786 3e19fcb8 469184ac 00000000", + "c234e03f c1632bf0 c07400a0 bef2b93a be883733 3eb041ac 3fb92b5d 3fcd9d6c 3f000000 402a23c0 3cc7a3ef 3fd0ea41 bfc92990 3f9bf2f7 3fa93500 40ff9ad8 bf29a310 408fe600 bf502600 3f3667d0 3f7fab39 3fa939c3 bfcc2df5 00000004 3f085b28 3f1e65ce -> c2db71e2 42db5c4a c2ac5759 bedf4cce 4943e203 00000000", + "41ec6ab8 c1b12374 c1f5283c be2f4023 be15d2d9 3e1b3af0 3e908790 3f0adc83 3ca3d70a bda3da6b 3cb6587c 3e411c8d 3f51caea 3f24005d 3fb01ed0 40114594 beed7520 c0c22d94 c09b9ffe c0eb9f73 bf860b6f 3f9c2431 4008d9a6 00000002 3f6dfdaa 3f1c8e29 -> 3ebff82e 3fc47529 3fa63dd4 3d6b6cc9 44251ef5 00000000", + "41fd1eac bf2abb80 c2424913 c01388a0 bf88c21b 3fb3f38e 4039d7bd 3e81b4f5 00000000 c1167494 3f16186b 3ece1776 3f2c5953 bf89601c c085b0f2 c00cd874 c0d21cba 3fadbd78 bfed8718 40a2ef02 4037c102 40181743 c028c1e8 00000006 c0366ceb 3f081ca4 -> 422c8510 4375acba c36f7a90 3eb22029 4bcf8834 00000000", + "41f33204 41f5cfb0 41ce0340 3faca5c5 bfaf6f83 bf9f0246 4036bf67 3f90ec73 3f000000 4093c969 40b21a0b 40075a0b bd9b554d 3facd20f bfae19e4 c0b068ac c0c286c5 4070d164 c0edae18 bfbff6f4 3e7807f2 3e9d2ec8 c0187e56 00000003 3f47d1b8 bf5e3e11 -> c0351956 4099c66f 40b86bbc 3e33179a 450627fd 00000000", + "41a12aac 41ceb578 41f12678 bfc8610b 40169af5 be086fa0 403526be 3d4cdee0 3ca3d70a 3ff210a4 41182aae be4ab6d7 3f8251f3 40339edc 402140d0 3fb6f9b8 40dc6d6c c021562c c0cb6fea c0f45ac8 3e246849 3f9c7e45 3fb662c7 00000001 bfc02c44 3f11db69 -> 4080745e bf128dda 3e745bb8 3f447271 4346ff65 00000000", + "4140a864 c2268b16 41f98564 be0445f6 bf3937d0 3f3492e8 3f875a5a 3ec68526 3dcccccd 3be9cd13 3f9ae9d9 bf5296fb 3eace979 3fd85113 c0d6314b 40f1b9f2 3f8d41f0 be061920 bf70bb90 be847ee0 3f8c58d0 c020e01c c00a473d 00000004 3f8d574f bf855472 -> 3b95e588 3d0fc0b3 bd39b1d4 be01353c 3c008e74 00000000", + "41de9a84 c2175ce9 c1aac4bc bf82d997 be2aaa3a 3f278b33 3fa02ca5 3fa7658a 3ca3d70a 3b11205e 408d65d6 3f07e431 3eba2c9c 3f5e6d6b 3f07f5c0 40b3515c c02e6eb6 c0b903b2 40ca5ad6 bffc9110 402e3d95 4026b800 bfdd2c14 00000002 c0390587 3e0f6d5c -> b92cb670 3a7987b6 b9fc0278 be97d6e9 3973fc8b 00000000", + "419728cc c1f1daa3 c243c99b 40346323 3e84f2ff 3b18f53f 403526b6 3cc57fe0 00000000 3e9fcadf 4164cd34 bf8d0806 bd88d2cb bf922384 c0577f2c c090470e c0225090 3f2316b0 406c9480 40d688fa bf0799e4 3f9b94e9 3fb58630 00000003 3f052057 3ebe1d92 -> bef78a52 3e8446b6 3f05b866 beea114d 40423349 00000000", + "c1b20019 c1d738b1 41ed480c 3fd77f47 bf194879 3ed981ea 3fec1ab2 3da16f9d 3dcccccd c08f60b4 40fe3a9b bfba7d15 4015d297 bda1f07c 40e3dd92 c0c597c2 bf222ad0 3efb5620 3f4a3a90 40b67674 bfc93990 c026d353 3f6369a6 00000005 c01d849c be2b3791 -> 40cbb598 401302dd c167af02 bd482e71 45b31524 00000000", + "423e51c2 c1b68684 c239aeae c00a8cf1 3f62ffe9 3fc28210 403315f2 3edbd3d8 3ca3d70a c082cf6d 3f98e9fd 3ec3440b bf3ba579 3ea2e028 3d91a200 c0a52088 4038dbe4 40e55b72 402ba504 c0d7ca18 3e8f1a6e bf83b55b 40336a9a 00000004 bf839596 3e86ce53 -> c0e1f751 417b2fd3 bef5f23a 3e971dec 44a010ae 00000000", + "41cd58b8 417c9890 41f81400 bec03ea0 3f38cf7d c035acc9 403cfded 3f491405 00000000 bd0bce23 3e6fe1ff bf568c16 3d5bf929 be84646e 40a35ab8 40983a0a 3fd08030 c0c9e3a4 c0447f3e 3f0fab40 3f0b4d95 3e010a27 c00337db 00000004 c03a0cbc bedb41b8 -> beb579e5 3dc51014 3dccd7f7 3e13c7be 42116d32 00000000", + "c217afc7 c23e3f2a c065d0b0 3e242a0b bf324568 bf1852cb 3f918e43 3ed43fca 3f000000 c0035bdb 3ec3c74c 3f1a6d5d 3fb2a504 bf6134bc c000b23e 3fe2a220 402dfdac bfe4ed30 c0484a12 c0d192e6 bfe08796 3f3778a0 c01286e8 00000003 3fc86c30 bf4eb72a -> 40aaeab0 416dc1d2 bfcc8894 3f1603c8 462cd0ce 00000000", + "41d6c248 c0872e58 c23a6dfe 3fca60ee bf3c6dd6 bfb8449a 4015f3c2 3f50d991 3dcccccd 3e04d448 3d6c0c47 bea8996e 3e9945bc 3ed228d3 3f2fd7c0 40f04880 40acfbc2 bfc36400 403cab7c 407cb814 4024e660 bfbe5443 3fa28977 00000003 c01335fd beff35e3 -> 403e5e0c c0631cef c081432d bde0ae49 453aa0e7 00000000", + "c233efef c046c240 c243c531 3ed05c8d 3f95a261 40109848 4024dfe4 3f6ea295 00000000 bb5cc36c 3f7e45c8 bf59ca9b 40114463 3f00543b c0bc2130 c0c2f814 40a88cde c0c89c5a c05d96fe 40a78796 3fa7a152 3de9112c 3ffd3df3 00000001 c0368227 bf28ef89 -> 3b3e1e5e b89d93b5 bb7fe645 3de6a534 3960ee2a 00000000", + "c221ea7a 41bc0248 c2285699 bef83fad bf219847 bef8e5a7 3f852e40 3e5ccbe8 3f000000 3cb92fc3 3e21e2fc 3e0146ce 3df22b98 3fa5be4b bfef52bc 3f71e610 c0a08598 4080d320 3ef105a0 3f6ff950 bfab8c85 3e52c34e 401a1dbe 00000007 c00aa2d3 3e9b7c36 -> bdf2a570 bdc92d6d be96adb2 3ec8a143 41ea18eb 00000000", + "c077cf80 c1ef37d6 410e0090 bf68c42d becf8b46 bd6e6419 3f7f4923 3ec299d8 00000000 3f10a861 42b83b56 bfd43cb9 3f29b551 3f544695 c048b734 bf47b1c8 c0879f11 407cd748 c022a7a4 c07c1c14 3f2092a3 c0163523 3f643ea9 00000001 bffabb1a 3f667eda -> bf43df1f bfb8e2a6 bebccba5 be69518e 40f37198 00000000", + "c243e1c9 c1e7a97f 42275eba 3fac0669 bd52275e be247c31 3fb0fc56 3fb497e6 3ca3d70a 40edc9f2 4150e55f 3ea87f86 c012bfba bfe8ccc0 c0b3442c 40598668 40d615f2 c0c57be8 409879fa 400297e4 c020b287 3f9c09eb bf7257bd 00000008 bf80521e 3f996ddb -> c157ff5a c2ad34c6 42c8d0f4 c0931926 47497752 00000000", + "421bd65a c2429dd3 c1897688 c0132ae6 bd958d3f be57c37e 40164d7b 3d9c7532 3f000000 3ef6737a 408fd924 3f75b47d bf1627b2 3f9d065e c0cbedd0 4028f6c8 3f4b19a0 c0ec712b c06bfc1a 408906ac 3f456cd3 c03b4f59 3f8f0489 00000003 c03bff73 be899542 -> 3cd39338 3f32dac0 3e5c8a08 3e0b1c6b 42e0317f 00000000", + "c225bc62 c0ba7df0 4183dc18 3fa90bed bdcc56ea 3f8638eb 3fe06ac7 3f23bd15 3dcccccd 3f1b847a 3e35e7db bf77e96c 3e11c4e1 bf83c422 c0bcb07d c096880e 40f6683e 3faa1570 408a43bc bf436928 c015f798 3f3eccc4 bf13bec1 00000003 3ffba4c2 3f734a07 -> c1ad8b84 4085d535 c1c915f0 be7fd650 4638b08d 00000000", + "c23abe2f c1e9b97c 41b39f68 3f4d3247 3eb56b83 bee35c8a 3f80d6d9 3f9a37c4 3ca3d70a 3e817bc7 41184c4c 3e1cb070 bf93c1d5 3d1d2bc5 c09ee33e 3fb69160 4017b64c 40a288be 40ca5514 402fea08 c0030753 4010c7ac becdbaa8 00000004 402dca65 be652192 -> 3e1dc914 3e8fd065 3e8f316c bdae3dc8 41e6ebf1 00000000", + "c21250e7 42470272 c22cdc30 be95249c bfb7d0ac 3e6052f0 3fd0ff8e 3fc18d45 3dcccccd bff94f5f 40617026 3fcedaa0 bf23d16f 3fa99e28 40a51d76 40b7870e 40923b40 c0305c24 c0f4a133 4005a944 403b46e7 3e899939 c03d898b 00000002 3fff5617 3f73f0a7 -> c018dab7 40ec622f 408296dc 3dbbc03b 447cdfc8 00000000", + "413426a8 4239a924 c1cb2840 bfeab6ad bcc2d4cc bf9f50da 400dd89a 3f406a40 00000000 babdc858 3c6a3005 bf948733 400e75ad bf7ebd08 3f43d140 40867dae 402c29e0 c0a9e77c c0c0f0ee 40f153ea c001cacb 401c5b42 bf00b7de 00000006 3f3a49fc 3ebff777 -> bd078e8b 3d734f29 bccec968 3e9798cf 3e9ab56d 00000000", + "420ef392 c11b236c 417460a8 4024ef63 be43d82d bfafe9b0 403cbaa6 3f8ca75b 3ca3d70a bd28c79e 3d8306c8 3f28ae75 bfd1e4a7 400a182e 3fc644b0 be938ad0 bfd9acbc 406f2d58 409c2792 beadcbd0 3ef20ce5 be07ff64 c018991d 00000001 3f73f96a 3f4c261c -> 3f2f2721 bfe058c1 4020b985 beb89921 4187c214 00000000", + "41160078 4223edd6 c083a360 3fcc892b 3ff59c7d bfb48051 403788fb 3fc5cd09 00000000 3a9a2334 40bcd416 bf841040 3f047dfb 3fa06793 406a68c8 c0f59b92 40346208 40a7240e 40e3eee2 c0fae6b7 bf2e5027 bfcb1260 40337bb9 00000003 bfcc294d bf53bc8c -> 3aa60884 3be9948a baa3bf06 3f4bc15c 3990593c 00000000", + "c1155f94 41eff288 4146e130 bf338a5d be60f18f beaafd03 3f578f74 3fde9ed7 3ca3d70a c0951dbb 3f13b8e8 3f3fa5b7 bebfd31c c034be56 bec2eb40 3eae0a00 40dd3a16 c06ba51e c0fe81f1 40a602a8 be299fa9 c0251069 3e6b3f32 00000008 3f1d8c65 bf7b8563 -> c050c90c 40f5d9e5 4037235e beae8d28 45b1a952 00000000", + "4013a220 c23c0512 415a482c 3fdd8cf2 beda3546 3f1ad94f 3ff38a37 3f81ae32 3ca3d70a 3ae87cca 3ec3ac9f 3d862d4f bff5d114 bdda11fc bff4bbe4 40cffed6 c0a4b628 40b42d14 401b45e4 3fe4d7d8 3f5b7fc5 3fe88b7d bdce8319 00000004 40161cb2 3f695a5c -> bbb02bf8 bdd6cfaf 3c98e563 3f5ed210 3d6f8747 00000000", + "40fa00f8 41f9bbb8 421b2aba 3e82de96 bdfc0034 400a9ca1 400bcbb9 3fc4e1fa 00000000 c03abd53 40aa50cd bf834c77 3f4e98b8 3f4fba72 c0547508 c0728404 3f0dcf50 40fb1128 40e66790 3f233c90 40108013 3e8c8d54 c01e846a 00000007 c00c1e68 3f8f3871 -> 42c7b89c c47dd036 44c2c3af be615cc8 4b2e29ab 00000000", + "c211c674 423d90a8 40f67168 c021c6f3 3f45dc59 bedcfaab 402b6927 3f9fa334 00000000 3d646bab 3d4e49c7 3f8c8158 bfc31555 c002f1a8 40d127fa 3f144970 403b0ba0 bea7bdd0 40e5b0d4 40e65b92 c028d326 3ff3faaf bea794d2 00000005 bfe780f5 3e2447af -> 3f6b5ff2 bfa6f088 bfe12b41 3f4d2091 42a1964c 00000000", + "4150283c c1dea5fc 410a93b4 3f4465e5 3f879ff9 bf92c866 3fdeabc3 3f83e698 00000000 3b3079e6 3e3a673f 3eb9b071 bd824f8b 3f0d06b0 40a0ab0a c0cc914e c0ce42c6 bf9f4e40 bf3d0fa8 40aa3a0a bff1b9b7 401e4adb 3ef08ce3 00000003 bf9b2cfa 3e11df04 -> bcc3ea83 bb952143 bd002c7c be12d7c7 3ba9440b 00000000", + "4220b2a0 c0b83d60 c22e8c8a be2a39cb bf930b1a 3f7f5613 3fc8bef7 3ff2b316 3ca3d70a 3f85bc03 40a9c97a be7be55f bd397fcc bfd43697 c057e4f4 c0eb3984 c09ffe5a bf9f6a18 4012734c 3f9ae9a8 bfc5e2a9 bf82ddd0 c01f62ae 00000004 3f9f8aa9 3eef32b5 -> 3e4e7e65 4024dd0e 3e985b6c 3eaee0e0 42dfd94f 00000000", + "c1db91cb c222fcc1 41c0f0b8 3ea44155 bca849dc be78d9f4 3ece5488 3f1603e9 00000000 3ead15f9 3d6103ba bfc09b86 bf89603b 3f168c38 4095edda 40d04e02 c0d354dc c091395d bc07fa00 bf81a7f8 c0180a70 3fa356a1 bfca8fcc 00000002 c01e6b00 3ee628e7 -> c1955ce7 c158e7ea 40e18e48 3f3af70b 45494fc2 00000000", + "4226de18 4188d520 c0c41c40 be9196a7 bf49b202 3e43b6a4 3f5bf0df 3fc24762 00000000 411bd50d 40b07a5a 3f31463e 3fdda684 400ef37a c0e10f3a c062c30a c068ee9c c0ca4204 40a6661c c0e66900 3eb5683f bfdbc4a1 3fc6566a 00000008 3f9ef6be be9949b1 -> 40ddcdf4 c1535b41 4137d7f7 bea4ebbb 4542b7f7 00000000", + "c2470b25 c11ce8c8 414d66b8 beba1a2d bfbe79ed bfe0e24e 401debd0 3faed2c6 3dcccccd 40a6b04e 3ff2836d 3f119caa bdc94849 beb7f3b5 c09883d8 40d8bd06 40d4414e 40d29a40 c0cf0d96 bfe4198c 400a379d 3fb1390d 401c13a9 00000005 bfa07d41 bf8b120c -> 421303e3 c20ebab4 428468ee 3f8f10e2 46e18511 00000000", + "c1cbab11 4234693c c05b7910 3f590f0c bff18a92 bf4da1be 401ddc00 3efd3e6a 3f000000 bcf01b0d 3fab9a58 bd881f5d 3e503383 bf1dca94 bfffd600 c0b1b336 be617340 40736cc4 40869f2c 40d495fc bfefbb29 3f13f286 3f9b8964 00000007 bf972bd0 3f3b2a88 -> bd38880c bdec4062 bddbf7ae bcb419a2 3ea361fa 00000000", + "4223bfc4 42223f9e 41f378a4 bf01c3b7 c0194e74 bebce385 401e785a 3fa47e75 00000000 bd6270b3 3f2132b6 3df2eabb 3ec4304d bf416570 40e3ef28 c0aa3b32 c0b95978 c085b6bb 40c289d6 c0d72f98 3ed9e67f be804f01 beeb1008 00000008 3f9d40ba bf6fce9b -> 3f718bc1 be013637 bed0895b 3fcff256 40c3418f 00000000", + "c19de57f 41b9cec0 42319390 be8cdabd c039af92 3f2a4e79 40496074 3fc934b7 3dcccccd 3fed9767 40738aed bf5f8243 bf4191a8 c010e358 40616e68 c0fca245 c0db9cbc bfe97cdc c0badc6a c0474aa6 be66c8ec 3fea8746 4013c5d9 00000008 bf7d01aa bf128958 -> c022ce99 3e52e8be 3eafec17 bf5e1c67 43d754fa 00000000", + "c1a17c07 c20a154e 41860d70 bfb796fd 3eaf0589 3fcba996 400ad530 3f47facc 00000000 be798fcc 3c834210 3f5dc42e 3ee415fa bf1e992b 40bd004a 40dab4c4 c0d83e8c c0cff820 40fc3614 c0d4d234 401676c5 3de4934c 40035909 00000007 3fae52df 3e9bfb8f -> 3f82ad5c 3f75cf97 bef8c87c beb54db8 46472c02 00000000", + "4243337e 41ca1f5c c247d7d7 4019614a be2bfea3 3fac8f01 40398d35 3fb8d67d 3dcccccd ba877902 3de9aeba bf4848fe be35c7fc 401e6ef8 40bcf81c bfd9b3c8 c0d7da63 3fc0ee10 beafa810 406e2f5c 3fc83362 3f705ede 3fac0a0e 00000008 c0275ec0 bf4e8df1 -> 3e65dbdb 3e50ec54 bffee14c bf333500 44592514 00000000", + "40b8ac60 c1450a60 40007f50 bea0f4e0 3fc50ea0 bf14e0a8 3fd952dc 3f8f54a8 3ca3d70a 3eb3cc4f 42be0a70 3fc3a9c3 3f6d056c bfb66703 bec704b0 40abb18e c0846528 c0e80ff9 bd0ef680 c09c98d5 bfc60597 bfd2371f 401e0d14 00000007 400b77e6 3f40d39f -> 4139e5d8 41be69da 41df3f23 3f26b6bf 469bba13 00000000", + "c2198e4a 4185c2e0 bf393040 3f35d92c bfc642cc 3dd1b88d 3fdd102e 3f7f5ecc 3ca3d70a 3c647684 3c881d65 3f6169aa bf264d9e bf0016b6 c09a7ae7 40e9ff5e c0e729f3 40ea7f8a c0a79a7c c0d399b6 bfe9e95a bfb3424c c0282ba6 00000006 400730b2 3f935a39 -> c172a35d 4169b16e 41177399 3e8b1b42 4829ebc0 00000000", + "c0859470 c129a44c 41ebf95c bf08df57 401a8974 bf9f81c3 405adc83 3fa67ec7 3f000000 c00be392 3fa74bb8 3fb401f8 bf4bf01e bee8a384 3fd0a718 c07245be 4067dcf4 40927400 40a509b4 3f6cab20 400310b2 c01cecb8 c02e614b 00000003 c01cbf82 3e3b46d4 -> 40620bb7 400a045e 3fb059a8 bd54b809 445b5a16 00000000", + "413f49ec c23b9605 41f54df4 befc8a34 3ec2d2cc 4011456f 401d6efd 3e594c9c 3f000000 3ddacbee 41bfa9a4 bf33ea94 3fedd5ea 3f21ee53 c0bb0c62 c0166284 40c33c0c 4074428c c054a9a8 c0bb5a40 bfff8873 bea66a0a 3ff05bb2 00000007 3fedca4f bf64cf9d -> 3fca1c6a 3f3e73be bfa8e472 3f7e6a7e 444a4df2 00000000", + "c1225df8 c1b04148 41749fb0 bdb110a0 bfa70fc1 bf408adc 3fd13ab4 3fa0f7c3 3dcccccd bd722fb4 42374e33 bfb6316b 3ef3adfc bfd3794e c0ca021d 404db38c 40e5e046 c0a5fc49 c0f90548 3fd2bcb0 3f869193 3fbb2602 3f9bf36f 00000008 3fa9b9d0 bf0017c8 -> 3bd3e9ec 3d3d2ecf 3c4873ea bf2c6f42 3f2648e0 00000000", + "c2399250 421ef7a8 41f48b60 bf079a2c 3f6ce8bd bf12e744 4000ff2e 3fcdfefd 3f000000 bfa3001c 40e8c470 3eb544f2 bfa0aac9 3f5276a7 407e2ac8 4000ad14 c0da1d75 3d307200 c0d996a6 c0ddefaf bf12d2b9 3fa628ad be9e40ee 00000002 bf106dfa 3f8f71c8 -> 3f737900 4040f1dc 405ddf6e 3ee19a13 42f4d621 00000000", + "42006530 41e49e2c 415450a8 3ff57128 3eda626e bfd57cd4 4058689e 3fcdf078 3f000000 3ad735f3 3fd92494 3dae8e24 bfa4ec8a be8076a2 40726f2c bfbd0f5c c0a7b760 c0a09efe 3f837ab8 402882ac be9fd356 4020e40e 4028fb2d 00000008 c0114192 beada74e -> bb87ddf1 bb3555e9 38c33f68 3f30365b 3c873869 00000000", + "41252d10 c0539d90 4160ec50 3fee0079 3f83859e bf34f436 400fe9a6 3ef8c519 3ca3d70a bf4acbec 3ca8f4d5 3f6d5e06 c005b776 3f3913ca 40b316e8 c02ac87a c0b7bf2c 406d11f0 c03c56fc c0ecbe74 4032da72 bf95dd6a 40255872 00000003 c02a26cb beda9840 -> 41ed0ec8 c279a35a 419a9502 3f490653 49838348 00000000", + "c127fdb8 c1f062ea c115d160 3eca2e1b bbadc78a 3d497ed2 3ed4598e 3f56b87f 3ca3d70a 3fcd8492 3f41a800 3e3fe71d 3f3d58d2 bf0d0dad 400300f0 40fc2b52 40e9f630 c02e79b0 c084bbec 40682fc0 3fc2349f 3e8e36a5 403b8e87 00000002 3f39c783 be26b1ca -> 3fb4d9ca 3f4f54c3 c0b0222c bf597d6f 435b765a 00000000", + "c1ded520 4225ed86 424527e2 3c6441be bf75e8db 4013d319 402bc462 3fe951ce 3dcccccd bd9328ec 419ce808 3f97d38d c01cf12f bd8c6440 3fcf9318 4060bc34 c08c758d c06b49c8 c0e2f632 c0aacb7c 3ff87de3 3fbd789e 3fd2e1cd 00000005 c0241186 beaffce8 -> bd9dc4bc bd1cf4d0 bc380b00 3eb12af7 4150f647 00000000", + "421bf0f0 4140c508 423d72a6 3de02520 bcdc2b8d be883d7e 3e93f497 3fb15ae1 00000000 3bad140d 3e835589 3e89c9d2 be6783e5 3ed85e8b 3dd3ce00 3f17dec0 c08dab00 c0ab73ae bfa1a3fc be5235a0 3f9ed7fc bf17726b bf5f0ec0 00000005 40214a47 bf460df7 -> 3e43ce14 bd8f2753 be2994a8 be930cad 40be929e 00000000", + "c23e11dd c1311ff0 42441c0a be99289f 3f94d118 3f11ccc2 3fd73523 3f348373 3f000000 bbc6b346 41b274c0 be670569 bea2bb70 c00188a1 c077e324 c0d61966 c07d9d1c c0a8ea32 c00e827c 3f657650 3fb2dd89 c0031edb bfd409bc 00000005 3fde3d1e be1a7d97 -> baee079f bc55996e 3aae5136 beb0e367 3b11ccdd 00000000", + "41b31508 c21522e2 4188b5d8 bfaac1d0 bff82d23 bf5090b9 4020ccdb 3f8cbc13 3ca3d70a bdc62875 3fb6b81e 3ffebd46 3e511819 bff5112f 40459044 40b17470 40a65aa8 c0cf3bf1 40c645ce 401baa38 3f968ce9 becc1378 bfe84788 00000006 3f253762 bec9f094 -> 3d00910f 3e0e3707 bdc032bd be14a513 3e5d3c31 00000000", + "c19fc1c6 4238f19c 4201281a 3f2e2fdf bfb3fa7d bdcb13ef 3fdaf040 3fb9ec0d 3dcccccd 4023ba54 3fbdaf43 3ee023ce 3f06c306 3f496837 3d45f000 402b7fc8 c074792e c00af9c0 409e65f0 c051f52e bf85f9c3 40174246 bf75fa9c 00000008 bfe9173b 3ef8bbf0 -> c0a5c6ad c1480551 40959cd6 3f09dd63 46ce98ac 00000000", + "4241b6e6 418a11a0 4192bb70 bf02e578 bea73eca bd30286e 3f1bb795 3f977536 00000000 baacc669 3c6a2262 3f56bfce bfaac53e bf302076 40d48e36 3fd97ec8 c0bea9d8 c0c94c92 3e3d3780 c07b113c c004a1c3 3fdff019 bf8a0cc7 00000004 bf4362c4 3e023402 -> bd860aa2 3dd94cad 3d59a42d bf4602c2 3e5d60de 00000000", + "41d738c4 c1f6b6a4 41b820f8 3eb0f29a bf8a2f9a bff45ca0 400e4364 3e05e27f 3ca3d70a bd607f71 410a63c0 bf631210 bf71f0c7 bf4e0491 c08e0700 3e4d52c0 40ddefea c02c1da4 c05bfdfc 40948772 3fca372a c00f53f4 bf84e38c 00000003 3feb33c5 beedbe16 -> bdfa56f0 bdeae2d8 3e833b11 3f25bde1 3edd7a21 00000000", + "bf417d80 c0a917b8 c14e6520 bfab4cdc bf20cced bf2d42a1 3fd01dfe 3d5d9f2d 00000000 3da14cc5 411978ac bf643651 bf9996ac 4024a4bf bfa4e8f8 c0bccd30 4020427c 40f72334 409b9ffe c02461d2 3fe4e98d c01cc9a8 bf2d83d8 00000003 bf8f070b 3e331d70 -> bd4cb137 be1e1e0e bdca36f2 bd67e1ca 3e066bd8 00000000", + "411e6650 c2429db4 c10485b4 3fc0a78d bfa96ae9 3f2600f2 4008161f 3d21e78b 3f000000 3d118969 3f5b3fac bfba9353 bd4e17e3 3f884464 bfedcecc 40dcdab2 c0800905 40943f8e c02ac822 c0631b40 bf175153 bf986799 3f9e77c3 00000005 c0042875 3e5577d4 -> 3cbfb0e4 3d561b59 bd5cb122 be861679 3ebb44cc 00000000", + "41cc071c c10ca168 41120cf0 bd76260b bff05e86 3f20a3f8 4009c860 3fdc261f 3dcccccd be1cdb33 3cf3863a 3f613d9c 40180f9c bfbf2bff 40634b8c c0c42eaf bfdc0f58 40c16b14 c0ade6bd 40088ae4 3f7271d3 be6f1ffa be14932d 00000008 c031dad2 bf260033 -> c24f91de c2d6ce35 42d7791a bf3cf130 4d0b09aa 00000000", + "c1c28014 4222e312 4206754e bf6be48a bfc27d60 bfe291e0 4021d277 3f81d6a0 3ca3d70a bcac126e 40aefdec bf2b7ba8 c0124ab9 3faee6d3 4066085c 3ea88c80 c09acd74 409e8c78 406e4018 40f6ae9a c03a48b3 3e55b500 3f330d0f 00000001 40294e21 bf13baaa -> bd360946 3d0a21b9 3d43fa28 3e9575c2 3c3cd727 00000000", + "420ccbb2 422ab13a c1a59913 4027eab9 3e140650 bf69a2b2 403a126d 3fa0eb34 3dcccccd 3e80ce2d 3ca60ef8 3ed4852d 3f0b2074 3f90318c bfda9ad4 c0c76b65 40c0ba3a c0aa709c c00b43b0 40fb7e66 402b4e07 bf2e5385 bf374b00 00000006 3fa3b17c bf20cf17 -> c1905afd c1ae254c c239914d be1b285e 475719c6 00000000", + "424726d4 c22c5421 c231672d 3e3733e7 bf14e384 be406c19 3f2ae157 3e9cf2c6 3dcccccd be2aa840 3f64fdc4 3ff04c2d bf2b558d 3eafcd74 c0c3c06b c0df93fc 40e17742 c0383262 bf070bb0 40ee5f16 bf0c1aee 40193634 4021a414 00000002 403fae4e 3e57544c -> 3f327d88 3de687da 3e675446 3ece0026 4098bff1 00000000", + "c21d96a9 41f7a458 c18d61de bff10754 bfbd6de7 3fdc2057 403d1ae9 3ea139d9 3ca3d70a 40067508 3c8e5e5f bf8b9a6c bfb572ed bf1ba4bd c09383f3 c080d659 c0eb031e 4045d950 406d1f70 3e62fb40 3ff4a77e bfc8500a bf45c78a 00000007 bfe96e66 be2b5038 -> 430dded5 433754f1 42a76b85 3f09e4ff 49dc1118 00000000", + "c1db0a28 423b436e 4232fbd0 be62f212 3eedd217 be9f7e12 3f1a9b11 3def7fd9 3ca3d70a 3f7a716b 3ffc5074 3e7fdc14 3f8727cb 3f3df688 40a46b6c c06e37b8 c0a7a1d0 c01e47a4 3efa2160 c053ab92 c003558a 3e6ae3e8 bf808caf 00000008 bf3a2fe9 3efc34e1 -> bf6bfe26 3f405ace c0263fd4 3dda6cbd 420abee5 00000000", + "4230e04a 41244120 421c75e8 3e65d8cc be9cc663 3e48e111 3f140941 3fc12d9d 3dcccccd bb2545ef 400a46a3 3f0e92d9 bf8716cf bf2740f9 40cb75d8 406b69f4 c06f60e6 c0cb2efa 40b80658 c0f3e00c 3fc871cc bf918f98 3f34aed5 00000006 c01dedd0 bf4a4ab7 -> be6e997d 3c38a5c4 be29e9d3 3f001728 3f0fc813 00000000", + "c206db58 4230fe9c c147ea7c 3d9e83ec 3ea1cc56 be9fb19b 3fa0a366 3fcde53c 3f000000 bc1baf93 419bf09b 3ff1a0c1 bf846ebf 3ea56a9e 40ba6ede 405061b8 400f2994 bf190478 40a18472 c0d95ed8 c00a26e4 bfd01807 3eaa6867 00000007 bfa64b26 bddad6e5 -> 3aa210ec bbcd1db8 bca451a2 3dd3fe7d 3b5e92aa 00000000", + "c20188ee 4021e890 41d891d4 3f5b3ab9 be80c4ff c00a3080 401df5eb 3e86e353 3f000000 3baa1c80 3f8357dc c004c770 bf000bdb bf694cab be3300a0 40cc6666 402aabb4 40aab6e2 3f4bb2d0 409e89e8 bfb09b0a 403506e4 c031d9f4 00000001 bf8d5036 bf6e2d27 -> bb5e01ca 3a91196e 3c7e4345 3e15a6e3 3a4b8f3c 00000000", + "c01c24a0 c23557c3 41ee01f4 bec67a37 3c7d2033 bf60e04b 3f8ad670 3f9f37c2 3dcccccd be8cdd22 40d295ce 3f22e6b9 be9f8d69 bf86f190 3f39fe40 4046cd94 402762c0 3f6b61b0 bff4cfb8 c09834bb 3ef8d0b0 40179f12 bf877696 00000006 3f82d165 bf63e410 -> bcd5ca00 3ff2e6d7 bf0441f8 be722a68 414d28f4 00000000", + "c2017612 422c7a44 c2383cf6 bf0896b6 bf8bc3d0 3e80853d 3fa1f528 3f9bcbe3 3ca3d70a bdb0fb30 41a8ee37 bf78d1c2 3e3c2f4d bf06074c 40e1cf82 3cecee00 40b900d2 c0f7be60 c0849b62 c0fe2459 3ea298ff c013cf1a bf462bce 00000001 402d754d 3f6c3558 -> be1a2d66 3c5692fa 3e947620 bef7d182 3e44b3c1 00000000", + "422715aa c12fc940 c1c063b1 3ec1290d 3f0afcf0 bd6fd728 3f33f3b5 3da0a38c 3f000000 bb63fdc5 3fc1712f 3b9474c3 bf888fec 3f4b1057 409060e6 3fe13868 3faa9c28 c0b38f18 bfe549a0 c08df9e0 c02a4209 c01d550a 3ed9a376 00000008 c02eea9d 3e5893e6 -> 39d41ca3 3a7d29cd bb68df88 3e470eb1 3d295fe6 00000000", + "c1a5f096 416c2840 423c863c 3ef24e9f 3fb32858 bfd51180 400e9d0a 3e04ca36 3ca3d70a bcad76c6 42735fa0 400df247 3f7d2a96 3f1250ea 402f57e4 3fc71fe8 40a34470 4008200c 401b3efc c0f863f6 bfc80d9f 4020d3be c025a79f 00000005 bff6a40a 3ea8ff42 -> 3caef1c8 bd9b9a3c 3d4a2acd bf5b91a0 3dd0b656 00000000", + "c1d1c8dd 4158dca0 c2064484 bf2ee5de be676350 bf5da67f 3f901ac2 3df94c1f 00000000 bb483a17 3c951328 3f974a92 3fe6389d bf8c34de c0489638 4084c2be 4000c054 407d2074 40d0ab64 bf8bea14 3ff473f3 bf092f3f bfd26c55 00000004 3ffb30c0 bf68728b -> be71d9ad bee96ccd 3e63c06b bfb931ee 4244497a 00000000", + "417ee070 41091450 42443cd8 3f9704ab 3eababf0 3ea94b08 3fa464d6 3f331852 3ca3d70a 40365692 41338f8d 3fdb9f7f bfeb687b beb47642 3f38b190 3fc9a038 bf2fc920 c04137f4 402c1870 407deab8 3fb8d31f 3fbefd0a 3f4268c6 00000005 bffe61d0 3f430551 -> c12c8067 c1ab3cc9 428fe6f9 be0084e0 4757b032 00000000", + "4220e808 414798b4 421dc16c 3e6fc9cc c029f82a be94058d 402ce499 3f7cc5e2 3ca3d70a bf032be1 3c7624f9 bf648a30 3ea9fa8b 3ea38972 40a71f1a 3e9de060 c065f4d0 40e33ade 408b8654 c08a1d16 3fdaa11b bfba5588 3f3d86a5 00000006 bf956162 bf75b4a0 -> c24aaea2 41af7bbd 4195e2c2 3f1ed6fd 494d3542 00000000", + "41be24a0 41970304 401fbad0 3ee33723 c013de2c beeac1bb 4023a459 3fccc439 3dcccccd 3e6fa682 3e271c00 beedf1d6 3ebdbc31 3e8e1665 c0b94058 4093ad88 c0853f2b c0c5e48f c03e90ec c08a64f4 c037af3c 3f7ae526 3fb9df26 00000003 c0159625 3f900748 -> bf16d254 c056be46 bf6a28c9 3bf7f880 45a0aede 00000000", + "c01af050 41db21d8 c22bf580 3f94768a bf894411 3f3344d7 3ff606c0 3ff8885c 3dcccccd 3ed4b948 40d931b4 3f97fec0 bf6565d2 bed6f2ad bea7bb10 40db38ba c0f833dd c07d7e6e c063bcb8 c0dff399 bf412c4b bf977ddd c03de0a4 00000001 402fa481 bf8874fa -> 3eb4aec5 3ee58436 3dcc1059 3e6c08e9 4119adf2 00000000", + "c1e4c6c2 c0a34c88 41fb7804 bc1faf5a bef3e264 3fe491a7 3fef379d 3f84a204 3ca3d70a beddaa08 41d540c4 bf6e6e9d 402265d6 bd5c8b78 c0b2c23e 40b20c56 40fdfb06 c01fa06e 409ecd14 40b245ea 3f2f1c5c c0169d16 c035a8b2 00000004 40392c81 bf9616c7 -> bd01f7d0 4012a540 c1da2b06 3eb198c8 462b40b6 00000000", + "420b99ba c1c059ee c1383740 3f80fe1a be40fb79 bf2a0774 3fb676c8 3ed0d4d8 3f000000 bbba4c30 421555ba bf318b30 bf215d9c 3f3f3a2e bf3188c8 40b60ffa c0f4ccea 40970dc8 c090fdb1 c0f87562 bfd07dde c018845b bfb1d3d7 00000006 3f99b680 3ef0bb37 -> bbfc933e 3b882317 bb41aca6 be6582d9 3b1c5f28 00000000", + "c22b488c 4172a558 c2192820 3e9e5b46 bde3ddc5 becd08c9 3f04a0d8 3f3dcf44 00000000 3f187832 4155a11e 3ff0ebdb 3fc28533 3f0d263a 40646c80 c060986e c00d0cb2 bf873a70 40420ff8 c0f10580 3e04fbb2 3f945e7d c03fd90c 00000004 bff44771 beef6109 -> 3e8937ea bf6c17b0 3fbe2d2d 3ece5189 42ab09cf 00000000", + "420bae06 c194bead c1bf7341 be4163c3 beaa5f1f 3fb752e1 3fc2c95c 3ec959c7 3dcccccd bbf3d19a 3eea1865 3eaf88b4 bf34eabc bfbfee95 c0e1bf67 c09f58e0 c0098f76 bf117520 401d9e68 40a2d844 c02f7a5f c02c7c77 c005a4d6 00000006 3fb0c05e 3f62341f -> 3da72af0 3d207109 bb83130c bf14f05d 3e8950a9 00000000", + "c1b9eb26 c0f53968 c1715270 3cce1b86 bf4af9b3 c017737b 402c2472 3ff82a98 3dcccccd bc608c0d 3cdd2581 3e459e7a bf0ca21b bf57b208 c0e6f949 40acbf84 40cb7046 40bcc794 c07ba9de 40d77566 402c0c61 bffb36de 3f8ca7d9 00000007 c03ebe33 bf33b8d8 -> c125c082 4204e4c4 424d3128 3e6d1a34 49753577 00000000", + "4209c1ac c1c77876 402fce90 bf3cdacd 3edfaa1a be190e47 3fc1d006 3fa4d513 3f000000 bfd95c8a 3ce92ee2 bde6b284 3d84a928 3fbd9834 c0524566 bfda917c 4067f400 40ced79e 40b2c300 40929648 c00843ef bfa65712 3f381e62 00000004 bf014172 bf5dc0a7 -> 40700268 40249778 c1c78617 bf6cb143 48779bca 00000000", + "c102bb74 40962118 c208ca3b bed8d9ac bee9ee73 bfe9b091 3ffb70ac 3fe1f113 3ca3d70a bab24464 3f024a0e bf35c605 3f39c770 bf1092cc bf54cd28 408aa6ac 3fd982f0 c0868062 be33b1e0 c08c8bd2 3f9708a7 403d3eca bf957b9d 00000007 403952d1 bf71a3d5 -> 3f671a3a bfc0892f 3dcdacc2 bf8b0fe0 42d8bc7c 00000000", + "c1604278 bf85cfa0 4122674c 3fdcf3b1 3f93d886 3ee6edc7 4013d6be 3ebd05c8 3f000000 409af42d 4098b639 3f8fbf49 bd01a031 40000a5c c057049e 40c6c486 3f806cc0 40ecb1e4 409b2128 3dd77380 40352156 bfe79e53 bf82d2fe 00000003 bff3d111 3f83e7f9 -> c1863514 c219bc11 c0cfaafe 3f0ad677 46becea5 00000000" + ] + }, + { + "glsl": "SpanNoise cultmath_span_ridged(SpanPath, SpanStage, int, float, float)", + "tolerance": "ulp-bounded", + "cases": [ + "3fea7280 c08e1168 c22af615 bf891134 3edbd972 3f0f5500 3fa425ad 3f798864 00000000 3cdea50a 41ea595f bf4784ae bd468e15 bf388132 bffa4d00 c02988a0 40afb644 40892b4c 3f8f75e8 c08b2272 c006306e bfce3d85 c0297638 00000004 bfbabfb6 bec22876 -> 3d1fb19c bb9dc733 bd188555 3ed7d430 3d522e6b 00000000", + "c242f160 c18a36f8 41483378 bf1f4212 bf92778b 3f0b16f4 3fbb8e48 3ddd6425 3f000000 3fc7741b 3edea0d0 be5916fe 3f0db1ee 3f073e38 3f15fb30 bfa85654 40c6a9ea 40acc428 4056f278 40f9ebde bfb08250 3fc77334 bfd6cd94 00000008 c0399e95 be8910a7 -> 402d3939 c108162f c024bb57 3ec2649c 48b80388 47b20476", + "c233f27e 40b1bf30 41a825e8 3e48405f 3f3d0efc c030a387 405fdd04 3fa25487 3f000000 bb141adc 3c6811d7 bed1f1c4 3e47984b becf3eb0 c03e3816 3ed168c0 c0cca5ac 3f1dc9a0 40af4cb6 bf860984 3ef05342 3ea195f4 bfcd8373 00000008 c01c3e0b 3f8d234f -> c30deb7d 42928537 c306a1a6 410499af 4957e1d1 49b773f6", + "c1b10d86 41a0a6ac c1ddcf0c 3dfc30bb 3cee6825 3e48f7d0 3e7250a0 3e1ff8aa 3ca3d70a be00b574 3f4abc2e 3f24a953 3fdc6da6 be3e064c bf252158 c09c0ccb c04eae1c c0dc0d98 40323924 3fe8b228 403b8b83 bfc1daeb c02bdae4 00000008 4017da02 beca84f1 -> bf5ba05d bee48bdf 3edd154d 3f53b614 442578d6 3c5aec66", + "411ec370 c145d27c 4208ced2 bf88be4e be2d0d9e bf1a28b2 3fa045c6 3ce8abc1 3f000000 3c5960f1 422ef127 bf58352e bf48e90f be4e879a 40641170 c0a5cdac 40ad2e06 c086af04 c0c40af6 c0431922 c0054415 3fccd579 bff33b7e 00000005 3f70de56 3f85e0ff -> 3c664f30 bc2ffbcb bc8995ee 4093e0c1 3ca733bc 00000000", + "c1a41334 c212a9ba c1d73489 3e48fbb2 bf8bf89b bf054c8f 3f9d0d3b 3f001d97 00000000 bfb18964 421c0d09 bf7292a0 bebab488 3efb3913 c08cf84c c0a0b146 40ac8146 c0887542 be450cc0 bfc92d30 bfd6ba01 bfb600f0 bfef49d8 00000005 c0266889 3f88cd91 -> c2fc3a2c 4320325a c2fba4cf 4082beec 4831ac90 3de57502", + "423dc6e8 41445c24 4198394c bdd17054 3f18f21f 3f8e7bd4 3fa6dac4 3fe6d836 3ca3d70a be80453b 40f00224 bf6dba76 bdc61d84 be90c7e1 c0fd6411 408fbaa0 c0cab49a 3f24f2b0 bf76ab28 c01f1976 c03bd27d 40138e3b 400806fe 00000008 bf477940 3f978968 -> 3e799f63 bfab746f bd978761 413adb2a 4091a11e 00000000", + "411fe358 421199ca c1f64dfc bf648f7c 4006e3f1 bf70484e 402d70aa 3ef1bc73 3f000000 4060b792 3c51ef4e bed16128 bfa055cf 3f1abf58 40be0552 c0dafba5 40ba4e0c 40127fb4 3fef9bf0 3fa8b2b8 3faf05d7 3fdf73a9 c0298a19 00000007 c009b3e4 3e6f1e20 -> c2957009 c36e9035 42e64af0 3f8f43f2 4c0eaa00 4c3d89c8", + "42067dca 3f6da340 41efd84c 4001f727 bfbd2a4b 3fbed4a7 404c3232 3f0a2b14 3f000000 bc86ebc1 3f25d1c1 bf9f1d1e 402d1d75 be183aee bf3ab740 c0670742 40b24b16 4025587c c0de86f7 c0bb56a2 bfdcf734 bf0fc968 3e482a9a 00000002 bffc1ff4 3f0a8f95 -> bb97cdd0 3d88b2b3 bc21748c 3f82ab2e 3dd769c8 00000000", + "c1afc628 41db8b98 c23f1c7e 3f86e2b4 3f163eda bfd27f9f 400a3f3e 3f9a707e 3dcccccd bb574b28 40193250 3ea7e9b9 bdd9892b 3efeb299 3f4e3930 c0fbf211 40930e4c c01a2824 bfecb0dc 4097dd90 bf43998d bfc012b0 3de7aeff 00000003 3fb56df1 3f34857f -> 3bad6df9 3a41f180 bbe11a87 3fe7d6f4 3a8fb5fa 00000000", + "c2213bb6 c1e0e03d c1f111ad 3fabe695 be6e72d3 3ff01418 40146351 3f274817 00000000 3ec4c9f0 4012f0e2 4026ad78 3f255d47 bf0cb7d9 c0bfeeab beb06ca0 c0e3e2bb c0dca982 bc8e7000 c06deac2 3fd0d71d c026f32c 3f568448 00000005 bfd9ba46 3f315845 -> bf3d91a4 be3b910c c0a405d1 400611a8 42e2cd50 00000000", + "4053bfd0 c2023130 41a3dacc 3fb615c5 be5301d1 3f0c6d0a 3fc4ed7c 3fcb331f 00000000 bcae401a 3fca3645 3eb54a82 bf591cda 40246076 40233f8c 40d4d24e c09bf06c 40a3ee04 40950fba bfadb15c 400f2a3f bf378c46 c01a95c0 00000005 bfcba818 3e9269ce -> bc83eae4 bc81cfa6 bb840e0f 3eed1a0e 3d14abb5 00000000", + "423f979e c06b2850 4220875a 3ec7acb4 3f1ad3be 3ef165c9 3f5ef74c 3f08226d 3ca3d70a be7ec92d 429565c1 bf841a9d bf4e4d2f bd29afda 407fdb8c 40a626c2 bf03b020 bf93f368 40a68ebe 408236aa bf23ee28 be48ab48 3f19c6ea 00000001 3f5af316 3f467110 -> 3ca382d7 bd1cd072 bc3feff7 3e90bea8 401cf7f5 00000000", + "408bc148 42000906 c18c6134 bf94df64 c0125e33 bdcb9a95 402454da 3fe8f76c 00000000 3bdce0d4 42b4064f 3f17d9b1 bf2b7c2c be6669c1 40d51372 4097d964 403eac74 bf27ab40 40f1342c bfbdccc4 bea650dd c02628c6 bfdc298c 00000007 bf82df8c 3f33d9c0 -> bc3da1ec bbbcb9ea bc5a8d6b 3fd3fe31 3b941b61 00000000", + "c2458b67 bd7ce400 4107f9e4 beae2f90 3f7b7195 bf9fd3b3 40267817 3ff9f55d 3f000000 3cd8fc0a 3ce92964 bfa7835d bdb91727 3f69ab59 40e79b9a c073e1c4 40c4172e 40998622 c0665d56 beb36e70 bf443343 400c11dc bfad9f12 00000004 c02953e7 bf4ab08b -> 4079da04 3dd951c8 c01e1500 bf409ee7 461c3cbf 454c2269", + "c2120b1e c0ef4580 c194c533 bfac1582 bfa8fe84 3f908f26 400ff61b 3f0699d9 3dcccccd c01b8f0d 3e238855 bf674428 c0068408 bf2a5bcf 40d3231c 405bc520 bfdb0f84 bf111298 3da13300 40197c1c bff8c25c 4034d6e4 bf6d8190 00000001 bfe10307 3f65b2f1 -> c12e7358 c1ca4449 c09dc8b2 3f73424a 464964a1 43cd9f3f", + "c031e8d0 4130b434 c202229c bdfd5cb5 40037d57 c005c1a8 403c2d6a 3d8eca00 3dcccccd be1203b7 3c70fb97 bf8dfa3e 3eb0385a bf2054e6 3fc96690 bf45ba48 c03f3a60 c0bc8ea2 400f74d0 4006fb2c 3ff97831 400ffcc1 3fd25adf 00000001 4006fc96 bf462aad -> c048df51 3f6cbe9d bfd69394 3f73a9c2 45a36c5c 437c2bd4", + "c10503ac 4204640a c182165c 3eda129f bfe7aa4b bed27596 3ffefdd4 3f610663 3dcccccd 3b21c203 3f0d93ba 3f661ab8 bfc50e75 3fdfc371 c0aeb42c c04cc09a bffc162c c0f324bc bf5a7028 bfd0c3cc 3e93287f bfc43ddd bfa09eff 00000003 bf459bf2 be085bc9 -> 3a288521 3ab7dbc7 3ba7bcbf 3e78b5f8 3a15d0b5 00000000", + "c0a32680 41ec9d28 4247ba34 bf2cf583 3eaa0ec8 c0086aaa 40126026 3fa9fd8d 3ca3d70a bfe6f845 3c62123e bfc887f8 be9508ca bfecc666 40f0c276 bfaa07f0 c04ca5fe 40184624 3f9fa628 4050c994 3e3906a0 3f86443b bff6d0b2 00000007 bfb1644c bf8073ac -> c47aa3a8 c330d2be c49371c9 3e866ddf 4cbf6f30 48351954", + "42231636 40abfba0 41e35188 3ea51426 3f426e09 bd3f7306 3f5446f4 3e0ed7fd 3ca3d70a 3ec66c23 3ee7e223 3ed7bb1c 3ebf41b2 c0237d69 40f0f330 c0a6b382 bdc5bc40 c007d0fa 405be880 40f62f6e c03a9a13 bfa6b44e 3fdd80ed 00000004 c0122838 3ed4342e -> 3f5a2d78 3f4efd42 3f4e2afb 3f98b965 44307775 3ce2a6ac", + "c21e226d 420c26d4 403a7600 3f987e2f 3f78b8f3 bf032c5f 3fd09f45 3ef13924 3ca3d70a 3e04c347 3dcc98dd 3f76adf7 bf504475 3ea68622 40fb4a4a 40ad7af2 402a3d50 bec6ec90 4024e9c4 3ffb2560 bf3dbb71 403c32e4 4025bfe8 00000001 4010f424 3efaee93 -> 3da33db1 3e560006 bcb15928 3f772bc8 4290d45b 00000000", + "c1c33363 41b1ca50 41885658 be72c714 3e55f01a bf810f9e 3f8869ba 3ee86415 3ca3d70a bb910d39 3d055447 bf0377bb bfcaa426 be4d9ec3 bf1d0370 3fd37980 40d17abc 40883636 c069d9ce c0c4f35f 3f1ee87c c039f4ea 3fc32681 00000001 bfc7d71c bf81bba9 -> bc951803 bd9951f0 bbb7bcc4 3ddff510 3f546da3 00000000", + "c1d718e1 41f78200 bfcd5b40 3f470ce0 3f7a628f 3fecee7c 401013b5 3f658fde 3ca3d70a bdc2701c 424b20e8 3e99efd6 3ede2322 3ea20be3 402d28cc 405128f0 40c8550a c014598e 40bf7124 40feb9b6 bf77bf01 40071465 bedb6157 00000002 bf8044b6 3f786a24 -> bdb50b4e 3db9dfa8 bd27362e 3fb71f5a 3ece3e43 00000000", + "c2099819 41364e10 41b84738 bddac114 c014084f be45a3fa 4014b444 3cc633ba 00000000 be7bd38e 3fa75586 bea779b7 c00f9d56 bf2bf5be c0f16228 3f4d4340 c0cdea35 bd9f7880 bfe16824 c086c1cc 3f230d1d 403a7e7d 3fe7e947 00000006 bf6e2c2c be35532c -> 3ec63516 3e863340 bf9dde43 3ecce24c 40081933 00000000", + "41a2c848 be7feb00 42410d0a befca6d5 3f19e543 be244aff 3f9143e4 3f2e783e 3f000000 3ba5d4da 40ba37e3 bf71100a 40033d31 bf552a28 409e1cc4 407890f4 40db0428 c0b62ef2 40fea7d6 c0127bf6 be4ec094 3df24f08 c030906c 00000001 3f0a8748 be558e01 -> 3c50d233 3b0d3201 bbcdf889 3f6a78ff 3a4a945f 00000000", + "41fa8888 c1ace9da c23d13d5 be83d76f bfa412e7 3f7d0264 3fd44f65 3f7c7144 3ca3d70a 409df318 3d12aa82 be6a40c6 3f472266 3e21fd04 c0f6486e 4089d62c be374f80 409224da 404b08d0 c07110b0 401fbd77 bfd8519e be9064f3 00000002 c00acc84 bf0b9cac -> 430d1d06 c401f65c c2dc1a74 3f0e413b 4a661018 4515e520", + "41bb4034 c19cb20a c22b51e4 c027ce69 bf602661 beb76cb8 403d958d 3fdfc78c 3dcccccd bdfd5c62 3f05ff58 bf44d503 bf2d73a7 bd874210 c0afd3b4 40951636 40bc3c2c 407c1680 407c75a0 40b17308 403e7453 beabc6c7 bfb09e9a 00000007 4003a0e7 bf98d243 -> c294bf6e 429b6251 422dc110 3eb81a74 477b2d3c 459eec96", + "c23a3442 4247fc6e c204a66a 3e6fa6a6 bf10abd2 4015bfc6 401ac804 3ffe7cc9 00000000 3a83877b 3e13a65e 3f013601 3db4d3a1 3ecd8a49 3f936fa0 3e024bc0 bf7f3930 3ff3e788 40729f4c 40d033a8 beb13dbf 40217a64 bf800c4a 00000004 3fafdcac 3f88e973 -> 3bdd28a6 bbfa59fa 3c99ef52 40321f86 3c9412ae 00000000", + "c20bbb12 c0724e60 41e8da1c 3dd462a0 be0831b4 3f91261e 3ffce425 3fd44a9e 3f000000 3d9b447a 3f0d2b9d 3fa55223 3ff9b414 3dfb7b2a 40c8b3bc 3f9f8958 40f647ac c0fe9997 40b316a8 40e3a67a 40198d0c c0310424 40256b5b 00000006 bf1bed42 3f4bf5aa -> bd33ad72 3e4fd0b8 bd860c99 4036e175 3fba30ac 3f1858e6", + "423cd182 412a9448 3ffd54e0 bf3aa1f1 beb5f0a1 bc5ec628 3f6e1171 3f981494 3dcccccd bd810982 414c9cac bdcfe1fe bf2355f5 3f48c676 c0d16b6e c068c848 bf2bdc70 c058480c c0ba91b0 3f57e1c0 3f0d74b0 c02360ea bfd7aa04 00000008 3fb56f6a be5816ca -> 3cea206e 3c591645 3b17e982 3f409037 3e14f81c 00000000", + "403668c0 c1529be0 c1c4cf08 3f17edd5 bfacaec4 be515fd5 3fc65385 3f1d5503 3dcccccd c082f3a9 424ce35b bec23fcb bfe5c607 be68ef17 40b3bfea 40ffa144 c0a679e0 bf491798 c0f1a11e c0ea43de c02a5889 bfeb7521 c0045995 00000006 3f1c1e50 bf87598d -> 411158a2 c0465f35 412fb56f 3ebcf11c 44bf1e57 41a50482", + "41ff05f8 40eef330 423e9f06 3f94e61c bfce203d bf1c1e1b 4005e728 3f355ab8 3ca3d70a bfbb5702 3e86ac2d bf1af3ba 3e36fbfb 3eb4edd7 403b639c 40a3cb0a 40fd65ca c0857cfe c00c19f4 40d756c6 3fbe79c7 beac7a96 401b7fcd 00000007 402c7941 3eca9741 -> c12b2e60 40de3953 41a02488 3fa92ddd 49b5851f 4504a2a8", + "c2081236 c22f0ce2 41be72d4 be766201 be92a88c beec84b7 3f8ea784 3f8522e4 3f000000 c06bca79 3e993d9e 3fe4ed16 c0134dbd 3ee1a380 c0d107ae c0bd2894 c00ce5d4 3e84bde0 3f0b8410 3f61c690 bfa2829b bfcbd6a5 3fb9ab08 00000001 403a4227 be9bdf1a -> 4185a550 c17ce0b5 416e4db4 3f610379 4603bcd3 43e10866", + "c22e48ed c1e79f94 c0c16370 bfd29ce9 3f9c7fd2 3f431d56 40105811 3f2eee17 3dcccccd 40a88d6c 42c46d09 bf70f7a9 bfbf6845 bcc53b6b 401b1658 40cf2624 409c0214 40c77838 bf9984c8 40c79260 c01f55ec 3f1074f8 bf9e40a0 00000003 4001ad83 3efad906 -> c0602a2e 4016639a c1ad28f0 3f8620b1 462a3b57 440889ac", + "41d69a58 c1ffe54d 40db5d60 3e9ecf98 bf91770c bda28a1d 3f985270 3eeedd0c 3ca3d70a bd1cc74b 3fec4948 bebdd541 3e907e0d 3f485cda 40f846b6 3ff76f50 c0c95424 400118a0 407eff8c c02667ee c03765cf bff88611 403905c1 00000008 3fca16e0 beaa88cc -> bd9cc623 bda91322 3ccc5d66 3dbbda63 3e38231a 00000000", + "4063df20 bfe8bd20 41a4f3c0 bd604ccf 3e7bb9b0 3d13a5da 3f1b4866 3f344dc8 3f000000 bd3989ee 4152d630 3f497416 3f8c25dd 3f1519ee c0f15b4e c0badda2 40dea2ac 40207c80 3fcbd368 405af600 3fbb8bc6 403d1213 3f9ca8d9 00000005 bf989372 3f81d4bd -> be737f54 3da92dbc 3e3de229 404335c8 3f6427cb 00000000", + "4200bc86 c007cca0 41f7484c 403b58f3 3c1166d6 3efe6880 4048b15e 3fd54b2c 3dcccccd 3bb87d52 3fae160d bfdaefbf 3f6e6a31 bfd9d9a9 c09dd1f4 c0ba85b6 bf95fa04 40be700e 3fbcae78 c0c36d88 402a3077 402e7f15 4017b376 00000007 4018598e bf6bdf0e -> 3eb34ee2 3f7a783c 3fc41b28 3fa4eda7 423070c8 405973d3", + "bf870120 c20c2b89 c13e4bf4 bf61632e becbe2e4 400ab23b 4019127f 3f72aae4 3ca3d70a bac58759 3cc47cbb bf8b40f3 bfd2c732 3fd39cc4 403b9f9c 40ee8be0 409e3a22 c0c1f092 bf8a8ebc 40eb463a bf7de81e 401af927 bfcf70d0 00000002 3fb9aed7 3f055b03 -> 3c222d72 3c3fd32d bc0e801a 3f81a04a 3e54a178 00000000", + "40ee2d70 4193ad48 c10c3fd0 3f034d3e 3f338bfd 3dedb647 3f60691f 3fc28a75 00000000 ba8326c1 3e69e935 3f62f1d0 3fb5fbf1 bfc0a9d9 c004e3c0 bf10d450 40c72b68 bdb87940 c0c0533e 40414570 bf64385b bffb50b2 bf830fa7 00000003 bfdd6c9e 3ede9ff9 -> 3a30a30a bb881efa 3b10da06 3f996a62 3aed1f25 00000000", + "422f33f0 42191696 420a544e bfd24655 bf735d08 bee08c31 3ffde779 3fe3ed21 3ca3d70a bc95231e 40bf94f0 be5dffe0 3ff79e7c 3ee60514 c0e94a88 40a5b96a 3fc3fa70 409d1d06 409efc3c bf2e75f0 c0383c3a 3e2485d9 3fa418f7 00000004 bf86a17c bed5b99d -> bc029dd3 bbba19a4 bc2b1b98 3f57551f 3c4c5d81 00000000", + "422d5658 c129f3a0 c00419b0 bf8bc7a0 3fb68e9e 3f5fc09d 4000d913 3f47bafa 3ca3d70a 3d6c5360 4110ef14 3f6614bf 3e4a2da5 4017a113 40e7f7e2 40e0888c bfef4658 3fc91c80 bfc22b54 40a4dd00 3f65a8e5 3f81596f 3fbc97c6 00000004 bfdde638 bf889eb1 -> bcba6190 bf12f92e 3da6a680 bee619a2 40847d0a 00000000", + "c18ec486 c1d0e741 c2021e2f bf155271 be2305f4 c0016d23 4007e6a5 3f22c000 3ca3d70a 3eea9899 3f502447 3f9be9b8 bc8bea82 c0217138 c02c7ee0 40daeacc bf9df588 bed76b40 3f466c80 3f4d0120 3f91c6f5 bf2621e7 3f0a6238 00000003 c01d450e bf8e495f -> 40d8bc4e 3fdaa46a 408a9d48 3f753c55 4466e8d4 3f8c0100", + "42143d40 417443e0 41b8ab5c be8d4a6b 3c396f92 3bd55cc5 3e8d72e2 3e4a9a44 00000000 3acded64 3da82838 be90f6b4 bf6c6564 c009e0eb c05e34a6 4083435e 403a0030 c0afb266 3fe0ab30 c0e7673f 3dfb8665 40276f46 3f3318f8 00000006 c002e1dd 3f08beb3 -> bc997612 bb9c2e1e bd62f21a 3fc148ef 3f74011a 00000000", + "41fd555c c1a019df 4080c540 be610fa0 3e8511e3 3fd467bd 400ca14c 3f80dd84 3f000000 3f0589d1 3dce81c2 be05ca38 bf065133 bf096667 c0ff7b8a c0a60f24 407c18a0 c0813e9e 3fd56dd8 c0d707d1 3f9b074a 3f52786b bffbe45d 00000003 3fccdce4 3deb5089 -> 3f3f02d4 40a08142 40961e1b 3f3efd62 45008631 44bcb8c4", + "c0854798 41b1e17c c17dbaf0 bdf70a3a be393fd2 beacf065 3f040d46 3f92136c 3dcccccd 3d6d5bbe 3d9da3f4 bf9c0c7a bee538ae bf17353f c099d39c c088b3ca c0680334 c096af48 c0ddc8ff c0fa4f43 3fbebfac 401bc897 40032d1c 00000006 c01a84dd bf45b19f -> 4185d489 412d96a0 41569aec 3f8558c4 47925405 42f007c0", + "40260090 c09e1f38 c200467e bf08c9ac 3cbeabcc bf35a424 3f80969e 3f94901c 3dcccccd 3dca2f4f 3e22b911 be30bbec 3f019ac7 3f5303d1 bfbabdc4 409c0384 4046476c c0afb7ce 40f0a542 c03291d0 3f8d3194 bf98b27f c0320a25 00000007 4009fbae be96c5c7 -> 3d1fe5bc bec294fd 3e2d365b 3f12ac94 43e9040a 4010ca32", + "42094590 c2281d8c c1d54f09 3fc76dfd 3e44f52d bfdd007c 4018ff98 3f11fcf6 3dcccccd bbfebca5 420c6f94 bf37a4bf bfb4a3ed 3f6ad10d 3e617a00 c01b488e 40cf251a c02b291c c0b49af4 3f0b24f0 c0174fc1 3f0c0025 3fdef72c 00000001 bfa33801 3eb47537 -> bc5c4702 3c827fc1 3c472633 3f24decf 3ac71fd4 00000000", + "c1a1b19c 41605d20 4235e8e8 bf44583e 3fa82ca5 bcba5344 401fe642 3ffa1744 3f000000 c014b381 4040f656 bfae3065 3f1b01c5 3e8d2f74 40dd5474 40ccb418 40b8a220 3f007020 40bc23d0 bf440380 3f69c475 bed58421 c03b4245 00000001 bf580972 3ea4255b -> 3f9fd909 c08ded13 40827bf2 3f3730b8 439630cc 434c1837", + "42292858 c0876980 421206f0 bfc07646 bf8395c4 be8b225d 400d9067 3f3d9d20 3f000000 bd37c2f5 3d628972 c0070111 3f3c1611 bff7185a c0f242aa 408135a4 400d3948 406d5734 c0ec072a c0ab4ef8 3fb43cec 3f32bffc 3fbb5536 00000004 bf04c4e3 3f5727be -> be95df69 3db8729a beb91f6d 3fe3375f 423cbc37 41d2cc18", + "41038620 42065dfa c22cf126 3ec66ac4 3cd0c853 3fa5bb5b 3ffd6bec 3fa0ca21 3f000000 bbf7b4a1 4101741d bff2239a 3f5f0e6b 3faac588 3ed3b9a0 c047014a bf23d848 c08e4cad c0ff1651 c07fb278 bef19e58 c015199d c02eca9e 00000005 bfbf3b86 3e8e4eb1 -> bbe6b16b bbea74a6 bb52c4f8 3f5d4f42 3b9d1174 39ef6fab", + "41c4db64 420cb244 3fc61b40 bf30f98c 3fb05fa9 bfb6eee2 40130440 3ec7a71a 3f000000 3bb95f78 3d26224a 3fd4b898 bf8eebfe 3ebe7ca7 400c5714 40374cc0 c08ac116 40f4f4f0 c09190ea 404918c0 401e7a4a c008162d be1edf8a 00000004 c00c6978 3f62b67d -> 3fb7997f bf712f64 3ea29730 403115e7 42da6921 42cd3420", + "c200abde 416544c8 c199fa7a bec20642 3f2efe07 be9c4c53 3f7268c0 3f8a0611 3dcccccd be97adf1 3d1c5fc1 3eef2aa5 bef23d1b 402d73a1 bf287c58 409f424e 4086916c c0c1c112 be82d2c0 40b5ea18 3fe286d5 3f8580ce 3ed85727 00000007 c01a75c1 bdd8581c -> 409889d5 c0792288 41b52781 3f6bad2a 46038a3f 4228f243", + "c196c191 c1e1e8bd 41faf76c bf659b4a bf11065f 3f78669b 401a20ec 3ff87922 3f000000 3d4aa591 42a725c6 bf974ef6 bfccada1 be33dc54 c0fe0380 bff59a88 3f75fd10 40de1112 409368b4 402a1184 c03fc74a 3f64382d 3f6374f5 00000002 bf6768a7 3f0c711b -> 3dbe19a9 bd81cd00 bd38c684 3f8ab59b 3e385db2 3d2134e0", + "4242d8f4 42131010 41303d38 bfac0995 be631508 bf6315d8 3fd012ca 3e257f3c 00000000 3e8a4fec 3cdf42ac 3e00a39a 3fbd69cf bffa3963 4012e154 c09bba6a c09601a7 4014f070 c0518414 4097d396 c034aa0c 401c7976 3f087d4d 00000002 3fc30870 bf47de0f -> bfd88ce0 c184ccc4 41b8a7e4 bc8fade0 4573b484 00000000", + "420ff00a 41d3a02c 4199c188 be9f46e3 3f9e521a bff68fe3 40380a1f 3f90bd6b 3f000000 bc9a7ac3 40f3d525 3e657fee bec1c4d7 bf0d4ecf c021b548 3e340c80 40992fc4 c0d85aa8 408b3f4a 40f3336e c01623ad c0129176 bdf5485a 00000003 bfee7464 3e996eda -> bcaad2cc bd13433a 3c5155d4 3f9d1a80 3d60747e 3d1a9cb1", + "415400e0 3fe8a640 420912ee 3e4d3a11 3e1f115c bd46aada 3f8a012a 3fd1eb24 3f000000 be380a78 40e4fee2 3f6d58e5 3f311b3e 3ebb4f85 c04519f4 40c467ee 40e22898 bfea2708 c04e350c c03a967e bffe09bc 3f8dfe7c 3fe20a19 00000006 bf1d6bea 3f949d89 -> be400e0f 3d74b99d 3ed08af8 40c97b64 4038e8b6 3d79fcc8", + "4102c70c 41f45a78 c18d9c62 beabb108 bf2207c7 401a3bb3 4020e6d2 3e8104b8 00000000 3b14a7cc 409b0463 bf0de2e2 3f30662a 3f5f73f9 3eaedce0 40dad914 3fe27028 bf95ff40 c0e426b7 c0e07f5b c03e7319 bf53a5ae 3eb5a9cc 00000008 3fb64f80 bf84bf18 -> 3d9e3262 bc5d9b0e 3d9efeea 3f08b31e 3d338f7f 00000000", + "c069edb0 c1d9a784 42113700 3ed6a6a5 bfa22e93 bfb797e0 3ffad416 3ca45b53 3ca3d70a c00c2e03 4113dd5f bfb68878 bee94476 bea751ab 40f43b32 4029532c c0c3fec2 4080fede 4053ece8 c06a3152 c0311c0e 3fe867c3 3ff052db 00000001 3f7589c4 3f95f158 -> 3efaf314 3e48a7a9 c01661a8 3f6ccf51 43857860 3eca859a", + "4155e1e0 4193bef0 41913b68 3e89e493 c01c9020 3f8c34ea 404f43e6 3f8b70ac 3f000000 bfa10ff4 3d14d576 bf12fee9 be7bb656 3ee466eb c0e9b53f c0d80358 3fdae500 40386eec bfe62e6c c0acd630 400902d7 c01bb1b8 bf8d444e 00000002 40381a36 be66c8a0 -> c269443f c1afdb21 423afed2 3f502f17 483aaeb3 4838dd14", + "c18c2c30 4213f24c c23ee667 bedae7b9 3f8f6c93 bf2643d3 3ff28230 3f87ddf2 3f000000 40145aef 3df4002f bf227d52 bf1ce43f c005bd3f c0348b4c 3fea53d0 3fb83b10 be17a2e0 be79ae80 402caeac 3ff51a38 3fa9926c bfd2cd69 00000006 bf8ed37a bf049bd5 -> c0b3ee77 c126d354 c20535fd 3f224e46 47570f87 4636585f", + "c20841de c18cddde 41af1688 400ef975 be2acfbc beb03f7f 401bb070 3fd4add8 3dcccccd bc29747b 4226bb4b 3eb9ae5c bf238da5 be157fd7 bfd60b54 402c7b34 404fc260 c0e2598a 3fee6e28 3fe699a0 bfef869a bf2cc9b2 bfd1aa4d 00000004 c0392fb7 3edcb01e -> 3d23e030 3cd18c8c bc24400b 3f5a0ca2 3eb59d18 00000000", + "c1f6bdae 41704400 c20ddf2c bcb8f611 bdb629da 3e5cd2aa 3f4070d8 3f8471c1 3f000000 c07e1d61 3d82ee23 bf80a85a be1b4c87 bee82870 405bc35c bfcfa370 4055b430 c066d91e 40c54884 40690bcc c00313d9 bfa74b59 401ed56d 00000004 bf8ee446 bf582351 -> c38fb142 c222f40d c30a199e 3e089150 49629359 46239dda", + "42188056 c1c939e7 422c7f70 3f8cb81a bfeec60c 3f7fa9f8 4018ad49 3c32a067 3dcccccd c10668ca 3d0f6bd3 be084942 bd861d20 3f0108c0 3f664200 c0c1de1a bfe7ffb0 40819570 c085c65b c0e6c649 c02faf3b 3fba4069 3f5b976b 00000003 bfb467bf 3f2ea054 -> 42451398 c1c3a214 c329963e 3f67e1d7 4b4cd140 488f4957", + "41a50924 c0f20390 c214f079 be21929c 3d7626b5 be951253 3edb60b3 3f6b4506 3dcccccd 3e2cec28 3ee27d8a c025b4b5 3f2cbace 3e8ec015 403d151c 40807ef8 bfb208ac 408d0722 c069340e c011fc4a beac70f4 c0198398 be693576 00000005 bf4a2d3e bf47c07e -> 3e52d4ea bf06bb65 bee07cb7 3f9c8e89 410687d3 00000000", + "c1f89cc2 c1f80bf0 c1991238 c00c5ca0 3f212e08 bf109034 40166fdd 3e5fe880 00000000 3ad9ecc6 42900389 3ee1c2c1 3f560816 3c80f6b6 c0be1092 c0bb6440 c0667a1e 40da4930 409cd790 40cf3d34 40003de4 c02abec7 c0278f4c 00000002 4025f3df 3f367373 -> 3b7e64f8 bb04cccf ba508f2c 3fc21e6c 39fa955e 00000000", + "4184b7dc 401a6950 c238b14d 3f644082 3f904daa 3f404fa7 3fcf9758 3fd918d3 00000000 3f8de33a 4002b066 bf597c26 3fb6f8c6 3e09a83a 4039cd28 bf97de40 3fb7ee30 c0d3892f 40eff156 c03d2324 3ffcb335 c0277509 c0142959 00000005 4014f23e 3f8738e4 -> 422bf85f 422d3be1 c2a1bea6 4081414e 4702fc16 00000000", + "40ac6518 c20bc007 4246c90e bf3ff4a3 3fc95cc2 bf891061 4002e7d3 3fdcb91f 00000000 3f43ad75 42928f93 3fdc6638 be7f60b2 bf405c2b c064c5ee c0a057ef c0fb5e82 bf91501c 40aab4ee c024b7ea c0324165 3e6d5a9e 3fe448ea 00000005 3fcd82a6 bf8d935b -> 413b086e 420a41e4 4173437e 3dae1768 449919f4 00000000", + "c21b5bd7 c202438a c1e10d2b 400c423d bf05eb5e 3fe6136c 4039372c 3f1635ee 3ca3d70a bf23b53b 420a551b 3dd9e3f2 3fc29635 bfc8989d bf99b1c4 4095f7c8 c0c59a01 c0c9a881 c08d6d63 c0a62f1a c0090daa bfcf51a2 3ee4bfea 00000006 402e4b65 3f379b33 -> c0062328 c1c5a799 c1caa532 3ff0f4ae 47e90f4a 43a97449", + "bd423800 c170345c 41875bc0 c016098f bf6cc6a5 3fb9451b 403b4c95 3f81d0d5 3ca3d70a 3e16e24a 4094fb74 3ea8c370 c02093a2 bf7646ad 40831abe c0b40608 3fbe0078 3fe86e78 c0d7f85c 3fc57cc0 40010b21 bf30f575 c00e7c45 00000002 bfd68132 3f28c37b -> 3de91632 3e364c98 bd2b16ff 3f9d3a0a 4001f925 00000000", + "c22bd2d9 c05808c0 40cd45f0 3e27b1a3 bcf975cd 3e811da7 3eaea98f 3ff90945 3ca3d70a 3ec83f40 3cc69e2d 3ee20625 3ef51edb 3f5d6a0d c0ef705f c08cf02a 4095a0a4 408827f4 c0d35d93 40adb96e c0005524 be770fba c025ae3b 00000001 40069b98 3eb1e550 -> 3fcdfe15 40423f18 409fab73 3ee75c9c 46623c1f 00000000", + "c1c67439 c22425ee c19d1da3 bfc688db 3fd98179 bd80b667 4016d28f 3f0ce3c5 3dcccccd be5dff47 4030d576 be82d672 bdcef25e 3ffc5fe9 40d127b4 40c239b8 3fb918d8 c04f9c18 c098870a c0db67ba c021e3dc bf055efd 3e308efd 00000003 c00ec91a bf0aa7d6 -> bf192eac 3ecbe6d8 beec51ae 3f2cb1a7 41e0cc06 3f9ef8a2", + "c1f243ec c1ce9137 41d098a8 3ffd7b9a bffd2be1 3e923531 403f86da 3fe559b6 3dcccccd 3dbf6fb8 41123ef9 3f256383 bf840ef4 3fc7bf6b bf0d7540 40e1ed04 402d6294 c0fca598 407696e8 3dda5f80 bfed56d4 c018934f 3f783f7f 00000004 403b60fe bf8e7067 -> 3eb411a8 c0bd1fe7 c0867f0c 3e4bcde8 43eb8fc3 41f94e83", + "41abdc14 415d07d0 3f969660 bf2891b9 bf564dd1 40272e23 40696cf1 3fd38845 3f000000 bccd8751 3c78cef3 c031ac6e 3f75a257 3f10327e c0557d9a 40840bf4 bddc7280 40811a1e bf5fee00 c0849450 c034bd1f bf520f63 3f7d6393 00000008 c003bb73 3f8cdb2b -> c3f03aa8 43374404 42ad3926 40c9f680 4b0d3eda 4ad75d5c", + "40b8dc10 c23a05fd 3fed78c0 3f78d649 bf92dba3 bf8eca4f 3fefa8a0 3dcff8a7 00000000 40263715 3f28aab6 be0b52fd bf50fd2e bf4745bf 40982036 bf9fac30 40035058 c0c1c61c c0b6d607 3f9db768 c00d45e5 bf91c195 40334e56 00000003 4003e1b3 be72b84a -> bfb95b45 befa1af8 c096ac1d 3f191e4e 44b23a23 00000000", + "c1e61367 41207fa4 41e8c5a4 3e887d71 bf1eddb3 bfb59849 402098f4 3ff02499 3f000000 3f460e9b 3d82ca92 c00ec4b0 bc6a5b93 3e918486 3f472fd0 c079f2a4 40c54066 c09041d4 400ab0f0 c0a7a9f8 c00efc60 40172009 c0180f77 00000003 c00e2aa8 be959c06 -> 421a1d41 bf7c7857 c08be5ef 3f372041 471034f2 4624a779", + "41ce21b4 c191b7f0 c18d649a bd5cf80b 3e91dbe1 3f2f5a19 3f3e6a27 3fdcd182 00000000 bade42d2 3c9a0a99 3e2aa7b8 bcfb6332 bf9df02f 40b075b4 40fecbc0 c0ec0022 bfbf0720 c063bc48 406fe194 402ba660 3f870a17 40256552 00000003 bfdb06ee 3f4cae62 -> bb2d0790 bbc7d950 bd5cebb8 3fe625a1 3fbaa7cc 00000000", + "c051c350 c226a55b c1274a58 bf7dbf36 3fc780bc bf5e812e 400afcc5 3fa6cae0 3dcccccd bd6ff458 41f68d4b bf089cf5 3f5df8b7 3f51b5f0 c0e2f76c c0e7936a c0247dbc c0f28000 c0cb5363 40084704 3fe988b5 4037ecdf bf2fbc48 00000004 c015189e bf9611fd -> c02d4392 c0933b3e 4057c87c be232118 42671d20 4029bd9e", + "41810294 c12620a8 c22ea73d 3f8ab95c bf19dffd beba2fc3 3fa551a2 3eb24fe7 00000000 bf00b878 3f8d253c 3ffe500c 3fb8d332 bfd36600 40ac2304 c00ccb3e c0e68cea c01edf8c 40ee9770 bff1016c bf0eadfc 400cec9c bfba371f 00000008 c02e6ba9 3f1d2faa -> c164c98c c1079c6e c1f998a8 3ff09ed6 4911265e 3d615673", + "41cd1820 c1d3ed1f 41436130 bddc2031 3f34fa60 bfe3551b 401a7872 3f7f7f79 3f000000 bb9ffc7c 3c6c2895 3e10bf90 bf73c204 3cb7a53e c0ec8071 4080fe18 c014ec94 be89ff70 3fff5558 bf827e64 bf275975 c01088ba 3f10ea25 00000001 c007b3d6 3f2f5926 -> 3d6e2a29 beb4941e bb0d4d2f 3f32e426 40cc4ad4 404f483a", + "418a7b1c c207d1ce c1686580 3f3bd880 3f8798c8 c0112e99 402800b3 3f4e0bcc 3ca3d70a bf8504ab 405e4808 403377c8 bf056635 bf2ab192 bfe3d63c 3fec44d8 4085f044 c057cbb4 4081df28 40e66e02 3fa7354b 3f7f9f04 3fbf382f 00000005 4026692c bf9883e9 -> c208e9e5 42333b5c c345a6a0 3fa00f3a 488d1215 443bb654", + "c22f47fa c0a19c40 c19fce87 3f499935 bd69f365 bfc0e8e1 401d02bc 3fc07ba0 3f000000 bec2535a 41ee2309 4029708c 3ea60eba bd7809e8 c089ed2c 40c8e444 c0437e0a c03f71bc 40971910 405ea168 3f81f385 3f8f972a c00bbebf 00000001 3f842362 bec4c173 -> 3de61d37 bf25844c 3f3be08d 3f6d682e 41003efc 4115593e", + "41271358 c2101e25 409498f8 3fbe7320 3e3c79fa bf5b6ffc 3fdd4367 3da86392 3ca3d70a c0a31b24 40275442 3fbae5fe 3c93a8ad 40087169 40174dbc 401f3bf8 3e439900 403d08f8 40f2a0ac 40073330 401887d3 bfa7d8fc 3f01e478 00000004 4005e36a 3e91f6c1 -> c0243383 408fe051 c09ab747 3f85147c 4601ccd5 41265d38", + "4230fa3c c1cf482c 40e82408 3ef91178 ba4762c4 be872f30 3f0db1ef 3f484bb5 00000000 3eb230a3 41426b0e 3e240509 bebc44df bf0ae1e4 c084609a bfd5884c c077b8f4 c0a7b7f4 c0a9fc66 3fcfbff8 4009aaea 3f0bc13e bf6711f8 00000001 c0024d7b be867db6 -> 3e7a69f0 3e726ff5 bdb75f63 3f351620 40409d9c 00000000", + "be88ec80 420c1962 3ec8af00 be861079 bde0456a be1632d1 3ea3932c 3fc239e9 00000000 400d8373 3e0432d2 3f991eee bd913160 3f68171a c062ae48 c0afd3b1 bffb2ee0 c083598e beabe7c0 3e3b5a40 bf9bdca1 4005ffa8 3fa4b50c 00000008 3f61d4f4 3f233fc2 -> 41f33b8e bfdc94c3 41c355b7 4010cf06 4639f5e8 3995dc80", + "4129e73c c1ad1da0 415cce44 3fbb7e0d c002cb36 bf011a6c 40261ee6 3fc78bf9 3ca3d70a 3f8ecdaa 3c2cd424 400f1f50 beaf7b79 3f948245 4056e80c 40e84dbc 40c976d8 40c8b314 40f55f1e 40e6195a c02ce8f0 3f63298c 3f450278 00000002 bf2b6348 bf5b7862 -> c1f8b3dc 3c1ee000 c19cf842 3e7f6708 49525756 44968ea8", + "400a1980 40ea07b8 c1b6b0b2 3f5b4a22 3f8fdbbf 3eeee1df 3fbe7ba4 3cb2239a 00000000 be1d9830 3cb9de6b 3f71505f be5b7c8c bec7105c c0014dd6 bf02a908 bf2f0468 40d3b6e6 40e04242 bfbd4f8c 3eea79ec 40337a94 bdf2d2fd 00000001 3f6f833d bf50c55c -> c11151f1 3fe21b98 40827c8d 3f2c3bc0 44a0fd75 00000000", + "c15b6f18 41e26ff4 41ab9414 be145621 3fe7e38b 3e8852b9 400991d1 3f201ba4 3f000000 3b6bb177 3d6a187f 3f8073b4 be3a6760 be5f0286 409189e2 3eba0ea0 40d0195a 40ef9e0e 40a5904c 405f77bc 3f9e61fe 3fdaf7e8 bfd3b779 00000008 3f91f116 bf6fb75d -> 3b807220 ba766b40 bbf99788 3e7b4134 4075c939 3f32918b", + "c1adb9c9 c21289da 411dcccc 3ea145ea bde8200c 3f025fbe 3f22dee1 3fab526d 3ca3d70a be7f2aa9 413db298 bfb7f07e 3e82bffd 3f986383 3ff30d58 c04e4548 c0a00eba 3fb2fe38 40d92de4 405e54ec 4005a51e be52ba5c 3f73cb97 00000004 3f1b749c 3e3500a6 -> 3c7f31ae 3ec8dc60 bd9bb537 3f897837 3fb49a23 00000000", + "c226432e c1a10579 4233da2c 3fb94e5e bf0b9ab8 bf848c8b 3fee4911 3f8aee2c 00000000 be0369f8 3fd20aea be8eb572 bfc4e70c 3f887d18 4097c562 409ee11e 408a4142 c00e078e bf0779a0 bfa45868 be21f2e6 3fb38383 be5a0e16 00000007 bf20b94f be6d7098 -> be557f7e 3ddf56be be73ad34 3f06e4f2 3e58ed59 00000000", + "c21b0e3a 40eeb868 c22234b9 3f898ea3 beb23ee6 3eb9adf1 3fa3c2b6 3f6df166 3dcccccd bb1991c8 4237f111 3e796cf8 bf272cc0 bfb3aa81 3fdbcac8 c07c2dec c0329026 40ca666e c08b7432 c0ec05c1 3fac4cbb 403f316b 3f2e024e 00000002 3fc99b20 3f59c664 -> 3b67d0da 3bc18ca6 bb157065 3fdcec88 39f18920 00000000", + "c2101754 c1b1e708 4110481c 3e7e996c bed26ca4 3e6658fa 3f233a66 3f893922 3dcccccd c11717c2 3e69ef93 3f540592 3fdafd61 3fec1e47 40b00fe8 c01745da c0a07c64 c0266eb0 401515a0 4009fd58 bee5e486 bfeb51fd c03be3f0 00000005 401e3d63 bf306021 -> c2904658 c20d4d78 430a1fac bd20ed88 4c158cee 46f4ed53", + "41fcfee0 c00829f0 c1ff32b0 3d6f0eaa becea094 bf99647a 3fa6ee98 3ff522aa 3ca3d70a bad30873 3c55fea2 bf51964c 3ebf2bb3 3e7dd637 c0441c16 4053ab0c c072d636 40d63858 c0bd3518 c0e93d31 c0326598 3f02a9b9 bfd93854 00000003 bf6d8d58 3de3d2a0 -> be379d91 3dacc438 3d6a8e83 3f57a028 3eac69d9 00000000", + "c1d428ee c1916639 42348622 be788dbf 3f45ea9c bf8b7392 3fafc0f9 3f43df42 3ca3d70a 3c53bc46 418ebf7f 3d5f52ba 3e057e61 bf04b9a7 bf2870c8 3f89d528 c0a24555 c0dbe576 c0e79dbc c090680e bfdc9d56 3fff3d01 c014328f 00000002 c017dd10 bf300b53 -> 3d1727ca bd39bf77 bc13d8ca 3e606dd4 3ca32e4f 00000000", + "c1c7a10e 41ed517c c185786a be86d413 3eda143a be3446fd 3fb5bbfe 3fe394ad 3f000000 bea17efe 3c807ef7 3f2308b5 bfac73a9 bf82ffb9 403f9ddc c0a7934e 40c38c14 c00717f8 40a92e96 40496af4 3fc93577 3fb12b11 3f08b0c6 00000007 3fcc62b4 bf533a73 -> c2d31870 435e53a0 43295374 be28ef82 4a61a9e0 48c7c6d4", + "c1ad06c5 40a3c080 4116ec74 3f068a05 c0089a73 3f30ab98 401921a1 3f631d05 3dcccccd bcad8ce5 404675b4 bffaf472 bc97d3f4 bfd3b4ee 40ad7de2 3faa19e0 befb05d0 40fb739c 408788aa 40843dc0 3e0fcecf 3ecc8f71 4013b732 00000002 3fdd608a be9afba8 -> 3cedc305 bda30e69 bcaf190a 3e5331a4 3cf496fc 00000000", + "c210359e 421c52b8 41f81bec bf10f75c be96efb6 3fa805d3 3fbbaae5 3ea571c0 3ca3d70a be81c379 4285dfe6 3fa5e027 3f594ea7 3f453c80 c0766db2 c0efa670 3f9959e0 40c005b2 c0b48dda 402e8cac 3f91990e 4031343c bf2dc575 00000005 4006cb90 be83f21a -> 3f1eb020 bf1fecb9 beacfa4b 3f1c6785 419d721c 3c333302", + "c15de874 c199303b 422bd976 bd93b918 bf6603f2 be38986d 3f836709 3f896696 3dcccccd bf1654a7 40c000ea 4022693d bf54962c bf5fe40d c0d40e5d c08e7010 c0750b22 c0ac5ef8 3f544c40 4096f8ae 4020536e bed5e297 c03bf118 00000004 bff2bf97 bf181908 -> bf6b2a5c bcf18a40 bff4c320 3f111f14 43a762bf 4026bb58", + "3efcf200 422ce730 421fe8e2 c03a2f33 3f35f611 3dc0a27c 4041fd02 3fdf446c 3ca3d70a 3c9d0a35 4097c439 3ebe601c be982a51 bf0cc9b4 c069a160 40a5fa0a c093ede8 409d774e c0ea3c2a 3fec3ed8 bf0d90ea 401914ce beee0810 00000008 3f7192f6 3f13bc28 -> bcb8c777 bcba9d32 bcb16782 3f948adc 3cc39039 00000000", + "c1b20093 c23fbcef c231f54d bf4c237e 3e10cdb5 3fc83f0e 3fe3727f 3e1cd38c 3dcccccd be42f56b 3d44bd3b beb30d97 bfa65144 3de000e8 c060c236 4015fb84 40b7a360 bf560da8 3fdc26f0 40e58ba0 bf02040c 4017ddc4 bfa1cf8f 00000005 c03438f3 bee61b65 -> c0e56e26 c1e7e643 4023a1f4 3f3c4e08 483f1a9a 443ae949", + "40d62540 c11c9ef4 422fbe16 3d85a235 bfad46d1 bf44f358 3fd750ac 3f9e5c1a 3dcccccd bbd77675 3c401297 bf9548cc 3ce63fd5 bfd3e4c4 40e13fde c083136e 40b66864 c02a4cc6 c0f58842 40d11aca 3fd62a63 3f83587b bfe05808 00000003 3f91a990 be94bdaf -> bf76ccdb 3a89abbd bfacb60c 3ef79553 41d48b26 00000000", + "c1ec8af3 c17888d0 bfc49420 3f44ea9c 3f8424cb 3f9dd470 3fe949fa 3fff6f37 3ca3d70a bb367dbd 3e306652 3f0a1704 bf6bb839 bf5a63e4 c0d5d09c 40b198f6 3f154dc0 bfe7edf8 40862d96 c0d94fe4 3e89aa85 c026079e 4002ab7c 00000001 4004105e beaf6439 -> b97329fb 3c939ff7 3c4f1fd7 3edf634c 3c0a2dd6 00000000", + "c1288558 c21aba46 c113a77c 3f5f759f 3f41bac3 3fe9aeea 400ffa85 3e36ae34 3f000000 be4f98ab 40f9bf11 3f80e8d9 3f13e8d6 bf11e049 bfb4ae58 40e367ea 408c1168 40856198 3f8cd798 c09a5452 3f1465f5 bdd79f97 c023fd38 00000005 c03313c4 bf9911dc -> c1834f1c 423b74a1 420cc609 3f199b66 4699b3fc 46bad0d8", + "c2194ee2 41b1860c be22e900 3e8edef1 bedab753 bfbda154 3fc88fe6 3f4213a0 00000000 3d9aeb74 404336e2 bfa7b8d6 400aa9d6 3ef26a85 c0c7f2c7 40fbcab4 3fba7620 40e07c76 40a5385a 40821f96 bf73a45e c0207068 4003d555 00000008 402e637f bdd5f2b7 -> bd4f2416 bcd69a55 be07eb64 3f13e7bf 3f13668f 00000000", + "c1da52a9 c204814c 41235b18 bf9486c2 bf86815e 3f4a2bb8 3fe298c1 3f58667a 3ca3d70a 3e131c3e 3f02af52 3fbc728c bfe217ff 3fa50efb c02c131a 406bf330 c0ca1b71 bfb08998 40e3a990 c07ceb76 3f92bd69 bf81faeb bf6c4b0a 00000001 c02fe12f 3e43a01a -> 3e9e6cfd be914f8f 3e8f9077 3f37c117 4024cb97 00000000", + "c1d28c78 c23404ee c22d59c5 bc8befd3 3fc95e1b 3fe4e908 404aa697 3fc8d64c 3f000000 3e573197 4268798e bf76cff6 c028cfee becc156e c0a26c7a c085525c c0e04b0c 40d50ee6 3dc4b880 403e43f8 400ddcb9 3fb17879 3f9d3047 00000005 3f9fbd9c bf7fd59d -> bfd34bae 3f2d1f98 beedbe69 3fa9fef3 420faeac 4252696c", + "c20db53a 4183c854 c20dcc80 3fca4c16 bcfc2ca9 3fb244eb 401a4de8 3f1bc58d 3f000000 c09848f8 419aa961 be6a2666 becb49c2 bed486a0 402b2580 c0802890 40c4f14a c0c488ef bf37f798 3f82b4d8 bf4d08e6 c02ea82e c02d9689 00000007 3f8e1464 bf3f081e -> c106728f c2040e96 4213f8c7 3f587768 45d9463f 45c4b932", + "42322dfa c2275029 414344e4 bff6ca86 bf957c1c 3fd1c46b 403b2bdf 3fb02961 3dcccccd 3f1aba86 3fb2a0c6 3e0e4f4d be63dfdc bf065f2c 3f864f30 c008b7a2 bd2caf80 c005dcd8 40e52e62 404418e4 3f40075a 40240fcb 3fe18acd 00000004 bfd74e6f 3f15fae0 -> c02cb6a6 bf338d28 40023f57 3ffcedae 434a746a 418b172a", + "41f5926c c1db949d 4218b210 3f0a0e27 bf6a03e4 3f62007c 3fe6962f 3f578660 3f000000 3d861259 3f2bd5d5 3e31ed58 3db4fcb1 bef134f3 c0842c3c c09158f0 409ab06c 4088cb84 bd217180 c0bccacb c037df72 c0374729 c0044d84 00000003 40229960 beaa1959 -> bb8e1048 3c9d7720 be7a9fdf 3f01cc80 40832344 40021e8c", + "c195ebad c0c43870 40741270 bdd0abd2 bf43244f 3decab29 3f4ef040 3fc4453e 3ca3d70a 3ec1c89c 422083ea 3ff3fb44 bf752d2f 40015547 3fad1de8 c0878106 bf0c12b0 40c6f410 400c3160 c0301ee2 c039b669 4022390d 4032662f 00000001 c014b9d2 bf5fd889 -> 3e6d1730 be84e20f beb2489f 3f6be030 406dfe86 00000000", + "c04e93a0 41e85d04 40ff7048 bffb9d57 bf8090c6 be949c1d 4016aa45 3e82b8c1 3f000000 bf368399 415c429e 3e3983bb c00f6248 be1e7e20 409a2422 400fd89c 3db22f00 40f10470 c0b878d7 c009bb24 402bb0c9 bf5f2557 bf9d5044 00000008 3f306bd6 3de3ec75 -> bdc79810 bd5dc635 bee705fe 3f7d3a50 41eee2af 4212b9b7", + "c1816d5a c23e9afc c22d8f92 be2401e0 3f9bbd37 beae8507 3fa3077c 3f7e8ae2 00000000 3d6a8368 4001e0b6 3ffcfb29 bfabb179 3d7c9ae3 40f7dcfe 404ef864 c09c000f 3f720fe0 40e45ac6 3f2d7360 3e94c3ed bfd30121 c037b69e 00000002 c03fd270 3ed8a1bc -> 3d4b5bde bcb662bd be0ce6c4 3f855bba 3eb64c9a 00000000", + "41e341cc 423875ee c236e2f2 3f5148fa c007c3ee 3eac3d7c 40141e06 3f4ef035 3ca3d70a 3c3423eb 3d5ccdd3 3deaa56f bf2d1ddc bec5c390 3f4b09a0 40c135b8 c0e32f7c c0834b20 c0887b58 409f7e04 40363816 bf358a7a bff9face 00000004 3fed529c 3f56042b -> 3ec8f4fc bfe3fc08 bf6b587e 40093477 428f664e 3d5ea319", + "c1a82414 41d9989c 415c7128 3fa49cd8 3ff979bb bef14008 4018bca7 3e5fab27 3ca3d70a bbf0e3cc 40133824 bf1940d7 3c403486 bd3ddd68 c0cc0a1c 40d33b6c c0c72010 c08cbd26 c0e1e443 3f32e340 3fcbc861 3f489190 3efca998 00000004 bfd2ebe0 bf418e7f -> 3c6e126c bd19e9ea 3c6b0d00 3d82bd74 3cae9cc1 00000000", + "405d5e00 42448d66 419434e4 3eb63650 bf2c29d4 3f2c299c 3f880940 3ef2320e 3dcccccd bba650fb 40a4b240 bf4a628a 3e817dc1 bf53a97d c096138c 409e88dc 3f4f1430 c0bc8a37 bf93a48c c0eeaa8a bfaeb077 3f123123 3f21ba7e 00000004 40208933 bef1d82a -> bbc8007a 3c8c01a6 3bba9809 bd985561 3cf4a0a2 00000000", + "41a33b10 41c2171c c1d7ad11 bf85d3d9 bf7cc078 bf485706 401f03fc 3fd8f20f 3f000000 bcf5771c 42720f57 be99d4cc bed356d0 be8b6925 c0cce9e9 beb35ea0 c0af92e5 40507ef0 be89d240 40d0f872 bf6332d6 3e4d8e9a 3f59bb19 00000002 40063cbe bf2c7d42 -> 3e0b7aac bd5c9d80 bd833aca 3d9b0f38 3e39a484 3d335012", + "421884f6 c243bedd 41ba50c8 3f5a56c0 bd116843 bf36a695 3f93a184 3ed11283 3dcccccd 3cf2d74a 3eedbda3 bfcc1333 be9becda 3fc75b0a 3f210f90 40eb3bcc c0d0f1de bff44fc8 c002b782 bfc4a960 bfa862f9 bf700761 3ff6e6bb 00000006 403e5d9e be96e194 -> 3e38b126 3ddc22cc bec9d8cb 3f4a689f 422f2810 3f19ddb2", + "41265a20 415df998 42188a8c c022d417 3f885d2e bf7ff981 403bc4ca 3f8a45af 00000000 be1d84c8 42666978 3f10cd54 3f6a8dcb 3f436504 bfe6e4a0 c02be40c 3fdb8100 40dced5e bfd5a978 40ed04d6 401cba05 401d7c1e be5076b2 00000002 bfd1067b bf88cd17 -> bdb17a3c 3ebd1028 bec0ab12 bc27e6c0 401554ad 00000000", + "c1a22c2e 41d675ac bf2ad580 3f89ee40 3e4f3fc4 ba8b1369 3f8f4a61 3f93671d 3ca3d70a bc9d1dc8 3d1f8fbc bf232a94 bfd15b16 3fa0245b 400ea160 4011e914 c0c7c979 3fd03240 c0cc4a90 40fadfd4 4038b4cf 3e196092 3f2fe774 00000004 40278a96 bf9363c6 -> bfecdb4c c0d0eeac 406dfd9a bc188e00 45ebb776 3f8ae834", + "c1f9ad60 c21791c0 40dc15f0 3f6306e1 bec5153c 3fb68a32 3fe071d4 3fc3b536 3ca3d70a be1610ed 41fde6fe 3f985603 3e21406f bec1f6f5 c0858bd8 40e3ef4a 40ad57a6 c08b31d4 c05b3828 3e4e6440 3e4f8209 4036d2da bfb6e2a4 00000002 3f2aafe4 be06ce86 -> bce63ec3 be05f470 be10c223 3f0ca5af 3f0f4a87 00000000", + "4159f3b4 c11554f4 421f5096 bfa1b748 bf964c99 bf78c154 4007d335 3fb67f81 3dcccccd 3bbc300a 426c6244 bf7997af 40269fb7 bed7a8ff c0175ad6 bf99837c c033440a 40827f54 bf9059c0 c0388bd4 400d7042 3f3f11fe 3f247e2a 00000006 bf73a615 3dce4932 -> bc17fbb0 bb501816 3a7ff013 3f85afd0 3a4fe0b2 00000000", + "c20cb7b5 40989250 4028d370 3e22ab45 bf84f571 3eba64f5 3f912591 3f8bf190 3ca3d70a 3ec0fa14 4188cbbb bfbaf502 bf67035b 3f442b43 c088b2e0 409cee68 3e93de60 bf3ccd78 40594040 40a5cf96 c01aa39f 3e6002d9 c035a12e 00000007 c02882ad be040f6a -> be2af283 be897b31 bf1fe82a 3ee4da6a 4203c2ff 3c23fcba", + "41cc6488 423fc49a c02ea340 3fd0638b be4cde75 be8f5a69 3fd98d17 3fe3e5df 3ca3d70a bdd2f002 42bcdc8c be6d007f bee6e80e 3d82f38b 40539724 c075e974 bff33074 3ea5b2a0 c06821b8 3eeb9d80 c02421b7 3fcf6cd2 c02aaa85 00000005 c0185e68 bf8b90c7 -> c0b0eca8 3fbe19b9 c11a4249 3f8ebf06 447b5469 3e114223", + "c1e6ab06 c2476b3e c0d1eb08 be5f69a1 bd57dd96 bdff7178 3ee9bc88 3fffa9f6 3dcccccd 3f73ec46 419c6314 3e55056b 3e36e4c1 3fe6bd3f bfe3fe14 bf72ebf0 406c94f4 40d69a06 3fcdd4c8 40bdeb40 400faa72 3ff70fc1 40193188 00000002 bfb647b5 3f948371 -> 3ff280e8 4008953c be7f76fe 3fdbc7cc 431497bc 3e25c6c3", + "41f982d0 41ca5848 41930524 bf09a164 bf25bc99 be8c8f1c 3f801b5f 3f940ad0 3dcccccd 400011a9 3e6e741f 3e965c98 3f398321 bf21e66d 406eafd4 3fd45428 c0bc7b18 c0ade870 c083e87a c0a6a1f2 3fbcdac9 4039373d c00c3749 00000008 3fcd711d 3f208551 -> c11aeefb c171bf61 41454168 3fdf3fcb 4893dafd 44b9298d", + "4213e936 c14921d4 423de094 bf162f1f 3eaf7c7c be99155c 3f3e0896 3f2be470 00000000 3c0afd6c 407a3138 bf9ff9d5 bffc0fca 3fe7bcb1 40cb8fa6 bfc0dac8 3dc65400 c0da22af c03268a2 bfad2390 bfd7f2e5 bf8d3a2e bec6acb5 00000001 3fe8b5ac 3e1df387 -> 3c6a0106 bb75969c 3bd629c7 3e4514ec 3b2aa01b 00000000", + "c16a350c c2322a93 417218b8 3c73a53b 3a6b69b8 3eb2ed0f 3ee604d6 3f7ea6db 3dcccccd bed06a39 3e448f52 becd8520 3f03945a 3f10df87 c0ca0539 bf95986c c0bad06c 4090ccc0 c0914424 3ffb2948 3f0c45e6 3fa29f93 3fdd5c21 00000007 401a5cfe bf347413 -> c0f30bc6 c1753bdb c23e40e8 3f2bf6f7 49c00f71 44cbb6b2", + "c2408499 423eb648 c1e4d635 3f5d7fd1 bf1344c2 bef74a5c 3f95889e 3f8f9eb2 3ca3d70a 3e493f54 413aa7a7 3eec6917 3e871a79 bece3dfd bfe07040 407550b0 3ea68540 c033007a bd8e4fc0 3ea04860 3f67ec7d 3eba04b5 c032ee80 00000006 3fae4c5a 3f5189e9 -> bf8e28a5 3ed7b853 bf660a78 40528333 41c3cf4a 00000000", + "418304dc 41e9d4b0 c2183157 3dea1c4c 3ee6cf13 3f03cbdd 3fb93faa 3fc0e385 3f000000 3bdefbf1 40395934 bf970daf bed22f92 beb31613 c0537200 c02a3d66 c0d1e0da c0a5a773 c0a4950c c0b0a7d7 bfc88552 c00d7901 bef650da 00000004 3f127ac2 bf4f4abc -> 3c487a0e bb08787f bca8ae6d 3eec0df8 3b0221d6 00000000", + "c208f3d6 41ef0588 41f700c8 bfaf68f7 3fd49e23 3efa01f8 40284dae 3f57e52c 3f000000 40c1549f 40252a24 beb2fb43 bfd18905 3fce5410 c063a24c 409dd52a 40e493e2 3fe88120 40810026 4092eff6 c006a9ba 3fd050e6 bfe4330a 00000004 bfb57eb2 bf8abcae -> 418b4778 41e7dcf0 41a65edd bf03adb1 4710fee4 474c1028", + "4209eb72 c1e02fa8 4191f07c c0205386 3d8613f0 bebfbf3f 40222980 3f82a55c 00000000 3ee726b9 3f110a3b be563342 bf0416ae bf216b49 bf88c854 c01d42a6 40fe7d0c 40b82620 c0874a1d c099ffa3 bf618d6e c02e441b bfd7712e 00000004 bfbbb600 3f8d6f6a -> 406e099b 3e356044 c089766c 4033f9dd 43b8c901 00000000", + "c1f1cd3b 4243a39c 41f2b388 c0044e62 3f4281f9 bf53a49a 40202d4a 3fc04a0a 3dcccccd c05212b6 4265eef6 bee86415 be888687 bdd6b352 bf3c3c80 40d88332 c08c20e0 be530720 bfab1818 bfc82754 3f72b0f0 c03f43a2 bf0fc33a 00000003 401f7743 3f48f6f0 -> 40944c42 c1ab12f0 420c0b1e 3fd28b9f 468ac177 444a1d5c", + "4213d654 c23643c1 41559bac 3f13fac6 bf9dfc51 402a0789 403f191f 3fb80e40 00000000 40751f00 3f0f4644 3ed3401a bee4e6b6 beaf08f7 c014db00 c09e3cbe 40c41a2a 40f6aa6e 408fbade c08ea5d4 40092deb 4033f9d3 c02b70aa 00000007 3f8cdaca 3f50d3f2 -> 4168e436 c102ed21 4153ee07 404bbf32 46047958 3b71bfc9", + "421b1c4a 4197b814 41244164 3f8cad88 3d92be01 bf36671e 3ff0e6f6 3f91fe99 3f000000 bfc772a5 413f3ba9 bf4bb6bc bf528b8c 3fa9c2a3 400d8da8 407b54f8 40f5c6ba c0aec372 c07049ba c09b3b87 bfcf4efa c02c4bca 3f8d4bd7 00000004 4005b4e0 3f6e8e24 -> c03b1484 c18740bd c153fbe4 402fadf8 463ba213 458858c9", + "42151534 42109578 c195be17 c002920b 3f44a94f bf5ca5c3 4017731e 3f8e102a 3ca3d70a 3ec581a2 3ea4b07b beeba22c c02b0593 3f8f0a80 c0df69f5 c095c94a beef4ff0 c0abf6f6 402d4a3c 40849186 bfa4894b 401cee21 3f1ba1aa 00000006 bf0d66ea beda3763 -> 3e4e3d9b c0281e09 3f22e524 3eeca174 42b1600f 00000000", + "41c8a888 417405f0 c1bec1f1 3f682542 3e965542 3dd9bfcb 3f758657 3f8dfd43 00000000 3b945321 3dc4671d 3e8f9abb bfd9f96b bfd3eea5 3f8784d8 406ec0b4 40c67aba c0dee19a 3fc6ef18 c036839a be6c7e8e 3e8dbb81 4024e023 00000008 bf6f1645 be3a5599 -> 3c612472 bd0d973c bc4e541e 3f2fecff 3d74703f 00000000", + "421d00ca 423b3ac2 420aef90 3f04c9f1 3f43b6d4 3f6ec805 3fabeec7 3fc27ff0 3ca3d70a c08e3152 401eb95c 3ce02357 bfbdb781 bf46be1c bf720148 bf8f7e00 3f17eed0 bda03b40 c0fa1950 bf714c80 c02c6c3c 3fa5dcb5 3f1a6bf4 00000002 3f062979 3f4a405d -> 410cc2f0 bfb29506 c0a420aa 3f838236 44a72135 00000000", + "42100c56 420277a0 40c806d8 3f96809c 3fb17fb7 bf03ce96 401a1f29 3f84c044 3f000000 3b00708d 3ddfae58 bf9665e2 bfaed904 bff5374a 409a631a c027ac04 c0dafae8 c030456c c063d114 40cbe896 3eb1f629 3fec8b22 bfb736c5 00000005 400b3a32 3f265888 -> bd91e7a6 bda7cd4a bde73073 3fced169 4016b51a 3fdbe910", + "41b870e4 4237f190 c209a0a6 3fa7a5dc 3f0c085d 3f971685 40011478 3fdaa457 3dcccccd c0447376 41399842 befcf508 3e801af8 bdb2c713 40025100 40e06f96 40bd4642 c0e8816b 4075d67c 4036fc94 3fd71798 4029eb70 3f8bb113 00000002 4022d4f5 bf20409c -> bfa4990a c0143ae6 c078ab3c 3ec50704 45258aa4 42a54e9f", + "4104ef28 c0db4188 4178e2d8 3e3ed993 bf608a18 3f15b4f7 3f9f24a3 3fdd26e8 3dcccccd 3eaa1e5a 3eacfd7b 3f5d938c bfe1b6fc 3ff0df2e c0bdb876 405a8d24 c0df0772 beeadb50 c0d4d918 c0bb2262 3fb2f9a1 beba0c5e 40327670 00000007 bf5b106f bf5ef043 -> be5e2086 be842633 3faf8891 3f056d66 430c6c70 3f91b869", + "41f00938 c1ad30d7 c21f61d7 3f69d1fd 3f783f44 3fa7e67c 3fefabc7 3e13d626 3ca3d70a c01a4000 41af5f39 3fbce4b8 40042f81 be4b809d c05a1140 c05f4028 c03240f0 c0f69156 c0e0102f c08a77ea 4008ae8a 3fb64d0f 402413c6 00000003 bfb389d0 3f801d81 -> 4015fce6 c0313cd4 c020be30 3ff7db23 450a5049 3fd0e246", + "40430660 4210255c 4124efe8 3fe5e82a bf233806 befcb121 40004482 3fe25abb 3ca3d70a bc8528cd 3fb38406 3f6d42d8 beb1bc5e 3f340563 3fc50680 40a36ece 40f6119e c0c5b813 bfb28dbc c0f4c7fa be88bb78 bf7323b2 c00131db 00000002 3f83227d bf787cbf -> bcf2aa7e 3c853da8 3c654ab6 3e87672c 3c285208 00000000", + "40845238 41bf0310 c1819460 bf81c686 3ff5442d bf1ea54b 40104caa 3f857fa0 00000000 3c1e5fca 3dabda47 3f368439 3f4fd836 3fceedf3 c0ca0aae bf557d40 409f9cfe c07f4d64 40a3647a 40e7436c bf21533f 3edce022 3ee755e5 00000008 c03599eb 3e8a29b2 -> bd8ee903 be05902d be54064e 3fa466f8 431fd509 00000000", + "c15dddc8 423b2112 c2098551 bff4134b bfffee42 bf80ff18 403c3964 3fa93416 00000000 3cd71ff4 42066b23 3dc97936 bf84670e be25fe4c 401910dc c0860ade 4078d9b0 bfc5a358 c0c8f2cd c0e2790f bf4b9a04 bf114f44 4029ee91 00000007 c006056d bf6f760a -> bfea207e bed82401 3f9b629f 3f342d4f 42df3d4a 00000000", + "c20cf166 4230d7d4 c05be2b0 bfea4e16 3f29801e bfcf0ecc 4038b542 3f35cc40 3f000000 bfbe5ea6 4188d738 beba2873 bef6561f bd4a4b0b c06ad304 c0f0fd0a 3e766e80 c0deffd6 40fa2042 c0897d34 4032df97 3ef552f0 4028fa0e 00000007 bfe5017d bf824735 -> 42012e15 c1b4e9d2 c2e1ffe0 3ebd1dfd 484f4e35 48b60f82", + "c05f4b80 c228765d 4200ec32 3d1926a5 bf5cc310 bee3bae1 3f7e2c0c 3f8bc45d 3ca3d70a bebfb26a 422dedac bb57fb84 bf179e79 beeb6c87 409c2dbe 40326d6c c02b4418 c0cb2ef3 c0cbaa4f bf13cb10 c02f0a9e c038fde8 40028c58 00000006 bfbde930 be554c11 -> be34c3ec 3ee37ad8 bf0f69ad 3f20e76b 4102ec28 00000000", + "41b509c8 422f82d6 bfd9c3c0 3fc83436 c0106a7f bf8e1bf3 403e8433 3e1c5647 3dcccccd bc07f681 3ca04f08 3f36d446 bf8759d8 bf82e73c c0691a60 c02e02aa 40e071f0 40ea33a4 c0b06364 4027e1ac be94e57f be24ff2a 3ef1abc0 00000001 3f4ab252 3f74f0f2 -> 3e884bfb bec286da bec7be35 3f5d524d 41201984 3f6c3158", + "c09c3aa0 c11a4968 41a4c5f4 3fe82933 bf952f70 bf3bda0a 4011c10c 3f966a6f 00000000 3b4e10d8 3d1ebe66 bf8ec049 3fe9e252 3fab4e77 40fd6fc6 3fb465d0 40b8a29a 408d3a86 3e6b9100 3e7b1f40 4018e85d 3f5b7f19 bebae0a6 00000001 3f66eaaa bf834931 -> 3da836da be01d65b bdb5ff3f 3f098c44 3e46dcb1 00000000", + "41ddaa04 4183e8c8 c1d012ca 3d7601bb 3f96891d 40058b76 401a723d 3f5c8d91 3ca3d70a 3cbe52db 40c2fc3a bf1eeb24 bfd4437f 3e941278 c0d5311a 40d8f84c bf22fac8 40dc3fba c0d3f707 40ca2f1a c01f2ae3 3fc758dc 3fc3c260 00000003 3fa1de7a 3e5b67c0 -> 3d130eec bbfe40cb 3b33a6ec 3f85bbb4 3c9c7e19 00000000", + "bf332780 42335d28 c1f0b69a bed9427d bfe1fc01 3ede081d 4002be98 3eb442b0 3f000000 be7ace3d 3e0201bc 3daf7b97 bf8c980c be2b8c63 40212a48 c0e60fb3 40e0eebe c0a61065 c0dc5f7a 408bb54c 3f52b7db 3f2c0167 3dd43f83 00000001 bf9c68f4 bec25c5b -> 3f2828b3 c063b65f bf497c34 3f28edaa 434f157d 433476c0", + "c20818a4 c1c20596 c14557bc 3f2774b5 3f150cd9 bf319ae2 3f909984 3f1f8819 3ca3d70a be0bdfe1 4158e341 3f99825c bfe2ce69 3e0a51c1 3ec38500 40f93dcc c04f8454 bf2ae330 40bfcef6 40a84d28 3ffc4c42 c00ecca4 3f828059 00000002 3f284ef5 bea22f6d -> bd38dd8f bd849180 bcd63ebe 3f1550c8 3efd091b 00000000", + "40e4e7a0 3de85a00 c16f228c 3e9d2769 bfa67276 3eee593c 3fd76c7e 3f0946eb 3f000000 3b7e603b 4195c3c6 3ea330f3 bf8bcb23 3e0c5585 40e99652 c0076416 406db390 bf652068 40e42f12 bfd9d25c bffaa28f c03cffe0 3ff9485a 00000002 3fb19775 be861b4b -> bb9e52f2 bb1fdb27 bc0d9678 3f1d341e 39f2d25c 00000000", + "c12fd5a4 c23dc797 c1d74b84 3db68ec3 3cbc0525 4028e855 402965de 3e9b12f0 3ca3d70a bc47ea8c 402c4f38 bf9890cd bfb66cc2 bfddba01 be6bd160 c0a01cc0 407d1920 c06e6378 c0b6da56 40e5edd2 bfc5ee15 c012f14e bec72e02 00000005 bf9138c0 3f36190a -> bd36f7b6 3d94f02b bbbb8fed 3ff80a47 3c730758 00000000", + "c21ddcbc c1e6aaf7 4098efa8 be97b15f bf3a05de 3efabbeb 3f6f3c3e 3dc2d971 3dcccccd bf0f9332 3cb32aa9 bfecdc9d 3f050341 3fc51fe2 c061a7dc be62aaa0 bec53120 c0c967f0 3f13b620 4085919c bf4042d9 40191edb 3e50d584 00000007 3fab4191 3f9667c0 -> c45582bd 4389a300 442c59ec 40f682a6 4ab755a6 46a63c7e", + "c0c47f30 c223a06f 421b7a10 3c2d6bc5 3ffbfd9a bfd567ff 405b402c 3fd89187 3f000000 bb0822f2 40f38feb 3f0a24e8 3d8e8e61 be91630e 409ae534 c011e10c c06277ec 408a2708 40a01eae c080373d 4037009e bec93741 c037ce04 00000007 3f194c50 be0a4fca -> 3ac60383 bba723f6 3ac43e0f 3f35c31f 38edc599 00000000", + "413f6a34 c120926c 41dcef90 3f23170d 3f069923 c0293e46 406a6eec 3fe480c2 3f000000 baca1979 40bb4442 bf6c30fd bf36810f bee0483c c0ced2a7 c0facd1d c0c4255b c0da80c2 c049a476 4081288e c0280bb6 c0194d4d 3e505c72 00000007 c0378306 bf8d77e8 -> 3ea31cb7 bf946d8a bef6020f 400f9850 42a75bd5 435ce415", + "c20a41cf 4205b35c c23b455c 3e9eae4a 3f972942 bf4df0d1 3fbdd3a6 3e55e2a0 3dcccccd 3d5e433a 3cac6360 3edcb820 3edd7c83 bef48cfd c0361ab8 40e5d3a2 bfedddd4 40ebcc7a be9de2d0 40ce56d6 be06c646 403bc73b c03efbbc 00000004 c01cb000 3ee75b27 -> bfbd0898 bfd4dfaa 3fea6822 3fc21a1b 4632b421 43645608", + "415b0504 c1de0a10 4087ce80 3f1709c5 4026c2b5 3f26763d 4031eee0 3fc3f2a7 3ca3d70a bc0e100b 3ec325e5 bf3283a0 bf26fddd 3f892c67 c0a20084 4096a308 40ddfcc6 4017df28 c0b81396 c0cb05d7 3f247207 c0336b22 3fbfa767 00000008 3f76bb68 3f82966d -> 3d0e5fbe bbfb8c9e bdffffde 40ca42ac 3db51604 00000000", + "c1ac6922 41e4f3f8 c122175c 3e516572 3f78e05a bf2b4fe8 3f9951d8 3e5fe343 00000000 3df982ea 402a64b4 3f73f622 bf4f3807 3dee7f30 c056b30c 40d3af5e c0d3547e c0cf4ebf 408e2e38 409f4d06 3fad72a4 3ff0ff42 3f33b0b1 00000006 3f126d28 bf805d91 -> beacba9b be8a490d 3d413b69 be554f1c 3f2f7c31 00000000", + "c227cdee c22b288e c22ffc98 3e57b3f7 be0c7768 bf8c2390 3fa8800e 3ec5b832 3f000000 bee0f9b0 3f625952 bf9b73e0 bf32fd3b 3f6f6e3c 3f861d00 40fdf8f0 407b45ec 40cea606 c0a35256 bf7ae098 3f500c6d bf8b3e35 bf871af1 00000008 c01168a4 3f1b5d8a -> 41392480 401584db 410b56ef 3fec19c9 476981bf 46a1105c", + "c22e3468 c1c04c8d c014f7d0 3e3f1313 be239c61 3e4f3dca 3edef6d8 3f96012c 3dcccccd 3fbcde70 40d7cf38 3ef39094 bf71843c 40040b09 40336014 3fb4ba10 bfc915b0 3db2a480 409b1cd8 40fde7c4 be0577a3 c0244f38 3f039ec2 00000007 c000022d bf81e8fc -> c22c5549 c31c8114 c2bbb167 3f5c9958 492fcc95 43f8c68b", + "c2447810 4235772e c2173d03 be3cef78 3fa2ba2b 3c8e4325 3fa802e5 3fb235e1 3ca3d70a c073b0a2 40478c4a 4018cb3a bfc0b161 3f0aba7e c0321c46 c03cb964 c003ee88 40441abc c0af0b9c 40900ec4 3fd6d952 3f932572 3f81d04a 00000008 4006b040 3ea2f733 -> 3fd099b9 412f7b82 3fb0d05f 3faa0bfe 46e08848 417f0220", + "c21cdce3 c240f969 41c8fa7c bf92c581 3e685eeb 3bc5fea6 3f998197 3fc24eb2 3ca3d70a bb07b0c0 4258d170 3e83898f 3f239a4c bed59347 c0cb4615 3f46d0b0 40fde91c c097785c 3ff4de30 40dc575e c017d84f bf9f0930 bfdd2fb5 00000001 401ee780 beea04cb -> 3876ba0a 3b249fe4 3b883197 3f31790b 38e34cdd 00000000", + "4214903c 4219c4fe c232eaa1 3ef824f3 3f04b49b be8857ee 3f90e649 3f3f83fc 3f000000 be42cc13 3e4b1e83 bfdfcf25 be5dafec bf0abf0a c0a1cea2 c04b2510 405c75e8 bf9f2aa0 c0d7eb07 c0c2de22 4013fff5 3ece6993 c018ef9a 00000005 bf4ae5ce bf62bc63 -> 3eefc2a4 be9b5204 bf20162e 3f00631e 42da693a 418c5907", + "41a75624 42280c8e 420a1a26 bf850577 3ee2f51b bd3b9ee2 3fa59516 3ea6c614 3f000000 3adf7ccf 3c76aa1a bfc5c2ef bfddbdea bfe9dc41 40daa5e4 40e3d2ac 40b46bc0 c0dd8598 3fc37868 3fbd6f48 40322650 3fe823be 3e962ea2 00000007 bfe0ba46 be7a40d2 -> 3ca3f8d1 3cf4085e 3ccc9335 3e4ceccb 401fab4d 3e24e374", + "40b951a8 41aac368 422c6000 40129fd4 3d12247f bfcdc10f 4034b830 3f9eeff4 3ca3d70a bce1f9d7 408ca779 3e665833 3e7a4d30 bfbce18e c0a0199a c0c42b0d bffbe200 402cf560 3ff24160 c0e0857d beaca4e4 401bc9a2 3ede87be 00000003 3fc2d6f3 be0f5e3c -> 3b9c6e4a 3d9e7c8a 3981f5e9 3f36764e 3cbd6544 00000000", + "becc4780 40889f28 c206854c bfe71bcd 3e9f9f09 bfb0a158 4013b43f 3f34a9b7 3ca3d70a bb6ac332 3d6b33a3 c030d9c8 3f5e14b4 bf19c4c6 40c6f0c6 c0ea426e 401fee44 40b9a2ca c0af6f1f bfd626bc 40337375 402dd93c 3fe53c10 00000005 3fd9f9b4 bf2de2eb -> 3f0559b2 be47a596 3ddffa08 3f36254f 40936aea 3bc094d8", + "422f0bb8 416c4240 419d471c 3f546161 3d7b094c 40017f58 400e2586 3fd53572 3ca3d70a bad5f983 3ecdd2a3 bf748d09 3fc14b04 3ede0a9e 4040fc30 409d271c 3fd2f460 c09b96e8 c01e9a6e c083bdf4 c03fabc7 3e384c5e 3fed644f 00000003 403452f2 bf65b849 -> bd1f21f0 3c6e65e6 3cd35c15 3f1b3baa 3cf105ad 00000000", + "41ac55dc c191dbdb c1ccb4ce bf63dce9 3f287ec2 bfef5f4c 40143e7f 3fb73551 3dcccccd 3e331722 41637057 bec9000a bf1c0806 bf37dea6 4099bb30 bf0e3be8 408c5b76 bf69c470 404dc2dc 3fe6e950 c02ca89b 4024d173 bff261a4 00000008 c03bdad2 befb4cb8 -> c00f0df8 bf46397e 3fd738a3 3ea946e2 4752893d 450a57ec", + "41c7b1b0 c08f3428 41f7339c be855c02 3c28b277 3fa7483d 3fb97674 3f94daae 3dcccccd c10368a3 3f4ceac8 bc8275b5 bf2414ba be3b4de1 c0215c1a 40e4cd76 40cbdd02 40edf1d6 40ff34fe c050454a bfc3e950 c0210242 c013c3c0 00000007 bf891858 3f685a3d -> 4247b4b8 c244b350 c20d7350 40762b20 473562a1 443b162d", + "c2439162 c228e543 c20df8df 3f8b8281 3fd487bf 3ed54bc9 400ae9de 3fb4aa5b 3dcccccd be68ba18 3e41bb60 bf0a0ec0 3f7ec08c 3cdd03ee 40f6bae6 c0f60db9 3fc866b0 bec0e900 3fef9920 3fe43a70 3fd2ce3a 403e2afe 401e90f8 00000001 4002562d bee308aa -> 3db703fa 3eb4ab4c beb80019 3f79bc4f 42a097a0 3ffa1a79", + "421320a4 c2241b1c 42373c68 bf2075cd 3ea44dad 40019258 40092f77 3f867b89 00000000 bb953739 3ebe5e1b 3fe46f17 be1d7578 3fa1ebe7 403c55fc c05ea4d8 3fcac480 3e8ff640 bc26c200 408a1c24 3f06622b bf99d0af bee9a878 00000002 3fde7643 3f829ffe -> bc39690a bce067f0 bc46b270 3f9a5679 3ca2a31e 00000000", + "41080400 41d637ec c12ccea4 bee4709f be25423a be8ffc3f 3f20cc4f 3f4407b8 3dcccccd bfc211c8 3d67b858 beb3e659 3fa9dd1d c00db66c c007ae2e c08af21e c0c3e66c 40fa9d1a c0d52a08 c0d79d37 c0298ece c007e8b9 3f0f5819 00000005 4006a3b3 3ea668be -> bfe2fa2a c1a19813 41feaf68 3f8ab30d 48e5975c 44235e69", + "41ea520c 423554bc 4229cb46 bf4b0a7b bf4f6913 c02e6470 4044290f 3f917c13 3dcccccd bbb0d1e0 3d1a61da beaeeb1b 4030aabc 3f391028 3ee13e60 408408c0 40ccac4a c0c44b0e c0a9b29d 3fcd8ae0 c03ad682 c035d735 bf0592c2 00000003 40102bd4 bf9626a7 -> bdbea3ef 3f867c78 3e4d8dc6 3f4435c6 424052e5 3da4ba21", + "410221b8 c10a060c 42390e2e 3f11f4ca bfdd6b31 bd882795 3fe94a5f 3fe0a818 00000000 3d25f222 3c3378ad 3edab8f6 be8df112 3df6e85a bfd7d834 3f823148 3e9cf860 3ff68138 c0cc7e21 c0c85af9 3fd2ad43 3fc5d382 c01e232e 00000005 bf7954c2 bf8a0d73 -> c14a78b9 4103845f c057fe12 3fb442ca 44c6d540 00000000", + "419649fc c241a51e bfb62c00 3ffc3400 bfb21c98 3f3fa4e0 4023f7a8 3eba1013 3dcccccd 3c727512 40208866 c01eb644 bf09b7a5 be84d9ce 3fa67058 bffc8fd0 c0d0b0c6 3f942e18 4072f008 c0ab6ff4 be711294 400e3230 4010c475 00000001 bf1fe14e 3f3414b6 -> bc66e773 3d038a61 3d2eafe0 3f109296 3b9ac6da 00000000", + "c1b2edd6 c1b99b2b 41f0154c 3db93da1 3f8a4853 bfc74a2c 3ff6a073 3e975e66 3dcccccd bbe12db3 408770e8 3f82236a bf94b110 4005000f c0862cf3 3f4cefb0 40ee55e0 4056c1a8 3e9c8a60 40634758 c017e33f 401bb399 bf2a59d1 00000006 3fcc2ff1 bf71f954 -> 3d3faba0 be0e32c3 bdb84b04 3eb769c3 3e274b4a 00000000", + "c1a45ef8 c219ad6b c14dd6f8 be8e40a4 bf7f46bd bf86deae 3fc1ea90 3ff27ddc 3ca3d70a bfbcd6f8 3e9b1dd7 bef6e0c6 3f870a9a bef8a6d7 403dbeb4 bf9ee7b0 bf76f7f0 409cec54 c0fbfcaa c0f01dcd 3feb7f80 4025a4ee c0133ee6 00000007 c0031539 3f14e4e7 -> c1d09605 42132dc6 c0a6f3de 3ff8a2b6 48e5de65 431c197c", + "41ac900c 40efc048 c23f71f8 3f020faf 3e8af1a7 3f021472 3f73d7a3 3fec10c0 3dcccccd bd87feb0 40121016 bfb5aaed bfce7b72 3da9f597 3fff3ef8 c0457a84 3f5f5b30 4060984c 3fcd8f18 40ffde76 be39a45f bfcab762 c0265233 00000008 3f0ad820 3ee403ea -> bd86c735 3db694fa be04a3c2 3fa54d87 3e0fac30 00000000", + "41b2480c 41e7c140 40930ac8 3f9739f8 3db9cdcd bedb4306 3fa55f7f 3fccfebf 3ca3d70a 3fecdbd7 41bf960a beb5d4ca beda53c7 3ebdc061 4081c802 c08c6792 3fbcde80 c0ce2bd6 3f94c750 40d3e0ce 3f675068 bf949da7 40197aff 00000005 bfbb34c7 be3aa7ce -> bf42a57e 4083b8fe 407b8299 3ed8a6be 439abdb1 3ca80fb6", + "c1db83dd 4061bdf0 41dff8f4 bf24f048 3ea0ea7c beb8f821 3f53cec4 3e7c2c40 3dcccccd 3bce21e1 41f1601a c018a39a 3f6c577f 3f319f0e 4080949e c01808ee 4058a120 c08df236 c0b3c680 c0681634 3e962d1e 3e480314 be132509 00000001 403d25ac 3ea8147c -> 3ba1555e 3c37d8c3 3b3016db 3e67cfac 3aaca449 00000000", + "c1d94843 beed3d00 4106e780 bfb468a2 bf6ce940 40035ec4 405db8b8 3fceda33 3f000000 3aa13dca 3d3e0809 bf0f9485 402031a3 bea7fdc6 3f9fbed0 408bd5c2 c076bb0e c060e40e 40e8ea9c bf1266e8 3ebf0759 40070519 c02b29b3 00000008 3f4cabc4 3e607af2 -> bb3c3d20 3c80e377 bbc34a63 3f93c09e 3d0cc930 00000000", + "c22dd7a5 41f46eb0 41140788 bea13bdd c0148929 3f87873a 40256f85 3e154f86 3dcccccd bdb250a0 3f302598 3f65f673 3f125287 bf8d727a 400e3268 40d15c7a 406c154c bf5bde00 40e76fd4 4032928c bfc2c2df bfe36239 be03ce1d 00000001 c0288828 3e5c8ed0 -> 3da46b6d 3e5637e6 be99d29c 3f55104e 3edd2481 00000000", + "c1ac2e5e 42032226 c184335e bf8cd11e bfaf3d4b 3f4ec37c 3ffa54ea 3f90a2f0 3ca3d70a 3ca3e626 3c343112 be92bac3 bf4fdbea 403746f6 beda2e70 bf0d6c30 408cb95a c060ffae 40bc18e2 c0950fea 3fda67ed bfda0de7 bf98a046 00000001 bf55c9f7 be1a9a94 -> bd22f3be be19afeb 3ee7451e 3f6fedb2 433823bb 3db09d16", + "41a81e18 4215ced2 c15e044c 3f275b3f bebd379d bf8b46d0 3fac0080 3f8ac1ab 3ca3d70a bfeeb6a7 40094ee5 3eb6b6fa 3e2ae8d6 3fbdcb51 c0292786 40c0a83c c03b710e c0441efa c08f43b9 c09ea83b becc82ce 3f168d1c 402d87c5 00000001 bf80d21e bf16eada -> 40432b85 3f69be54 bf4eabca 3f7ba26b 4302dc39 3e17bd9c", + "c18074ea 41d60cd8 c115cf98 3e5037ad 3db79ea7 3e0a7d7f 3f9260fd 3fe22915 3f000000 3fbc534b 40862ffc bf89538c 3f9c325e 3f018d4a bf3ed4e8 bf777a30 c03a0970 406e9454 bff51dd0 c02954ee c002717f 4032267d bf39c3c9 00000008 3faaf710 3e40486e -> 4037f41e 3fd0fe22 4052229a 3f76086c 43351852 41a80a1e", + "bffc46e0 3f467080 bfa0e1a0 3d9a5b52 be9270ab 3ff52774 3ff80f6e 3cf9bc60 00000000 4054ea47 41a5090d 3f08aab7 be7c9a1b be73a7d3 3d49e100 40ca0b46 409d1e14 3f0411d0 c0bb73b4 c06dcaca 3f911b80 4010555a bfbe8a51 00000007 bf778ff0 be1b635d -> 4041b15f bf9d6ab8 41048ac0 3e66f4a8 43c1a39d 00000000", + "c20ae504 beeccb80 4244a5ee bd8d3ac0 bee26391 be0299ae 3eee3fca 3dc74147 00000000 3b90f8d4 3c70428b bf9cf86c 3fa6ca69 3fe3bcfd 3f87d8a0 be474400 c0c2dac7 40ce524e 402a3444 c0deb7b6 3ea55deb bf126f52 c03502b3 00000007 3f77e5ba 3f831a89 -> befd0292 3f067cac 3f308159 40b41102 413be292 00000000", + "40f148d8 3fa7b500 40f36488 3f97e39b 3dc14a0e bfb45c45 4010477a 3f51cf1b 3f000000 bf0ca859 422b75a3 bfc59f20 bfb307b6 bf34daa7 40dc4ac4 40c83bc6 c0c71f41 409f3a3e c031099e 3fc08e50 be9779c0 bf890c2a 3fccf6f4 00000008 3fed5a52 3ed91803 -> be18834a bf8edfd2 4020ddf0 3fbf0103 44320a80 4435c9c6", + "41f73a54 c1cfac7a 4209339a 3ed8e695 3e913522 bc887e2d 3f029454 3f8c2d8b 00000000 3da20ab4 3e2e6b4b 3f7445df bfd7cb0c 3f17299d 40c29e12 40ad69c0 404e74dc 3f46c910 3f9dda00 40ee972e 4018c2e8 bf3b32d3 c0261f0a 00000003 4021d5c4 3efaaf25 -> bf2b0460 40111965 bf057306 3f71b0f9 429f1e06 00000000", + "c230ba00 c23f913f c23b614d bec94484 40152eb4 3d6f3f0e 401755cb 3eb45334 00000000 3f6762f1 40c1555a 3f7e2408 c0028c96 3ef1284d 40a5c072 bf373618 40d06054 c044da0a c0d8af2e 40a72e60 3ffaaed2 bf91c44b 3f883d5d 00000008 bfd64a97 3edd4040 -> 3f168e85 3e6f6218 bf954401 3fa3fb7c 43dd8231 00000000", + "4001cee0 c22517e4 41305d84 bf030fd2 3d9b14b7 3da4c4c0 3f35e1ed 3fef0483 3dcccccd 3ab33176 42bddaff bf2f2f28 bf81dce1 3f31abc1 c08df16a 40d723a2 bfde057c 403be448 406fa384 40fff258 3fd9c322 bfcf8538 3ffd33c4 00000007 c02274ea 3ea77d3f -> 3b7b136a bb8c52aa bb22bb35 3f8822c7 3c1e32f6 00000000", + "420cf0f8 c22048be c2390d07 3e00e24c bd0c4d74 3ed7bc10 3eed030e 3f8bb3ed 3ca3d70a 3f841c85 3fdd8aae bfd5db97 bfcbea89 3f7b098b 40eebae8 c007f0d8 bf813054 c0bf3dcb 40b68838 40910a26 40397c29 bf661dd7 403d800c 00000002 bf791000 bf323e3e -> 40078a08 be148fc8 3ed38f14 3edacbb6 4239099a 00000000", + "40746710 c1fb3287 bf5ce3c0 bfbc2d12 bf5b1eb5 bf138c28 3fe71c67 3ef13e39 3ca3d70a bf6739cd 411da0c0 3f08e726 3f38b569 c01a38f7 40a92822 c03232c4 beb49d60 4020df10 3f9590e8 c0e5b090 c00448ce 3e897f6e bfbfd22f 00000002 c018d2e6 bf8f96b5 -> 40fae6a5 bfd602c8 3fa4d747 bcaa4da0 43a4eb4f 3d8a2fca", + "c1f4273f bfeed700 c1b33f21 be858480 bfe697cf 3e87f297 3ff196c1 3ef511b2 3dcccccd c0f03c1f 3e5149d9 3ed9151a 4031776c be81e7fb 400f6cdc 407d5244 bfad3ffc 40313ec0 3fd4a270 bed1d170 bf94c083 be4e3a32 40326c3f 00000004 c0052040 3ef221cd -> bf6e0230 42242f20 41d51e46 3f8bab8b 4990cc6c 4720ee63", + "c1fdbb19 41d28878 42236faa 3f8bf76e bf125524 c005da28 401ef97e 3f0e915d 3dcccccd be8f9d15 40ac8504 bf8fe3b1 3e7e7e2a bf90a6b5 c00b23a0 3e040900 bddf8800 be2dc0a0 c0eaa6c0 40f74b56 3f996baa 3ece0c6f 403edf91 00000002 40156d15 bec7590c -> bebc7521 bd4fe418 3e838c32 3f2997d9 4154305c 3f20e6e1", + "4233c5d0 c1fa4197 c246a55b 3fa7d7c8 bf95e510 3ed24919 3fe77140 3e0c3942 3ca3d70a bfa36b9e 4253025f 3f00b7b4 c025eeff 3e885fe4 4008572c 3fcbbd28 c0729fdc 4038fd48 c091dc28 3f670670 bf4cd0f2 3fa43abf bf0cb1e3 00000001 bf378ccc 3f19e0ae -> 3f5d9067 3e101a13 bfc94457 3f751eb8 42799f1d 00000000", + "40467c20 c1158f5c bdbf8200 bf82d1e1 3f2b89b1 3f0f5481 3fbb831c 3f9a7b45 3dcccccd 3f06abd8 3d316d3a 3f431ea2 3e938cdb bff9a866 3fc84ae0 bcfde100 40aa10c8 40b3a468 40ab1682 40ef5ba0 3ff6c5d0 3fd1d5ad 3fe3913d 00000001 c0102718 bf95b213 -> c1853667 c0c40233 42315bd7 3f32d792 460039d8 42cf6c9f", + "c22b099c 420535cc 421c43f4 3e824856 bf4695db bfb8c57f 3fd648a7 3f48f2fc 3ca3d70a bfde71c7 3e096abc be8fb255 bef95d2d be369972 bf7d5200 408712dc 401a6730 c05a3938 40fd5436 c011dfc2 bee78393 4029421c bfde6e7a 00000008 40053a37 be559d3c -> c01eb491 c00ba064 c014ba43 3f42c1b5 4752548d 42105219", + "3eacb900 c1656ac8 41df234c 3f90934f bfb9e5a2 3eaa3271 3ff82106 3e0d12d7 3f000000 3e731932 406e3dba bf89e6dd 400e1969 3f7af565 c090867a 40b0165c befc3710 3feff8d0 40c58432 3f916828 3fd2ad37 3fa88a40 3f69ee30 00000005 bfb6d3ec bf06e7c3 -> 3fa86cca 3f8db435 bf2940ce bbffac98 4191c038 411a1690", + "c17675f8 423de1ce c1ade794 3ee7205d bf35bc83 402b8642 4035d91e 3fcf2ae4 3ca3d70a 3ea8bc56 3df8ace5 bf3aff6d bf48dc05 3ffc4a10 3f13c300 c0bba0c0 c05d2534 bf2934a8 c0eb094a bfdf37ec 3fd73da3 bf837353 be4e2e5a 00000007 bf257d20 bf152aa3 -> 3facf8d8 3f95249a c04f20b8 3f432b62 4406f9f2 3f87f013", + "c1f60fb0 c0828048 c23d74c6 3e09e1bd 3e9a4f96 bf6f33c4 3f7e74d3 3e192b89 3ca3d70a c0da9fd4 3cbe2437 bdccd08e 4009e073 3fec0ead 40fd27bc c03347a4 40dc938e 401943e4 40a6dd4c 40f554e0 3ffc2259 bfcee7e5 bfc79531 00000002 bfae25e3 3ec1f232 -> c20daff4 43960a11 4382c584 3f9e106f 4afa47c7 449dfdd9", + "c21782da c1cfa990 41e9a100 bf7f1cdd 3f18ec94 c00bb281 401f1efb 3f2d3b48 3ca3d70a 3cd139a7 41088dd9 bf11bf1b c01700de 3fdf8f61 bf214370 407d2a0c c00c3be6 bfd555dc 407d2470 bf89bf9c c00ae3ac c0153a80 3fa1fcec 00000008 bf900ad0 3f591078 -> 3c0da248 bcd9fa20 bd02d9aa 4076220d 3e284629 00000000", + "41598db4 407d6c70 c22ab723 3f2f5771 3ffd68b5 3fc4da70 4033c154 3ed6e9cc 3f000000 bba34626 41b36d0b 3fccc02c befb159b bed8270a bea6a1b0 bfb28b10 c0fbc5f8 c09e4a30 3fc8d718 4082e77c 40027da8 bdf6d107 40127020 00000007 c015736e 3f90afdc -> 3f907e32 3d7ba320 407d65fa 40d73ae2 42b4d8f5 43286cc8", + "c1eda4fa c120827c c144c7f0 bd68b357 3f8ff218 bfe638fc 4012be40 3fdab1fb 3dcccccd c077a003 409dee32 bf51b051 3fdb117f 3f3cbcdc 40987bd6 c0b75db4 c066d11a 40e42180 40d38276 3fcc0ac8 3fc3347a c0222e3a 3ffdf249 00000006 3fc7d313 bf1715d3 -> 3f946570 c0339098 40fd040c 3e4695fc 46693784 44363433", + "41d7ac00 4224c4a0 c20ad69d 3f349a29 c0069414 bf89bfbd 401dc6f2 3ea86d39 00000000 bee63c74 404d300b beafbcb1 4035abce 3f2af444 c0a4954c c095fa72 c08f32f0 c0df5f7c c0cff5c8 40815338 bf13170d 3fb7dabf 3f98a87e 00000004 3f9c06f6 3f8ac415 -> 405dc1b2 3e8a037a 3f45ace0 4031fe46 425f75d6 00000000", + "41adc838 c1ac282e c1ee25cc 3ee586b2 3f3c86c3 bfdfa635 3ffb587c 3f4333f2 3ca3d70a 401e3cee 40a17629 3f375e56 3f9df7c3 3ed6f8c1 40f03cee 40f69590 408db662 40e14096 408a7234 40a41b64 3ed36d57 3f7d1d54 401a17bf 00000003 c037d2b0 3f807ad2 -> c1df82f0 413bb820 c0986653 3fe03fba 46cee0a6 4219b155", + "41b960e0 41d4221c 416b0170 3fafdd80 beb766c4 3ff36ff0 4019ccaa 3e98154b 3dcccccd 3d070e73 40379194 c0090a6d bd3219af bfee05b6 3f8f9ad0 3f11aef0 c095179e 3fa5be40 40258a58 c0d44136 c01ccd47 bed6c52e bfeba6c6 00000007 bfc7e41f 3f6a724d -> beb7136e 3ebd6c4c 3f10366c 408eb558 414bc86e 3e25cce1", + "42294be0 c134b8f0 bd151400 bf1064eb bed09957 40057fbf 400cbaee 3e8ab696 00000000 c0da59bc 3fdc1971 bf1e563d 3f1285ed be984f84 bf804950 40e67fe8 3fc95678 c07c3b2e 406aac8c 3fd87bd0 3e49cf20 3fae8939 3fa358a3 00000004 bfcc2f12 bf8a3f1f -> 400bbd40 c23d165c 421087d3 be1dcb38 471350a6 00000000", + "c1216d1c 41aeb718 c1526560 be95e283 3f461880 3f80e248 3fa9b84f 3f917d41 3ca3d70a be45c4c6 41108b3d bf4f9f11 bfb904db bf984429 c0e4461c 40a3edce 408357e8 40c27dae 40d3560e 404be218 c01bc57c 3e97cced 402a1c99 00000001 bf5073b4 bf90f350 -> 3db2d706 3e600727 be80b885 3f19376a 3f2915a2 00000000", + "c203f577 42364fcc c18c7174 bf31a700 3f66eeb6 3fc343ae 40026539 3fabb527 3dcccccd be0b0d7e 3ce1ca82 3f80790f 3e427746 bfd26ea5 c019114e c0cadc62 40c15c36 40eac0b6 40a6e55c 40cb9ae2 4005a81b 40388d92 403d7aaa 00000002 bf6c257e 3f0d0aa6 -> 408f9d3f 3f59a114 c0f6b52e 3f7a1baa 44f7f8da 4283a852", + "c0d639d0 3f958360 c1ac930c bebc9f73 bed4b607 3e148cd4 3f133d90 3d80657e 3ca3d70a 408444d0 3de262e5 c00ed154 bf3bca69 bf92ea94 40d55dc8 c0df3bc0 40bb20f8 c06b9162 c050a92e 401df2c0 3e43b721 3f62ede7 40351177 00000004 403a2827 3e98a699 -> 42244f14 4185494c 422bb1e4 3f8bb854 49f64fc0 432e4f5a", + "bfbf7aa0 c1b7f8f7 c1007e98 3e8ee766 bf63b00e be61d038 3f7c4a59 3e8d5bdf 3dcccccd bdbde0d0 408b1b5d 3f54d221 3f2e31ee bf8761e9 c02f8390 402b3a44 c0b25b03 c0a41f82 40b9c89c 3fb51840 3f349ef1 3fbca3eb 40257d24 00000006 bf14e574 bdddb3eb -> 3d04c3d8 bd482408 3d0dd9d5 3f2bf7d4 3e89e5d9 00000000", + "41c8f5ac c18813ca 42359962 be3c07bf be771792 3eb7c397 3ef090ba 3fe58e47 00000000 3e47e434 3fa33370 c00aadf7 beae0e57 bfdc87ba 40c908fc 40e47d4a c0b375fa 40f6bc68 4098ca7e c0bbe7ac c02f17ed 3f5d52ed c03e0c40 00000005 bf5f43e3 3f975806 -> be4bcc74 bf089912 bf85faa0 4073e0d0 40808138 00000000", + "424660b6 415a6198 421fc8b4 3f878036 3f12a37c c012ed0e 402cf115 3e617b2e 3f000000 bce50c74 3eeb9752 3e80a002 3ea547b4 beadc5ea c09654e0 409fa95a bf8fc4ec 407e35a4 409671fa c0d0667c 4023a237 3f6a5c44 c02789b8 00000001 3fd95a5e be725210 -> bda85bea 3d37cb87 3ceeed3c 3f3a93de 3e5260ec 00000000", + "41a1647c 41b63494 c2106df9 3f6804c5 bf4d99e6 bfd44635 40054ba3 3fbb6428 3ca3d70a c0513461 425cf399 3c56395a 3fd0e63c bfbaf301 c0fe7d97 3f13b8f0 40b8d8e4 c0e6a2f0 c0adda50 40f00afe 40040e75 c0324bbc bf2ad2cb 00000005 c0117b96 3f7dfd3a -> 42174b6f c33e57a9 c34dc06e 405e9e5a 48f91204 44591766", + "c21ce6e8 c1bca152 c1d508ae bfa161ee 3fd0b89b bfe33641 40346a96 3f7ceaa4 3dcccccd bd7e12d5 3ef3c2ad 400b6112 bead4de9 be075537 c068e484 402285d8 c0fe4b5a 40f9dac0 40ba9ec0 c0c19a76 c03441b8 3eee70a2 bfd8e614 00000007 c020a6a0 be5bf82e -> be42993d 3da93c9a 3e1faebb 3f420456 4199690a 3f6ae662", + "c2224066 c1af1196 419b89d8 bf784bda 3f25228e bf4742cd 3fb3526f 3f510742 00000000 3d8843d5 4005a01b bec472d9 bfbb5175 3f60f79f 40add0f4 3fec3f68 beb24c20 40af1e90 40cfdabe 402d4a70 3e9e6fd8 3fa85078 3f13e66a 00000007 c02965aa 3eb2a887 -> bd9bfb97 bd96161f bd82e061 3fa29121 42437d84 00000000", + "c1d676b8 c13450c0 c2261d0a bef31efd 3fc87eec 3ef0b11b 3fd9f9e3 3fce80fd 00000000 410a58d7 42871523 bc32e252 bf6ad891 bf8fe30c 409c5f42 bf8cd934 c06ac8c4 bf83891c 4037cab8 40e062f6 bf53c6d8 3fb0e675 bf47c704 00000003 bf8d7fd8 be2cecee -> 4079b264 4127fe0a c103f9a5 3ee02aca 44d78dec 00000000", + "c1755a34 41f6cd7c c20ee96b 3f25cd57 bf37e706 bd4de917 3f77f195 3fb52e6c 00000000 c0eb5e51 4021f711 3fbb3978 be9b6155 3fec1955 c0e36714 bf3307b8 c0564386 bf5e7740 40e06d90 c0a0c9f8 3fcb6603 3fc48c30 bf8da881 00000004 c03b7132 bed9b901 -> 42819343 c060c740 c2447eee 3ee4d0de 476de4ba 3c6c7f20", + "c1730440 415f9b7c c20f427b 3f985376 3ec1efab 3fdd63df 4014f45d 3ff862b8 3dcccccd bd4c8e33 4032861d bfdaef8a bfa75c39 bfea9eab 409681b6 c00e5e3c bf88fe00 4073d1b0 c0c5bb67 c098ef3a 400ee8ed 3fa4dc03 bf8d31b4 00000004 bfafe4e2 3f57c168 -> be4b0186 3d095dac 3da105db 400ea3ad 3f6c5a95 00000000", + "c146f5dc 3f8a6800 4184164c 3f6acaaa bfb0fe52 bff546b1 40244b6d 3fcee1ee 3ca3d70a bff011ca 4063b010 3fb474e2 3f9aa3f1 400aaf07 40f1c8a2 40323af4 407501bc bee50350 40db6f92 c0fdb14a 3fa09ba0 3fedac24 3fc8ecbc 00000006 402478e5 3f513bc7 -> 41ea80d4 c2581071 c10fcb00 402586ab 49865fb0 4510428b", + "c1d4a3c2 41e980e8 c203bcaf bd301c4b bd7ba3ba be5ed535 3e6bb111 3fd6df9f 00000000 3acd1104 3e1872f7 bf370aec bc570408 3fdd0b41 c023e018 bfd6ac74 bf110158 c0e544c0 c08ac5e4 3f6441a0 bfd7d4f0 bfd06e83 bf5107ca 00000004 3fa6187d bee02c39 -> bc7d3db4 3a437ef8 3d36c523 3edca53e 3c0eb56e 00000000", + "415e9658 40a013e0 3fc57180 3f2699ee bf7211e6 40069a7d 401958c1 3ece4e1b 00000000 bab33a04 3c639795 bf32ad7f 4013b460 3f91931f c0efb5fc 40ff278a 40de2e44 c09e1e9c c0da67df 40f2c4be 3f47d353 3ec75bc9 bf5d9a2c 00000004 bfe03272 be134208 -> 3d125aad bde91169 bd53cc84 3f3224de 3ec05419 00000000", + "c16e83d0 42042352 c122c750 bf95d12d bfeed5e9 3fd81749 40319c75 3f94518e 00000000 bb347d4e 3fcecbd3 bf836979 bf2cac70 3f87ad7b be164880 c0ea4e73 40dfec10 40e2891c 408646a0 bfeef8ac bf413682 3ff61851 bf5b9887 00000002 bf66d6dc 3eb2e62e -> 3b31deaa 3bb9909e 3bed17a5 3f1e6015 39918001 00000000", + "42269fc2 c1711870 c1f91a4d 3f9c026b 3f4e398c c01c803c 40364e39 3fd78c82 00000000 3fa31418 40c3cc5a 3f67b4d7 3f8b7f43 3f8faedb 407e4158 c0b4a6be 40e450ac c0a78f4e bfd9a92c 3e14d080 bf122cd0 403bc438 c02f910d 00000006 bf9087f6 3f1033d0 -> 403a37fc c02ff588 bd9022da 3fca2654 42fb2282 00000000", + "42242ee2 41bba57c c216fb90 bf0bc2b9 bf9d73b9 be8b34f1 3fb17c26 3f2e34b0 3ca3d70a c027ca51 41cf1d93 becbe7fc bf2b2fe1 3e35b269 405d1274 bf54a9d0 400cd6f0 c0cbf4ae 4007cc20 bf614268 c035d4ee 400fb104 401ca604 00000003 40310264 3eef716a -> bd642200 40708dae 4155d8a3 3fb3fdf5 45cfa8e8 4003618a", + "4234fbfc c2122ff2 c1beddcf bf846681 3fa0c25c 3f820b44 40027e10 3f9a8d3a 3dcccccd 3b3ce2bf 3c7525e2 bfac5028 3f987c0c 3fffcf05 c0eb7841 402c6edc bfec0648 3fbf2ce8 c0c8c9ea 3fa28838 be8f0921 befce5e2 3f7cc1fa 00000005 bf3d522c bec87b61 -> 3dc3bcdc bdbabd2f be12751d 3f0419d6 4024b9a0 00000000", + "4104c9f8 41a5b7fc 4143b1e0 3ccd6849 3e3b9ce8 bf132247 3f1ee2b6 3f582a4b 3ca3d70a bd1b6c92 3fe42ad2 3fd088bc bed718e4 bfea25ae 3fca08b8 40e55822 400d8458 c0aaa5dc c079e134 c0ed0298 bf8448e8 c00fde83 3e933a6c 00000005 c03dbdf8 3ecd25ba -> be227229 3d45882e bd31c577 3fa67293 41506870 00000000", + "c2415e3f 420a58f4 c15e6b38 3fbabbe5 bee0d915 3db67f44 3fc44699 3eba4314 3ca3d70a bc2e36cf 3c6737a0 3ffac37f 3faa6173 bfb48235 c02c0b1c 3ff38700 c0d3760e 40f3e2dc 3ed2dd80 c0bee1e9 3fe665af 402c1ed1 402d0934 00000003 402ecc9f 3f026d94 -> bffca0ee bfa8a864 3fb24e56 3fa6ee44 4411ca7b 3de29426", + "41311d5c 42476422 4175b460 3e06c431 3e912ee1 3e18eedf 3eb162cc 3f883ca7 00000000 be71d6b9 3ed724da bf0cdc75 3d8dab3d 3d75dd7d 404a2910 c0fba821 40b0fbe6 c0e93675 40b9daf0 c0d310d3 3ff00ac3 bf9ebf7b 4001bfa3 00000005 3f8eb6b0 3f958453 -> 40d5d4da bcbc7b40 c0148ef2 409cc645 42c9293e 00000000", + "41849800 c188d01c 41c72b04 bdd28ae4 beedfee5 bf837164 3f90e18e 3f3f55f0 00000000 3b0d2fc8 4236f87d bf39e059 3f2e8b81 3f74e94f 409bab14 4004ea5c c0dfa028 3f15b8f0 40bd0658 40f00d4c c03d5e5d 3fd6171b 3f14477a 00000008 4023bcd8 beb3a626 -> 3c1191c1 bb1feb74 3c0b933a 3f428fb6 3da36fdc 00000000", + "422b6520 41258304 c0839c80 bf7be9f9 bf5e6f5d be832d17 3fb0ec81 3db71d93 3f000000 bab888e5 3d2777da bffc2caa 3fcdc7ff bfbf07b1 bfad3168 406be260 c0b132a1 3f177070 3f3a7250 c03e6f00 402b13e6 403e9444 403f1752 00000005 3fc9b537 3e80067b -> ba77e11a 3bb8a89f bae78866 3f9248c4 3e00dfe5 3aeaa69b", + "41d93ec4 422da77c c2100d66 3f52fd44 3febeba3 3fa7c7f0 401c2757 3fd15b5a 3ca3d70a c08b04fe 3c9ab5f4 3f64b957 3f00166b 3e8499d1 c0318716 c0d2f8c4 c03076c4 40aaf1a8 bee4d250 c01196bc bf93badc bfc7a3c4 401329e9 00000003 4038f474 bf67d4d5 -> c56ce0f4 c5053dc2 c4891c8e 3f0ccf21 4d38aa8b 48af23ac", + "c1929f8e 41790590 bd960400 401c4ee9 bef7d899 bf905fa8 40316b2a 3ec68420 3dcccccd 3e2351d4 3d8250a0 bf11a5ca be6aff5d 3e360e5b 3fb5bef8 406b31b0 bf6c5108 be5bcca0 3f9523a8 be3fd840 bfbe3742 3f6faee8 bf6227f9 00000004 3fd683e2 3f187ba5 -> 40594256 3f654700 bed6cbe8 3f9fc85b 455dd8d8 43679f29", + "40653cc0 41fa519c c2431b4d 3eec3129 3fc4bc98 bf3584e5 3fe13e56 3e87c466 3ca3d70a 4047c965 3d3a6a63 bf948db3 bf1fca65 bf84aa3d 40f42854 c0860ed1 3fb75a08 40ed70ea 40a2e562 3fa437d0 bfe25dd3 c0025cd0 3e6a13b4 00000007 bf12ee58 3f7ada76 -> c363268b c2e25afd c34d34a0 40995dd9 48bcadde 42ffb11b", + "42060ba2 c2181a78 41e2e484 3f9298b5 bfd5ea1c bf6b356e 4048300d 3fe741dc 3f000000 3b27c028 423a8cc6 bec5937d 3f22c857 3f807614 3fe5bac8 40d1014c 40e06ba6 c034bf4c 40a3aa92 40217fb8 40396fc4 3df08d77 3fb28b80 00000003 40099c68 bf32bfca -> bb131d2c 3b94b2a7 bb43e70f 3f9c4e3e 3b4883f5 3c04918b", + "41d5de38 c1ada306 42039892 bfdd6bd1 bfaa73dd bee8d71e 403bc376 3fb43217 3f000000 3a946acd 3f963133 be85f94a becba2e1 be643b88 c0aa4450 bfdf4a84 40c9c04e c0131930 bf47dfe0 3f835170 bf538f19 be8d9115 40279934 00000007 3f031cfa be896c82 -> 3a026a39 39981093 ba5dbea0 3e3ebb35 3836a673 00000000", + "4195aa60 41b06974 c21ceea8 3f58b126 bf4c74e6 bf2c6c1f 3fad0ed5 3d97abcd 3dcccccd be1939cb 41426600 3f2ab0e4 3f134efd bf4d326f 3f79a300 c07f9092 4011104c c0d31088 40b2fae8 c0513bd8 c03c3727 40211be6 bfcb09c4 00000005 3f7ce6ae bf1e3a1b -> 3d4b7df4 be7b82fa bdfd8add 3ed9abbe 40062b0e 3c839832", + "41afca98 c0f0ba90 c15c98ac 3ed180bb 3f8070f1 3fdea70b 4012bfa5 3ef96064 3f000000 bb40db89 3f0a9a78 3e08c4f6 3f662756 bf9ec6fa 40fe6132 c093367a 3fbd2668 40305d14 c0dd1a7e c0a512be 3efa9ec6 3e6f1752 bfc093cd 00000004 bf844966 3eada52d -> 3a2173c0 ba484745 bbc58f13 3f243750 3ae80b11 00000000", + "41d094bc c202b819 c201aa2a bf7db73a 3f9b96e6 3f7d3b07 3fed5833 3ff07d68 00000000 bfd4b274 3fa8aeee bf09f985 3f958589 bcbeb2bc bf1afd58 c0976a28 c0edfad8 40ed87b2 beef1f80 40fb0eac bff86753 be018fb7 bf38c8ab 00000007 bf9c384c bf4064ae -> 40a21cf9 c07ba750 c0dcf284 3d2b8aaa 441ce254 00000000", + "c1ae9742 411b1700 c20d8743 bfda1baa bf8340a1 3fd19fa0 404a5212 3f95c42b 3f000000 4035279f 4291afee bff4e053 3f60a32b bed1ffd7 c06cb2a4 40f5c9ec 3e754840 3ec956a0 c01b3976 40dc8798 3f58755c 3f2d2388 3ef062db 00000002 bfe74772 3ec94537 -> 408605d2 41007456 c03fc0f4 3f34cb03 447e7cb4 44fa7761", + "c216ee85 c127f310 c1bb144f 3eb77b33 bfb32866 3ea24baf 3fbd55d5 3eb3f30c 00000000 40eb80bf 413c5bcc 3da00a8c 3f3c7390 bf5c0da6 c09c9d27 c083e545 c0664168 c0ceeafa c0d07cc7 40282d48 beb600df c02401e0 40308e26 00000005 40189521 3f8e03e2 -> c410da48 41c1ab28 4245c80d 406bcc9f 4a74ac64 00000000", + "3df8a600 41598410 42434180 3e827a58 be43e9b8 be55a288 3ed2928c 3fc27f6f 3ca3d70a be245184 41cd0868 3f34c621 3d445a60 bfce4ebc be93ea70 bd493980 bfb703bc bbadf400 40aea938 40dd1e1e 3fc4f850 c0152028 bf022156 00000004 bfef5367 3f97db24 -> 3ecd1490 bffaec2f 3e0b1778 405fa670 4244231a 00000000", + "41bdbcf4 41622840 c1ee87b1 3fa4e545 3fcf23cd be2dcbe8 400c034d 3f8fc47b 3dcccccd 3e161f66 42619d37 3eb3b58e 3f5f2465 401dcfcd 40344a08 4088201a c0b31977 c0cd9128 c0b95c18 40d06f64 bfd5894c 402ece16 bf7b814f 00000001 3f14f412 bee5526e -> beb98b0a 3d0c16dd 3d0af233 3ebf0216 3f6e13dd 00000000", + "c0ae7b30 c21d3785 c215d66e bf0fa51c 3f8fb861 3f431a42 3fea596c 3f398b34 3f000000 3f114470 3d345583 bf566182 bd9aa56d bf5dcbdf c0b532e2 c042b046 40ae6634 c0522c8e c09bd0e2 c098fdba 3f5cb1a1 c009ff86 40068ad1 00000003 3f9a3b1e bf0dd5a1 -> 4022dc59 bf1f6e19 40620d1c 3f296649 46b1063a 451be93a", + "415b0230 4210e88c 423e04be bd46ba60 3ca434f5 bf353c05 3f3e2716 3fd28434 3ca3d70a bc15ff6f 40747f9a bf010946 3f12bbf8 be6344b0 3f94efe0 40f56e6e bfbf48b8 40a32f82 40f13d52 c03a1644 c00ea8e5 bfa67b49 40133be3 00000001 403798f4 bf3f30f0 -> bc8654aa bc81c89b bc97d886 3f25dee3 3a89058f 00000000", + "4232537e c2118822 40c5caa0 bf8e31ff bfd0dd19 3f06d5c6 4002e188 3dc7c676 3ca3d70a be9d9aac 41171417 bfb892ab 40147a0d be061071 c0f2a4e8 c09788e7 3d808680 c096ec7d 40d0184a 3fabfe40 3f48c058 401a3a79 3eb9126d 00000007 40143588 3f41e7e3 -> 410c3cfe 409a2cba c0ccd5fa 400d21fe 46f550ea 4249a858", + "407f85f0 c1430d68 c146ae30 bf5a17da 3f809e1d beaf8ee2 3faf0aaf 3ea02383 3ca3d70a c0a71a2a 4269582d 3f429f25 bf6e1ac3 bf394a53 3e859220 3f139b00 4083f2a6 bf125398 c0b081b6 c082cbf4 bf13ad7e 3f0a4877 beae2505 00000001 3fb20b39 3f4f7f91 -> c00fa6f3 c0ef51fa 40e1db5d 3f1d8b80 44bda93e 3ebc96a6", + "c21935c3 c2468d13 c2177725 3ee5a1ca 3f464808 3f35170b 3fa3ce23 3e8e405a 3f000000 3c040ee5 419a36df 3f9c325c 3e962edd 3fc9c396 c094bc2c 405512d4 c0fcda26 c0b686c6 40cdcc9c c0b0fe28 be945c82 403cd347 bf99b9f9 00000003 3fb49022 3edec033 -> baa5bcfa 3c2a21bd 3a09f296 3f2cdd9e 3bb96438 00000000", + "c214748d c1dc96cf 420d9cd4 3f094d59 402de007 bd1b4e2c 40340513 3eddc881 3dcccccd 402650d2 3f8ffe67 becf807a bee210ec bd54483c 3fd82798 40778220 3fd19578 c0d2dbfc 3f8da4f8 3f7c65d0 c02ccefd 3e8c0c23 3ff7d0ee 00000005 401e66e2 bf5e4016 -> c2c2db8f 40d3d520 c1c7bd53 3f9c6fe2 48b4b6f6 46d05d5e", + "41f4bbc8 41545bc0 41b08a4c 3f1dd455 bfb98915 3f9eab0d 4012ce84 3f142fba 3f000000 bacab197 3ee544ae 3f0118c2 3f78e0c4 3fd9a379 c0a907da c0137ff8 3fe9d9d0 4049e2d4 c02e415c 40a1faa0 c011e17a bffc1409 3fc915dc 00000004 40252540 bf163326 -> 3c81b888 3cc9ca80 3d01ac32 3e87f86e 3d43603a 3cabb410", + "c1c6c2f9 423ffc58 422dc620 3fad3ff7 3c6cc92a bf0fa80f 3fbb8f01 3faf0e7a 00000000 bede19bb 3fadeba7 c0046d06 3f82d312 bf8e137f 40b3eab0 407d9c04 40e2f1b0 c054887a 406016a0 c09eb08a bfd8e72f 403b9891 be95fc09 00000005 3fec2f24 3f91d46e -> 4088b79c c0a2d686 40bb3c64 409215f7 44db3283 00000000", + "c10ba524 c22f602c c160b040 bea8bd09 3ddeb0d7 be8018a2 3edb0b8a 3fbc02a8 00000000 3e37dd5b 40d74659 3f986756 3fb2228f bd9fbced c0b87494 40509e2c c08a1e22 3f8dc790 c0595346 c0f2d506 3f46e0b2 bfac97dc bf1603eb 00000004 40396822 3f4b22e1 -> 40043b50 bfec2a47 c09b9a66 3ffb9912 439bc3b3 00000000", + "41bb4080 c1987c4b c0e9b150 3fc933c7 3de43987 bf971892 40040060 3f6f971e 3dcccccd bc635862 3d298882 bf67aaf7 400e205b becf2411 c0e63b1d bf9aa8d4 c08a05a1 3f726780 40ad77de 402f57d0 3fea7d3f 3fa8c63d 3fa3413b 00000006 3f9e1aa2 be93c726 -> 3c5b8c21 bd92a1b7 3c1df783 3f173ea7 41317dc2 3abf439e", + "41a12408 40734380 3fa48300 bccd64bd 3e781408 3e9e81a1 3ec9ae0b 3ec2bc4e 00000000 bea0258f 426dad90 c02d4d77 3f70e878 bf60d080 40983a14 4093c36a c080e544 4049929c bff50968 c0d777e7 3f94ca0e 401ff7c0 400a45af 00000005 40390b96 be13e8e9 -> 3e1bfc00 3ece6bd7 bd8e17d5 3f56a3ca 41842974 00000000", + "412b6f40 c1953156 3f41ba80 bfb9da99 3e6951a1 401cc5b6 404235a9 3fe3a835 3dcccccd 3e86da80 3d4e1eb5 4027ba2f bf053e7a 3f9d34e4 c06afaf6 3fd57cd0 c07e8ec0 40a21dd4 3e0bed00 405a1a80 bf0d7fc5 3e770e98 bfec1039 00000002 400bd496 bed78fd7 -> c0666ba0 3f77e0c6 c023292a 3ed58d64 458f5e1a 42496d16" + ] + }, + { + "glsl": "vec4 cultmath_snoise_grad(vec3)", + "tolerance": "ulp-bounded, coordinate bands 1e-4 to 1e2", + "check": "Read at the case's point x, with S = |x|_1 and (e_n, e_g, e_h) = math.span_slack(math.span_rounding(1, x, zero stage, 0, 0, 0)), against the kernel's exact values in double: |n - n_exact| <= e_n and |g - g_exact|_2 <= e_g for snoise_grad, ||H - H_exact||_F <= e_h for snoise_hessian, no tolerance. Report the largest fraction of each allowance per decade of S and the largest absolute error at S < 1e-2.", + "cases": [ + "be75a604 be2cd0f6 bec9cb7f -> 3fdfb0f4 3d9e436c 3fd65e37 3e535038", + "c0ab35b7 c0a11e6e 404d5b3e -> bf883f0d bfaf2b40 3f31b66e bbf74642", + "be1ceb4d bfb590d6 3f7d970b -> bf066b82 c05400c2 3f454058 be907cf8", + "3a7b1b76 ba15be78 3acdf715 -> 3f0adcea 3f0accdb c0d03a32 bc2419c2", + "bf728edd 3ed08ec9 3f5599ac -> 3f4fffd9 c00220d4 be92c170 3d9dc65c", + "40559e65 bfde3409 4076309c -> 3d45f141 bfde64c7 bf40a99e bd00c736", + "3c29cfa9 bcfb3c46 badebd49 -> 3f09a98f 3f09ab9b c0ce7f14 3847374e", + "40dcbed8 402cf4b7 4193e5d8 -> bf0eaed5 bf520326 c01a03ee bea36022", + "4137a6f5 bfcfd4df c03465f3 -> beb37ae2 3f9ffc9e c01b5054 bec7253c", + "3a155ee8 ba80c1c1 3b0311e9 -> 3f0ada53 3f0ac4c7 c0d03821 bc58e49c", + "3b06256c 39d1ea08 ba2c1fe9 -> 3f0ac68a 3f0ad035 c0d03b55 3bb77f9b", + "befa2a8b bf426e76 bf2a52e9 -> 3ffeb7fd 3dc97047 3fccabcf 3e9d71c0", + "3f8189a1 bece33ce be9fc317 -> 3fbc018a bf103e5b c00db573 bf133198", + "bdb359f8 3da07864 bd23d0de -> 3f4dd8e5 3e3fa200 c0b2f9f6 3e66a11a", + "3b6fe2a0 3b452b50 3b0fb4ac -> 3f0af50a 3f0aedc3 c0d02f29 bc2e8074", + "ba543d6f 3a115db1 3a2894d3 -> 3f0acfdb 3f0ad60a c0d03ce6 bb8da9d6", + "3ab11cd6 3baee4ea bc90e2a5 -> 3f09ca99 3f07db64 c0ce9905 3df2792e", + "40020f55 bfeb17b5 4067297f -> 3f887496 4007728c bfb1568b be803cc9", + "3a56adb0 3912d92f ba90a931 -> 3f0accc2 3f0ad23e c0d03beb 3bfc6479", + "b96ebcfe 38ef76f5 396a934f -> 3f0ad384 3f0ad410 c0d03dc0 bac6e27a", + "3a78aced 3a88a028 3ab30b9a -> 3f0ada97 3f0adb5c c0d03acf bbffe61b", + "4120529e bf7d3af8 c1943c96 -> bfdb9f04 bfc14c24 3f386ac8 be86d662", + "becf4a66 3ed6d0b9 be232c02 -> 3fab046b 40156a10 be429f73 3e36c3e8", + "3ac62fa7 3c6f5ab7 3b5c870a -> 3f0aa83c 3f0b5ca8 c0cfd74b bc572597", + "be1b845c bc8ed1fe 3e5f399c -> c0020678 bd137e83 3d9b4cb6 bf504d9e", + "c1d81630 c00d23be c1d72536 -> c01fbf4c 3d7ebd09 bd36769e 3ec5b400", + "c00542bf 4022645b c05b083c -> bf702345 3ff34239 3f4c787d 3ecd674e", + "3efde8b2 c109bd48 c10380cb -> 40133390 bf969aac 3f5ccc7e bd1f3c84", + "38a18547 b921e030 b7a82286 -> 3f0ad3e6 3f0ad3eb c0d03dd6 38b9b3cb", + "c286c5ea c2162302 c0bedc3d -> bed88e52 3ebd29a0 3eca4694 bde9fcd7", + "3f691f9b 408991d9 c09eef1c -> c022a64e 3ec0d595 3e50c79c bec9529a", + "3883a685 39a1f018 38a3a0f8 -> 3f0ad3e6 3f0ad3fa c0d03dcb b9a089ef", + "bc5a00eb 3ca9372b 3d3f83d3 -> 3eef52cf 3f20bd14 c0c49046 be9657c7", + "3e12b23f 3d960fc7 3d900f3b -> 3f884cba 3f4000ab c0974ca6 be8712fb", + "c188a721 410a30b8 416c1566 -> bfc8decc bfd79ef5 403862d2 beb922a2", + "3f93792a bf37d2fa bf6506ef -> 3fdd2833 3ffb75f4 40921f22 bde16767", + "380f458e 3884a6de b8e57509 -> 3f0ad3e0 3f0ad3da c0d03dd3 3a488eee", + "c16851d6 c23aab6c 42990b1c -> bf57559c 3ff57b24 bf5b7f0e 3f1080c0", + "c06b1eee 40783687 40dc84ed -> bf975ab0 3e1dc326 3ee77bbe be0c15ce", + "38db4160 b80f20d2 38972189 -> 3f0ad3f4 3f0ad3e3 c0d03dd5 b9e1d998", + "c0e5b024 3fb9e4c2 4123ef3b -> 3d9cdb59 3f1e7c76 bff932bc be9ce66a", + "b94c9a52 b9de7756 3a195a5a -> 3f0ad2e8 3f0ad1e9 c0d03d4a bb87c00f", + "bb83c435 3aab09a5 bbe67b52 -> 3f0b7b7b 3f0a842d c0cff84e 3d355a68", + "c1b69bd5 bf68ff89 bf699810 -> bff34262 404dae4b c06ef8f0 3d32ad69", + "421446e6 c119e8fb 417eb67f -> 3ef58ed1 be8d7bf4 3f858319 3d9ace7c", + "c18c71ee c1cfad32 3f817750 -> 3ffb97a1 bfb2bbc6 c00b58d5 bf097e23", + "3b030704 b94b5a83 bb0f91c6 -> 3f0ab178 3f0ad481 c0d035b6 3c799941", + "b96ef114 362c56c8 ba2a5bad -> 3f0ad4c3 3f0ad3c4 c0d03d4c 3b86931b", + "c18d6c66 c10c8ecf c19a5215 -> bf43d6b6 bfb41711 bf754e5b 3e68efb3", + "40aeab4b c0a636a7 403f22e2 -> 3ed05ebe 3ffd9afb beff0f87 3ec6a6c1", + "c0606263 c1a17080 4192a031 -> 3e2fac9d bfa81f8f bdce4485 3dfbed99", + "402464c7 40075081 c08e8365 -> bfe3ca2f 3fbdf76d bff0dd12 bd4ba762", + "3cab6668 bcbd6e8b 3c74e1bf -> 3f11e1c0 3f003edf c0cd8227 bdc7b853", + "bb27f7b5 3b36ad5f 3bc1d373 -> 3f0a5ecc 3f0b3603 c0d00b13 bd1d1b2f", + "c09e4564 c1876228 41e9a79e -> bf43b2e4 bf13a40b bffe8a98 ba8c2916", + "c0801ea4 40389599 c0622a0b -> bec9a4ba bfc6e014 3ec08c60 3c8e980f", + "bccc9340 3c9d84da 3d208074 -> 3edc130e 3f1c0ffc c0c6f5d8 be81802f", + "c293ff11 c1e85049 c0abb819 -> 3e7758c6 bfc0e4b3 bf95940f bee1a959", + "408b0b6a c0951558 c024f82c -> bfae6a3d bfe7d633 c0357591 3f0c859d", + "3f6e2335 3e170fb2 bf22e82c -> bdf2659a 3f29f95c 40635e4e bed6b363", + "3c6a955c bc4f2d97 3b591455 -> 3f0b9e78 3f095800 c0cf94c8 bca8a482", + "c1811f3b 4244067e c1f6de20 -> 3e9c1d2d 3fc8f474 3fe32c63 3e4cadb2", + "b87773f2 b81c8330 b961b497 -> 3f0ad3fb 3f0ad3f3 c0d03dc8 3ab0bccd", + "c0720f0b bfac11f6 c00bd9ae -> 3fc28fdb 3e070720 bf0b5a9f 3df8ef30", + "382a5685 b9f385c5 b9dc70e5 -> 3f0ad3b3 3f0ad507 c0d03d8b 3b243fdb", + "c230724e c2c36226 417e573e -> bec1ff5c 3ff3b046 40073413 3d9363e2", + "c1912913 c283fe56 c27fba5a -> 4003651c 3fd709e2 3f8cebf4 3f1e472a", + "39da62ee 38839fbc 3997b618 -> 3f0ad48c 3f0ad3f1 c0d03dac bad4bf7f", + "3cb988a2 bccc4470 3c84b7fd -> 3f13185f 3efcf54f c0cd0bdd bdd806db", + "c0fcc841 4133a130 c0937567 -> 3fbccd5d c041968a bf6ecc99 3e876372", + "3c01e21a 3be39790 bbdffe36 -> 3f08f2ab 3f0928b8 c0cfcb8b 3d56f86f", + "b6f561bd 38abdd1f 391435f5 -> 3f0ad3e6 3f0ad3fb c0d03dd1 ba6682fd", + "3fe70ed5 3fc78b95 3e6eb1e5 -> 3e9737dd 3f7d5ede c0389562 3e3467f1", + "ba26f67b 3ab0bab1 3a7be5db -> 3f0acf19 3f0adb50 c0d03bc3 bbc04256", + "bb3ca5e2 3b5b13fb 3b906c2d -> 3f0a7310 3f0b2c7c c0d01cd8 bce8d2e3", + "381e42c0 38a1c06f b8e1e5df -> 3f0ad3e0 3f0ad3d8 c0d03dd3 3a481715", + "c0f6a420 bfc71a4b c1046ff3 -> 3f45575d 3f6a1e25 beb1ec79 3e0b0fd7", + "bc12cf0d bba65169 bb993b38 -> 3f0b85cb 3f0b28ea c0cff957 3cbabe01", + "3f7781f3 bf638999 bd9b3a72 -> c04fd4cc c00f8a43 3ff160b1 bed6214b", + "b8233256 b97d11a2 3a001a6c -> 3f0ad3b2 3f0ad2fd c0d03d81 bb5a5de3", + "b8be882c 3b2e72df ba3c5d3d -> 3f0ad255 3f0ac0d0 c0d03a0a 3bc6e5cf", + "bd19aee6 bd4950bf 3d5eca0a -> 3e9099dc 3e57dfd2 c0ba740a bec26093", + "38b0fd6c b9409cb9 388c4e04 -> 3f0ad3f1 3f0ad3ce c0d03dd1 ba004149", + "bb0afd9c bb041b7d 3b157124 -> 3f0aaa03 3f0aabe5 c0d032de bc8bec75", + "3aed0a02 3ca62af7 3b9bf6a1 -> 3f0a7ba5 3f0beaa2 c0cf77be bc9b0b82", + "3c712d81 bbfb37a8 bb4f2729 -> 3f090aed 3f0b4699 c0cfba1f 3cc762c1", + "4251c459 c122cca6 c263d455 -> 3fc9d26e bedaaeb7 beae3740 3e787ee2", + "bdf81298 3eca6816 3ebd0357 -> 3f9da602 bd7e996e bf2950a3 be7d57b3", + "c0c7a166 40ab6175 3dc03615 -> 3f647605 3e881188 bf908bb1 bdcb60ec", + "c2556fe6 41358a75 c25805f5 -> bf81c7af beee4614 3f58b24d 3d76e9e7", + "3d7db9de 3d218f9a 3dbb55dc -> 3f7a3d0c 3f4c7152 c0a2f9d9 bef767de", + "40431cfc 3e32f58c c1211ce7 -> 3fc1cc3b bfe5a6e0 bfb9c97d beffec9f", + "bc0f5001 bc27553f bc06a7a9 -> 3f0c1901 3f0c5b52 c0cfa588 3d309a29", + "c0c93e3a c1e34ac6 4218a9f6 -> 3fbd610d 3fee80f0 bf4460d5 3ebb91bc", + "3ba73ee6 3bec5ba6 b9994648 -> 3f0a8fc9 3f0a7cd0 c0d01c2f 3c0c84ba", + "3f742929 c022f654 be3e1031 -> bff2c2a7 4028c47b bfad7a80 3f01b3af", + "bb40be57 ba288c87 bb1591f5 -> 3f0af7a9 3f0ad88f c0d033e6 3c537767", + "41814793 40d910a0 c0922dc1 -> be7c28c3 beae3b35 3faabc01 3dbaa4c2", + "3da3bc3f bde4d50b bdc2fc01 -> be5ec22a 3fab24b0 c08cbe5b 3ef5063c", + "c0514522 4103ddee 405c5114 -> 3f360c50 be6b0c89 bdb319ea 3e5d1ce2", + "bb9267c4 3c7addc2 bbcf18be -> 3f0b5c25 3f078ee3 c0cf998d 3d4017e4", + "3e852af3 bd8003c5 beb352a8 -> c0109b31 3fb36d44 3f33e4a2 3eddec4b", + "3a365c44 b99d2bbc b948c50e -> 3f0ad2ad 3f0ad434 c0d03d8f 3abf772d", + "3bb2a288 3b0f7b6e bbc60810 -> 3f09c753 3f0a5bf6 c0cffd21 3d31f56f", + "40649837 4132303e bfecbb25 -> 3f44475b 3eb5c425 3eca38fe 3ea2dee3", + "40210779 c16ab656 c20c25c7 -> 3e36a04d 3f2c1640 bf392ada 3e4b0581", + "3cf7a956 bd8e09ef 3e4fe546 -> 3f555b97 bf3ff08a bf8c1630 bf6786cd", + "c0476d27 c0a4fb0b c0a69a61 -> 3fc05932 4017ae15 bf77030f bedc511e", + "b9d330c5 bb9951f8 3b74e811 -> 3f0abe3d 3f0a44dd c0d02138 bcddbac1", + "39af37f0 bd09d97c 3c148814 -> 3f09968a 3efddfdc c0cddeac bd9c4ce4", + "bf6680c8 3fb0a310 bf9e7c09 -> 3f7f1104 bfdefcfc 3f5b8aec 3ee1a4ff", + "3e122e37 be325fee be4fa1f3 -> bfb02ae8 400dcd10 bf1751b5 3f1411b8", + "c0b49584 c064e9af bfadad60 -> 3f407843 c0112a7c bf9ca91e bf21ed45", + "3e8f7f7e 3e022e92 3e38ecf4 -> 40003e61 3fa6b48a bf4f14e4 be8ec98d", + "bc97b02b bc700e51 3c9f9666 -> 3efdbeb4 3f0126b3 c0cd3fc9 be132044", + "3ca38854 bc9467bc bcc448b4 -> 3ef9509a 3f14f142 c0cc2c42 3e1f06ac", + "39095268 3939cac9 39924542 -> 3f0ad41b 3f0ad430 c0d03dbc bad81005", + "bd55d8de 3c797c0b bce85585 -> 3f291671 3ef954fd c0c7b5a2 3e23710a", + "3c7f5b50 bb0b3912 3b63a758 -> 3f0b83f0 3f0a6828 c0cfc850 bc7a3e2a", + "42614a37 c28e5d8b 429921b8 -> 3e699b55 bfa8c76b 3ffecd0c 3d9793b8", + "babcb3d7 3ab6f847 3a774589 -> 3f0ac937 3f0adb8a c0d03afd bbc9e99a", + "3f14df91 3e24a23b 3dd3cfbc -> 3f67e5c6 bf43b153 bfa4d893 3e1c0961", + "4222879b 42522443 41743317 -> bec71e1c 3f3c9cbf be8bd155 3dff8652", + "bdfbc5d9 be35811e bd703e1f -> 3f286f8a 3f4c037f c084571f 3e135be4", + "408610e9 40eb15d6 40e0f874 -> 3f094107 4026a74e bedddcbf bec37d7c", + "be577b9f 3e676bf2 bc9770a2 -> 3f01fdee 3de8fe62 c03384a9 3d69cc94", + "38c8162f b9c781fc 39488739 -> 3f0ad401 3f0ad34e c0d03dbc bab76307", + "39ea0e4f 3a539972 ba2c0e81 -> 3f0ad13b 3f0acf5c c0d03cdf 3ba23dbd", + "c0247333 c0f9caf8 402935d0 -> 3f714a7b 3ff113af bff8d41b 3f2f01b7", + "3d3592f4 bbc46057 bcf7ab5a -> 3ec19d26 3f0cdd8a c0c81e70 3e599ab3", + "39316e3c 37258477 36f67230 -> 3f0ad3e5 3f0ad3e8 c0d03dd6 384ed978", + "b850dee0 bb8f57d1 bb452263 -> 3f0acccb 3f0b1aab c0d02b0e 3c8cab80", + "bfd07679 3e2e4b1e 3fc82c36 -> 3fa71e4d 3fcdca7e 3ee25818 bde901e7", + "39b5a17c b987749c 390507bf -> 3f0ad423 3f0ad3a4 c0d03dbf ba4be94f", + "bf029657 3d169a80 3d4a10d4 -> 3f8fb3b3 bf4ae76c 3f6fdf9d be8cc927", + "40193803 3f184df8 c02f0363 -> 3fc37bac 401b3ad1 3ff7c245 bd1c2b67", + "3bee3ba8 3c62ec15 3ce606b3 -> 3f0ec0b7 3f13571f c0cc1425 be2df097", + "3fc72bb9 40336f3f c09c5d21 -> bd8cd26d beff918b 3ec109a7 3bddb89d", + "42744e9d 41ab1fcf 42225bc1 -> bf52a9d1 3fdf1eec 4052aeea bd9f0544", + "b9e6556b b833a4ed 3ac68463 -> 3f0ace8a 3f0ad2bf c0d03ac5 bc25c387", + "3f94393c c0249884 3fa83df8 -> beb35611 bfad33e1 401c68f9 bd128ab3", + "b93b189b ba296d4c 3907ddd9 -> 3f0ad38a 3f0ad2e8 c0d03d9f baa9262a", + "4053a0cc 41281c1c c1536477 -> 400bcbfb 3f1dc5d3 3e153eac 3e87896d", + "3dc0c1e1 be04ad04 3dadf65a -> 3f8ecd1b bf0dc760 c08a5fec bedf21df", + "426a1d26 422c9fac c1b22375 -> 3f2e8afe bd91386a 3ed1e74d 3d3b0863", + "bd21e736 3ce7ad81 3d804f74 -> 3e86f300 3f321fea c0b92f03 bec96959", + "bfa19a87 bfaa7411 bf5cd7f0 -> 3fb7b88c 4011ce90 bec776df 3e64f93b", + "be2ac702 3ef455bf 3f1d0c74 -> 401ac9dc 3fa635a5 3f950b7d becf3de3", + "bc5fbb47 bb1c85a5 3cd1bdaf -> 3f0021f6 3f082eb0 c0cc8be6 be324eb5", + "3ad8d33d babf1747 bb051aec -> 3f0aba3e 3f0ae5b8 c0d03676 3c5a45ca", + "40358102 bfcc3f74 3f9ec856 -> c0383c0b 3e0ba0f3 3e9d62ca be58687a", + "c11518e0 40ebcd21 40b4974f -> c028b914 be05a8ed 3f9c51de 3ca5cc77", + "3b72674a baf8a7b7 bab190ea -> 3f0aa881 3f0ae1f6 c0d033f5 3c206c6e", + "3f316e2c 3f5f8a45 bf827296 -> beeea4ea c08745e5 3dd665c0 beb60bb5", + "bf59fc13 c1d6f953 411f3636 -> bf768576 3f8c9672 c0508e40 3f0d6cb1", + "41e25106 c2531147 41c4ba0c -> 3fd537cb 3eb4ec5e bef9b437 bdf09608", + "bcab566d bc390d76 387d59b1 -> 3f08ad29 3f0960ba c0cf4d25 bc91a76f", + "3d1de6f8 3e37252a 3e483b62 -> 3f49958c 401a11a8 bf9a307f bf1ece8c", + "c0c1b294 402348f5 40a323e2 -> bfa9bbaf 3f36e665 bf059056 bd96e3c5", + "bde55b84 3e82e3e1 be9cfa1d -> 3fb89048 c01199cf 3f929d12 3ed11434", + "c19f9ac5 41a06269 c1df94c9 -> 4057a312 bfcf53fa bea97816 bf1482e2", + "3d29acc7 3f18fbed 3f3b2b56 -> bf244004 3fc042bb 3e1e61d9 3e27cd63", + "c2683f4b 41032e7c 42ae25b5 -> be8ead35 3ff439bb 3fc94b1d bed80432", + "c18fba56 41db2225 424fe802 -> bebb75cb 3e9b49c8 3ef52fb9 3e24d85b", + "39f590a4 3783b774 b95aabac -> 3f0ad30b 3f0ad3d0 c0d03db0 3ad44f7c", + "c178621f 419328e3 403c817c -> 3fda266d 3fd2cd2b bfcfef04 bea7fca0", + "bf578240 410a1fd6 418a6794 -> bf8fbed8 bf6661ee 3c38196c be044086", + "bc830d03 3d4ac28c 3d574371 -> 3ee0a54a 3f4461fc c0bed965 be9eaab5", + "bbd23b63 3ce342aa 3bc2b3ae -> 3f092e92 3f0cf459 c0cec0ef bcdc84c9", + "41414999 c123516c c1a69804 -> bf8311fb be057bf6 3d1f0f77 3e083a2f", + "c1bce521 c2b1069a 424ed011 -> bfbed004 bfcc9f7e 3e3a4dab 3d3df6d8", + "3aa92706 39453a8e b98b1f8a -> 3f0acffe 3f0ad2ea c0d03d03 3b25b779", + "3ac2f2e4 be6ba25c 3d062abf -> 3eb57db8 bf0eeb07 c07ed3d0 be5a11f2", + "3d3dfeb8 bdccbc2e be006e23 -> bd78ad39 3fbedab1 c075fb0a 3f202fdd", + "bf04c568 3f005561 bf908a9a -> 3de62e5e bf988891 bfc574b7 bdd941e6", + "3da24b04 c1bb780e 41a25af3 -> bf52cd48 4055ec06 bf816029 be2fd814", + "c0fb9147 408ae4f1 c0bfc280 -> bf56e15b 3f234d1b 3f498b70 bf5c6000", + "bdf12b8e bdd3eaca bddd95c8 -> 3fa342b1 3f958d7a c080618d 3edd4ac1", + "b90c637a b98e2af4 39bdf9d8 -> 3f0ad37e 3f0ad31f c0d03da3 bb28ec39", + "3ff99bec bc6442de 3ed95f0f -> bf8f543e 3f452864 3f1629f0 be5a7560", + "38b8cfc2 ba1e38ae 39aa6167 -> 3f0ad400 3f0ad244 c0d03d8b bb1cea46", + "40a89bf2 c196a894 41a58ec0 -> 4011dacb 4037e6ac bf80455d 3e4b8835", + "bf4a265e bee01554 c076953d -> 3fdcc1b1 3ec9fa1a 3fb98b73 3e4cdd7a", + "3ef0c6de 3fdf2c7d 3fa4c250 -> bf8bf0eb bf2549ac bf8db670 be5e0872", + "bf955ad2 3eaf5c9c bf1c4b0b -> 40a1aedc c00629a4 bf577e37 beacd459", + "b92313bd 37c75f49 b98b2c6c -> 3f0ad428 3f0ad3d9 c0d03dc0 3ad9132e", + "40d822c2 3dd73e9a c061f941 -> 3f42e02e 3f15f077 bf41507d bcad0d5c", + "c051dfc6 3f580209 40e1032e -> 3e19cdf6 bf9d4e70 c01ca56a 3e954dc8", + "c0e89ca6 4030e8c6 411f3807 -> c012162c 3e7d6115 3f28122b beebdb1c", + "399995f7 b988fa58 b8c727bb -> 3f0ad3ad 3f0ad40c c0d03dc7 3a266f0c", + "39ae4560 b9563550 ba9398c7 -> 3f0ad0ed 3f0ad517 c0d03c25 3bf2644d", + "bcc1306b bc278ba6 3d6593e3 -> 3ec4f999 3eedf0db c0bf3c1e bebe3cc2", + "3c554102 ba06e699 3c01b623 -> 3f0cf3ad 3f0a79c9 c0cfac74 bd36eabb", + "3f647e41 4102222d c0a1b216 -> 3ffaa2b7 3de9cab4 3f6bda71 be66d2f9", + "b9fa7241 bb6eb82f bb50a113 -> 3f0ad674 3f0b13c7 c0d02c0f 3c97600a", + "bef98be2 3e16f7ec be9cba48 -> 3dfbe2ad be555e54 be34e34b bc87328b", + "381c5e7d b8f15b38 b8eba87b -> 3f0ad3e1 3f0ad3fd c0d03dd3 3a349c21", + "394d482e b866d4d5 b77e51c1 -> 3f0ad3df 3f0ad3ea c0d03dd6 393770a6", + "b841dcad b8d62385 38815186 -> 3f0ad3e2 3f0ad3da c0d03dd5 b9fc85ff", + "39b4c076 b93fd06e 39b9ffaa -> 3f0ad4a4 3f0ad369 c0d03da1 bb118ca8", + "3b3c5b14 3b13f428 3a886263 -> 3f0adbd3 3f0ad93e c0d03723 bb82ad5b", + "bdc4a717 bce034e5 3e13636d -> bf5aa5df 3d6b91c3 c048f4a2 bf476aae", + "4032ba39 400b6849 3ec6c66b -> bffdff76 bec77748 3d664251 3d533e52", + "400cefdb bfc4f810 3fd166d2 -> bfcea9ee 3fcb80c2 401c8c81 bf1b6f0c", + "3e16dc87 3e070418 bde87c7b -> bf9478f9 bf802d92 c0420b9a 3f12e5dc", + "3abb67e2 3b0c9fe4 3b7e7346 -> 3f0af0b5 3f0b0238 c0d028b6 bcbf103b", + "bf8939ab 404e98e0 40818fa0 -> bfa5474e bf109619 4008691f bf2ff106", + "b91bf860 b6ca7145 38bb68f4 -> 3f0ad3cd 3f0ad3e7 c0d03dd4 ba2e79a5", + "3d0951cd 3f41c4ed 3f192e5a -> bf598f65 3eb92fbf 3f486129 3e95352c", + "3a8a84e2 b9b871ac 3a1559b1 -> 3f0ad727 3f0ad23d c0d03ced bb59eace", + "bb295578 bc4cf6ba 3c6f82b8 -> 3f09519a 3f0520ad c0ced7c9 bdd2f469", + "3d6536f2 bf016881 bf0c01e7 -> c03b0915 bf8c3b5b beb5abf3 be05c1be", + "3c8a6e9e 3d11ecf6 3d486ef9 -> 3f1a1752 3f2fcf84 c0c2a561 be8fd289", + "3ea93a26 bf39d6dd bec55819 -> bf417c7f c01ab0bb bf69c2cf be889859", + "3b224e98 bb07b941 3a763d7e -> 3f0ae001 3f0ac3e9 c0d0384f bbc1135a", + "422538d8 c1bd3985 c225c5d2 -> 3f7d6d07 3fba4cc8 bf154ec3 3e9437ac", + "b943f7d9 b88d1dbb b84bf8e0 -> 3f0ad3f1 3f0ad3eb c0d03dd6 393b5cf2", + "bf8843e1 bf8fd530 bf763afe -> c0146162 3e9cafb9 408530c3 3ed50981", + "3b0e0ed9 39038575 ba62e22f -> 3f0ac2bc 3f0ad176 c0d03abe 3be14db2", + "3ebf4580 3ea99e52 b8248426 -> beb83ddb bd9cc00e 3f652ae3 3d410b86", + "3905ad80 371de0e5 b91a3d56 -> 3f0ad3c4 3f0ad3e5 c0d03dd1 3a87378c", + "3e3656d3 3e5daac6 3e65c83d -> 3ffdc219 40223ad6 3d2a3806 beaacda5", + "bf5c8b7f 3ff385a5 bf7b5a31 -> c04c0ea9 c0712f22 3d36cd50 be14335b", + "c10c0218 c14e11f6 c10f4ac2 -> 3dae79f7 c042df1d 4059219d bee5cb71", + "408cafbf 4140b7d6 c1816b70 -> bd3b3761 beec588a bfa23489 be0178c4", + "3cdfeb83 3e9a69bd 3e949d2c -> 3f596b51 4023d18e 3f88a302 be8e74c9", + "c28910be c2932c51 4275a018 -> 4034de45 3fadf212 4047a529 bde8d9bd", + "42136288 c240f172 c12da3b8 -> 3e158bf7 3f9fe3be 3d3f50a6 3e065818", + "c0a6fb79 c18e69d8 3d57412f -> 3eb6fd58 bfb6614d be8bd564 3e2c3890", + "3cc14302 bb0a6fd9 3d00a1bc -> 3f1b9140 3f077720 c0ca9b1e be42e913", + "41a60d44 4207e949 421a36b8 -> 3fa3add2 bf5c9c77 401a511c 3f3a65e4", + "be26c25c 3e0ff494 bd81490f -> 3f8e348e be985ffc c07dd8e5 3e859f87", + "b9cf7e58 38f3a2c9 b8d3e203 -> 3f0ad413 3f0ad3cd c0d03dc4 3a049baa", + "bdc42b12 c00eee2f c01e5e8b -> 401a52f5 beecaf55 3f63d429 bf12ae5b", + "c2a21ece 42c047aa 4203b96c -> 40343624 3d1d3a7a c07bd70b 3e5098de", + "bfccb0a6 c00d6829 c0945d25 -> bd7e6408 3f8eab48 3eb6146a 3e0d7e6c", + "3cd7483c beb04ce2 bee8a82f -> c00646c2 3f87dea4 3f92f1d4 bc590368", + "4093bc5a c20604a5 c1f5a067 -> 3edc28c8 bf8cf6d2 bf7f3f03 be9da056", + "bba00370 3aef3dbf 3baf613e -> 3f0a0946 3f0b09dc c0d00c75 bd156331", + "42a2fa0a c2c62a53 c2006bc7 -> 3ed1b532 c000f36a bff71b19 3ee9f596", + "3e0c0751 be40547e bc55b794 -> 3e821e1d 3eed79cc c0835c15 3d142461", + "3b182dbe 3b5f6625 bb793a5e -> 3f0a8728 3f0a676c c0d0228b 3ce4226b", + "3d78d361 3c7fab5b bd187a7d -> 3e815264 3ee6e90d c0c248b8 3e8b265d", + "3de06f13 bdf6714f bd9c2e29 -> be93c7b1 3f980eda c08fbf0e 3ec03b3f", + "40be9dc5 bf89f357 40b315ae -> 3ddddd14 3f9035c7 bf84ff94 be5b2ff7", + "c1ad80d9 c1881c94 c02a1f10 -> 3e91ead6 3f936d46 be96a332 3d04242f", + "bdf50031 bf9e69e3 bfac5806 -> bff38112 3fa7770d c00f0c80 3f33c234", + "bf66069f c07b6dea 40789521 -> 4021f2d4 bf3e371d bf827efe be9e3aae", + "3f15e6b3 3f191b76 3f752752 -> 3f9d60c9 3fb25301 3f7c6d4e be4fdd50", + "b7fa333a b68b5968 b8e371e1 -> 3f0ad3f0 3f0ad3eb c0d03dd6 3a343a87", + "3e14dd09 3b456b45 3dde343c -> 3fccb3cd 3ee00983 c082420d bef3edb8", + "be7a3fea be83c45b 3d93db03 -> bf63319e bf73926a bfd5bf01 be641a8c", + "baf68c4c bbdd4e11 bbb9ee93 -> 3f0afc5a 3f0ba102 c0d0032f 3d03faaf", + "3b350d7d b8f3d00a 38c44379 -> 3f0acf57 3f0ad1d6 c0d03a97 3a588bf1", + "ba6dc130 bb7725fc 3a8c525f -> 3f0ac647 3f0aa9bc c0d0359d bc1bb1a7", + "bdcf5659 3de299a9 bca63d38 -> 3f247f93 3e74548d c0ab63fe 3de8dc4f" + ] + }, + { + "glsl": "vec4 cultmath_snoise_grad(vec3)", + "tolerance": "ulp-bounded, coordinate bands 1e2 to 4e6", + "check": "Read at the case's point x, with S = |x|_1 and (e_n, e_g, e_h) = math.span_slack(math.span_rounding(1, x, zero stage, 0, 0, 0)), against the kernel's exact values in double: |n - n_exact| <= e_n and |g - g_exact|_2 <= e_g for snoise_grad, ||H - H_exact||_F <= e_h for snoise_hessian, no tolerance. Report the largest fraction of each allowance per decade of S and the largest absolute error at S < 1e-2.", + "cases": [ + "4343cc14 43796616 43109168 -> 3b1cd060 40097e09 3f7ff10f 3df831a0", + "43071f14 c257d861 c2b2f4bd -> bf9d3059 bf986624 4014dcba 3e7892f6", + "44e377cc c505812f c28e8bb3 -> bf61ea25 3fca51e3 3f90c69a be3a06d0", + "c3f8434e c3fd675e c3f2af40 -> bf8da2eb bda87afc 3fe04829 be5f521e", + "431fbc2f 41ec0d13 c30ad19b -> bce1967b 3feb9b97 bf4204a2 be2cb510", + "492aa582 48ca5bfa c9571f5b -> be87fd79 3dc290aa 3ed79dcc bc4120ea", + "c5e9267b 4792dba9 c772c0cb -> c02cb8da bfe56a50 40242a2c bed316ce", + "c4164a29 c439044e 4432c807 -> bfa57ef7 bff5407b 3fb8655f be80456f", + "c94f1b94 48630ae5 492d38b7 -> 3ef14e92 c02dfc1a 3f1f693a bf0ae28b", + "c6844f4d c6049223 46981cca -> 3f278b99 bed57794 c0949336 bf0312a5", + "48ea344e 48b6d586 489e0d05 -> 3f4fd335 3dbbba44 bfac1c46 be3a686b", + "472ac560 483e8364 c85c5bf8 -> bfd860c0 c01943af 3e3b739f 3eafb008", + "c679eeac 444750af c6901a9b -> 3f261106 3fc3a263 c01a3df7 3f15137b", + "4648d22c 44ec087e c6267df3 -> 3fe4bd21 3f4f7054 3eb111fb bf347297", + "c91a4ae0 482ea4c3 c8eaafe2 -> bfd786c5 40a5997f bf35e9a1 3eba5c83", + "c4a3bcc1 44061a3c 44765b59 -> bf8f8b68 3fab1d3d bfe183d6 bf2aa2df", + "c5c84f12 456218de 4593058c -> bfe4217a be294c1c bf91521c 3ec92ede", + "c5b75b92 472c3f03 467ab79f -> 3f896b0a be06939d 3f6e9253 3f05465d", + "c3871fb4 c3106791 430f8685 -> bfa0938d 40050b63 3fff292a 3e4d987a", + "49ded858 495fd66c 497ad463 -> 3f3a1723 3fc3a07f 3e252e85 3e20ca3c", + "c7e43b68 c6b266e9 c7e28bac -> bf865118 3fb74fca 3fce2cb9 bece6c44", + "44b16674 4446538a 44affc51 -> bff2db2a bf0b0081 c001a8a8 be6e07ed", + "472af3c1 c86a1881 48148f67 -> bee237e7 3f82eb28 bfed525d bea58527", + "4a05d6bc 47626172 c84a5c01 -> 3e3bd2a5 c00e71f7 be8d4f56 bd05ea74", + "c5e2983f 47024c74 c81b7497 -> 40197893 bf87cb2a 3f95ab64 be56e2b2", + "c8b3049c c7e5436e c78183df -> c0b3d479 bfb7a6d3 bed3fc31 3ea670d3", + "4416bae6 c584d7e5 c52319fe -> 3e8d76a6 bf9f030b 3f266c88 be2e39df", + "c5eee7ce c38f9989 4570d916 -> bf3829da 3f28c072 3ee15f87 3e134e79", + "c951d297 c91ef8a0 c9860b4a -> 3e5d83cb becdc569 3fa7254a bd038ae8", + "c95c20ee 4812362d c95bccf8 -> 3f9f6a79 c02d18ee bf1e02d1 3e9049df", + "c59a0b11 44cca02c c5349204 -> bf1fb881 bff43b02 3e26b52b 3e6013d2", + "c31be6e6 c3de7d7a c396d2d6 -> 3ff8741e 3d2e8b69 401f98c3 bf22a095", + "c6c5e596 46280f95 46212b60 -> befd4bd7 3fccc901 c015ffa6 bd897e7b", + "c9d1e7c7 c83521b3 49ae4248 -> bfa26c27 3f531360 404f546c beabbe93", + "453c4a2b c59c02ff c38a5846 -> 400cca68 4039c950 3dbce341 becfdae6", + "c263de90 c2b7dace 4341eb6c -> bebdf2aa 4004cad4 40a32106 beafcb6c", + "c3884b99 c3e4e982 438079da -> bf7f0048 3efd4ff4 3f40a4fa 3b2220e9", + "4480a751 45144088 c48c3583 -> c01ed8a6 3f3fdd24 3f706d92 bf26585b", + "4401a2c5 c3aaf35d 4320a90b -> 3fc4ae8d c01a0062 3f8975ff 3e6fc315", + "c30ba073 c4982a5f 44b8ab80 -> 4050d5b5 3eba24cd 402c4fe2 3ebac543", + "49e27467 4978cb2d c8ad5f44 -> c0b244e4 3f0c2b01 bf24a44d bee3c5db", + "47edb09f c7fecb63 4531195e -> 3f802d79 bf74f92f be919ecd 3daf9ff2", + "c2f99af2 432d322f 42a61515 -> bdc31389 bde4a487 40837d1f bf3c7083", + "44481785 c36e1791 43943a04 -> bf9eeffe 3dac3e41 3d4a5af4 bce877dc", + "490b570b c87d5fec 48de4079 -> bfbb02d5 3fb787b3 3f60456f 3e688523", + "c2f0d9d2 c2b47c84 c3a65ac0 -> 3f9d8157 3fdc98c8 3ded50e3 be6caf77", + "49bac5af 49ecb7a6 480428fc -> bf14d261 bfc811d8 c013f9f9 3e0fa1fa", + "43225d73 c40c7eb5 c3401072 -> 3e1c52c0 c000059f bff11fa7 bf15fba3", + "4080cbb2 c30bd809 4236215f -> 3f35fefa 3f8e720e c0349f82 3e93a5c6", + "c2d51f10 c34ebf77 c245f96b -> be4c8770 3f3b9136 bf71e087 3ec34da5", + "48c27cdf 492ec3f2 4792d8c1 -> bf19fc82 bfaff450 3ef28880 3e91146b", + "453a7d0a c5d0b118 c67474cf -> 4001f9fd becebd0e 40080cca bf281124", + "4822c837 c8fc29e0 48b9348f -> bf81f109 3ea52fbd bf5209df be13f5c3", + "c63e53ba 488cc074 c8e71e59 -> 3f419cce be8af055 3e35b8c8 3e44afbb", + "c534bbd8 c6e4dce9 45f18eae -> 3e61e718 3eecaa6b bea8fd77 3da84d12", + "45a8508f c69e8a3f c74cc8ba -> bf6c1548 bf80cdf5 c01aea44 3f154c04", + "47fe4b3e c891aca5 490ff824 -> bf491492 3f3a6ddc 3e964c77 3e92ca7d", + "46e2a669 4725167f c7c806b0 -> 403633c5 3f14f54a bd83dd00 3d522d16", + "c40f9164 44705482 43ac2e71 -> 40527dee bed83b4a 3e06359f bf10da8d", + "c992a01e 49711cb0 495d4fd6 -> 3f69cd2a c0591c36 be319969 bf03e534", + "46b792c7 c69bb99c 470510ce -> 4005a64b 3f96939e bf0b38af bde4ca15", + "c5fecc92 45ec83bb 45568995 -> 3f3c5110 402ed497 3fa5c14b 3f235196", + "c47ef300 4519083a 460ddd37 -> be9e3241 3ed25cc6 3faa7359 3f537843", + "c2147f1b 436bf75d 42d3503f -> bfa5b582 bf99050c bfa5dfb9 3eaf7209", + "49998f67 49903db1 c934def0 -> 3fb99576 3f9c5aaa 4038c8eb 3ea9477d", + "499156c4 48770112 49a469c2 -> 3ff4dc3d bfba4c11 3eb27655 be83f2fd", + "48e12941 48a13b7d c8eb5468 -> bf85e7af 407489b0 3f802d41 3e3deb26", + "42cdeeb7 c28ebf2b 427dccc9 -> bf585238 3f363a2d bf113dbe 3be2d808", + "c63301d9 460f0036 c65a2395 -> 402b0986 bf50c518 bf89ef3c 3e951824", + "452a3f03 c4194bab c5826845 -> 40143e30 40139aa7 3f9beeab 3e212dbf", + "c497e9b7 44b1295f 4502dd01 -> bf2b65e7 bf332cb4 3fd30cda be9aaa44", + "c508309f 444a88f6 c535b01f -> 4011c237 3f09460a c013c487 3dec646a", + "44bdef20 452076be c5b4b84c -> 3f356e08 3fa3e248 c01275db bef961cd", + "c2ed4d29 4233ed0d c30e2c29 -> bfa7a898 3f290656 3f8c77da be8d1bef", + "c52a5742 c551515b c593af6b -> bffd8218 bf38111a be5118f1 bec6c9a3", + "47380f06 c6e1a99d 47279d03 -> c08a79bc 3f4c547d 3f6813b7 3e3de881", + "c3692d66 43d81edb c3c395bf -> 3f043455 3f676059 40000b79 3e4d123b", + "4699d643 c67a50ec c664b822 -> c01bfff6 bf153334 3e18cd0f 3f043b19", + "48ee785e c9491c16 c97ebb3b -> 3f83221b 3f8bb495 be78c339 be5ffec4", + "c2cabebc c48d947a 445b46b8 -> 402c860b bf9fba92 bf0fcd6a 3ba824c0", + "4a20310e c9ceeddc 494e9bb3 -> 3f05b4aa bed3514d c0638787 bf39fa48", + "c540e1f0 46a6764a c6322ced -> 3f908695 3f0fffb8 3ece8029 3d87205c", + "c48841d3 4349e697 4281c9d8 -> 3fe51615 3fd0c98d 3f966248 3e58d13f", + "4958f7c9 4931728e 495099d1 -> 3e25b44d bfdfdd0b 3f943f6c be273fa6", + "c95a893e 491436af c97de425 -> be26ed34 be6cd8c5 401326b5 3ed60cdb", + "42f53da3 429dc1ae c2c9f02e -> 3f73a115 bf121439 c020ae3a 3ea80e42", + "49c4c085 ca11d2d9 49db71e0 -> 3f9d78e8 4008ada6 be491477 be8f559c", + "481c2cba c7999bf9 470eedcb -> 3f5c7dac 3e242b42 405baf93 3e845385", + "439fab7a c3716c01 42318eb3 -> bfdd952e 3ecad339 3f524763 bf4ffde0", + "481040cb c7b847d1 c8166a3e -> bf8091db bfc372c2 3f10d3b5 3dde5458", + "460d5272 45639667 4593c3b8 -> 400af6d2 bf906042 3ecbe204 bf036ca6", + "c7aa524b 47eab25d c692e601 -> 4037217a bf9c0185 3eb65ad6 be27c4c6", + "439e4d51 428f5fcf c3939b36 -> bedd0677 bea77457 405c014c bd560f46", + "c99a6142 4a1fcbc5 49b95962 -> 4045ac4f bfc4bc3d bf1714e3 3ed4de45", + "c59b3a33 47410a18 4665686b -> be3be8a0 bfcaf4c8 4000e058 3e638044", + "4a3b2b6a ca3f9be7 49f18513 -> 3f4ae1d0 be55e3ec bf828c2c bd03544f", + "44092d25 c2b6b55a 441dbfae -> 3feda63a 3fdb162f 3f9d348e 3e62d20b", + "42e0ea4b 4395b242 4296f6d8 -> 40004f5f c0327931 40735362 3e414fdb", + "c7135807 4665d805 4676490e -> c02aee6c bf72eac2 becde5b5 beb0b574", + "c4418611 434dcb83 4386edd8 -> bf31cd9f bffa418c 3e7ee173 3ea4816d", + "c2ceeec6 c2d7dadc 427af725 -> 3f13cc4a bf5a4577 3f477b8e 3c2e0efb", + "c5931169 442f25e4 46322b01 -> bf607579 bf8ad53e 3e7805e6 bcf16007", + "431f658b c288ddd7 c3374359 -> bf92f1cd be11348a 4008c975 bf1a68f7", + "c9b48d7e 49b09499 c96b1b9e -> 3deaf3e7 c000893c bf0a7cfc befcb6ce", + "c565f034 c5f7fd63 43977c2f -> becffd08 bf8d9d06 bf0b82f0 3dfc3a12", + "ca3ad030 49c15c61 497561b9 -> 400b813f 3f61da3f bf6aa471 3e752f64", + "45e9af8f c5700eba 43e70d83 -> bf117cbb 3f98592b bf829cab be5b7903", + "4521f705 46ba5192 c5e6a781 -> 3fe48294 bef65e44 bf4e33f6 3e368861", + "42e62e14 445ea28d 44781f2e -> 3f4ba033 3f66e3b5 3d5a9e1d be84e55b", + "486e1b0b 48b2e602 c8b13541 -> c016078c c01373cd c0491dfa 3d82a3ee", + "476c7a31 46a25ceb 46cb2248 -> 3ef5d6e7 bdc6eee6 c03747df be3e9cad", + "474cdae9 472ad5f2 c636465b -> 3d3371f5 3f2219d5 bea1c6e2 3d1d3755", + "c5391b9b c6396deb 45eec175 -> 3e4f9aea c00ae7ea c03727da be38fc0d", + "49fcc0c8 48eb69f3 49d2ffa7 -> bfe52c12 3ed9c4d2 bfb98212 3e1c4117", + "c95e4b8a 48dd8bab 496f6943 -> 40043a30 bf3d4a7f bfcf494f bed06005", + "c93009b4 4a44304f 4a618b3c -> 3fc959c8 3f90e848 3f20a57d 3e29547a", + "4633cb43 44603fe2 4694e7ce -> bfcb8e5c c01c2b2d 401a7c7b 3e87ee93", + "43a28bae 43f7ee57 4294b163 -> bf66a173 bf7f750d 3f2cd678 bda438d5", + "461f7350 c5cf5b99 c5029069 -> 3fd18532 bedb7a55 40141835 bf17b06d", + "465cde5c 4613fec4 c7138bf7 -> 3e55b8f7 3ce6fb8f 403b13a0 befed5bc", + "c78a59e1 c7995c3b 470e3037 -> 3f91971f 40709a2a 3ed2efcf bf1710a0", + "c6234ba1 c485acb2 4417ae72 -> 3ecff13f bf5c4315 3fc5bcda 3cf357ea", + "be16242a c2278f43 42e048de -> 3e9077fe be10acd5 3f64cf0e bdc6ffbd", + "c8692e19 46b13282 c796c16f -> bfae09d2 40319043 40570906 3e8355ae", + "41a94c38 42df0bfe 41de39d6 -> 3f64f499 bf9b128a bc301207 bdf7931d", + "4765dc32 4786ac3e c7942cb9 -> bfc6a530 c0099d62 bd034069 bedb5ae7", + "489288a1 c7207c66 4526a949 -> 3f53c7b1 c0105924 c0006a37 3e2daaba", + "49dc25fd ca0711a9 c943b1b5 -> 403a7cc1 3f63f000 c0970913 be40a3b1", + "ca0d0211 4a475f8e ca6ce3c8 -> be6cd796 3e8ae59b bd1c0ec7 bb7623e7", + "c5961774 461efa40 c6334587 -> 3fa640cc c019f0cd bff975d6 bec3ae8d", + "4630987e 4654050f 468c81f4 -> 3f859277 3e6d498a bf8d4e2e bd96d2ec", + "c74278f4 49ac087a 48947877 -> bf57971b 40158dac bf82b36b beb31c35", + "c2aae27d 431dfa43 c18f7c11 -> c024c449 3f8e4d1d 3f7a1a5c bee6037b", + "44815e2b 4528fa38 44b52e09 -> 4076bd08 bdb5b1f2 be820acb bee7e146", + "c5368e42 c5315f0a c412f252 -> bef1db72 bf3f9303 bf952b19 bee2edcb", + "489cc094 47f80ff2 47a33ce7 -> bec13623 3e52cdb2 3fcbb10c 3d82b9ed", + "4402041e c48a92be c42d3c10 -> bffd3ef0 bfa168a3 3fc6b6be 3ee953dd", + "c985805b 48565324 481daef1 -> c0102598 bf65c213 3e6cb109 bf0e99a7", + "45d61f31 45a9c803 455220ba -> bfc1a998 bfdb2481 3f8a6ef6 becdd0b0", + "46ba739e c7038ed3 475209f8 -> 3fd7647f 3ec1c5b1 3ecf1ce8 bd4b807a", + "421beda6 c4dd4810 460c4a3e -> 3fdb0399 3f74616f 3ed576c9 3b2fed4f", + "c7bdcc6a c7584969 477dad3a -> 4034d660 bf64b45b 3feb2f4f 3ea7ec92", + "c412b018 c3b0256a 4442e6b3 -> bead02bc 3eb5ed2f bedcfe2a 3d67b5e0", + "4829b727 c733bde2 c7304b6a -> 401ad51a bfa9acc5 4012460b be991622", + "478ec0f8 47784842 46bf8985 -> bf6e1702 bd8a8900 3f0ea716 3b98396d", + "430127c5 438fddbf c3d173b6 -> 3fa9094b beb72231 40071ab8 be8f83de", + "46055473 44dfea69 c6a16d3b -> 4022e575 3ecc5010 3fa1f59e bef18160", + "44988376 46132a65 c59af14d -> 3f0723bb be8f1fbe bea5eeb7 bc7bfef7", + "c7f79eac 48433b64 48933c65 -> 4005be10 3fdfee75 bfcbd500 beb610f5", + "c3292c56 c33dc4e6 c284f8ec -> be3808d3 3e901e51 3dbeba4f 3e3369ee", + "466d59cf c5743ddc c6767d37 -> becff687 c06c28ae 40031096 bee3e10d", + "4803145e c81b52dc 490b516a -> 3fd40532 c0760008 3f71bec4 3dc75915", + "459ea6d6 47c4e47b 4819d456 -> bf828bb0 bfc27d60 4003b4b0 3e8150a0", + "c3f36e19 c31482b9 c504e37f -> c005208e befa6bf1 3f67ef7a bddb2cf0", + "c601af24 c64ecf86 45a2e989 -> 3fbfa6a8 3e53ceba bfdd3a0b 3eca6fd5", + "c5a0c5f6 c5ab1187 c5f9d800 -> bf544801 3e1c1d1c bed62283 3db70ccb", + "4214a749 c53677ba c4c7f0d6 -> 3f9603ee 3f9e151f 3fec9ccc be07429c", + "48ab97e8 c5eb0ba0 47ca8d3c -> bf899846 c00c57a7 3fcb2df5 3ee654d3", + "4546d977 c519e40e c52c9a13 -> bd9373bd 4021c680 3f4bf014 3dbdeb4f", + "44ce52d5 c59448c2 44991e00 -> 3f83b388 be8d1a3c bf966fc5 bcb2dd2a", + "c88b923b c891f5e7 c8b74f42 -> bfa18ea2 bf8adef2 bfc1faa2 bae94a08", + "42fe1413 430421af 42c726f4 -> bf9ce0c5 3e1227f8 3f965656 bdf05f90", + "c723d67b 47185af4 45234bef -> c036f856 be539607 bf89e2cf bef443c5", + "4470b05e 44bff11b c34eed00 -> 3fc922c5 403c0757 bf919004 bd41c482", + "c683744c 475775b1 4755034c -> 40093be8 bf18d6c1 c01ec966 bed55204", + "48c1563a 497f4b1a c895c893 -> bdba1eb6 be33768d 3fac6014 3df8947c", + "c8fb502f 4924be5e 48f1e451 -> 3eab6cc6 3f9551e5 402aa54a 3e82e4a6", + "c54eb0ac c7006f1f 4637168d -> be342829 3fc98106 401db573 3f1526b0", + "4408487f c44c92ca 42b4e43f -> 3fb0821e 3f3cde4c bf42096a 3c11cb87", + "c73653c2 46b5834d 472cac24 -> bf348656 bf809c37 3fd5a0ef 3f07d8ae", + "c67daa2b 4584dac3 4608ae0f -> 408e14de be90425f bfff3e1a be9ca6d2", + "c55cec43 44b04863 c5c2dca6 -> 3f9cd706 3faa201c bf27cc90 bae514c2", + "c22a1670 c2ef73cb c3428227 -> 3f9e034a befee843 3fa3b8f2 bd909996", + "43661298 43419b0c c389c116 -> 40313e94 3e9a2bc6 befe6a10 3e6c1239", + "c5167e67 c51694b9 45ceddaf -> bc723458 bff68215 bfb8cded bec68f75", + "46c32720 c70813e9 46c092f8 -> bfa6df1c 3f85a511 bfd4e1ef 3bd77695", + "47b06e70 c6179b64 c6bb33d2 -> bfe5f5b8 c002276d c0122c54 3e8c6373", + "439ea8eb c58f09f0 4501672f -> 400d797a bf7ec213 3ecc504e 3e98fd17", + "46249997 c4823e2e 4643a1f0 -> 4004016a bfca4e7b 3ed472d2 bee5c1f7", + "c7c7fa6a c885320b c84d87cb -> 3f77ef54 bff6d9fe bfe98998 bedbb97a", + "c577e679 c3e13639 4278d832 -> 3fa65f82 3f959f97 c0101e0d bf4f45d8", + "494ba382 c94a091f 4827b6b8 -> 3f48bb1c c069869b 3f32b712 bf12e3a4", + "45d9943a 45769ce3 466e4a9c -> bfe42a8a 3f196909 3f2a2950 bdd746b2", + "44f48464 456ae647 c5b4555a -> 402eb750 3fc1190d 3faf5b2d 3e8d823b", + "47b92b4b 47b2007e 479cfee2 -> 3f9135cc c008227c 3eb8dbdb 3f4bb2ea", + "4584020c c44b4bfd 4509d1b2 -> 3f8f0489 3fd4e0b6 3f771d43 bcd3b626", + "48f36300 c7d3788a 492c5f26 -> 3fe5c4b2 bf5b18eb 3f847fae be31676a", + "4a06906e 4a3eae3a c96489e8 -> 4005ea19 c05f30cc 4085ea15 00000000", + "c6601f68 43644ff2 c6ac479c -> bfbe5609 c00dfa87 bf1160f2 3e1017bf", + "c9584e57 c945a37c 495cae85 -> 3f3ab683 3f1dcadf 40681572 be9e19eb", + "495d508a c93043a1 493e1c7e -> 3d363640 3fb2024e c037d860 bf049d73", + "479186f5 478dfd71 c82a7a6d -> 4008d2a7 401beb68 bf63440e 3ef31f92", + "c9101484 492f647e 476c9acb -> 3f74c705 40a3d198 c00c61d8 3e8ddacf", + "c9674513 ca0e2c9a 49bc41bf -> bfb7fd9e c00e1a83 bd486ea6 beb05b77", + "c61e242f 46c10852 4722be67 -> c027a757 bf494c7e 3f0fbd04 bf22fb14", + "c4267ccb c4a3b6c9 c497de68 -> 3f6dd6e5 3f19e48d 3fe84eab 3eb5b8e7", + "c41b4a87 c42b77e1 c2e9ec34 -> 3f20c7a5 c017cfc3 bfe6acaf 3f1b7aed", + "c627ee77 c4a3248f 448918c1 -> 40322eda 3e55c317 be42e0de 3d0bd72e", + "c907bd2e c9b9ee06 49ac907c -> c0099887 bf4e45a6 bfcb66c7 bf09a293", + "c2e0f51a c2eebf77 c29de3e0 -> 3ec97625 bfda8b04 bdb123c6 3e13dae0", + "48160e7c 47bb4c91 476dcc52 -> bec8ab90 bf805c9a 3fa632e8 be8f1858", + "49c55692 4a237926 49e478b3 -> 3f741ad9 3feac4e3 3f8a1b6b 3d55280c", + "44920282 468542ab 45f54a7e -> bec170f5 c02d2adb bf7292f8 bef5b98c", + "c68c06c6 c6161be8 c6915341 -> bf88f1bd 3dafb9f3 bf469553 3eb6030b", + "458f34c7 446eb3ee c425b64f -> bf7b4e9c beb46def 3e373f6c bd1469d4", + "c6152228 4564ab8d c618eaef -> bf244b89 3daa7835 3f295c31 3c29b766", + "489a1386 491e5176 490e58da -> bf63e32f bfced33b bf9c2218 3d2f7247", + "ca3a7add 4a53a8ed c98b2aae -> 3fc0e644 bfa4112b bf7af946 3e3ef88c", + "c9266f94 48d93896 49c30136 -> c02faf19 bf1cebeb 4089973b bd0aba87", + "45bbdf08 c799df3f c7274ec0 -> bf5f752a 3edcab71 40642ae4 3db3f6eb", + "47a02803 499130bc c9108eae -> bf60bf38 407c5657 bfe52335 bea58e48", + "47173c6c 473a7d59 c79577a8 -> 3d4609ac bffe594b 3f4a9099 be9bf33b", + "c4039422 c294b99b 43d61a41 -> bf4f3454 3f12d4c3 bf05edbf be88312f", + "c78e329d c795c8c7 c3f3084a -> bf9a9b0a bfbb6be0 3fd0a3db bea6f21d", + "48a298d5 c7d5126c c7c9bf00 -> bfed30f3 3ffbf21c be93de9b bf2ced11", + "460f3809 c4d70868 c583a22c -> bffc9353 bfa8c788 befdb546 be07fa75", + "46808906 461bbd53 c7087c4e -> 3e5c8de1 beccf42c c00ffbef 3e8f5224", + "450f0874 c403c5c9 450d00ae -> bfb9e2e8 3f623f63 bf948a0f 3d703c24", + "492c4d72 49c18724 c74f5e1b -> bebbd4d1 bf432453 3f845b1b bd825f08", + "c1cd1101 42e655f1 c2cf89ea -> bfc6d2a1 bfac4912 3ea0c752 3dc46622", + "c24607af 42e2d20e 41e7d53e -> 404483c8 3fe7f53c bfb295dc be5c1e53", + "447647dd 449f4d63 c39f5d3c -> bef0d342 3f8d4b80 3f94539a bf684dc2", + "c37f64e3 c2bba05a c359d9b0 -> bf8a125d bea70b28 bfac8104 3ec48b82", + "4508140d 4579aea0 c5140091 -> bf5e8ef5 bf9fe648 401fa59d 3eb5e8c3", + "c907afa2 49075bed c8dc2abd -> 401c40ca bf3b0cb0 401c5cec bdc3fc1c", + "3f68c3b2 430fb8ff c204720c -> c0511fb0 c0224e5f 400a30b9 3e705484", + "4295bf4c c2a1588f 435f49e5 -> 3fc45597 3f7dc2eb 3ffac375 3f0e2827", + "45ee7eba c7c5a06c 47ad2af5 -> 3f267b83 3f71453a 3fa8e484 3e024a2f", + "4a4cb698 ca118a86 ca68b89a -> 3f389217 3e95f008 bf5acb66 bcf61ee5", + "441767af 442ba8aa c4759520 -> 3f1b65b9 bfe5f7c7 c0c021ae 3c114993", + "c4db3e85 c51ac2a5 44bc5ce4 -> 3e719b08 c049d4ce bfa5805d bed6167f", + "438cf04d c2db4a18 c42cfe4f -> 3f0d8056 beae42be 3febf00d 3e61b04b", + "c4816ff7 c50996e2 44aba8b2 -> 40267376 be946869 bce4e350 bf05fe5d", + "42e23b30 412ef937 c1993ec3 -> bf025ae0 4036db9d c0197bb2 3ef6ca09", + "c6899680 462606f1 44a104d2 -> 4008f87e 3f79c5b0 bca34188 3e5ff454", + "46d9ad7d 46fbee6e c7321906 -> c02bade9 be905dee 3f51a4bf becdec91", + "471e658e c709a320 c7631de5 -> 4001cd7f 3fdc93c5 bf725449 3eb1d83d", + "440c2c91 43f7e6a0 432c3345 -> 3e02c52a bf4c831b bd8c86bc 3e4349da", + "c817a0fb c7930004 4809f8d2 -> bfc1daf1 bfd9a975 3eff7c44 beaec67c", + "c3851345 c3712662 c2c79445 -> 3fe24796 3f6c1bb0 bf3397fe 3e184d4b", + "43289fcf 413a0d7f 4231fbae -> bf117813 bf74d9b1 3e423cfc 3e3b44ef", + "c803b2e3 c582c269 c6b79081 -> 3f94331b 3ee48cee 3f4d7f5a 3dd3f964", + "c81e6b36 c7f0c365 47e2602d -> 3ee53981 408b2fa8 bfaeb71f be215f26", + "455e30a1 42a752a7 c5a617a2 -> 3ed99e0e 3fed617e 3f26c8c0 3d80e8e5", + "45d5a62d c6d97b99 46b49e50 -> 3fbdbd5a beef1575 3f7d6ed8 3e928109", + "c679d328 47136c9a c4af24e8 -> bfb6b564 3ee70154 bd600851 bb807af9", + "42015b07 439b21c7 c4036e84 -> 3f874259 3fd1a11d c02543e8 3eda4609", + "ca1319c8 c9b4eda2 488323d2 -> 3fc6ed5f 3e5df195 c0007a4e bef5f84d", + "c896eeb9 4819be97 490e7639 -> c01d0bb9 3f87272d beda1bdf bee9747c", + "c461cac5 4408be03 43f2f197 -> bfcf1833 4061875e bfd1dd70 3f1bc82a", + "4740c30f c7ac2c0c c7b5f2f9 -> 3f9c4379 bfbd0008 3fefaf30 be9a4858", + "c3ab0f8b c40eca83 c416a273 -> bcfbf515 3e829fea bf50896c 3e18a32b", + "434a5d51 c44a73ae c448f467 -> bf2d6080 c03ae5bf 3fd1e371 3f1d4c84", + "47294bdb c63657ab 46bf4e94 -> bfd796db bef72e9b bf99770a 3e8503cd", + "c4c032d2 c3e5bd6d c4acc17c -> 3f91c9a9 becd48be c0742061 3e0ac537", + "4521583c c3b4a56e c4fdeb06 -> bfa6ac1a 4000a3f4 3e30914f be8d4209" + ] + }, + { + "glsl": "mat3 cultmath_snoise_hessian(vec3)", + "tolerance": "ulp-bounded, coordinate bands 1e-4 to 1e2", + "check": "Read at the case's point x, with S = |x|_1 and (e_n, e_g, e_h) = math.span_slack(math.span_rounding(1, x, zero stage, 0, 0, 0)), against the kernel's exact values in double: |n - n_exact| <= e_n and |g - g_exact|_2 <= e_g for snoise_grad, ||H - H_exact||_F <= e_h for snoise_hessian, no tolerance. Report the largest fraction of each allowance per decade of S and the largest absolute error at S < 1e-2.", + "cases": [ + "bca70bd6 3d95add7 bd0a0302 -> c05c7c12 bf01ee27 bfdcb6fe bf01ee27 c098bd14 40eee7c0 bfdcb6fe 40eee7c0 c127b479", + "3fd459f9 3e3e6940 402c6d30 -> c1873507 bf8d2713 3e38eb6a bf8d2713 4156bd9a c0d8824b 3e38eb6a c0d8824b c11f83fe", + "3f07f723 be788b0d be8d520f -> c0beeabf 41087b51 c0fb6062 41087b51 bf341d26 bfcd0efd c0fb6062 bfcd0efd c10ddfba", + "3bce826a 3c0e5872 3b4821a5 -> 3da0864b be053704 3f2111b3 be053704 3d17416b 3f609d1e 3f2111b3 3f609d1e 3f52bbcb", + "be5451e3 3e7671fb 3e8b4880 -> 4065a0ce 411ce25e 4070e698 411ce25e c0ebba14 c121b5a2 4070e698 c121b5a2 40f0b2a2", + "bb972f5f 3bb8be8d 3ae137c6 -> 3e7ff5ea bc10ab4a befd80a9 bc10ab4a 3d93a710 3f12686e befd80a9 3f12686e 3f07148f", + "3a297b08 38f206f5 b96e93bf -> bd2a1121 bbd8a0f8 3d8de7ca bbd8a0f8 bd04510d 3c653916 3d8de7ca 3c653916 bd9f1760", + "c01d9c7c 40fdffbd c0eab9d5 -> c184a67c 410411a9 c0962e1e 410411a9 409597d9 410bcb42 c0962e1e 410bcb42 c1005b34", + "bdd279db bd95c6de 3df2d752 -> 41373c07 3e2627d8 c0fe7268 3e2627d8 413cab63 c0bcf46a c0fe7268 c0bcf46a 41efc01c", + "3dd893f2 be29f609 3e338c29 -> 410ef3c3 404ac1d7 403dc2fd 404ac1d7 41254d46 c0e64222 403dc2fd c0e64222 41f118fe", + "b6481433 b9cdd01a b9654469 -> bc9df184 3b60eac2 3acff866 3b60eac2 bc4d1f59 bd1fa582 3acff866 bd1fa582 bd84d527", + "c0b60858 40014f87 c04c7785 -> c10439ca bf737410 c0c45a28 bf737410 c13852d6 c0a6d327 c0c45a28 c0a6d327 412f0a0a", + "3e281273 3dd6908c be285ea9 -> c11fe939 3fc05bfc 40ed6ef0 3fc05bfc c141b7b4 40985bff 40ed6ef0 40985bff c1d9a4f2", + "3ddd92f9 3f17e379 bfc8b536 -> 408f2d06 3ec818d3 40a12c40 3ec818d3 41d2e82e c0d4fc6a 40a12c40 c0d4fc6a 411955bb", + "ba0c3b03 b9580b40 b97902b4 -> bc13a7ce 3bd2aead bd5bb498 3bd2aead bc712b17 bc9ee011 bd5bb498 bc9ee011 bd8abe1d", + "b91561ac 37fe693e b854ce85 -> baf0a4b8 3a7f2672 bc6bce2e 3a7f2672 bb9e625e 3b6b7541 bc6bce2e 3b6b7541 bc73a4ae", + "3aa8603c 3a16a9ca 3a80a595 -> 3d8297c6 bc842a61 3e003d7a bc842a61 3d9bd2f0 3d523943 3e003d7a 3d523943 3e94b509", + "bc18d1c9 3caa803b bcb8b129 -> c011311a bdd678d8 bf43be48 bdd678d8 c031cff7 40156738 bf43be48 40156738 c0e2a911", + "bcc0abff 3d0e6369 bd03a22b -> c03d96cf be047142 c00696eb be047142 c07b8697 40726a0d c00696eb 40726a0d c11ecbd7", + "be96b068 3e2088b5 bc9e2aed -> c0c83ea6 3f2c1c1e c15335e0 3f2c1c1e bef9f973 40f3e1b2 c15335e0 40f3e1b2 bf4d8986", + "3d680a58 3d258e95 3d521e22 -> 404c50d6 bf6ccc04 40a1ed5d bf6ccc04 4062d41f 405f4371 40a1ed5d 405f4371 4165f721", + "3baa916d 3b3afc16 bb1c72d4 -> bed13534 bd8f0c1d 3f1000a2 bd8f0c1d bebc59e3 3ea2a73b 3f1000a2 3ea2a73b bf50bcf6", + "3b2243c0 3b7fc626 bb0b29e1 -> bea380ed bd6288d3 3e8d6557 bd6288d3 beb029e7 3ed971a0 3e8d6557 3ed971a0 bf37f0da", + "3f3a481f bf22d341 bf90800b -> c0f27fc7 40fec926 c16a1464 40fec926 40c71e81 405395ed c16a1464 405395ed bf98e408", + "409a7b48 3fdcc0de c09e5432 -> c10763b6 bf1f8952 c067ab12 bf1f8952 40777450 4016c1ba c067ab12 4016c1ba bd393052", + "40083853 c09c8176 c0807505 -> c125bb50 c0aa105e c161ab23 c0aa105e c0d48e4c c057ac25 c161ab23 c057ac25 c01eeb80", + "bed8e2bf beadb1f8 3eb28a93 -> 413e2eed c07c9753 40bfd819 c07c9753 bf880a1c 408bc4f3 40bfd819 408bc4f3 41728ada", + "b8a7b78d 38e1e1a3 b8f18b77 -> bc31aead b97be5d6 bbf0432a b97be5d6 bc670e5b 3c481c80 bbf0432a 3c481c80 bd145b68", + "c0a6fe07 41091a02 418b53ab -> c1919a8a c0d70ea5 3f74f5a3 c0d70ea5 be2bf79c 40f964d3 3f74f5a3 40f964d3 40ef86a9", + "3cfff4d9 3c23c2b8 3cd03434 -> 3fd9cf93 beb9ae8d 403eb542 beb9ae8d 4005cace 3f4e07c9 403eb542 3f4e07c9 40ef87f6", + "3c495104 3c93154a 3c220917 -> 3f0d0300 be86ed51 3f981c1f be86ed51 3ee7099d 3fe35045 3f981c1f 3fe35045 40343d5f", + "c02ad46b 4083a8ae 3ef4b7da -> 411c0c2b 40add873 c09a30e0 40add873 41476715 c1128427 c09a30e0 c1128427 41af8832", + "3bb64a33 bc2cba24 3b620a08 -> 3e9c57a9 3d31f6b2 3f0c77c5 3d31f6b2 3f158dfe bf902ddf 3f0c77c5 bf902ddf 3f8f4b00", + "c2789545 429ceeef c2746174 -> bda7c6be c0ec24bd be91b278 c0ec24bd 4179bf61 412a8b5c be91b278 412a8b5c c08bc86e", + "b9a53920 3b370f82 3b56f0cc -> 3ea69d36 bcb01943 bd7aeab6 bcb01943 3e8afbdb 3e864e66 bd7aeab6 3e864e66 3f805c11", + "38dd4caa 398bde14 395c5876 -> 3c89c63b bb53b451 3c16242f bb53b451 3c65b38d 3cd49ca3 3c16242f 3cd49ca3 3d7fa057", + "b93292b8 38dc74f5 b9a858b6 -> bcf50970 3a142e2f bc74dabb 3a142e2f bd0e18a0 3c61028e bc74dabb 3c61028e bdcc3fd2", + "b9c96814 39f75d83 3a88626c -> 3de9f9d9 ba474c69 bd48d0c9 ba474c69 3dcb8df4 3d243c1b bd48d0c9 3d243c1b 3ea6053d", + "3d05d9b5 bc23cf49 3d84accb -> 40b6ae2f be295ddb 402593a8 be295ddb 40d001a6 bfc049f9 402593a8 bfc049f9 41989fcd", + "c224aafd 42af2e1e c2945200 -> 3f8ad9e9 c11334a0 c0eb8c7b c11334a0 411b8b21 c14c7cf0 c0eb8c7b c14c7cf0 c0bc58ec", + "3cab5bb4 be4e4e15 3e27c775 -> 413c62b6 3f996ceb bdd47a83 3f996ceb 411ad173 c113164a bdd47a83 c113164a 41ee2ec0", + "bef887fd 40890030 3f97b61e -> c08ba6f1 c10940a5 bf812b08 c10940a5 410a75d8 41130f85 bf812b08 41130f85 41337912", + "b642d624 b8d87f91 39314085 -> 3c982439 3a71750d bae7e635 3a71750d 3ca6680a bc482a98 bae7e635 bc482a98 3d5c0c0c", + "3dc3a86a bda66275 bf8067af -> 410ae777 c04170fe 40813cf2 c04170fe c00809ff 410a672e 40813cf2 410a672e 41c8c371", + "b94634ee 390bfeae 397fed29 -> 3ceefe8f 39fc82b2 bcb29334 39fc82b2 3cc12495 3c41114d bcb29334 3c41114d 3d9d1ea7", + "c1c347c5 41283e74 41c65d7c -> 411e3797 beaa53c6 417abc89 beaa53c6 3fc25f7d c0637572 417abc89 c0637572 c136b51f", + "b939018e 39801be5 b9c31541 -> bd148e0d ba1a6c85 bc78210d ba1a6c85 bd32773f 3ceaddcb bc78210d 3ceaddcb bdef3bc8", + "4085492e c083fba6 40c9da93 -> 3f6dea00 40a8394a 3fa12e07 40a8394a c1495a39 412c0719 3fa12e07 412c0719 407dbe3d", + "c08b32f4 c187f2df c18362c1 -> 417082e3 c07c2270 3f8aa992 c07c2270 c08aa00d c04a3603 3f8aa992 c04a3603 41843415", + "3db6fd2a 3e35aba1 3e95b813 -> 41299c4a bf92db97 c02ebb04 bf92db97 40f7d0e4 c03973f2 c02ebb04 c03973f2 41a5062d", + "38edb71b 3888e6ec ba5698ac -> bdb5c37e bacb393e 3c9ae225 bacb393e bdb40e69 3c63d035 3c9ae225 3c63d035 be83b681", + "bd349be1 be7f0a89 3e2c00c6 -> 41343089 bfe26f65 c006e143 bfe26f65 40da3366 c10a9b12 c006e143 c10a9b12 41d3a700", + "bd14afe7 3c0839c7 3cf410a6 -> 40779481 3e80c8f9 c07c2d77 3e80c8f9 4049e18f 3f16cfd8 c07c2d77 3f16cfd8 41162509", + "c0464dc7 bff3e8a2 bf7ccccd -> c1d0ea4a 4115097f 402c5b0d 4115097f c1710a26 bff74064 402c5b0d bff74064 c137e38b", + "42407a89 4116ea33 41b660b5 -> 40911f34 40c0cf6f 3e05a6d3 40c0cf6f c0c11a69 bf4ffaf4 3e05a6d3 bf4ffaf4 c0faaf30", + "3bce2215 3e582f58 bc9ef064 -> c03d8bef bfbc3e7f 3f244210 bfbc3e7f c081ee4f 41846057 3f244210 41846057 c0bf3390", + "38a37e75 b8ee5ce4 37c1f1aa -> 3ab2e81b 39a27c4e 3c01b5d9 39a27c4e 3b99b3e6 bc4537bb 3c01b5d9 bc4537bb 3bf6de0e", + "c1917250 c19c3a90 40b5fe09 -> c1c11c0c 40ffde9f 404fd68c 40ffde9f 3f8abc5e c0c79601 404fd68c c0c79601 c0ccfc6f", + "3b9fe01c 3ad1993b bc6ee761 -> bfd4017f bd654bc0 3f21dcac bd654bc0 bfccc832 3e95953f 3f21dcac 3e95953f c09335e1", + "baa18678 ba291da2 ba9ecc03 -> bdb52da4 3c8573fd bdf13e28 3c8573fd bdca0cfe bd680e34 bdf13e28 bd680e34 beb969cc", + "428a6a4b c1981cc8 c202eda8 -> c1793b26 40adef7c c07ac975 40adef7c c1ccfd31 4124ce16 c07ac975 4124ce16 c1b0f84e", + "3b58df7e bb01dc01 3b657215 -> 3e974ab4 bc3c42c4 3ea0cf2f bc3c42c4 3ec64eb3 be724e33 3ea0cf2f be724e33 3f8a7a14", + "c0d0dae3 4113d6a6 40594b98 -> 4121b04c c162b388 c0c8d5ab c162b388 c0a15898 c15cc710 c0c8d5ab c15cc710 4032a345", + "befdc1c1 3f9fbf91 bf8e764f -> 41bb7f40 c0cafec1 4046bc3c c0cafec1 bfcb0d3b bfed398b 4046bc3c bfed398b c160bf5b", + "c01f693f 3f69a693 bbd90e8f -> c1050dab bfcaf49b 3fb5be20 bfcaf49b 410e6fab 4189f368 3fb5be20 4189f368 40a9bb20", + "ba146a0f ba14a8aa b99e5781 -> bc412198 3c211adc bd66bb17 3c211adc bc40e084 bd671cb5 bd66bb17 bd671cb5 bdad1116", + "393ac987 ba457080 3a0663ba -> 3d6269be 3ba38011 3c66fd84 3ba38011 3d924ddf bda9b74a 3c66fd84 bda9b74a 3e29164a", + "bc15e1c9 3b9f9881 bb70003e -> be3d660e 3d172912 bf6b7fd4 3d172912 bedb4a38 3f09d67a bf6b7fd4 3f09d67a bf8d8f80", + "be9ce12b bdb8ea30 3e8a9caa -> c04dca15 c0b6d116 40f44252 c0b6d116 40aeb2d7 be281ebf 40f44252 be281ebf 41d0a945", + "3e528f3f be7b1c9e 3e719c3c -> 3fe176ad 40f4218a 3ec1eb36 40f4218a 40ffc51a bfb22dc9 3ec1eb36 bfb22dc9 4177efc2", + "bc126150 3b6a9b67 bb0ce148 -> bcb55707 3d3de850 bf6938ac 3d3de850 be750f1e 3ec843a7 bf6938ac 3ec843a7 bf1fe75e", + "3bd183d6 bd0b75f4 3bcc7648 -> 3f45bfe8 3e764087 3f1b4cbc 3e764087 3fba84f6 c0647fc3 3f1b4cbc c0647fc3 400b0780", + "3e02b7f9 3e1dc1fb 3e3ee697 -> 40f60796 c0188b36 408f1790 c0188b36 40f16708 40c0c166 408f1790 40c0c166 41e9f657", + "bd874bb4 3de1606c befbf8a5 -> c10b71af 3fe33209 c0897198 3fe33209 c16cc995 c0e0ca32 c0897198 c0e0ca32 411c41c2", + "bd5187ef 3ce80f04 bda5adde -> c0d5192f 3d49068c c07d81c0 3d49068c c10213b5 404e1760 c07d81c0 404e1760 c1b7dabe", + "bb842213 bbc540e8 bb8f0b2d -> be982102 3db2c47a bec372d9 3db2c47a be866f1c bf16aa05 bec372d9 bf16aa05 bfa34a89", + "41e3e526 41f71eaa 41fece9e -> bfbb68d1 40bea35b 3cc54f90 40bea35b 40f20bba 40b08b1e 3cc54f90 40b08b1e 41892bb0", + "3a7fa1c7 3a829451 37c95e4c -> bd01233f bc8c1fae 3dcf8363 bc8c1fae bd02a2df 3dd40247 3dcf8363 3dd40247 bc1d667c", + "4093c991 40bd52bf c06d4c8d -> 3f21e429 403f47f4 c0bd8ffc 403f47f4 40aa11e6 4104d974 c0bd8ffc 4104d974 40a983d1", + "b815b04e 3893698e b8d8196a -> bc2a88f9 b99d8982 bb38d689 b99d8982 bc48aa96 3c06940c bb38d689 3c06940c bd050bf7", + "3b131cbc 3afa275a 3ab60dbf -> 3d8e9390 bd139edc 3e62f9bf bd139edc 3d9a8772 3e3f211f 3e62f9bf 3e3f211f 3ecbaba7", + "bf1c268c bf921c24 c05368d5 -> 3f482eec c048d35e c115d453 c048d35e 4176699d 40c3931b c115d453 40c3931b 4135df56", + "3b1f7198 3a0cc6e9 bb9fd066 -> bf135e40 bcd2feb5 3e974c74 bcd2feb5 bf0af4d4 3dc91b62 3e974c74 3dc91b62 bfc63e00", + "c0f4089a 408c2456 c09676ec -> c100e934 40684649 3ef9868e 40684649 c15496a9 c07e0033 3ef9868e c07e0033 c1eaab68", + "3e019b20 3d9b2e80 3dfdc9da -> 40ac7b8b c014dce8 40fdcef4 c014dce8 40eb03fb 408fb603 40fdcef4 408fb603 41dd6295", + "40a91a9e c0ac2ff5 c09d2432 -> 410cc12a 3e24a6ae c0d6f5aa 3e24a6ae 3fc3fe4e c08a3761 c0d6f5aa c08a3761 401be9be", + "bd46eb4c 3d87366c be2de61b -> c152e2f8 bf366e9b bfad5643 bf366e9b c1667f5f 4093c40b bfad5643 4093c40b c2152dc4", + "37a9be48 ba267333 ba62b080 -> bdae317c 3baec52c 3c1d8070 3baec52c bd96e7da bd70104a 3c1d8070 bd70104a be8790e5", + "be39216b baf2e83a 3e18def5 -> 410b9da1 3f90d3b7 c11d5c01 3f90d3b7 4141626f bf801cf7 c11d5c01 bf801cf7 41f3431d", + "3a5c53ee 3a4e6fc2 ba1bb7b4 -> bdb977e7 bc676bcd 3dbdc716 bc676bcd bdb795d8 3db27a86 3dbdc716 3db27a86 be4c7839", + "3e14606e be8cb61e be4b3f32 -> c0c8d428 c0491d73 4090f43f c0491d73 3f335440 c0c2b320 4090f43f c0c2b320 c1b234c8", + "bf9c6ef1 401514b1 400d916c -> c00c1ac8 40b7a6d9 40d5c72d 40b7a6d9 414d7f8b c03167be 40d5c72d c03167be 411ab818", + "bb25b9b1 babdc6d0 3ac59f14 -> 3e70fe0e 3d0d4935 be8d7eca 3d0d4935 3e5dcb6b be27bf3c be8d7eca be27bf3c 3f01637e", + "bf17304b 3f3f65c6 bef2ad46 -> 4126f58b 4145abb2 41192472 4145abb2 c116a13c 408384b0 41192472 408384b0 3fa0fa2b", + "3f8b35d0 3f8c546e bfb950f1 -> bfc902fe 3f110616 40598f49 3f110616 4158d1fc bf3ae9ee 40598f49 bf3ae9ee c1961bd5", + "beefd7bb bed0cfc6 3c0eb3ec -> 40b3e4d2 bfa71d7d bfeb3794 bfa71d7d 400f833f 41248bfc bfeb3794 41248bfc c089dede", + "bff650ca bff6af14 bfff1e97 -> 4192de89 40e1bc67 406440a1 40e1bc67 413fb0a9 404a9ebe 406440a1 404a9ebe 4108f5a2", + "3c77cac6 bd693879 bde38ca5 -> c12629f7 3e622ccc 4005fc26 3e622ccc c10dea46 c06d765c 4005fc26 c06d765c c1ed0942", + "bf03d333 3fe4d1ad bf9fae2e -> c1559ef2 41090304 414af81f 41090304 c0914aee 3fb3261d 414af81f 3fb3261d bef57b86", + "c1861bdd c2989d1c 4295dd6a -> c0a17e04 405a735b 3eca08ad 405a735b 40d64f2b 4106f26b 3eca08ad 4106f26b 40b62d51", + "40854229 41a9b474 3d7a1f7a -> 41864dd3 bfe013d6 405cdd87 bfe013d6 40cd334e c0eea703 405cdd87 c0eea703 3fde81bb", + "3ced127c bc890d9f bc857f38 -> c01123c2 bdec7f0b 4047930c bdec7f0b bfbf35fb bfca6ccc 4047930c bfca6ccc c0a4b858", + "c0348545 bf814de0 c0cc5633 -> c06b6987 c1516972 40811583 c1516972 c0f1910a 407e3995 40811583 407e3995 c10d449b", + "3874ed4c b93071fd 392d9a08 -> 3c8cbadd 3a79ee60 3b982b3e 3a79ee60 3cacf441 bc9b4d94 3b982b3e bc9b4d94 3d57bcbb", + "bd11d016 bee7e266 3eaf0775 -> c07d1717 c12bff84 bfbe7767 c12bff84 be8b2eaf 413dfb1f bfbe7767 413dfb1f c0b56d4f", + "3f07b255 3f966062 be77e634 -> 40f30745 c0f81593 3f4f9462 c0f81593 40dd1b88 40a5a78c 3f4f9462 40a5a78c 41364952", + "bc05c153 bc076e32 bc0089d7 -> bf080e70 3e125d6b bf47cf29 3e125d6b bf07995b bf4a87d8 bf47cf29 bf4a87d8 c0138217", + "bcb4bf39 3f911538 3f8b2a4d -> c2151638 c0a81752 c046716c c0a81752 c18348a9 bf8d1204 c046716c bf8d1204 c15f9aa1", + "bee5e6d1 3fda05d2 c07dcc04 -> 41bcb133 bf0ebfb1 40acfe21 bf0ebfb1 4137f151 3fc812f7 40acfe21 3fc812f7 c06870b1", + "3cdfe3f1 bcb69d27 bd0d6845 -> c080a7cb bd8e2e49 4043c14f bd8e2e49 c04bb160 bffaba2f 4043c14f bffaba2f c129e55d", + "3a1f1fa2 3c176882 3ad1143d -> 3d8f7edf bdaeebcd 3d4a12e7 bdaeebcd bda35ea0 3f72a611 3d4a12e7 3f72a611 3ed33f48", + "bd439830 3ceb0c59 bc8128ce -> bf184370 3e0d716d c097370e 3e0d716d bff5cd50 40437401 c097370e 40437401 c0951f37", + "bf8cd559 bf75b5e9 bf11552a -> c0ecb66a be83a235 3fbaf5e0 be83a235 3e619c4e 3ecf8876 3fbaf5e0 3ecf8876 bec6c56c", + "3b6b47d4 bb374a0e 3a9ee4c9 -> 3d6985ea bbe10d38 3eb9f94d bbe10d38 3e2bde1d be9a7565 3eb9f94d be9a7565 3ebe53b4", + "c16f8d03 417adb03 c1e65687 -> c04a580b 3f10a56b 3f9a0eaa 3f10a56b c108806a 3ec55590 3f9a0eaa 3ec55590 4119106b", + "3e948c3c c1af3de2 41e30b2e -> 40e73654 c08b1036 bf722681 c08b1036 c0fdb6df 3f342633 bf722681 3f342633 c008f54c", + "c03be214 c064ce86 403f8474 -> 40f91ed0 bfc46a1e c08166ec bfc46a1e 423361df be349d53 c08166ec be349d53 40902c07", + "bb97b4d7 bc97b351 bd0a5b99 -> c04d2d6a 3e4f49fc be396b7e 3e4f49fc c03d13e1 bfcc3b97 be396b7e bfcc3b97 c123647f", + "bf90c0fa 3fe2e40c bf6625f4 -> c1b55706 c111c8e0 3fb96d7a c111c8e0 c1b74d38 bf3b4c3d 3fb96d7a bf3b4c3d c151d857", + "3fe52348 bf61a203 40b4618e -> bd88e87e 410c56b6 c08e894d 410c56b6 c1938acf c0601c38 c08e894d c0601c38 416c1e20", + "3dbec6a8 bea2a5e9 be37c3ad -> c0c9722f bf3db686 40763121 bf3db686 400d7aa9 c0c9fe4c 40763121 c0c9fe4c c19d8ecf", + "bd628ef3 3e5b5344 3e559d7d -> 41339eee 3fa69bb8 c006dad3 3fa69bb8 3fcb6ed2 4078064d c006dad3 4078064d 41dc0356", + "c298f4db c276cc35 c24d7750 -> 41a5a290 c026188a 40be5c9b c026188a 4120f168 bf01fc2e 40be5c9b bf01fc2e be54fb4d", + "c165f9f6 bf36194e 4118522f -> c115fc40 c0a1c24b c0a53b5b c0a1c24b bfd05db1 405ff648 c0a53b5b 405ff648 c1175203", + "380e8b38 38db65fd 389a5347 -> 3bc05658 ba9da11f 3b3e0ec6 ba9da11f 3b982c4e 3c2801c7 3b3e0ec6 3c2801c7 3cb27357", + "3e81a848 bf59f6c3 3e82ce35 -> c0909d00 c0277bca c0ca2e8e c0277bca c0b62299 bf662e70 c0ca2e8e bf662e70 c1af8410", + "bd980bb9 3e005f66 3b5dfa45 -> 3f874331 becc2603 c0d9fe0f becc2603 bffcaad4 4136f10f c0d9fe0f 4136f10f 3f0a1735", + "3f13626c 3e694eef be2d83c0 -> 4104f5da c1242c67 bcd4059e c1242c67 3fa34490 411ba46d bcd4059e 411ba46d c102e7a1", + "ba816f6f b9378027 39fadd90 -> 3d9dc8c9 3c25451b bddb1638 3c25451b 3d80e89d bcb74cef bddb1638 bcb74cef 3e235f8a", + "c10e5402 3f79c032 401bfff2 -> 40a9d96d 405826d7 c10d1e46 405826d7 bfa7be2c 408c0c4d c10d1e46 408c0c4d 40ab1a42", + "c0709da0 402d3fdd bfd83411 -> c0f3c34e c03cc065 c029757b c03cc065 41a5a498 3ffbf261 c029757b 3ffbf261 c0d622ce", + "c025898f 40f43d5b c08d983f -> 41e938ce c038c578 bf1060a1 c038c578 414dd0f3 bfbcd015 bf1060a1 bfbcd015 411f42a1", + "3f8df5b9 be8f329b bf6db445 -> c1345772 40d027bb 40372583 40d027bb c0ea8bd0 c151c76e 40372583 c151c76e 3ebc3ba0", + "38eaa45c b8a1473a b9c2fa44 -> bd27cc4b b99f6fe1 3c73d21c b99f6fe1 bd1a6050 bb9c9ab0 3c73d21c bb9c9ab0 bdee8440", + "3ef68428 bdf356fc bf154fbf -> 40f8a73d c12c9262 41040e4b c12c9262 c17931ec bfd4aaf6 41040e4b bfd4aaf6 3f819a55", + "3bf2e909 3c1cc22a bc2014c6 -> bfa53441 be15a423 3f5ab831 be15a423 bfa9eb02 3f89ff72 3f5ab831 3f89ff72 c04c5f76", + "bd4268fc be23774b 3deda6b1 -> 4130b24e 3ea6cf6e c074b754 3ea6cf6e 4114a2f0 c1305992 c074b754 c1305992 41dc08de", + "baea77af 3ae104dc b9f7ca2c -> bc8fa1e8 3a2391a3 be3a861b 3a2391a3 bda07e79 3e3b3b5e be3a861b 3e3b3b5e be1682c8", + "3ca9d2d5 bd2e603a bcdc4a49 -> c039e002 3e22a88d 40154353 3e22a88d bfe425de c082de3b 40154353 c082de3b c100ae7d", + "bc76cfee 3c8284e3 3c78eebb -> 3fe970cc bb43473a bfd829aa bb43473a 3fa4d162 3fc20c5a bfd829aa 3fc20c5a 4096d7c0", + "bcc30d70 39ea4df8 bd29d4ed -> c067de9b 3e4c36d5 c002b246 3e4c36d5 c0821bb8 3eccb7f0 c002b246 3eccb7f0 c147d92f", + "b7eeaa6c b95cb8c2 38197bdb -> 3bd0f863 3b07e105 bb56d11e 3b07e105 3c1c41e4 bcb62b42 bb56d11e bcb62b42 3c5d43de", + "c2264a73 c29ae5eb c0bf9e20 -> bfb3a45c 4086e043 bfd9897a 4086e043 c0f837a6 c0cd024d bfd9897a c0cd024d 411bba4a", + "41d277a7 419112b4 beab0150 -> c02488a1 40ae6b90 c09e0fde 40ae6b90 3ed8052a c02e1745 c09e0fde c02e1745 c1c08935", + "b8ed8fa5 b85b20a0 b9287936 -> bc5a66ab 3abc3e9f bc2a593d 3abc3e9f bc6bbcd4 bb84a8b5 bc2a593d bb84a8b5 bd47b717", + "3ef1d411 40847bd1 40790bcf -> c126991f 407755a9 bf98eeda 407755a9 c0c544d2 c11fd0c2 bf98eeda c11fd0c2 413db490", + "bd1b741f bd0377cc bcb375d4 -> bf77d622 3f1f0bb4 c06b72ac 3f1f0bb4 bf89bd09 c0454695 c06b72ac c0454695 c0c3b4b4", + "3beb6331 bb8f24df 3b378331 -> 3e11a7bb bcc72c5e 3f3926a6 bcc72c5e 3eaf7893 bef52f58 3f3926a6 bef52f58 3f598dd6", + "3d54702d 38a0076b bcb4dac5 -> c05f8748 bee24f86 40ae5a67 bee24f86 c02cb55c 3e485d09 40ae5a67 3e485d09 c0e62201", + "3e7dee8d be8f6c90 bd2f1b8d -> bf3d7f0d bf2fe155 410c4e85 bf2fe155 3ed1b42f c13232cd 410c4e85 c13232cd c074984c", + "3c21e650 3b91ea4b bd1dfb8e -> c0887f9e bdf7d45e 3faa7308 bdf7d45e c085a2c2 3f483ba8 3faa7308 3f483ba8 c13fb5d3", + "ba4ed434 39fbdc9f 39ebef5c -> 3d817c0a 3b2f8178 bdb03dce 3b2f8178 3d28be30 3d3ce0d4 bdb03dce 3d3ce0d4 3e12aeb4", + "3f54747c 3f3d6432 bef75635 -> c11a8f61 c1220516 c02802fe c1220516 c12e9926 40ae538c c02802fe 40ae538c 40e3cae0", + "c0d40a23 4192d5f7 c1a50e07 -> c0a90afc 40a62788 400dd928 40a62788 41535531 413bc824 400dd928 413bc824 4117472a", + "b8a15cad 3b0eb843 ba527f49 -> bdcdd289 bc9551e9 ba88e5e0 bc9551e9 be0ef833 3e6f5051 ba88e5e0 3e6f5051 be89c0ad", + "bb92a135 ba76b019 bb9476fe -> beb19f14 3d40845b beda5045 3d40845b bed10f82 bd702908 beda5045 bd702908 bfaf1472", + "b818a605 3999f16c b9356088 -> bca0ac91 bb12447a bb15ed77 bb12447a bccf9633 3d035e2a bb15ed77 3d035e2a bd667cb8", + "3d14acac 3dde2bc1 3d66a119 -> 40621c29 bfabb1c0 4037f5c2 bfabb1c0 3fedcd80 4117870e 4037f5c2 4117870e 416a03b4", + "bc4652a4 3d387560 3cb0207b -> 400807f8 be89836f bfb583fe be89836f 3f8d8e83 408d1758 bfb583fe 408d1758 40ca2e09", + "bf8031f1 40a6d575 3f6cdf75 -> 4113cda6 405a667d 408de5b4 405a667d c0ad1337 41030e33 408de5b4 41030e33 c1434c3f", + "3d9675d6 3de15327 bd225856 -> c0bc3071 bf674f3f 40ddb385 bf674f3f c0c0a01f 412391fa 40ddb385 412391fa c1455845", + "bc40ac94 3c1e9c8b bbb91fa6 -> bebaab63 3c8d2b5c bf9628b5 3c8d2b5c bf3c832c 3f8708a9 bf9628b5 3f8708a9 bfdf3054", + "3adadd4f 3b97baa7 3b19f72f -> 3e24cc95 bd5ff0eb 3e1d1f7d bd5ff0eb 3de04f7d 3eec5abd 3e1d1f7d 3eec5abd 3f2dd5be", + "b7e2d755 39873d64 39c21f3a -> 3d179f6e bb034d83 bbc5884e bb034d83 3d035d96 3cc1b394 bbc5884e 3cc1b394 3de8c1df", + "3e2df629 4011a9e2 bf32f6f5 -> 41862f98 c10167d0 bfd91443 c10167d0 c086368e c0495b87 bfd91443 c0495b87 3ff959ed", + "b65e45be 38bac214 b9212f8a -> bc88b3f8 ba42e33c 3a80d448 ba42e33c bc95d749 3c2dc256 3a80d448 3c2dc256 bd47aeaf", + "be352bf4 3e9040a0 3e4958c2 -> 406beb47 40d9ad2b bf88d710 40d9ad2b c0bc0158 bfb80310 bf88d710 bfb80310 4142f4c3", + "bd2ba1a3 bd872026 bd83d970 -> c093d49d 3f88173f c0595634 3f88173f c081bf48 c0b4c2ff c0595634 c0b4c2ff c18df17b", + "bb51a7cc 3b603b7e ba879ca2 -> bd5dade3 bafec426 bea5ec71 bafec426 be2d0cd8 3ebaf7fa bea5ec71 3ebaf7fa bea66f55", + "bc81d324 bdaa8990 3c6ba166 -> 4020acb7 3f494485 bfd87443 3f494485 405c8a00 c1060b2f bfd87443 c1060b2f 40a39bd4", + "be61335c 3dde8de5 3c7db2f4 -> bde240d4 3fcc675a c172f0ac 3fcc675a 3e9a3c2e 40f05309 c172f0ac 40f05309 40837992", + "425b89af 42538905 c2374fbd -> c131523a 405449be 40991ad2 405449be c0780385 40878d43 40991ad2 40878d43 bf8731ad", + "b9cd89ef ba4a2504 380a2fb1 -> 3ca6778c 3c255911 bd285b4e 3c255911 3cdc5b59 bda50392 bd285b4e bda50392 3ca6dd8b", + "c0bce444 c0a01938 3fa72773 -> c14c8ee8 c0808097 bf660338 c0808097 c203114a 40c44d88 bf660338 40c44d88 c1161fcd", + "3dbb990c 3db9cfc4 3c9d41bb -> bf8c591b bfbb8339 4107084c bfbb8339 bf8a81af 4105b94b 4107084c 4105b94b 407e910a", + "404d460e 3f17a196 c000c87b -> c0cef2be 407bd943 c18bc725 407bd943 c05f1866 c011c005 c18bc725 c011c005 40a4fe57", + "be9a6f40 3e8c28e5 3d656fca -> c0e5b7fc 3ffb14c4 c1276310 3ffb14c4 40841598 409d24da c1276310 409d24da 40f2b15b", + "418ff38d 414bb787 3fdb1f9c -> c04c9c49 3eaa51f8 3ff88e97 3eaa51f8 400fb8ea c0b8d1a5 3ff88e97 c0b8d1a5 40820f44", + "3a1f648b 39bac701 ba2b3f7c -> bdb20c8e bc091493 3d8d4407 bc091493 bda919e4 3d2f26d9 3d8d4407 3d2f26d9 be598639", + "c1bd23c0 419a4f32 c154225e -> 40e7e811 41806ee0 c11a0b63 41806ee0 4149ff10 c12061da c11a0b63 c12061da c18c2abb", + "3f41cfa2 be4e7aee 3e91cefe -> c131b5ee 3f975a30 409ae9d8 3f975a30 c0a03cdc c155431c 409ae9d8 c155431c c03dc736", + "40293dac 40267059 c03757f8 -> 3f297db0 bf39c565 404ec22f bf39c565 c1009503 407c1aba 404ec22f 407c1aba c093c66a", + "bfc9bffc 3f56e126 c0296ff3 -> 406a74d8 c12243bf 41051baa c12243bf bda7c2a4 3fcea3a5 41051baa 3fcea3a5 c0218725", + "3f7b90bc 3f8cfc88 3f0b5333 -> c0ff81bd c0243fe3 40a0d62f c0243fe3 3e8c7d50 c089b5f9 40a0d62f c089b5f9 3ec6e776", + "3e08e8da bda5b165 3d68fe50 -> 3fcd6be9 3e7cbf5e 412e00ba 3e7cbf5e 40ad0b51 c0e7f513 412e00ba c0e7f513 41667784", + "bcff3479 3db38e6e bde45c61 -> c12074a5 bf4b7708 bfc4c908 bf4b7708 c12f21db 40f238b9 bfc4c908 40f238b9 c1eb0ad3", + "bd9e4863 3dad3b98 3dfd7969 -> 4131079e 3f577549 c0caf125 3f577549 4108bd78 40a1bbf2 c0caf125 40a1bbf2 41f23de8", + "38003ba1 bbbf0f5b bba25360 -> beee81a9 3d4e0fcb 3d3d00c0 3d4e0fcb beba59ca bf105246 3d3d00c0 bf105246 bfbf89c4", + "3a603c2f 3b0afde0 3b0852d2 -> 3e342080 bcd39274 3d916c0e bcd39274 3e1da1e0 3e4f9ea2 3d916c0e 3e4f9ea2 3f1fb6f0", + "b980af5f 3945124a b9437f58 -> bc702175 3a02e4d6 bcc4217c 3a02e4d6 bcb5adf5 3cad8db4 bcc4217c 3cad8db4 bd6c88f8", + "c2b4af79 41f6f30b 419cb9f9 -> 403a35bd bf165a31 bf64aed5 bf165a31 40fecb8d c0ff3f0b bf64aed5 c0ff3f0b 409abf3c", + "c0120284 c0513877 c0d65c00 -> c113a39c c123a8ae 400880fb c123a8ae 40858480 c016a36f 400880fb c016a36f c1a1a996", + "b992719b b9956b4a b91a3a1f -> bbb6a266 3ba06f60 bce3c7e7 3ba06f60 bbb36a1c bce89c56 bce3c7e7 bce89c56 bd2827ef", + "b9765d1a bb0e1c97 39f6e6a3 -> 3d9776df 3caad3ce bce9dfd2 3caad3ce 3ddc2bd7 be6b60cc bce9dfd2 be6b60cc 3e2bf69e", + "37ba400b 3a267b68 39c639a8 -> 3d084e85 bbbae09c ba7df53c bbbae09c 3cb97c74 3d80b462 ba7df53c 3d80b462 3de62fd6", + "bfe1dff9 c1012a34 c106bf58 -> 404da566 407c2bda 40b32aec 407c2bda c043b3bd 409762d4 40b32aec 409762d4 bf615dcf", + "3e84084a bd81a05b bcf1b526 -> 4052ba54 bff176e8 416c5a21 bff176e8 c0361eaf c0743b14 416c5a21 c0743b14 c0d9f778", + "bb982707 bc1b3df8 bc22c6c1 -> bf54806f 3dfb8e22 becae23d 3dfb8e22 bf3edf41 bf65f07f becae23d bf65f07f c03e76ec", + "42091916 c0b4f565 c2543390 -> 418ee8d3 409a91d5 c0aac2a6 409a91d5 418fdca9 c02f3c5e c0aac2a6 c02f3c5e 41d5ef98", + "c0bcfc9d c1cbc2a6 c1aa6c2f -> 4130c812 40974f46 c0feeb0d 40974f46 c10c4138 40314d9d c0feeb0d 40314d9d c0be4cb1", + "407f32d3 4078b51d c014754a -> 41866ee2 406f3bd5 403cd945 406f3bd5 413a9ced c0c02dd4 403cd945 c0c02dd4 41d14dd5", + "bdf4e323 bd3db8df be13356b -> c0e20030 3ffb2b7a c0cebc42 3ffb2b7a c11bbf98 bfee55d2 c0cebc42 bfee55d2 c1fc9ec1", + "3eaf2e39 be63c338 3e2c96d4 -> c067fa9a 40cdd0c1 40cfea17 40cdd0c1 404f625b c0a0d738 40cfea17 c0a0d738 4158f61c", + "bc7b723d 3d517535 be7e7b33 -> c1845643 3ec08399 c01f49c8 3ec08399 c18bc9f6 beeae1a0 c01f49c8 beeae1a0 c1cebc0f", + "3ecc4794 baee3c14 be23d8de -> 419a49a0 bf086a31 402c8d6e bf086a31 c14ed8b8 3f76da32 402c8d6e 3f76da32 c1813c8b", + "b890f06f bac5992f 3b2b1363 -> 3e92c579 3c602042 bcf47a8d 3c602042 3e9f8c30 be37e8b4 bcf47a8d be37e8b4 3f5439d9", + "bb008f13 babd0207 3a76af6e -> 3e256b52 3cf1e1da be597f18 3cf1e1da 3e1c3042 be2218ad be597f18 be2218ad 3ea59ce0", + "3ac78b7c ba8bd22e 3a0f8285 -> 3cda2029 bb81833c 3e1d734b bb81833c 3d928cb3 bded327c 3e1d734b bded327c 3e2b0e3b", + "be060466 3e420f90 bd910918 -> c0282791 c01f4c54 c104135b c01f4c54 c0692eb8 414d4d09 c104135b 414d4d09 c1744c1b", + "b6269fa7 38e0a5f7 b6e6d7c4 -> bacf3e57 ba6e011a b9507c3e ba6e011a bb644577 3c37b77d b9507c3e 3c37b77d bb485596", + "40a5669f 40a33a38 c0943ad5 -> 40b490ff c0641919 41279651 c0641919 3fcb7dbc 403e1e79 41279651 403e1e79 41a34455", + "3e0d3ce8 3e5cf207 3e3582d1 -> 40c75b97 bfd41d59 40adb620 bfd41d59 4062fae3 410fb71d 40adb620 410fb71d 41bcc6b5", + "39bd2821 b900164b 394e1bd0 -> 3c46cfcb bb07b22e 3d12e1e5 bb07b22e 3ca80f8d bc6c536e 3d12e1e5 bc6c536e 3d73015e", + "3c63ca93 3b2694af bc87791b -> c0061d5f be10e448 3fca6d53 be10e448 bff3993a 3ecfe5c2 3fca6d53 3ecfe5c2 c0a93048", + "3a82d8c0 3a91a93f 3a9aadec -> 3db2ac63 bc95f50c 3dbfe526 bc95f50c 3daea7ed 3dd7fee2 3dbfe526 3dd7fee2 3eb35b9a", + "3951cef8 37481d8b b9d3e2d3 -> bd421e02 baf11583 3cc7659d baf11583 bd34bd6f 3b9b7a49 3cc7659d 3b9b7a49 be03276f", + "c1286e5b bf694fc3 411bf9c3 -> 411b7fea c072bfc3 3fb300b3 c072bfc3 c18942d3 4015d4e6 3fb300b3 4015d4e6 4173e519", + "b8fd7a78 37fb1f67 38e758e8 -> 3c6b7cd8 3a4ee2d4 bc5dea5a 3a4ee2d4 3c409a9c 3b0d8c2e bc5dea5a 3b0d8c2e 3d105f14", + "bf8f310e be54c736 3f6910fc -> 41928bb3 41282908 3f0ac953 41282908 409b9ee0 c0e2940a 3f0ac953 c0e2940a 3ec83cf8", + "be1f9039 bd3256f5 3f52f4d8 -> c0dcdc94 bfcafcd9 3f690de4 bfcafcd9 c189ce00 411c5e37 3f690de4 411c5e37 c101e4a1", + "ba1b1402 bae5d07e bb0129cf -> be32c7b0 3ca6afe6 bd363b1d 3ca6afe6 be1e2163 be2969b9 bd363b1d be2969b9 bf186251", + "bed36ec7 3efd7e52 bf2a79bb -> 41d7fe95 3fed7914 c0993b4d 3fed7914 41343871 c0054c02 c0993b4d c0054c02 417f2851", + "bf959b42 40c87a47 c0acd335 -> 417b5c84 c070e922 40b817c2 c070e922 c083ae8d 40da3873 40b817c2 40da3873 41761517", + "bb87cd73 bbf48544 bb563a68 -> be2b9dce 3dce53b9 bece4a64 3dce53b9 bde12656 bf3f8793 bece4a64 bf3f8793 bf6b7c22", + "c09a2937 3fb8422c 40491dd3 -> 40eb663c 412479fe 3e82169e 412479fe 418db457 40940e36 3e82169e 40940e36 4091c334", + "3cc29eaa bc9ec065 bd2e03aa -> c09872ce bd7cea63 402f811e bd7cea63 c08134f5 bfca0ca2 402f811e bfca0ca2 c14fead8", + "3d551553 3d0adcee 3d111e84 -> 3ff1495d bf48b05a 409c7d9c bf48b05a 400f9ae9 404551f1 409c7d9c 404551f1 411f6eeb", + "c101b158 c0526483 bef0821e -> 412b7bed 40388ef4 40b91601 40388ef4 40df5021 3f29323e 40b91601 3f29323e 418f8a4f", + "407232ef c1a6bddf c1b4deef -> c121a94b 410e7772 c1570211 410e7772 c0d16f9c 3f086340 c1570211 3f086340 411ecdb8", + "bddb7405 3d8bfe83 3ba3cd48 -> 401672ee 3ec04802 c12248b3 3ec04802 beafb500 40ccfd58 c12248b3 40ccfd58 3fdc1783", + "39cf7889 3a129b68 3a26ba97 -> 3d512e12 bc07c2f5 3d122908 bc07c2f5 3d458e17 3d57e82d 3d122908 3d57e82d 3e42f357", + "3dc7abb2 3f7756a3 bf6c7243 -> 41ba6dd0 c0a917ab 4079dd02 c0a917ab 4118bf1b bfa21c5e 4079dd02 bfa21c5e 408a5f44", + "b9a7c3fe 3bb8be99 3afeb3cf -> 3e259627 bd3cf222 bd4d7b2c bd3cf222 3d6eb43b 3f11ed28 bd4d7b2c 3f11ed28 3f0f8b63", + "ba7f8642 bb0a89db bb279eb0 -> be63eaab 3cdb93f4 bda26244 3cdb93f4 be4faa35 be4aa1c8 bda26244 be4aa1c8 bf45a54e", + "bdc3e99e bdda5921 bdea6e1d -> c0b995a0 4029d1b1 c0bf5c77 4029d1b1 c0ac69ba c0d86143 c0bf5c77 c0d86143 c1d0951c", + "42391be3 424700d4 c2578ea9 -> c130b379 c0b53edd 400d348b c0b53edd c1929561 be562996 400d348b be562996 c12d4ab7", + "b6603cf0 b9257117 b9b786a5 -> bd0f543f 3ab73a68 3b3047ae 3ab73a68 bd045a10 bc5b622b 3b3047ae bc5b622b bddd1345", + "39230e04 39186e63 38b0285c -> 3b613e13 bb2b163a 3c7d5494 bb2b163a 3b6cc3c5 3c6c0c0f 3c7d5494 3c6c0c0f 3cc18e3a", + "c0442d52 be2ffbd3 3e892525 -> 40764565 40abdb3d c027b443 40abdb3d 415f95c1 c0eefe20 c027b443 c0eefe20 c13dfcc5", + "bdc575f3 3de5e936 be185490 -> c1121f4a bfe5675d c08cbc30 bfe5675d c135d08f 40e7a972 c08cbc30 40e7a972 c1ff2777", + "ba0c5c56 39ac0a5b 39c2d5f2 -> 3d4be9e6 3aebc610 bd718fba 3aebc610 3d0e87ee 3cfd78e1 bd718fba 3cfd78e1 3df16a3e", + "bbbf96d1 bbe4e75e babff1fe -> 3d770dea 3de3f508 bf188406 3de3f508 3da3fe03 bf36da6c bf188406 bf36da6c beb11b20", + "b8ac231f 350cad86 38d38f61 -> 3c4f07a5 3a398873 bc1a616d 3a398873 3c378aab ba573945 bc1a616d ba573945 3d03f835", + "3f4044b2 bfc1454e bfc889b0 -> c143ee3b 4106c1bc 40dc2124 4106c1bc c158ae21 bf8dfcaa 40dc2124 bf8dfcaa 408affeb", + "baffe4f6 3b4b87a8 bc34d56d -> bf8feb45 bc253537 bddb61c6 bc253537 bf9b226a 3ed62d05 bddb61c6 3ed62d05 c05cfff9", + "bf1bbe50 3e62e3d6 be1ad5a2 -> 404377e2 c04257e9 412ed856 c04257e9 4125cbd3 bf2dacb0 412ed856 bf2dacb0 4192544c", + "c0007fc6 c04bebb3 bfb3050e -> c01d1c86 40fe4153 4085a67a 40fe4153 c0c23e34 40d2e525 4085a67a 40d2e525 4091a576", + "bd082624 3de6dbcd 3a80b2df -> bb1c9c39 bf28b74f c04c28f4 bf28b74f c0103f40 412c8a2f c04c28f4 412c8a2f beb44422", + "3c0f48f1 3c0f947e 3bb449fa -> 3e897989 be1bca66 3f5c94f3 be1bca66 3e895066 3f5d0fb1 3f5c94f3 3f5d0fb1 3fc84bdd", + "c0ab9148 c19a19cf 417384d8 -> c0ed594e bbe667c0 40618465 bbe667c0 c0c84fba 40290851 40618465 40290851 40fa1fb6", + "b9022f22 b81ef98f b946898c -> bc845989 3ab8501d bc38e15f 3ab8501d bc909c59 bb16fecc bc38e15f bb16fecc bd6c84ed", + "3aa91c6d bb907ab1 bba93d89 -> bf086df2 3cdd5816 3e375b11 3cdd5816 bede2de3 bed3f934 3e375b11 bed3f934 bfcaf542", + "bb6d5517 bad3bb08 bb5c6fed -> be77a81d 3d3a2c4b beb20fcf 3d3a2c4b be8dab18 be0e4e12 beb20fcf be0e4e12 bf80a492", + "3f1db0b7 3f2ce141 bf6a92d1 -> 3fae8123 c0c16f43 c0c1fdd4 c0c16f43 c1642845 41007869 c0c1fdd4 41007869 c093dfc3", + "3b48d8d5 bb9e81ff 3a89cc5f -> 3d92b496 3c7c4e7a 3e9eac19 3c7c4e7a 3e55b865 bf033e83 3e9eac19 bf033e83 3eaff9bf", + "3ebad7ae 3e05508d be8364ed -> 41a1a7b7 c0e68bbe 40895f57 c0e68bbe c12d2a72 bfd29560 40895f57 bfd29560 40446598" + ] + }, + { + "glsl": "mat3 cultmath_snoise_hessian(vec3)", + "tolerance": "ulp-bounded, coordinate bands 1e2 to 4e6", + "check": "Read at the case's point x, with S = |x|_1 and (e_n, e_g, e_h) = math.span_slack(math.span_rounding(1, x, zero stage, 0, 0, 0)), against the kernel's exact values in double: |n - n_exact| <= e_n and |g - g_exact|_2 <= e_g for snoise_grad, ||H - H_exact||_F <= e_h for snoise_hessian, no tolerance. Report the largest fraction of each allowance per decade of S and the largest absolute error at S < 1e-2.", + "cases": [ + "c73b7f66 46041c5f c49c1230 -> 400f0f7f 4033a88a be9ec6de 4033a88a 40f95e75 c0909af2 be9ec6de c0909af2 41028867", + "4278303d 43b6d736 40ce5413 -> c0177ba2 c0f1add7 bf0e9778 c0f1add7 c13b4373 410352e7 bf0e9778 410352e7 406a4ff1", + "c8e1f89d c8b0c345 4806ee87 -> 40da9956 411ae70f 3f2cbde8 411ae70f 3f9a2e93 c05a13c4 3f2cbde8 c05a13c4 3f183120", + "47a4b4fa c7e31a47 c8cbc864 -> c0136bb5 40d74cf3 c13a9aed 40d74cf3 41db45e0 40585301 c13a9aed 40585301 bd9d93b0", + "c6c1c750 c68f694d c5855ed1 -> 4030e9da 3fc50e4a c157f636 3fc50e4a 40262d7b c0efc229 c157f636 c0efc229 3f952d4f", + "c3170ccf c3425de7 433d1342 -> c0023af4 4098ad91 3fd68a10 4098ad91 4058774a 41457579 3fd68a10 41457579 c0157a20", + "49ef0d5e 48e0475b 49d74fb5 -> c12c13cd 40c5cfb7 c085af3d 40c5cfb7 c152d438 415a7b30 c085af3d 415a7b30 c113b264", + "45e56513 c5c83055 c652e10a -> c0030457 bfd73cc0 bd9e729c bfd73cc0 c08242c9 3fb4405c bd9e729c 3fb4405c 401527bc", + "46ecac49 c70522b3 c70304d5 -> c0f56990 40e5d444 3fc0e587 40e5d444 c14194dc c10055a3 3fc0e587 c10055a3 c0ac8a2c", + "49a9b6b5 c92685e8 c9e8459f -> c08ff87d 4129dda8 40a13059 4129dda8 4167c0b9 c0a5a630 40a13059 c0a5a630 c0062e9f", + "482c8ddb 48cf01cf c828eb6c -> 41a1c100 3fce7c7c 41639232 3fce7c7c 4100abf8 bfc878a5 41639232 bfc878a5 41202184", + "49de953f c91abe41 4a33750c -> c1f4b6d9 c1053baf c096a387 c1053baf c1a3b5ed c09a21c8 c096a387 c09a21c8 c1880d5c", + "432fa34e c29bd0f9 c300894f -> 40de1ba1 41241565 bf985a38 41241565 41229880 bea4deab bf985a38 bea4deab 40f42ef4", + "c6974486 47ca6510 480ac3a4 -> c19056f5 41190e8a c0968624 41190e8a 3fd53236 41130ec1 c0968624 41130ec1 c137f70b", + "c51af85b 449ad25a 437d0a7f -> c109cbc4 c0017b57 409a0219 c0017b57 40bdef33 bfd4b248 409a0219 bfd4b248 415bb437", + "c7cddd85 c7718c9d c7aedfe8 -> 3ee34b6e 4117ada4 bfdd1469 4117ada4 c0a18e5d 40a0d4d8 bfdd1469 40a0d4d8 3fc94230", + "48cc6dec c80e67b7 4882d5ab -> 413f54c8 bee0848e c0836a77 bee0848e c09a8d9f 3f08d744 c0836a77 3f08d744 c1a15b6d", + "c378097d c45085d6 c4bf799f -> c135b832 c01946d1 c0b05831 c01946d1 c19b162a c0ca33a0 c0b05831 c0ca33a0 c13daa56", + "451f3745 446ed86a c5869092 -> c0043625 c156395a 3eede72e c156395a c144dd41 4089fd0f 3eede72e 4089fd0f 40edf062", + "c74485d7 47b0691f 47ffde67 -> 404717e0 bf58a4de 413142ae bf58a4de 4044e609 3f0678c1 413142ae 3f0678c1 412a31db", + "c6c14244 4816d821 47b7c56a -> c1881554 c0dcb54e 3feaf9c4 c0dcb54e c129422a c0de6cfe 3feaf9c4 c0de6cfe c182639e", + "49482f70 49517307 488938a2 -> c0991c1c c111efb8 406bd3f1 c111efb8 411f2cc9 c1997e65 406bd3f1 c1997e65 c05c5e2c", + "4953cd35 c89d4332 49198fd0 -> 412f5caf 40c3eb1e c0f2c3eb 40c3eb1e c124a4e5 c078e779 c0f2c3eb c078e779 4129d8a2", + "4a378b76 ca12d8ac c9ca4bdf -> 4161d959 40317086 c1317d92 40317086 c138e784 401d5e49 c1317d92 401d5e49 c0956826", + "47d80c83 ca3ebedc 49831f29 -> 366a2ea9 00000000 4048ba3d 00000000 366a2ea9 41380016 4048ba3d 41380016 37244e28", + "c8aa295b c85df9d0 4893e046 -> c04df4ba 412de49a c04e2403 412de49a c0da1971 408c7429 c04e2403 408c7429 c0bb3596", + "c303006d 449acc47 c4ae1463 -> c1329232 40b07bdc 40795fe9 40b07bdc 40f31fb3 40e8e066 40795fe9 40e8e066 4114b0ea", + "49498bc8 c7a55b74 47170aaf -> c11ae98e 40960bd8 400748fa 40960bd8 3faf6c57 c103c22b 400748fa c103c22b 40705c64", + "44813b83 c4565d34 c34e8eef -> 413d0386 40ffd3d1 410405f4 40ffd3d1 40edca6e 40b15304 410405f4 40b15304 c006c534", + "c30a4e20 c4974544 c5090230 -> c0785807 c104234a 40513f68 c104234a 3f0075f8 c0119a9a 40513f68 c0119a9a 40b26294", + "c3206086 4221c9ec c37cd904 -> c09225e0 407d52c1 c0135d29 407d52c1 41472769 c097d711 c0135d29 c097d711 41668d1e", + "49a4be2d c9c38a62 48b6b9d9 -> 4144ba01 c0c725ed c082ad7a c0c725ed 40d80557 c0f5bcb0 c082ad7a c0f5bcb0 408b76b8", + "c64e671e c69c430c c66b9adf -> 40c1c2fd 4132e7e6 3f1a6df0 4132e7e6 416ece9c 410e2983 3f1a6df0 410e2983 411cdc20", + "c7471045 c9052d7e c886fb64 -> c11b77ef be4a68e2 c0f0ea86 be4a68e2 415801fc 40ac1045 c0f0ea86 40ac1045 c02b1cff", + "c7aff073 c8a8a529 488f2baf -> 3ff855b5 c16d80ef c04e95f5 c16d80ef bfcb368d 3eb735fc c04e95f5 3eb735fc c095da2c", + "45f19571 456c6a86 c66c37f4 -> c11957b2 4016ece8 c0bf5609 4016ece8 c11f1592 c19362a1 c0bf5609 c19362a1 4076e93b", + "c5c4a80f 45d1ab12 44fb667c -> c014614a 40874a9e bfc0f421 40874a9e 3f0ac753 c0d2d624 bfc0f421 c0d2d624 bd6cc688", + "4458beb6 c51c66d7 4582b905 -> c0841bba c0afbb09 41482f01 c0afbb09 41135b06 c015fe3d 41482f01 c015fe3d c12e8c6f", + "c41a43a9 c43c519a 4468897e -> c1844125 bf20664b bf407d9c bf20664b c0137a7f c0993939 bf407d9c c0993939 c1933129", + "c84e2fe4 47bee157 484cec77 -> c016e52f 410451c0 4110d7a0 410451c0 4107fb35 c03ba054 4110d7a0 c03ba054 40f50541", + "c6b9ba4b c624daeb c69c43b8 -> 41742d98 3f72b40c 40a1db67 3f72b40c bf9bb1db 411036a8 40a1db67 411036a8 414e424f", + "413360d9 c22a410a 43e76fbc -> 41212a20 c072f43a c092ca09 c072f43a 418f5f24 41220430 c092ca09 41220430 41a06f38", + "c7eddf37 47f1d2da c82ffe81 -> c124cc3d c0dfd68c 4068c4e9 c0dfd68c c06fcdb0 40235c6f 4068c4e9 40235c6f 419fa29b", + "c406200c c3af008b 45b34a69 -> c08a2aba 40dc9b0b 4115d141 40dc9b0b c12a4d16 409a12bd 4115d141 409a12bd c10a6a92", + "c719342c c70249a5 c698e09a -> c0b74fa5 c0443d5c bfd25cab c0443d5c 414091e6 3fd2e67d bfd25cab 3fd2e67d c032c65e", + "c8d3d4e3 48cb491a c8409914 -> bfe3b6ca 3ffc9ced c050a16b 3ffc9ced c07a3c34 40c6174d c050a16b 40c6174d 3fc22987", + "4373a3bd c19a53d3 c2996426 -> c0b66917 bfc72508 418725dc bfc72508 c07705a1 bfb21b36 418725dc bfb21b36 c0a0eaaf", + "c7afb3fa c622946f 47319f5e -> 41264575 c00fc01e 415b317c c00fc01e 40dc83bc bf69dea3 415b317c bf69dea3 c122c001", + "46981ae4 c6d926fd 46a69f13 -> c0fab28c c0672ee2 bfb91d2c c0672ee2 bee8908a 410a12f8 bfb91d2c 410a12f8 4143becc", + "c2740598 43331b84 42d940a1 -> c0f478a7 c180fc27 408ac601 c180fc27 c17154d9 40a7fbf1 408ac601 40a7fbf1 4156434c", + "489b3a38 c8479e02 48c4f47d -> c14f084f 40d13cea 40abf8ef 40d13cea 412b991b 40459be9 40abf8ef 40459be9 bf0fb765", + "c417f9de c5894c53 c5919b69 -> c0f1ff22 40f67d4f c047eff2 40f67d4f c15756c3 c0ad1ac8 c047eff2 c0ad1ac8 408bcd9a", + "c5ae8083 45bd7ddb c59e999c -> 4058a5e3 c0d24502 40880adc c0d24502 41acb35b bf8e5b96 40880adc bf8e5b96 405cd96d", + "42afc9a8 42891b61 430d6394 -> 40c6770b 405b2c3a 40981ef6 405b2c3a 40aaaa31 bfe75f9a 40981ef6 bfe75f9a 41adfd9f", + "c9e41b1f 49821de0 c8d79106 -> c1220452 bfb88543 41115fd3 bfb88543 3ff33126 40e7cbab 41115fd3 40e7cbab 40fae44d", + "c4d51c73 45730cc4 c5504ed6 -> c0d8b201 40e6c5ce 4064b1db 40e6c5ce 40b25950 c1420df0 4064b1db c1420df0 411e8391", + "c3c39689 c3dfa290 c3abbd88 -> 40f3fe7c c01b92b6 bffc4283 c01b92b6 40232d74 c1204d72 bffc4283 c1204d72 41aa1d9c", + "c5d844ae c68ceb29 c5c4d334 -> c0f47dc3 3fa46756 c088b433 3fa46756 c15a1333 c02a4598 c088b433 c02a4598 c185798f", + "4527f2ed 44ca2af0 c5315a4e -> c05b61a3 beaa338a 3f754343 beaa338a c1ba5c3c c047e01f 3f754343 c047e01f 41027b90", + "c7491e74 c7b88204 47748d75 -> c046716d 3fac60ae 409962af 3fac60ae bffd6e86 bfef3bcd 409962af bfef3bcd 407060b1", + "46e7c3a1 c6886d8f c6f11892 -> c0ce6ce3 c09c2e82 3fda7e78 c09c2e82 41174434 c095a03c 3fda7e78 c095a03c c16dcfe2", + "c8aa2869 c7109af8 496713bd -> 40d893fc c09dda3a 400fe81a c09dda3a c09d018b 40968d40 400fe81a 40968d40 41239f51", + "43317291 c1e16661 c2ed88a9 -> bf3dd5b9 41003998 c0f1b298 41003998 3fb0e27e 40b487f7 c0f1b298 40b487f7 c127014a", + "4583e2f2 c43cfa6a c518ff3b -> c08dd95f 4144a83f 3de0b7cc 4144a83f c194e380 c1019445 3de0b7cc c1019445 c11b57f8", + "c2c7df40 42f455b4 c2dac4aa -> c0bc8d1a 3fe86018 c0cee7ec 3fe86018 c15a9b57 40686c99 c0cee7ec 40686c99 41744eba", + "c2e0cafd 4393e542 c3511d7c -> c1297bdd 41077350 4153ade5 41077350 c04cce4e 3f4544e8 4153ade5 3f4544e8 40a3443a", + "c504f2fb 458dcb90 43f85cf3 -> c0dfb2ba c0439c2a 4071fe90 c0439c2a c091b04d 4103bd70 4071fe90 4103bd70 c1094591", + "c38882eb c37ed11b c2d72c9b -> 4039fb2e 40ab895f bffbeb66 40ab895f 416e58d8 404debaa bffbeb66 404debaa 40c2c0c6", + "c2994bb1 44fe578d 4485ee05 -> bf3172a6 c1762196 3f25bc2d c1762196 41103f1e bf84399b 3f25bc2d bf84399b 3fff479e", + "c5efcf74 45c6ccdc 45e2caac -> c15f1658 3f94e92e c0c9c399 3f94e92e 40f39735 401747c2 c0c9c399 401747c2 c0f0400b", + "4a13981b 4a392385 ca6cc809 -> 4164bce8 411ca3ce bfe3ee78 411ca3ce c0a4c87e 40086e19 bfe3ee78 40086e19 41727c68", + "432bbcd6 c28581df c352aa8e -> 411bd62d 4062a2c1 40fd4cb9 4062a2c1 c03a3587 3c97d1ca 40fd4cb9 3c97d1ca c084bf4a", + "ca46c062 ca0e90f5 c9d69676 -> c0c26a73 40d5077a c041d6f6 40d5077a c00830fa bf893f79 c041d6f6 bf893f79 c18cd7bb", + "43c9b6a4 443676e5 c4698bde -> c17c77cb 40a4ab59 c103a76a 40a4ab59 3e592d17 40d6c8d1 c103a76a 40d6c8d1 417ca5a8", + "c342befa 43c8c257 4417409f -> 3f3ce240 4092f15a 3f03788a 4092f15a c12a1a59 407f3c4d 3f03788a 407f3c4d 415a4e21", + "c585df79 c6944c49 45ab27b2 -> 41453e23 412fdf5a 40a1e93d 412fdf5a 413a8165 40cdfeff 40a1e93d 40cdfeff 4168e927", + "45063606 c3c6b61b c3cfdccd -> 40d601ee 4169abd7 c0445829 4169abd7 400bcb16 401a0d16 c0445829 401a0d16 bf4e03af", + "c6217b29 45fa7b54 c6b21124 -> 3f974689 c125609f c10d9679 c125609f c1648d6b c11d4957 c10d9679 c11d4957 c147d5c2", + "c969628e c94f011b 49b60f7c -> bf73a197 40e9618f c0a00c9f 40e9618f c022d007 4008c0d8 c0a00c9f 4008c0d8 bfc7bb3b", + "c8ce359b c993be40 c9a1e2ab -> 3fb9bac0 407d4f4d 4096db1c 407d4f4d 41737877 c0b82a2b 4096db1c c0b82a2b 40e6c982", + "483ead58 48e66f74 c8b98997 -> 417f54c0 40dce3ca bf79a8b2 40dce3ca 41703c47 40804a74 bf79a8b2 40804a74 41876cc4", + "c7a33540 c8013844 487948a2 -> c0344740 c1084c68 405961e2 c1084c68 4064ef13 410181cd 405961e2 410181cd c0d96cde", + "457a66a7 c3060f9e 44441b1b -> c0e0058e 409ba064 c0c1b181 409ba064 418433cd 4023ce42 c0c1b181 4023ce42 bfce2b1c", + "4483d7ce c4d5d5b9 c494ca39 -> 410812e0 c05ce531 c05fdd79 c05ce531 41c36442 c035b9f1 c05fdd79 c035b9f1 4121a3c6", + "c230ee5b 42074bbf 43071c36 -> c13d4b2f c1274da1 40ac72b8 c1274da1 c12892ca 4013f482 40ac72b8 4013f482 409eed8d", + "c697b055 c770693e 47253132 -> 3f334469 3fc9917b c0f5fd76 3fc9917b 3fbc18d8 40a1ff80 c0f5fd76 40a1ff80 c18fd03a", + "c27818e5 43b63dc7 c330a802 -> 3fdf657c c0563550 40a72215 c0563550 40e4f1b3 c137062f 40a72215 c137062f c18db65c", + "c4ddab94 c5aae0d2 c6239665 -> 4157fc7a bf53dd4a 3dd7e231 bf53dd4a 41bc1798 40073330 3dd7e231 40073330 4139ada6", + "c22d5186 c28208d9 42d66afc -> 3ff491df 40e75359 c0963baa 40e75359 4127110b c09795c6 c0963baa c09795c6 412668f2", + "42d8a4af c2585e76 41c45f5f -> 4135b7f4 c02529a1 c130f89f c02529a1 412dd3cf 3f6c4d27 c130f89f 3f6c4d27 c026d7c0", + "c88f9f7c 47992053 c8d9d303 -> c1665bc1 4069313c c1144ff6 4069313c c10cb534 c0da4709 c1144ff6 c0da4709 c15e7c00", + "41006f6e c455278b 44430723 -> 409a8211 c00146f7 c0a0819a c00146f7 bff02359 402247c6 c0a0819a 402247c6 c18efdc2", + "c86cafe6 c81746c7 4871aa28 -> c122a0fc c011ca66 3fbf230b c011ca66 41ebc0d8 c007c2fd 3fbf230b c007c2fd 40f71814", + "45301a17 4536b7ce 4479be10 -> bfd30b10 406bb096 bfbb655f 406bb096 416bc50e 3e41cb2b bfbb655f 3e41cb2b c1021e31", + "c2db28f6 42216114 c2f769c7 -> 41872d25 c06c9ac7 bf63b7bf c06c9ac7 40697971 401489ea bf63b7bf 401489ea 40463e09", + "42019844 44e78da6 438fd56b -> c0ac0607 3e1ee4d6 bf6ae7ac 3e1ee4d6 c1849a63 bf67d3b6 bf6ae7ac bf67d3b6 c0bfb7bc", + "c81458ee 474fdeca 495a07d2 -> c11b373f 3f26df1b bea76690 3f26df1b bf721840 40e8f156 bea76690 40e8f156 c16e440a", + "c87d32b6 4834da25 c88c61a1 -> 409c3b8e 4116858f 3e93b56f 4116858f 407ed872 3fcd9f0b 3e93b56f 3fcd9f0b 410c5e3e", + "4a4d54b5 4a31d60a c9eef15c -> c1a03347 40b36ca7 41336ca3 40b36ca7 c1158531 00000000 41336ca3 00000000 c1158531", + "c7c76db7 46aa8bfb c790a615 -> c17daf17 4092766c c10c147a 4092766c c16b0a27 40b74833 c10c147a 40b74833 c10754ad", + "c8b9353b 49260c5c c9f61625 -> c094bab0 c0c626ae 40a0ff31 c0c626ae 40c33110 4039d42e 40a0ff31 4039d42e bef88563", + "45b54633 44045dcb 452b2b75 -> c0875ddc c0a97a10 3f93dc32 c0a97a10 3c622cf0 40c2a4ab 3f93dc32 40c2a4ab 4014a84c", + "45fb4d8c c67fae6f c6b0667a -> c1947d0a 4064b94a c0d4d58e 4064b94a bfc3e8bf c06e9363 c0d4d58e c06e9363 410ebf98", + "45ff77ac c71b1e3e c7986180 -> c0359e5d 4149e1cf 3eb17fb5 4149e1cf c1aa4f28 408b331c 3eb17fb5 408b331c c0e46077", + "c2e38b57 c29619a5 4303319c -> 414368ab c16a01a7 3ff137fa c16a01a7 c0753d2e 3f2a6728 3ff137fa 3f2a6728 40596003", + "48a57daf c8051b85 493b1251 -> c0e80349 c0e73c9f 412f9622 c0e73c9f 40dc5a1a 404670ec 412f9622 404670ec 40417418", + "c7a6fd17 c6b19143 476d1abb -> c076cc9a 40bcb4e9 c0efeb09 40bcb4e9 4087dba7 413fc02c c0efeb09 413fc02c c08af15e", + "c33a5da2 42d7b834 c3b89795 -> 3fb44166 c13f6104 c0230bc8 c13f6104 c055ea03 c1438265 c0230bc8 c1438265 3f93bf96", + "c8975cde 4a0ef23b c9e8f7e4 -> c08f34c9 408585d3 40f6267d 408585d3 c1ca1cb4 be819597 40f6267d be819597 c0939178", + "c73c1464 460c534f 46ad34ea -> 417de3b6 c1031f51 4112f036 c1031f51 418f9cdd c07c44e0 4112f036 c07c44e0 41111f9b", + "c85678b6 c816c9c1 c88ec37c -> c00f9ede 3fbe6ebf bf710fa6 3fbe6ebf 3f9dc43d c16d6ad0 bf710fa6 c16d6ad0 c121de2f", + "493731ed 4993b439 48eb8272 -> c0d36673 41523679 3df8e05d 41523679 c08c1059 bfc1395b 3df8e05d bfc1395b c11c8782", + "438233df c1f483f1 c3ee0ab3 -> 4102f72c 3feb6e7e bf0f28e6 3feb6e7e 3e8bc5e7 3e3e2244 bf0f28e6 3e3e2244 413756ce", + "450a7e62 c411661e 43d78e5e -> 4155d01a c11d68b3 410455cb c11d68b3 c1368f3f c1129d12 410455cb c1129d12 4165239b", + "c3dbaac0 c37cd065 43c9e62f -> c16ab567 bfd26df9 411f1d16 bfd26df9 404ae335 c09543d9 411f1d16 c09543d9 c081b799", + "c93d1ab4 c89fa4fb 48be3762 -> c156d0c5 c09b7c32 be7383da c09b7c32 3fc32ba3 402cf421 be7383da 402cf421 c1125459", + "45d76686 c514156c c6002c78 -> c1174a49 c08a0f83 c0613e0a c08a0f83 402ae3d8 c0e90707 c0613e0a c0e90707 4153e76d", + "c7330830 477b7550 c7b328c0 -> 3f0436a8 c127e761 c13a18ba c127e761 c0df3b36 c09377c0 c13a18ba c09377c0 40f3dcdc", + "4a48c854 ca4d3262 ca419fd4 -> 4019b502 c049b9af 4044411f c049b9af c0846ef4 40c701e3 4044411f 40c701e3 c0f44a48", + "44aaf62b 4457837e 44283502 -> c081974d c0f205e7 c0e33a88 c0f205e7 c10c0d60 410830eb c0e33a88 410830eb 40d446bb", + "451b75e6 448b51bd c535c7a2 -> c0ce0e4e 4122870d c09a70dc 4122870d 4082f669 be6c6760 c09a70dc be6c6760 c0db9f3d", + "c3b7f3e9 42fc98f0 40b89023 -> c0b84664 c07e9cee 40abe20b c07e9cee 40fc6a18 4018e5ea 40abe20b 4018e5ea c0625e01", + "c414d724 4383c308 4466226b -> c0fa080b c13a9e28 c125d5ac c13a9e28 c0856dc2 bdc7a27e c125d5ac bdc7a27e c0233591", + "c6ce6a3a 4750e23a 47aa8d5e -> c1508564 41469c07 bfc58691 41469c07 c0626b6f c0891b3b bfc58691 c0891b3b c0f7248d", + "47c0c8e2 c81819a7 c63c924e -> 413454c6 c0f15cab c08e00ce c0f15cab 41188b53 c0535d36 c08e00ce c0535d36 c040a618", + "431dd3b6 43a5a55a c3e833c0 -> 409ce468 41298944 3fc14fa2 41298944 3f8fee63 c0972c10 3fc14fa2 c0972c10 40f602d3", + "c2d0407d c326001e c44766da -> 3f1d020b be7cf621 411f8e5e be7cf621 3fb4725b 40dd7808 411f8e5e 40dd7808 40df77d3", + "c1186a25 42f4d594 43448318 -> 406d29da 3fdfa140 41609d62 3fdfa140 c12329ea 412e90f5 41609d62 412e90f5 41407c81", + "c430b696 c3d26c23 43b4fcce -> 414ff6af 3eed62fb 413d7c3c 3eed62fb 412868ef bfa32b30 413d7c3c bfa32b30 41c65a77", + "45136824 45580876 43d79fa1 -> bf2ea3b3 c10d83fe 3f08c266 c10d83fe be8f3062 3ffe1542 3f08c266 3ffe1542 c10029f0", + "43910bc7 c4604989 43ca729f -> c0bfa953 41056939 3ff2daf2 41056939 3f300ab6 bf261e38 3ff2daf2 bf261e38 c04b3e49", + "c3878452 c28346aa 432f21c6 -> bf013796 41470b47 3fe65b46 41470b47 c15aebfe 41413212 3fe65b46 41413212 409cb584", + "c5fbabc6 c7dc1d72 c7563de2 -> c0d8343f 413ee562 40a8e19b 413ee562 c0e33217 c16e0eea 40a8e19b c16e0eea c0b5ded6", + "c5353512 453489b9 c4d3cdc9 -> 418566d5 40b1904e c1029b3c 40b1904e 40bc0a3f c0a2df01 c1029b3c c0a2df01 c0726140", + "c765a96d 470246cf c8812860 -> 4111a404 bf6a9845 c098c7e2 bf6a9845 c0a46a52 bfefa01c c098c7e2 bfefa01c c031fa00", + "488160e8 494b1f74 497226d4 -> 411fe28c 3f5111bd 40e4022d 3f5111bd 40acf3aa 409a9977 40e4022d 409a9977 41902ce6", + "c7d12f0b c7a1fa00 c7244f44 -> 412ad4e0 408831be c0faeda6 408831be c0b94b6f c0a1203a c0faeda6 c0a1203a 415b6530", + "c98c4eb6 c73034ba 48cdf751 -> 3ff73882 4082d05b 41811a86 4082d05b 3f4c5bbe 40b9732b 41811a86 40b9732b c15d3616", + "c30f71c1 c1a527ad c15ed35e -> 3fa0280a c0034747 c0325f22 c0034747 4139b957 40e97106 c0325f22 40e97106 411edccd", + "43174bdf c20b6ea2 c31784fc -> c19b881b bfba110f c1364989 bfba110f 408eedde c07bef29 c1364989 c07bef29 c1801bf4", + "49f6032d c9d22fdb ca0806a9 -> 40c004dc 3f482890 c0bd713e 3f482890 41238a8f c0304a18 c0bd713e c0304a18 40fd3f3a", + "c6af15c0 4760002a 469c33e3 -> c1ae85ea c1066e6c 40a9d25c c1066e6c c1b8175e 40c6ea42 40a9d25c 40c6ea42 c18b1fa0", + "c5bd72d3 441407b5 c577262e -> 4090d3ba 411025f0 403222b2 411025f0 c145bc2c c0e1f0d0 403222b2 c0e1f0d0 4136e16b", + "c4c1acf4 c41e0d87 44a2da83 -> c16490f4 4118612b c1275082 4118612b bf257836 c002be9e c1275082 c002be9e c08ecf30", + "c6d358ab c5bbc7a2 46ca2e79 -> c13ad20f 403177a0 c035989f 403177a0 c100bed6 3f0e1a42 c035989f 3f0e1a42 c03774d7", + "446007d5 478d5fbf c74c4540 -> 4193a69d bfbc921c 404c4481 bfbc921c c0d88a2d c0c5cca1 404c4481 c0c5cca1 c13304e8", + "c835edc9 c707a725 47ef31d5 -> c0271e66 be4d9605 415a446d be4d9605 c02434df 4156daad 415a446d 4156daad bf80f262", + "43eb2b13 c19b60e5 c30a4553 -> 41773cc0 c15d6426 bfd57971 c15d6426 be8fa6cd 3f96e8fd bfd57971 3f96e8fd 40a4c6a5", + "4591d012 450ab822 c5c78c4d -> c1933fcd c1261e9a 4119d225 c1261e9a 41804cd2 3f61826e 4119d225 3f61826e 40038860", + "c7f53bba 47b17d4b c800e686 -> 416940b7 3ff4020a 3e7250da 3ff4020a 419cc68a c09ec9dd 3e7250da c09ec9dd 4170acc3", + "44ca5759 44c45df5 42b549e1 -> 4184024a bf80ef81 bf162eb0 bf80ef81 420ac3ea c107142f bf162eb0 c107142f 4189bd19", + "c7c7d36e c846b2ad c61b2d44 -> c104b9e4 c0514d6a 40bdab38 c0514d6a 403d3dc1 c007b829 40bdab38 c007b829 4095d243", + "c53f925b 46a2b029 c6aadbc2 -> 417347a0 c15430fe 40ad038e c15430fe bf3e7623 3fd0fcd3 40ad038e 3fd0fcd3 40c75039", + "c4fa8745 4541020d c503daaf -> 4130aa47 c0c4daa0 3f55762d c0c4daa0 40d00ca1 bf86b9dc 3f55762d bf86b9dc beb03709", + "c4c5cf85 450df570 c3952e98 -> c15e05cd c0b4c6ae 40e192ff c0b4c6ae 3f716dd4 402457da 40e192ff 402457da c0769878", + "c36289bc 448d8391 4450e965 -> bf930940 40f2b997 c0ba0b2e 40f2b997 c095a5d6 406e2303 c0ba0b2e 406e2303 c0a71cc0", + "47e4f459 c8f24e97 c7da99ff -> 40cc91c0 4111ffb4 bfd5342e 4111ffb4 40778f09 c09a02a6 bfd5342e c09a02a6 4140665a", + "4710797c c607ca3f 472d5ee2 -> c12f50ee c1822809 40321ef4 c1822809 c0d56321 3f34de4f 40321ef4 3f34de4f c04962cc", + "c9b51169 c9894d52 ca095540 -> 40f567d3 c0f567d0 40f567d0 c0f567d0 4105385d c0c4530f 40f567d0 c0c4530f 419a4143", + "c43153bd c424e7b5 423143d3 -> c0e6b266 c08e8983 40d23806 c08e8983 c0f5f223 c029cc5f 40d23806 c029cc5f c1dd56c1", + "467b7119 4610c56f c5b4319c -> 40388786 40b8de5c 40bdad29 40b8de5c 40b28eb1 c0c5258c 40bdad29 c0c5258c 4011a241", + "442668b9 44d94c25 45154094 -> c12c2388 40fa5ae6 4038f312 40fa5ae6 c0d60588 c14f3817 4038f312 c14f3817 40a1e8f4", + "4612a6c2 c627fefb 4448ae7a -> 403ecffc 40e2da2f 3ed24526 40e2da2f c0cc4465 40993fa2 3ed24526 40993fa2 3fa2c3ad", + "c0965f85 432d5307 c2f356fa -> c03c7f69 3fc07f9f c0110ddc 3fc07f9f 3e51719e bed77ce0 c0110ddc bed77ce0 bf9c58ad", + "c33387ed c22a3547 43749081 -> c0772d06 3fa4c890 3f744632 3fa4c890 c0cee0db 40a86e6b 3f744632 40a86e6b c18c06bb", + "c584f94a c5063bff 4611af77 -> 4030993e 40fb8c9f c10f1826 40fb8c9f 40870e0e 411a54df c10f1826 411a54df c058a16e", + "c283ac77 43060635 c22cdb42 -> 410855d4 bf347cd2 3fa4bc7a bf347cd2 c12395e4 3f9e8869 3fa4bc7a 3f9e8869 3eafc29a", + "c5f21e1f 4760971b c7366f4b -> 407b338f c0492fec c07f24c9 c0492fec c0814191 bf2b708a c07f24c9 bf2b708a 3ddb4944", + "43407b32 c423101e c32f4940 -> 40c8b24e c0543e28 c1580032 c0543e28 411d516e 40da61b5 c1580032 40da61b5 415ae17d", + "4836aa49 47d84329 c46363d4 -> c17c24cd 4124ceec 3ffd67a9 4124ceec c0e35dd3 3f1e3db9 3ffd67a9 3f1e3db9 c10d15cc", + "47c0154c 47aedddf c6960ca3 -> c1be620f 3fb6b817 c104a0ed 3fb6b817 c115ed6e bf320eb0 c104a0ed bf320eb0 c155c294", + "c8a0c33b 48ad39e5 c8557b04 -> c1605351 c0f66359 bf9c1469 c0f66359 3f16c82a 40a925dc bf9c1469 40a925dc 41862943", + "49cea312 4a726512 4a329818 -> 4128f273 c140f9fe 40375870 c140f9fe bfd1dafc 405405cf 40375870 405405cf 40b62356", + "49154d18 c6d2f4d9 49182dbb -> 409250a5 c092525c c15b789f c092525c 40ec6afd 409c8734 c15b789f 409c8734 41093402", + "c9e381e4 49980a9a ca01f5c7 -> 3fd139e5 bfb631a6 bf9cb66c bfb631a6 c081a15f c02bda73 bf9cb66c c02bda73 4198a058", + "450487ee c704ccf9 4709be3a -> c11b9000 41138a87 3eddeb39 41138a87 40dbf18c 40de7b42 3eddeb39 40de7b42 403b1423", + "c5984a47 c4b9c4e8 c58e438b -> c0fedb95 40abeecb c08168f2 40abeecb c0f7d567 40a44021 c08168f2 40a44021 c17c17ed", + "42f44c70 c2fbd259 c29af746 -> 414d5339 400268e5 c0ed00f4 400268e5 412ef83f c072d605 c0ed00f4 c072d605 41e6e261", + "48680465 483e6344 48a950c1 -> bf4f27c4 bf49c177 40f76b99 bf49c177 405f7636 c059f8f3 40f76b99 c059f8f3 401d27a2", + "c70b12a7 47a3d3e6 4789240b -> c1075d27 4032bfe0 c0750b35 4032bfe0 c06185a5 4140d925 c0750b35 4140d925 c0e0b584", + "c77d75e8 c7acd84c c6063e79 -> 40088022 bee739e1 4184f0f8 bee739e1 4035da13 c09da951 4184f0f8 c09da951 c08ba3c9", + "c399f744 452879fc 450db181 -> c11670d2 4037c88c c0701b9b 4037c88c 415a1d9d c066eb14 c0701b9b c066eb14 c073c57a", + "47cf83d1 c831e14a 47ffee7d -> 4098809d bebb5223 404963c1 bebb5223 419732bc 40edc4db 404963c1 40edc4db c05ed133", + "4925d51f 4902fdc4 c9a70b0b -> 40daf6af c0c81417 3f702e7e c0c81417 c05a585d c02c18c5 3f702e7e c02c18c5 40667dcc", + "488d3b54 48a0d89a 48e13b6f -> c11b8e90 400c2384 c0e43077 400c2384 bf85dca2 c0a3ebfe c0e43077 c0a3ebfe 413b9eb5", + "c3413bd0 44e92807 c4236c9a -> 418cc7fa 410304d4 3f50ec39 410304d4 c0bba5f6 c084a91f 3f50ec39 c084a91f 40fcb4ac", + "438486de c4108db9 c4ebb1dd -> 40518e03 c046c17f c0ea04f4 c046c17f 400f12f2 41034159 c0ea04f4 41034159 c185ac59", + "c87c9bc0 c7a0b84b c70f609f -> c12dc2ed c0c5a5ba be5f18d2 c0c5a5ba c068c224 bd0bfcfe be5f18d2 bd0bfcfe c18b6537", + "c7323538 471f5018 c7103e50 -> c11c84bc 40dea1f4 c10efee6 40dea1f4 bf365e36 404e16f3 c10efee6 404e16f3 415e974d", + "4435dbdb c5474094 c2849992 -> 40ab3ee7 4035a5c9 416e9520 4035a5c9 c0ab8ed4 c1c6ae99 416e9520 c1c6ae99 3fd05e37", + "41e3ae25 43b73a95 42b5aff4 -> c0a4efd4 c12d477c 3fe3bb51 c12d477c c0f4c2a9 c082ff6d 3fe3bb51 c082ff6d 3e650e66", + "c67a1ee3 c7866add c534976f -> 410917ef 4035102e 41199389 4035102e 410ae191 411e8347 41199389 411e8347 40115f28", + "4563009c 452681ca 44f78a9a -> 4162f252 c0b155cd c0ebe5de c0b155cd bfd4ece8 4112c920 c0ebe5de 4112c920 40f6bea5", + "46af7c47 4645f3a0 46a6f681 -> 418bbd29 c0c754ab 411eff6d c0c754ab 41049cdd bf540577 411eff6d bf540577 c102cba6", + "c5f44b61 c4db2248 c63f59cc -> c0bfd783 c0ac7e46 3fe71c7d c0ac7e46 4160e9a5 c03fa4dc 3fe71c7d c03fa4dc c1416c8d", + "49db3802 49b5f1cc 4798fb87 -> bfc13524 3f2fbe48 c1228002 3f2fbe48 40e00401 3fc83e86 c1228002 3fc83e86 c1932ede", + "c5a8a446 c582674f c5dc843c -> 40916d89 3d7ba0ae 4136a8e0 3d7ba0ae c151dd00 3f27d888 4136a8e0 3f27d888 409abee1", + "c64fca96 c61efc24 46817c48 -> 404a5804 40943027 bee7644e 40943027 40fc0a21 3f8b4290 bee7644e 3f8b4290 411e98c5", + "47a6e1a4 c88398b9 4940d70f -> c134c5e9 c0ed69da c06dc74a c0ed69da c14c892c c1688b91 c06dc74a c1688b91 4108f1e3", + "431d7c47 c243c605 c21bfdad -> 4043bffe 412dfba6 411ac4e8 412dfba6 bd8c76cf c02cfa70 411ac4e8 c02cfa70 40dfea49", + "465ef587 c792ebd3 468dc002 -> c09e76cd c0b0f1d2 c0953a68 c0b0f1d2 407bea59 c0db6d1a c0953a68 c0db6d1a 419b8a94", + "490604cb 4953401d 47233ad2 -> 40eed9df 406a076f 3f185123 406a076f 41cd767f 408def4e 3f185123 408def4e c0976d40", + "c899455a 490a8f37 c8cabf24 -> 41288946 c08db188 4150a5ed c08db188 bf6306e9 c1081def 4150a5ed c1081def 404024f0", + "4a1397ea c8b22f50 c9cf1b68 -> 40eeb2e3 c077fe42 40eeb1a3 c077fe42 40d54fe9 41568c03 40eeb1a3 41568c03 4100e71c", + "45830d91 c636315c 4538cc5d -> 40eca424 40343595 c08cc3dd 40343595 41237305 4042a042 c08cc3dd 4042a042 bf4d1283", + "ca62d1b0 4a6f0260 49e62d40 -> c17dd2ac c0afb083 c020af48 c0afb083 c1c17bb1 c0d57c5c c020af48 c0d57c5c c191cf42", + "c4c920f0 430e57d4 c3a40fb3 -> c11c05b7 40fdb7df c108ae7e 40fdb7df c0149aca 40070da7 c108ae7e 40070da7 4153a399", + "c6739269 c72bca4f c6e80940 -> c15170ff c0c23805 405eb87d c0c23805 c1409903 c0d0ea1a 405eb87d c0d0ea1a 40a6d0dc", + "483d971f c867f5ad c7e8b343 -> 408939fc c09d3b2c 40b9d2f6 c09d3b2c 414519ba c0ee7a7a 40b9d2f6 c0ee7a7a 41c79f4f", + "c317332b c1c190b5 43058ef8 -> 3e4fa4c3 c0538b9c c13685df c0538b9c 406754b6 40051536 c13685df 40051536 407f4232", + "c9e4a695 4a52b990 4a05321b -> 400a222f 40f2144f 41418cad 40f2144f 40997f54 bfa74cfd 41418cad bfa74cfd bee55382", + "c459f97b 42fa24c2 c4803545 -> 41b4f04b 40ee6ad5 40a4db05 40ee6ad5 416cf750 c093f8ef 40a4db05 c093f8ef 4157b91f", + "456a347e c7065ebb c479fa38 -> 40e9fc31 4084c970 c0027c82 4084c970 418379cb 4179912d c0027c82 4179912d 410e991b", + "c4291b5b c4458114 c4c641ac -> 40d15f64 40636fa9 404b8438 40636fa9 c0bd5620 c13a9573 404b8438 c13a9573 bf1ed5de", + "4416c41e 4376ceff 44977f46 -> bfd3682e c0d0a811 4102905a c0d0a811 4108af68 c0ae74d1 4102905a c0ae74d1 419d971a", + "c8243007 48e4b204 481b0951 -> c17eb9dd 40a7048e 413a2a0d 40a7048e c057afb2 40899a63 413a2a0d 40899a63 bf07af6a", + "46eaf7c3 4706e72f 476366d4 -> 40045b99 c09b208a 4094801c c09b208a c129806e 40f7ec16 4094801c 40f7ec16 c15ac7cc", + "c32233e0 c4356a0f c443c4cb -> 41284573 c0c43e75 bec66016 c0c43e75 c19b10a2 412edef5 bec66016 412edef5 c02a5b56", + "4855fe46 49c84d54 c9f9c2c1 -> 411da2a2 40354363 40362ad8 40354363 c169409c bf8d77f3 40362ad8 bf8d77f3 c0803d44", + "477ae0e6 c7910cbf 471b7adb -> c1125246 4116bd7b bfaefd9e 4116bd7b 413816a7 40774d89 bfaefd9e 40774d89 3fe2e9b3", + "c82cc9eb c8811095 c781c7be -> bf8d1b1d c0ee1d2e c03a83d9 c0ee1d2e c141bae4 c0a5320a c03a83d9 c0a5320a 41457435", + "49c8cf2f c9bc0ee8 ca038637 -> c1647843 40d050ff 40c7fc7e 40d050ff c09bbe2f c1178050 40c7fc7e c1178050 c172e102", + "c1dd7b66 c26079ce 433400bb -> c150decd c098931a c1289b1f c098931a c121bc89 4096d477 c1289b1f 4096d477 c13c4e0e", + "46df1cc7 c6c87576 464f974a -> bf9e55a4 c178c12b 40f3b28c c178c12b c0b14948 40ff9aae 40f3b28c 40ff9aae 4045a458", + "4500ff2f 4410249d 449d9439 -> 421cd567 3fb261ce 3fd22922 3fb261ce 40455a93 c01f7e4c 3fd22922 c01f7e4c 40d6b3ca", + "c8945ce6 c83f42fc c88ea5cb -> c09c537c bf9eb444 4022fb7a bf9eb444 c15e3d88 bfd88a37 4022fb7a bfd88a37 c0fb55d4", + "ca46ff2e 4a0e0f37 c7bce074 -> 41484247 c15ac1ba c08ae195 c15ac1ba be8d3795 3f05de04 c08ae195 3f05de04 bff4966f", + "c8385b0a 4857b7df c8334613 -> 3fd99ece c12e094c be676954 c12e094c 40d220b1 c1134ab2 be676954 c1134ab2 c0895ef1", + "46f05bb8 c6cd4f2f 46a2c97e -> c0a913da c0eba0a1 400f0b9e c0eba0a1 4068a233 c12c5a59 400f0b9e c12c5a59 c0921396", + "48578834 c842fc84 c7ed1201 -> c14ff824 c16d6f1b 3cbda97a c16d6f1b c198ff4d bf52827e 3cbda97a bf52827e c1141fe1", + "49bfcb9b 4980e517 48fa1f6c -> c08e494a 41595467 c0919b5a 41595467 41805308 406626be c0919b5a 406626be bd864c04", + "c79db873 c6e8a10c 47aa08c4 -> 416b166e 40b794ec 40b178fb 40b794ec 3fab97f7 c0e4111a 40b178fb c0e4111a c11a4e96", + "47ac0369 c77bf0ab c736b8b2 -> c1add045 bfd5c26d 40497018 bfd5c26d 415ed3e4 40894ca3 40497018 40894ca3 411d64df", + "467aeaae 45da1109 c56cff38 -> c0d4a0d6 c09442fe 40cdbcaf c09442fe c12223e4 bf961133 40cdbcaf bf961133 c18b010d", + "45e85742 44b70fd9 45907be5 -> 404cff29 40b6c2ec 40858105 40b6c2ec 40f74d99 bee8ea84 40858105 bee8ea84 3fa01c36", + "47e3c112 c85eaff5 46a7f901 -> 40e365b5 40cad6f2 40fabe71 40cad6f2 c02573f7 40a8dc7c 40fabe71 40a8dc7c 4093b5f4", + "ca2cee84 4a46291a 4939a9c0 -> 413d2f9f c05efbe1 409c5a84 c05efbe1 c1795999 40946585 409c5a84 40946585 410df890", + "49e58436 498e81e8 c9d63787 -> c133f3ad 40e31af6 41443418 40e31af6 c0a1562c 408d8dab 41443418 408d8dab 3f930ba2", + "c19432dc c4920e35 c4938ce4 -> 40cde27a 3eb36e24 3ff4c17a 3eb36e24 c0b74849 bf79bb01 3ff4c17a bf79bb01 4139615a", + "47504199 471aba3e 44e43881 -> c104d2ad c083fa71 3db30e97 c083fa71 40b2caf5 c0bc2acb 3db30e97 c0bc2acb 40742c64", + "45f9df43 45b99a1b 463e86af -> 40ec81ad c1132d96 c036097c c1132d96 c0823cc6 4088025f c036097c 4088025f c12ee406", + "c523f17d c302abe5 c4cb3c0f -> befe99c7 411e3cd7 40916546 411e3cd7 41aabb21 c0934ed3 40916546 c0934ed3 40cb8413", + "43284307 43684bd4 c2f09c70 -> c11f9b25 c02494e1 c0afe08e c02494e1 c1897457 bf56da1b c0afe08e bf56da1b c0c9c912", + "c5ad3946 c6aae1c4 c56f0872 -> c178f50c 41336b0a 3f313062 41336b0a c0308666 3ff1946e 3f313062 3ff1946e 407fef33", + "42cf9446 c360191a 4364a6f0 -> c1579360 3e3c0766 c0cc4636 3e3c0766 c0eca557 bfeda924 c0cc4636 bfeda924 c1f692c1", + "c35712a5 43042ab1 42eda8e1 -> 401e94b3 40df63a3 c051d5f4 40df63a3 40b4fad5 c0ef13fa c051d5f4 c0ef13fa 41c19ac0", + "47a82e94 c827053b 4865e5f6 -> c1115493 40adbb1a c026dcca 40adbb1a 40c4482e c090af17 c026dcca c090af17 c110f08c", + "c826bbc5 c7bf1a38 c8365dd7 -> 40e87adc c14998e6 c0df052c c14998e6 c0c986a5 c100481c c0df052c c100481c c01688e0", + "c3ca47a5 c3ab3f83 42826b6f -> c1223f98 c10678db 3ff0bb5c c10678db 4052169a c1034e75 3ff0bb5c c1034e75 41406118", + "4662d8b2 c5e2f330 4648fedc -> 41a786fa 3e9eefc2 402785f3 3e9eefc2 40c39cdc c03f4484 402785f3 c03f4484 c07d8b78", + "c3f6d40b c3b2a364 c287073d -> 3f6ee08e c02a45ae 40d51fa3 c02a45ae be67e460 41068ad7 40d51fa3 41068ad7 4033bae1", + "c324866b c3d116e6 c3977de5 -> c05e0a20 3f95ea7a 3fd2e24f 3f95ea7a c0fc2548 41078f0d 3fd2e24f 41078f0d 40f8577d", + "43b7a7af 4317d825 c400065d -> 41095d1e bff16227 c087378e bff16227 c10e6a8a 4081b51c c087378e 4081b51c c0e14f50", + "c712de35 46b81574 c7177dd0 -> c12f7b35 3ff712bf c0247d87 3ff712bf c11c4c07 c0dbd245 c0247d87 c0dbd245 c19ed658", + "4a2bace1 c879e793 4a11a1dc -> be07c78e c11e966f bf13250f c11e966f 409bde48 c14ed088 bf13250f c14ed088 403c7dea", + "4532a13f 459a2c3c c591f863 -> 3e987db3 c109834d 40e705e7 c109834d c2047046 bf965a0b 40e705e7 bf965a0b c0255449" + ] + }, + { + "glsl": "float cultmath_distance_to_segment(vec2, vec2, vec2)", + "tolerance": "ulp-bounded", + "cases": [ + "422a04c4 c0a95768 423b2486 c1b0a319 413fd2f0 c1fbd700 -> 418a998a", + "c19adddb c0eb57f0 4245a9e6 42093dae c1d41e00 420e8cae -> 422b70e3", + "c13f27d4 c20af956 c180d120 41abcf58 c23e49fa 41c9fd6c -> 42617e03", + "4149d2ec c182da66 405fed30 c060f680 4246b844 40f0e348 -> 4169bfdb", + "c1c3d1c0 c214fc3f 41d7db74 41aef878 c133b918 4168dd28 -> 4255ddfc", + "c219d5c1 c22500e7 c0f7d880 41301f8c 42307ad0 41ae3d78 -> 427276a5", + "c22de976 c19c6d55 41d0088c 41804818 c09fa570 41e34830 -> 4275fd39", + "c15c0110 41b030b4 41750a80 c1116408 3f4f4300 c0d6d268 -> 4200dc1c", + "c21bbdba 41ad853c 41fb7bb8 c1a0dfec 412fe05c c1dc87a6 -> 428c4536", + "c1a0dd7e 41e870e0 c2163e8e c233860e c1e75539 42269282 -> 41204284", + "c22df86f c2170343 c21e2039 c1bbe868 c21e2039 c1bbe868 -> 416cdf21", + "41f39918 40c2f188 c23a2005 41dbf51c c23a2005 41dbf51c -> 429fcd42", + "41e8f0a0 c21954e6 400a0e50 40956790 421d1764 c1145264 -> 41f649b4", + "c1e5dcd1 412d1c54 4219da42 4217d4ae c2461807 c14f0e18 -> 412280a0", + "bf275c40 41590b50 40c293a8 c186fa92 41d50a94 3fb21ce0 -> 41d9cb8e", + "42131198 409b16c8 4208d8b8 c1d09424 c1a20fac 411c6e74 -> 41d9db26", + "417cac90 c2440eb1 c12d25b0 c02a2ef0 c2288731 c1f3bc8b -> 42515421", + "c21ceeed 41fbd868 c229707a 41feff8c 421ca5da 42225e2e -> 3f396bd3", + "c1996928 41eacfdc 423b0a98 424743cc 419b962c 40c55238 -> 42343240", + "c2104845 c1f3bb1c 41c97100 4083eb60 3fe711e0 418f905c -> 4275defa", + "40da4208 c205c5f3 c19a11f8 422966ba 41f79f98 bf3714c0 -> 4222a734", + "411d5718 40ea3000 c116218c 40af3390 c201e540 bfc7a200 -> 419a70f6", + "420056a0 c09dc398 3fa05e20 c136ba10 412ccae4 4215ce1e -> 41e81fba", + "41cbf5d4 4219775e c1cf1bbc 40be3158 c2398eaa 415ff84c -> 4273081e", + "41fb9db8 423158f2 422cdfa6 3fee6d40 3fcb31a0 41d73104 -> 41f2ae16", + "416ec898 40ca1a90 421e190c 407c8d20 421e190c 407c8d20 -> 41c5b6fd", + "c0b51530 41a7eb4c c10b1600 40c497d8 c18496ac 3ff60ae0 -> 41727388", + "c209d410 c1913dcb c22918aa c1d094df 4227f978 422405d6 -> 3fa9c108", + "c1597dc4 41fa9aac 41f3f420 c22d7b1e 4244f226 41dabce8 -> 42770339", + "c2398cf8 41e30dd0 420d259a c0268080 c1574458 417f04c8 -> 420cd2ae", + "420a88aa c2035b86 41ac54e0 413ba78c 41ea12c4 c1f40f8f -> 40bb77a0", + "420bd086 405d8fd0 c19589b8 41ee2990 c2268345 42378a00 -> 426eff92", + "c1efdb61 c22c0c09 c11eddf4 41dd676c c11eddf4 41dd676c -> 4292f403", + "41a22740 404787e0 4170e9a0 41a8bef8 c1544224 40e28960 -> 419361c0", + "c22504fe c11456bc c19910cd 40c0a740 4110d384 423b85be -> 41d723a2", + "41432eb4 c198b971 420fef24 c15d0c64 420ed6ac c2150fec -> 41bdc570", + "c1b91fcc 3fba0140 41ac1b3c bf504500 41b9fff4 4223756c -> 4232d682", + "419dc888 420660b8 41fba8ec c0991748 412a3644 41abe904 -> 41722a5b", + "c2258e9a c217f2d4 423361b6 c242e930 c19299e5 bfcdc6e0 -> 422bcd95", + "c12f5624 422961ca 41578d48 c1db7fbe 4100f3d8 c1dce4d2 -> 4290fe0f", + "c04ef920 c232aa50 411b3460 41def9ac 421e6f68 422e2cca -> 42935d5e", + "c241578b c0a7c6e0 c1e0bedf c0d2e3d0 4181b780 bf173740 -> 41a24bf0", + "40e44cc8 c1e6486c c21cc830 c12fa504 c1c4dd87 42248d6e -> 4246898d", + "c1f8d3cb c17be190 c17167a4 4065a460 41657930 c227d5b3 -> 41bf8ae4", + "4111b8fc c1845f88 c1bb026a 421745a2 4193cfa8 c1e1f145 -> 3fd3c8cf", + "41e21610 3deb4e00 418ac080 c1d85855 41df8f70 41b7824c -> 40a16baa", + "418a0c10 c2043a78 40fb9a50 c22c3710 4243eea6 402ab820 -> 3e99402f", + "41a90c00 4237fccc 42062962 41ff41bc c195ffaf c1c9b1fe -> 41963431", + "41a89c28 4189f35c c1cdbae1 c1b10b5a 420e027c 423521c4 -> 4102b955", + "c21ac918 bfda7100 40b2ef18 c0ee2e50 c1b2c873 c0d14380 -> 41886217", + "41a8cc48 c1b4edb3 c207bd16 41e6fd20 c1fe676f 41d8659c -> 42911f4b", + "c202bdec 421a4c52 c056eaa0 3fd20240 40abf660 c0dd54b0 -> 423ca55a", + "c148b244 4202174c c2305b3c 4217e840 423be05c c0de1278 -> 4111055e", + "42037bfa c0879798 42345984 c22b430c 41dd3ec0 c23eea99 -> 4221c856", + "41953220 418dc6c8 41663ae8 40be7908 c2232c0e 418bccec -> 414845cb", + "4194e74c 420ce234 c23bddb2 c247e024 c010bcc0 41dd2274 -> 41b1a988", + "41e55ab8 411e85d8 41d1d480 4070c000 400cc5b0 bea37080 -> 40d39bfe", + "417c54b8 412830f4 40928fb0 41bec6f4 c2466622 c1e82d31 -> 418ae090", + "41fcf834 40a02248 41ad8338 4218ea2a 41c63acc 4201029c -> 41e0c13e", + "c1e92e24 42301cc8 4236c0f2 bfaadf80 41ccdde4 c23c7d8a -> 42af05c8", + "423d3518 c1ce9866 4217c864 4196bf90 4176b1e0 c1f9217d -> 41d710a7", + "420f6b96 41450624 405b0f50 c2373162 4025c480 c220c33c -> 42789f25", + "c22b28db c115a228 42006ba8 c23c7c1d 42006ba8 c23c7c1d -> 42a7c24f", + "c218ca4d 4213f78c c0602ef0 c1953e9b 41b40df0 41b7ada0 -> 426ba80a", + "c2339d05 40fa2370 42358e9c 41f452a0 4207d8d8 41d4bad4 -> 42a22353", + "c233fc4f 4193c02c c04c9570 41851328 41fb9e84 c1704a64 -> 42275c2c", + "42081b8c 42371084 c23f85da c1fddeb2 c20ba61c c1de7dc7 -> 42c9a7de", + "c086d6f8 c2116e37 41b38bb0 c211aab6 c14a3ce8 c1a71c3d -> 412bc23c", + "41fed078 4188ae58 41ac4388 41d12560 41d22ab4 41a03bb8 -> 40c9ea4c", + "c0675d10 c1f03232 c13ae834 bfd640e0 bf914ca0 c230da60 -> 3f80f031", + "c17970c8 41a6fd68 c0da6678 41d8cfec 41be9958 c0b3e8a8 -> 412c0940", + "4224e70a c1479358 c213aff4 c1b1cbb1 3f456c80 c1d86e76 -> 422c01ce", + "c0ba6ad0 c21600a1 4187a80c 4114f768 c0214780 41ca29cc -> 42503e2c", + "c2427717 420aab9c 4221f6e2 c1d6c914 4221f6e2 c1d6c914 -> 42d88eca", + "419f855c c145ba90 416f3e30 415cd0c8 c20ea5f1 4181c894 -> 41d50ab3", + "c1584aac c21a7ead c2066484 c1a5dab3 4230bd1c 41589068 -> 41c3c029", + "bfd0eee0 42228132 420aeef8 410746dc 4230ffc0 c1c400af -> 424236f3", + "421c1020 c23f2876 c03aaea0 41aae3dc c03aaea0 41aae3dc -> 42a1be23", + "c19bde8c 402bc4f0 c191fec0 c24275ed c187ca34 4210d318 -> 40005b00", + "41f49d70 c0db9510 40807270 c22482df c20a4292 c1d67dc9 -> 422d6c7a", + "422eb61e c19c32a1 4224c8cc c17a172c c2426070 c1fd7b7a -> 4093c3ef", + "c204bcd2 c0fc0d38 420443f8 414bf248 41ae99cc 4221abdc -> 428a4855", + "4229c244 41f76520 41ed747c c200858a 41928428 42025970 -> 41bbca3c", + "41d4acb0 420220d4 416d68d8 420f8ac2 40d1ffe8 c11d44c4 -> 41427dd1", + "c20abba7 4103befc 409537c0 c2375fc1 c22e8519 c23bc90c -> 425bd8e8", + "c111d304 c10eb1a0 42248574 4059ef80 42248574 4059ef80 -> 424eef34", + "c135c9f8 c2113274 421ca544 bfa86b00 421ca544 bfa86b00 -> 4275cf9c", + "4237273c 41c2a81c c1e49b87 413337fc 42188c74 41436b40 -> 41654e61", + "c1166150 c1bd22d4 409677b8 c0384a70 c203a03b c003a250 -> 41a886fa", + "41e126e8 c1acc600 419cac34 c0a50368 c242012b 42078e9a -> 419447ad", + "421574e8 421a34cc 40eab400 41774800 3fc6e0c0 c1228428 -> 421789a8", + "c180c670 c1be6697 c175f898 41e9399c 418030c4 4131ba64 -> 423915c3", + "417d6b08 415a9134 c2036791 412c6308 404698a0 c239df38 -> 422b10bc", + "41d590bc c0eb5000 c1af6f2b 417c4ce8 422bc566 41abfafc -> 41da7aee", + "c1edc0b1 41f0625c 40bec338 c21bee2f 40bec338 c21bee2f -> 429b69cb", + "4236fbfe c2264dad c1baa14a 41616ef0 c1bbb1a5 c156aa44 -> 42956f3c", + "418fbd14 c22d351c c1dd084f c1ef65c6 c1dd084f c1ef65c6 -> 423e12a1", + "42135742 401bdaa0 41d26478 3f88ec60 c216c74d 416be2c8 -> 4129fd06", + "41f2dba4 c1a5e3d6 c0edbbc8 bfcd56a0 c21d5376 c0830998 -> 42296a57", + "4192c2f0 41e552e8 c1aec76a 4109c680 c21182e0 c07647b0 -> 4233ac04", + "423c12dc c1e4c720 411fb9fc c12a5be0 41f07700 c14e0b80 -> 41b8ff6a", + "4205d3ac 4121a780 41eb7cbc c19a249d 41d44cf8 4182c784 -> 40cc79d9", + "c1f78058 41af232c 420cf7d2 c22f91dd 40b137a0 c1485d5c -> 42489804", + "c172c960 42383d3a 415ce5b0 c06be770 c121fe30 42418ae2 -> 40b1e767", + "c109715c 4247538e 41dfc79c 4080d300 408032e8 c206bc42 -> 426a6f81", + "c197bd8b c1923f3d c21921a6 421f4466 c1b308d9 415228a8 -> 41fccdde", + "4199486c c1162648 c2015866 423b9a28 41ec7618 c0e2dc30 -> 410906a2", + "c22ce822 419b63c0 402037f0 bf379700 c2254d24 4238b514 -> 419d4133", + "c1c54194 40930538 422c2780 414314d0 c1343708 c2422571 -> 423598c6", + "4124594c 417fea50 41d5a6a0 c0fe7ff0 3d000c00 41bc32f0 -> 403c6f9e", + "c11d3b30 4183b7d4 c206d644 42181e9a 41c2bcfc c076e2f0 -> 4060dda7", + "40ae3660 4159fee8 bf1627c0 417aa5c8 40af3338 c1c43f61 -> 40b51634", + "c19cbca5 c17021a0 c2350743 c175d0d4 c1eee2ac c1fa924c -> 4195bba1", + "41d8ff74 42284226 c1b3019c c2313dfc 413abe6c c110aedc -> 425591e8", + "41c4f7b4 c2199a11 409b5130 c224721e 419b1608 c15c98f8 -> 41816fb4", + "c23c2a0a c19eaa6c 41340c28 4184cd54 3d0d0c00 c0cbff08 -> 4243d893", + "4223e0ec 41eeeb48 423a1bc2 419f30d0 41cff480 41afb528 -> 4115c2b0", + "c197fa08 41d9993c c22a5bc9 c1a116b4 409b14e0 421aaa8c -> 4135bb15", + "41c33384 c12f77d0 42015c96 4150c5ec c2334278 42323d3a -> 41ca5981", + "40019cb0 c199ab3f 40d8dc80 41f695e4 421d068e c0d05268 -> 4211b1ff", + "c234b333 c21c00db 41904a40 c1b46892 41c86d74 c197391f -> 4282a219", + "c217337c c2318280 c1635998 42109ece 4197f368 c023a120 -> 428cac23", + "c1799abc 424689ae 41e83278 c0cc3918 c01d0c90 41e74ce8 -> 41c45276", + "422488be c1e2b511 c239cad1 c1ab879a bf6f4700 c123ff3c -> 42372b49", + "bf6d2f40 423cb072 421c4d76 c130e37c c1ac363e c12a03a4 -> 4267c56b", + "41819af0 411c97cc c23e5711 c1be93a1 40f238d8 c05cd050 -> 417cd799", + "c184b6e8 c1b80ceb 41d72558 414334f8 c0388b30 41de04a8 -> 424d58e1", + "c196be9a 41ac65f8 c14cb7ac c2017f86 41693d00 4167bfc0 -> 4201af9c", + "421d59ae c1c5f4a6 42438f84 c2113bf2 42256340 c0523dd0 -> 40d79a35", + "c22632f2 4243c1a8 c0328530 415204fc c227b928 41d4e09c -> 41b2a95c", + "c1227114 c1740de8 c2023d52 419197b0 c18d190e c1babafa -> 411c73cc", + "4232abec c2255e1a 4182dde8 40f72190 4182dde8 40f72190 -> 42629598", + "c1e572b2 c2005570 413ff770 3fef6c60 c09f1d30 415e5688 -> 424ce466", + "c2160dde 41d6e798 41c71e4c c239e695 407380a0 4181c7b4 -> 422aaa63", + "42444bfe c1c85104 424756d8 c1a28a01 4236af02 c12f3e2c -> 40990ea1", + "bf12d780 42253cf8 c2436df9 c1f1e133 3fdde760 c18e4874 -> 426c8f4c", + "40befee0 4232adc2 c142ca44 c18bbee0 c1cfaf80 c1a53536 -> 428176ff", + "c0994a80 42034f98 423360c0 c1c0ddf5 41d4fe60 c186909c -> 426b0258", + "4225580e c232bc8c 41b8adc4 c2342f74 c1d1f77d c18bc6be -> 419209b4", + "c189e698 4184e814 423be784 418a45e8 414e6c88 412daf54 -> 41f57939", + "c1bb24d0 421b46fe c18f2808 41af240c c1928c47 c14ef924 -> 418e610a", + "4200c60a c2004380 41a7f1b8 40d09230 c1520628 c23409e8 -> 41f51ffc", + "c0fbc0d0 41c12528 c238d606 40775500 c230873d c1af89b7 -> 422d7f07", + "420ff984 40bb8fd0 c20cc126 41017254 4246bf24 c1126854 -> 413fc4aa", + "c1af8c95 c2398f1f 4173f668 c1d659b1 4193f320 414bd314 -> 422826ee", + "4230089a 4129e0c0 407ff000 c1fb2dd0 423875fa c23fa1f8 -> 4256e05e", + "421586f4 3f969660 bfc83720 c2236dfe c1b3b2ee 422cbd8a -> 423fc0de", + "4229e178 422fc316 c212525a 422284d0 c1899ea0 c202d2de -> 429a8bee", + "c18855f6 41750890 c210ca8f c1162fb0 4238dbcc c23104c0 -> 41f1b43c", + "c20eb462 41950558 c18581c4 408462b0 c0f7f568 be550700 -> 41bf1551", + "c211e59d 41c0d4f8 c16bcf24 bff01680 c16bcf24 bff01680 -> 42077e51", + "bf86adc0 4242728e c1c045c5 41830124 c1c045c5 41830124 -> 421e5be3", + "c01579f0 3fe9fe80 c10e6b44 41b13138 c1669f08 c2215235 -> 41053833", + "c091c2e8 c11cd9c4 c2379542 c164dc80 4130ce54 4235360e -> 41d64325", + "423962c6 c20b80d8 c2143563 42479a2e 41b876b0 42023208 -> 428eaaa9", + "c0d36b80 41e142e0 c1fbfe34 420d2536 41e78e28 c1f14eca -> 4157353c", + "3f6b23c0 416dab78 c02e0680 c22cac6d c1add085 c1ce4617 -> 423a16a2", + "407ab4c0 c2450f3a 411d886c bfb992a0 c235622d 41685fb8 -> 4240b991", + "c2219e96 40e8b998 c18a87f4 423b39b2 c1fe3754 41327f7c -> 41176291", + "3fa02d40 422fc4e6 c2209767 c1a30b55 c1dee97e c1db376e -> 4298c6bd", + "41bd5d0c 422048d6 42137368 c236ea2f 421f5530 40da5938 -> 4213df6c", + "41cabd64 c1603200 c1a91566 42321b14 41a8b230 40468820 -> 418d1549", + "c20e719d c158b9ac 3facd880 c0f24428 c1ffcbcd 420f44e0 -> 4203cf07", + "c1e8eb89 40adce60 4219eb84 c1819db2 410ae2f4 c1492400 -> 422774b5", + "41a74bf0 c20635b4 41d9b27c 4246ab24 41d9b27c 4246ab24 -> 42a6ea58", + "c0b71328 41f1f98c c2418754 41b7dd64 c2418754 41b7dd64 -> 422d19a3", + "c2293339 c238b947 413e8bb8 c20cb75c 413e8bb8 c20cb75c -> 425d41d7", + "40897ef8 c0374c20 c17bf520 c1e5b89a c17bf520 c1e5b89a -> 4202d8a2", + "c15233e0 40ef9a88 41080750 4214c2da c2378ed9 c153825c -> 40e26c96", + "403244a0 c175c3dc 424187e4 41a3c954 c196c71a c1f4d7b2 -> 3f72b2e6", + "c2364747 c1f3ad98 3fd38220 42336ff0 419bc0d8 41f0f3a0 -> 42b044ce", + "c239198e 41c45d50 c22bb6d7 4142ead4 c21eb2ae 41fffc50 -> 40a9c737", + "42466688 c2437614 4210cce6 42462e70 3f205800 41e76a54 -> 42b7b9b7", + "c2124d58 4114c258 42201662 414ce070 42201662 414ce070 -> 42995af4", + "41be71e0 c1b44f08 416d6510 41c4cda0 417fd208 4206ac30 -> 423ff02f", + "c22a5152 c1a16c01 421938a0 400aaa90 421938a0 400aaa90 -> 42a7d41e", + "c1b084e6 3fb71580 c1b2bef6 41dd55a4 c186e6d6 4203c4a8 -> 41d1e752", + "40990a08 c2174503 c239bb2b 422f23d6 404bdc10 c183f5c6 -> 41ab0e96", + "c1188410 413a16b8 420156ec 41f43624 42240612 4123e278 -> 4237b2ca", + "c231ed01 c185df8e c1cb17f5 c23578d6 c1b264e9 c225c5dc -> 4204d226", + "c1a15903 41e63c70 419f5160 c1dfd69d 423f6c0a 41bbd2d0 -> 42793d21", + "c1b40701 417038f0 c1614d44 c1da7859 c19c2404 40b75e08 -> 411c083e", + "4146af50 c23c7d4a c2270880 c21fc7ff c0ef61b0 42069d98 -> 4250907c", + "422224fa 41caedb0 c23b6ee2 c00a65c0 c107f87c c23bd380 -> 42a8928a", + "c1feaf1a 422125ee 41b84750 c1dcaae3 41b84750 c1dcaae3 -> 42ae8d79", + "41ae1e48 c1c8647b 41c3150c c182c7b4 c2432e35 40aa8dc8 -> 41116651", + "40fab9f0 c2141d82 41206ed4 c0655c40 c23e73b1 4128604c -> 42061136", + "42324f28 c0dcc6a0 c235f324 c206837b 41271dfc 420cb9c2 -> 42541d80", + "41c17618 c12b45f0 c1c8c6e7 41862f24 c1c8c6e7 41862f24 -> 4261b0cb", + "41a379d0 414e2420 c198befc 40cb5148 c198befc 40cb5148 -> 42204108", + "c1ce2709 40c31bd0 c222abf4 41c5d09c c1585e90 420c6a40 -> 41b5c5d2", + "c1f86dfc 4201f816 c1a7e1e3 c2414f14 c0963108 c1722364 -> 4259bcaf", + "41e257b8 c1502bf0 422fad88 41b7d514 41e3a900 41ea86c4 -> 421ce8f5", + "c1edf56f bf048200 42171af0 c1a14321 423e5418 420e9f3e -> 428bcd5e", + "4243e790 421e5ece c1a01537 41a26290 40f1efc8 c239718e -> 428e3f1e", + "c2364b66 4201bd40 c1e0e1b7 41e13fa4 c2221b16 c20fa7e2 -> 418fd6f0", + "c23d3e53 4216a930 c1aa46d4 c108060c c12af068 c093f820 -> 4253fd67", + "c1f515b8 42070cec c19c8655 40274a70 c1e8543c c1e38dcc -> 42043ab3", + "c22d8a80 40a65848 c0a3b108 c23818cd 4245cb00 424419a8 -> 426ac3f3", + "422b9948 406d2270 c19500ba c1f03d1b c1962e97 41b03cc8 -> 42767b33", + "4091be28 c22ce42f 42334ab6 41beee80 4173ad18 4110f96c -> 42557324", + "413d1320 c092c8f0 42195ff2 c201bc64 c11b86f4 42463890 -> 410cd16c", + "c230ae20 42446cae c201435e 41ece4d8 42005558 41d80a8c -> 41b6867d", + "c1b61b91 c1100070 41c17140 423f3f1a 41c17140 423f3f1a -> 42936502", + "c1e3c5eb c220d79a c20bc18c 423d5cf4 c1823c66 c227a4ce -> 413960e3", + "41e5facc 416cf580 41bac530 c1663784 c20a3b0d 40b754e8 -> 41ead4b4", + "4211a398 c0a67a40 4147eafc 40d14f68 4147eafc 40d14f68 -> 41d52410", + "4245e11a c2113cff 41f5082c 4112b2f4 42144766 40932bc8 -> 422afca1", + "4234191e c1eadbd2 3f9279e0 bf5b28c0 c1b574e6 417c6fb8 -> 42514baf", + "413b859c 418685d0 410f56ac 3e2cd100 410f56ac 3e2cd100 -> 4186fe15", + "3e34fe00 41877754 c1b12484 c2193aec c1310310 c20ccaf4 -> 42555154", + "41f6faf4 c1f34ace c1a93e77 4206a7ba 42171508 4040e620 -> 42088509", + "3f5b4b80 c209a2a6 c20231f0 4125ef38 41f95c04 c1da3e01 -> 41ac7743", + "410f1f54 41e292f4 41eae320 42024dfe c23d3ac1 c14820b8 -> 40d5cd80", + "c231c234 c244e6a9 c21b2ad2 40cf7a40 41e510c4 c2043d06 -> 424ba561", + "4228f112 c1679558 42405f14 c19c61d0 c1c38c09 41039a88 -> 402935c4", + "c1a38e77 41c47b88 41a77b7c 41a22ca8 c1d7ac74 c2208883 -> 420c5af8", + "c176c224 41e08ee8 c2325fe0 c2279783 420c3a36 bfc07a60 -> 4244d477", + "421a7230 bf8332e0 c1a711d5 4224ed2a 41da7a70 c201746a -> 41d4fc83", + "c1f97d7c c19a1755 c1b68f1a 41ca7f60 c1b68f1a 41ca7f60 -> 4235686b", + "c1a0a693 4109f06c c15ed264 c1f52206 c22469d3 40b3a038 -> 4194ffcd", + "c216c855 c1a4e1e0 4167e978 c2264c2d 4167e978 c2264c2d -> 4260f918", + "c1b2ff55 c230caf2 420062fa 41ed36f0 41a7dca8 c1da5c3e -> 423a24ac", + "41938d9c 4197cffc c237ade1 422e4e2e c239811e 42123440 -> 42865225", + "c11693cc c0c7d5a8 c137d8e0 bfe067c0 c21d087e c0c5b488 -> 409e6359", + "42220880 41cbe6d4 c1d21f2d 4213de5e 40906638 41996290 -> 42122e96", + "c11ede98 c204c096 c19fbe45 c1eb8050 420b667c 418706e0 -> 41157f1b", + "c218a978 41e66350 40d2f418 bea18e00 40d2f418 bea18e00 -> 42559325", + "c209c188 418d0930 42386f60 c1babb94 4222cac8 409fe9c8 -> 4298620c", + "c22a88bb c1d0c15e 422e0e70 41a318cc c2029efa c1fad0e5 -> 41347562", + "422abd1a c14e20ac 411f091c 4105ca40 42439a68 c2061e72 -> 411825ff", + "41b81cac c1ad0318 40620980 41c06284 41db07ac c1f9cf33 -> 3e51d5e1", + "42423fde c1a9f6f6 c1f29e5b 41ff5688 4222854a c20d77de -> 417b47e2", + "c1f54c73 c11dfa00 c20358c8 c2274e0e 4231ef28 412ff95c -> 41c940f3", + "423aa086 41cb33a4 424324e4 c1daaccf c0d9cba0 c1c8b796 -> 42526c4a", + "c215baf1 41fc29c4 c225ef22 415e85a8 42176fcc c0ed89c0 -> 419094bc", + "c12be76c 4240de6e 40270f50 c0ee7ef0 c15c6cb4 41bebb38 -> 41c4827c", + "42349acc 4246dae4 4219e120 c224c899 c237f094 c0e72790 -> 42adab9f", + "423bf656 c08f37e8 3e409f00 41bac6a8 3e409f00 41bac6a8 -> 4259ca93", + "3fb0f500 41d2db9c 40af19b0 4097ddb0 402ca2f0 c17d0adc -> 41aff59b", + "c1ffec4a 420fface 422f7432 c21b600c 420c3c64 c23cea82 -> 42d5035b", + "417a0740 41f0a744 41b072b4 4168d910 41abc360 41042958 -> 418674b8", + "c2108dce c241fa45 4214a0bc c21ebc3d 41b60554 c12d2380 -> 428b0851", + "42223e14 c209b146 42008926 410540fc 41cbd800 c18ce6d4 -> 41b4aa65", + "418184a8 42112184 42175314 c24316b3 41e91354 c0f47af8 -> 4237297d", + "c1d986d1 c0054d50 414af6a4 41a3ae8c c1d07386 c19053dd -> 4141e6a5", + "422d0fb2 40a29a10 41e1c998 420a3ece c075f150 419284f4 -> 42046214", + "41c6d028 41da4b64 c0b24070 c147aa24 4234062a c21914f6 -> 4244fbe3", + "41a3582c c21b0c40 4034fb40 c1b46876 4034fb40 c1b46876 -> 41bf5e10", + "415533dc 4245bf7a 41a311d0 4208e646 42398ed4 42295806 -> 418628dd", + "c1224e0c 4224359a c208664c c1cc39db 413081c0 bf987280 -> 423d03c8", + "41be22e0 423d2e62 c22b1ef2 c2385ba3 413f1234 c1a569d6 -> 4289fc5e", + "415b4f54 42255a40 41612870 c0d32700 41612870 c0d32700 -> 423fc08d", + "c19af4d3 c220920c 417932e8 42088380 40190830 c1552254 -> 420a27ca", + "c0110350 c20c682c c233b1e6 4063d550 4245dd96 410b11b4 -> 4223ae90", + "c0c504b8 c235b48a 41fdbe9c c19df193 c1e5e4f8 c206fabe -> 4183cced" + ] + }, + { + "glsl": "vec2 cultmath_segment_closest(vec2, vec2, vec2)", + "tolerance": "ulp-bounded", + "cases": [ + "c228b952 41e87c88 c196e9cf 4217251a c2204f62 bf343340 -> c1dfe17e 41a9e53c", + "c112d364 42467920 41f20aa4 c22ec133 41f20aa4 c22ec133 -> 41f20aa4 c22ec133", + "c2272b7a 420d141c 420b364c c1997bc9 423b60fc c1356ba0 -> 420b364c c1997bc9", + "4234ff16 4117c50c c2045cdb 40be92b8 421a921c 423f50cc -> 41d7024e 4223d75c", + "424443de c1ee2a9d c240c8f5 41f1ca80 c2030c07 41a09978 -> c2030c07 41a09978", + "42395e64 c1d9822e 422af690 c178f97c c21491e2 c0f100d8 -> 422af690 c178f97c", + "c0301780 c22c5b5c 42158838 c1c96e6e 41d83430 c20d58b6 -> 41d83430 c20d58b6", + "c0a06738 c1a62b6b c1b0fb5e 41bc1590 c1b0fb5e 41bc1590 -> c1b0fb5e 41bc1590", + "4124cbac c161cff8 c228c53b c23695a1 c1f98bb6 4221ac28 -> c21588ec c1004e54", + "419893e8 41f982e8 c18d66d6 c227866e c2400483 42018528 -> c217fe7f 40fc2d88", + "4239807a c21889e0 c13f9e04 42283fbc 4207456e 4207f2dc -> 4207456e 4207f2dc", + "c196ece5 bfffee20 4238c534 c1a3ca25 41bddba8 c21987fc -> 41bddba8 c21987fc", + "c22d2588 40828628 4204a982 41bf6974 c19735a0 c22246cc -> c0d66d98 c1cba6e0", + "4242359e 4190551c 417b8978 c18c78b6 417b8978 c18c78b6 -> 417b8978 c18c78b6", + "c17a66b4 c1fd8376 c119f1e0 41f44314 4132a9b0 c23456d9 -> 40bb778e c1ce35ec", + "c1db30e3 c193fc52 c188ccea c12ff998 42021de4 c092d920 -> c188ccea c12ff998", + "41c69ee4 c1a6ad45 c1d210c6 c2198a6f 41cdce6c c09d9d80 -> 418ecd7c c11fe9ac", + "c17ceca0 4145bdec 41e66844 bf573b80 423453b6 41a72c98 -> 41e66844 bf573b80", + "4119f058 423f4adc 41b797e8 41b26c40 410741c0 c0d1f0c8 -> 41b797e8 41b26c40", + "c21b2357 42160238 c23a2eac 413d7b84 c015c860 c112aedc -> c23a2eac 413d7b84", + "c0f268e8 c09dd180 41b4ecd4 412907d4 c08d23a0 c22a926d -> 4122ab9b c15f19e4", + "c23ae5b9 c21d55d3 423f43a2 422392ec 410ee1d0 41393d94 -> 410ee1d0 41393d94", + "40be7650 c205e958 c1950310 c2475e85 c17fb494 411f3660 -> c18ed92c c201b2f0", + "c1829208 c200b6ea 418596f0 414fade0 c2401d0b c1edb36e -> c1d88920 c17e30d6", + "c1056368 c243cab0 be695000 4159cb28 c23707fa c22f4248 -> c20740df c1e5fe6e", + "c202d656 40b1ee70 421a611c 422711f6 4158a2e4 41c910a0 -> 4158a2e4 41c910a0", + "4214a0ae 3fc10740 41fb466c 40cb0e78 41fee504 41b0a5b8 -> 41fb466c 40cb0e78", + "41a7d720 c1ea012a 413af598 40a86ef0 41f70d64 c230550e -> 41c48c26 c1ded64a", + "c1b6068b c021a960 423e567e c2250419 4214474a bffa6180 -> 4214474a bffa6180", + "c2218b24 4163fe68 c1b5bfbc 4139cc88 40ac8d70 c0e71520 -> c1b5bfbc 4139cc88", + "412f6364 c205a172 c226707a c1356b80 420b4548 420d2842 -> c151c402 40c18e9c", + "418281b8 c1cb950d c22d7657 c05e9b30 bfe59240 4218594a -> c1c40c92 41760d1e", + "41f26bcc c20e4ce2 c2269b15 41a5772c c246ed3a 42240aa0 -> c2269b15 41a5772c", + "c227a79c c230806d 4204160e 42202cee c1b74947 40841898 -> c1b74948 40841898", + "421508a0 c0a54398 4232eeae 41dc57a4 c1a59500 4052de00 -> 41dc0784 41a94312", + "c2375f23 c0dacc10 c2059742 c21fed4a c1eafaa0 4223ccd4 -> c1fe4597 c0f12c60", + "c1d8a01f c1d3efba 41439664 412eef80 411f4ea4 c1f88991 -> 4121868e c1e3fde4", + "be338300 c19561ce 4223b78a c1a58212 3fe25780 c1c50d10 -> 3fe25780 c1c50d10", + "c21d2105 423008b2 bfb0f9e0 40380750 c196b5a2 c2186505 -> bfb0f9e0 40380750", + "41edbbd8 422e8fa0 4197d4f8 41e87078 c1735260 4226fc2c -> 4197d4f8 41e87078", + "41aa1940 c1b5a026 412aa380 41d12a10 c247c234 c1e99f17 -> c0fc3268 411353fc", + "42017770 c14649b4 c1a71de1 420ca874 c16ce090 c238c8dd -> c188739b c180b6ba", + "c211f78c 41aac3d8 bfe264c0 c1490f74 c1b0972e 418fe11c -> c1b0972e 418fe11c", + "bf588d00 c13aa210 40e49200 422dc1e2 41e863b4 422cfb1c -> 40e49200 422dc1e2", + "c1a10efa c1f05424 41ff0744 c0d96fe0 c1b681e9 c19de2a9 -> c1b4ab26 c19d7346", + "c237e0d3 41cbdda4 404a9f00 41e47fbc c235b6fd c1f3f1bd -> c19175e1 40279198", + "40ccd8f8 4222623a 418db004 c1ad30ea c2279c28 c1ea04bd -> 41664fd1 c1b09338", + "c1dda497 c10a1358 c1060f9c 4181aaf4 c1060f9c 4181aaf4 -> c1060f9c 4181aaf4", + "4202d326 c1df2259 c1d1e8c1 c239e962 4220b296 c1e7e81a -> 4205d7a4 c1f60d12", + "c100a640 401feec0 c1b39551 c0312930 c100823c c227f730 -> c1b382a1 c032bff0", + "410df114 c22216b9 41bc50ec 423442ea c1c1645a c1d52934 -> c1a3783a c1a83084", + "41716960 422b02ae bfc2d2a0 421dba40 422e002e 41a79c00 -> 41386cac 42084d86", + "41d7f918 c229b531 41b3faf8 c11be1dc c1fd9d7d c23a4c94 -> 4126189d c18fd026", + "40ce8850 c20bb944 c1ba0fe6 41a3ad94 c19a6e04 41d82758 -> c1ba0fe6 41a3ad94", + "41ced13c c133f218 41b23368 c1c1fcdd 4217d484 c1771278 -> 41f45d01 c19cd591", + "40d76190 c1bc8aca c1c28a93 4202ffd4 42060b9a 41ca4468 -> 4155fa6e 41df1140", + "c1a527b5 c10c7348 c20fa3a2 c2018732 3d77c800 40a1bee0 -> c18650a0 c147b6fe", + "c0a25f10 c12f0c78 c22c1a1c 416f6790 c235aa9b c04cf960 -> c235aa9b c04cf960", + "4231a28a c21dc923 c1cb27bd c23e54c4 c06a8450 41d19f6c -> c18cf2a7 c1a96f11", + "407ff340 4244727a 415ae2b8 421cf1b8 415ae2b8 421cf1b8 -> 415ae2b8 421cf1b8", + "40f03da8 c1eddf4c c159b584 c04bd3b0 4150b5b0 c173695c -> 4150b5b0 c173695c", + "4035dfc0 c1b73639 c1aedd92 c2156451 421a89d4 41f51618 -> c0713a48 c18826d2", + "412c9eb4 c19896ff c1e04860 4174cf40 c1c856d0 42057f1e -> c1e04860 4174cf40", + "41f2a930 4145269c 42170af8 c243b16b c1ecaefc c14d3084 -> 40cfa508 c200a4ca", + "c1acf1d6 41cad9e4 4244527e 3ed1d880 422486bc c21154ad -> 4244527e 3ed1d880", + "c0a9b3b0 415c8fa4 c2270aea bf087480 421b8888 41d3885c -> c09542a8 413e0140", + "41ca8cb0 c1eb8207 c17dad14 41ae1c4c c20e0636 c1cd082b -> c1df717a c0eb7bf0", + "4104f4e4 4089c4d8 c21c641a c23c6eff c1dea6e7 bfaf0b00 -> c1dea6e7 bfaf0b00", + "40fe3598 417431d8 c0885e80 41d96638 423e71ca c1a7828d -> 4103d315 41794889", + "3fdefe20 c1921a4a 4143dff8 c1cc5233 4187bf70 c2111946 -> 4143dff8 c1cc5233", + "4189212c c1d291b9 c208aa5e c207a1de c22c4510 406763d0 -> c208aa5e c207a1de", + "c103d558 422fd6b6 c1a57f20 c233f1c0 c1a57f20 c233f1c0 -> c1a57f20 c233f1c0", + "c01ed500 41a093b8 c214c80c 4218b698 418fa5a0 4197b460 -> bf1d2d40 41cb76c5", + "41b25624 421302d6 41708eb0 41480398 c184eaec 422516be -> 40ddfea2 419ee55c", + "c02c8c10 c1d36333 c027a8c0 41af397c c1ccac1d c01e5f00 -> c1ccac1d c01e5f00", + "421332de 4224aca2 c21d6acf 42344644 c13eb8b8 c20b0e64 -> c1f0e5e6 41916577", + "41b149bc c20743f7 4234116c c2064c40 c154a734 420b39d6 -> 420e0eab c1b370df", + "408c6858 c19a78c8 c111df7c c20d1ab2 c1abae34 c24043f3 -> c111df7c c20d1ab2", + "c1a54969 4194f248 3f9cba80 c0ceab70 c0a65568 4118d5f4 -> c0a65568 4118d5f4", + "41fb7fb4 403be880 41fdb300 42000930 410652a0 c23f5d3c -> 41bef206 40a4af04", + "41e73a74 4221b2de 422c7056 412b7f44 406e8950 41a02484 -> 41b81422 41776f52", + "41a48d9c c1b63c96 c07b2da0 c24779cc c22e2318 c22e02ad -> c07b2da0 c24779cc", + "422b8acc c1c7a7d1 40e5bb78 422baa34 c08d0fe0 4116bd74 -> c08d0fe0 4116bd74", + "c1db9901 c11aac88 3fc37620 40eebc98 40b5e100 c212c815 -> 4037b954 c0da030c", + "4153f604 c240f705 c17955c4 4222e504 42029712 c00e8340 -> 42029712 c00e8340", + "c11bbd0c c180c1e8 40802be0 41cbdfa0 c190ac67 c2336753 -> c111d33f c182506c", + "c109a248 422e7844 c0d2dd18 410c51f4 40438290 c1cbbbdf -> c0d2dd18 410c51f4", + "c1b0db1e 41bd5774 421c5efc 421a350e c0e864d0 c106ad70 -> 3fba2200 3ed44600", + "3dbc0000 c1566e04 c23af7c1 40cb4dd0 40d6d2b0 c2195d69 -> c1174d64 c1c692af", + "c1c44e8c c1fd1a68 c2225ed0 c22ab6b2 410b961c c23b4e0d -> c1cc95d8 c22fc43a", + "42248d0c c1e77e8c c202459d 4027a0e0 4088b580 c22788ac -> 4088b580 c22788ac", + "c0523650 409e20a8 4242c314 41f93824 4242c314 41f93824 -> 4242c314 41f93824", + "c23f500b c16a53c0 421b15dc c095a370 41782ba0 c1217154 -> 41782ba0 c1217154", + "c1f6f3d3 4220b2be c22f3cd8 3f3f4f00 41d627b8 41c99eec -> c1a0790f 410fa08a", + "3fb965e0 c208414c 422df616 c17ff34c c20ded6d 423152a4 -> 41cd4114 c017ea7c", + "c16113fc c153ea6c c1e51fc5 41ad4934 4244826e 4219dcb6 -> c1af63c2 41b8e5ba", + "41c99b50 c23a7e9b c184455e c235bad6 4235a880 418f88f4 -> 4050d930 c1c96feb", + "41afbc78 423d7b78 4182ae0c c22b0ec4 4207a22c 402225e0 -> 4207a22c 402225e0", + "41471d44 422f5280 401b4b60 4241344e c1386cfc 412c8268 -> 400bb86a 423e9642", + "41737578 41abae48 41c0e84c c03081a0 c226ceae 418b4b78 -> 41132054 3fe82cf8", + "424265aa 41cbe484 41bd4df0 4181e9e4 3fb8dec0 41b5cbb0 -> 41bd4df0 4181e9e4", + "42133158 c20965dd c0747ed0 c0c23c98 c22af505 c1b6c1df -> c0747ed0 c0c23c98", + "c1fb7988 c1dcc4dc c1b9dc1d 41ebd9e4 c1033eec 419776d0 -> c1033eec 419776d0", + "c0e268d8 c226c1df 41bae098 41bbe760 c1b287c9 4115a4a4 -> c1b287c8 4115a4a4", + "c190ab7e c10c4464 40ea6a18 c2200fb4 c245e142 422ab00e -> c17672da c0dd9cf0", + "c1e0ed94 4211df6a c1100ee0 41baf124 41ee790c c22f035d -> c1100ee0 41baf124", + "41e170b8 414f060c 408bdef8 41cd2bf0 c182fcec c029dcb0 -> 408bdef8 41cd2bf0", + "bf719b40 c220bee6 418e15e8 c0565df0 4241ea56 c246c955 -> 41e81f18 c1a2a40b", + "41896840 c2311532 422b0142 40b59630 c2128352 421b6ad0 -> 421b0158 40eb168d", + "41c35678 4230f42e c1806fbc 409c38b8 c1806fbc 409c38b8 -> c1806fbc 409c38b8", + "c22f8ba1 423aba06 c17843f0 420f15aa 42409532 413fcefc -> c17843f0 420f15aa", + "423f5db8 416bea20 414afb10 c1f81724 c1a47833 42303a92 -> 3fc13be8 c0b8c464", + "415558ac 420370ae c217f90c 421e4250 c1eb13be c23fcb97 -> c2136474 41df63b9", + "c2013a34 4096a8a8 42297962 bfe09f60 c2252fa4 41837fb0 -> c1f23820 4160a954", + "c1e9e23c c238f2e0 c2026e2b c1ec9885 c1cc24ee 42449286 -> c2026e2b c1ec9885", + "bcff2800 c2138495 41393230 413a5a54 41393230 413a5a54 -> 41393230 413a5a54", + "41fa847c 4233a38a c235f2b1 c16351b8 c1e190fb 41d24dd0 -> c1e190fb 41d24dd0", + "42452880 41a4e3f0 c1a25f70 c2428a46 c0e01480 41bcfc1c -> c0e01480 41bcfc1c", + "c1479570 4219ae92 c235482c c0fc52f0 40a64c50 421dc4d6 -> c09729f0 41f12f14", + "424240b0 41d89dac 423633e6 c0969880 41d55e94 c23429a2 -> 423633e6 c0969880", + "c1b0a88b c21289f1 4233a80c 3edd3400 c1f1fc39 c207972e -> c1c43580 c1fa45f0", + "405577a0 c1b9e4e3 418211b0 c21bc8dc c236324b 41e80028 -> 40259870 c1bf5662", + "be3e3a00 bfa0f0a0 41712878 c1ff2d55 42344f48 c1f19498 -> 41712878 c1ff2d55", + "41b9d004 c22804d6 40e0e728 c1cf9c31 c1de31db c2242697 -> 40e0e728 c1cf9c31", + "c200ab4c c1a06a55 4221fea2 4203018c 41aaa114 c1735f0c -> 41aaa114 c1735f0c", + "40e7df48 c23ededc 3f6ed480 41aaf988 40f0a9e0 c139440c -> 40f0a9e0 c139440c", + "413a840c c223b8a2 c1978306 4208c32a c21e3b3e c19c2c70 -> c21e3b3e c19c2c70", + "c1ad5348 c2472248 c1b678cd bfa022c0 420ca0a8 c141d364 -> c14eaf93 c046b35f", + "c232851b c218bc9d c1bcef00 40961dc0 c22b7096 41ce1468 -> c1bcef00 40961dc0", + "423b42ba 4217155c c1ad94d1 c167f4e4 c0b94140 c20f7134 -> c1ad94d1 c167f4e4", + "c0628a90 c147af70 c05136f0 422a45de 41fb0d70 c1c04330 -> 4199b34a bf249c40", + "4243b3cc c22b49f4 c1224508 c219b901 c1224508 c219b901 -> c1224508 c219b901", + "c17ff578 421dfe58 41e3df40 4154ec20 4158a0d0 4210afe0 -> 4158a0d0 4210afe0", + "c20546f4 3ff02080 423b9d16 c1cb9a5d c1c23e8a 3ec2e900 -> c1c23e8c 3ec2e900", + "bfa7f3a0 416d7928 414a9320 c23cf71a c2018156 4181d9d4 -> c1aa8ba0 3f258fc0", + "40c5c870 41fefe0c c206a504 41f3ae10 c0bed040 c238e60e -> c1ec1e99 4197d8e2", + "c0dc1a38 c22e38e7 c2185340 421219c2 c2185340 421219c2 -> c2185340 421219c2", + "c21630d4 423132f6 420ef880 c1aac06f 4188ab38 c1ce25b3 -> 4188ab38 c1ce25b3", + "421e5bfa c19f98f5 c0432b50 c02c53d0 40bfccb0 c218cc97 -> 406b37d8 c1e8c604", + "c1d654fd 4224ae5c 4214b43a c1fa3c23 41dd0390 421e3762 -> 41dd0390 421e3762", + "42036400 41de932c c08e54c8 41425290 c08e54c8 41425290 -> c08e54c8 41425290", + "420195ee 420bf056 41884714 c1f3fb87 41bc78a4 c09230a8 -> 41bc78a4 c09230a8", + "c1e233ee 3e559c00 420f5068 c1205f10 420f5068 c1205f10 -> 420f5068 c1205f10", + "423c44dc 41a562c0 c23d440b 423f08ae c1ba01fb 3ed1c180 -> c1ba01fb 3ed1c180", + "3f658a80 40db8de8 c20a0bcd c1c0f522 421ad73e 42356b66 -> bed18800 4103cc5c", + "c20baa0a c11cf39c 42399406 c1a9755f c1a329a7 c20616a1 -> c1a329a8 c20616a1", + "c2351516 4168dd70 c139eb98 c247cdef 3fc85d60 40cfb998 -> 3f6d7da0 4070c190", + "41ae965c 417738c8 42350af0 41a1525c c20d0070 4219f266 -> 41bffa67 41c8083c", + "c1f8f3fa c1baf97f bf83ff40 41f479d8 c18c7f08 4145558c -> c18c7f08 4145558c", + "414a41fc 423d5dea 41fdf3c8 c20772a0 c0ea92b8 41d9509c -> c0ea92b8 41d9509c", + "42472524 40a6d720 c2058b66 41a5f4e4 4227ec94 4164db70 -> 4227ec94 4164db70", + "c22f85fe 40d33dd8 423ed69e 422959f2 422fac50 c1ee2d78 -> 4236555e 3ff2e340", + "4225a38c c205d44e 40b6e210 41e895f8 c22c86ff c024c010 -> 401490de 41d6fede", + "c211c028 c19714f9 bfdef340 4238cff4 40849fe8 40d459a8 -> 40849fe8 40d459a8", + "4189b2e4 418062a8 4207a4b2 c0fd2ca8 4207a4b2 c0fd2ca8 -> 4207a4b2 c0fd2ca8", + "4245aebc 41b04c14 41ea9dcc 41e52cac 41ea9dcc 41e52cac -> 41ea9dcc 41e52cac", + "c1ce88ea 3fa12d20 c005e1d0 c1d9da03 c214f3fe 41a0370c -> c1c1787c 401e50c8", + "c0fc9f08 c1bfc4ba 41236628 c137af50 41a9d9e4 41f66470 -> 41236628 c137af50", + "c1a21763 4192d86c c1dd7d2a c1632d60 4210e54a c1cf353f -> c1d228a2 c1675398", + "c229545a c210ce14 c1d48081 c1429da8 c1317dc4 42223666 -> c1d48081 c1429da8", + "c106b444 40c96c38 41824dac c20da294 41824dac c20da294 -> 41824dac c20da294", + "3f9895e0 4202bd76 41f9607c 4195139c 412095b8 4205c3f2 -> 412095b8 4205c3f2", + "410a5a10 c217d822 c0cedd70 41a737f4 c049db20 41a6daf0 -> c049db20 41a6daf0", + "41b8c134 bed2b500 4211a73a c0c880b0 4211a73a c0c880b0 -> 4211a73a c0c880b0", + "42108dee c1cc3bb9 c1c8f787 420f40c0 c205f01a c148a20c -> c205f01a c148a20c", + "41ebca40 422fb2b2 c1407244 41bed6e4 c245e6d1 419de038 -> c1407244 41bed6e4", + "c2175795 41a8f978 c19fc51e 42203cb4 c1836c8e c226b939 -> c1997bb2 41af7127", + "404c9670 416ca4f0 4224668c c0e9f838 41d87c24 41879f38 -> 41d87c24 41879f38", + "c04b9850 422cc63c 41eb2420 401f9550 c195ae61 c194ad6d -> 4188383d c03b3020", + "c0bac2a8 4182148c c1e6379a 42342252 410b4c60 c1df7c01 -> c144af7a 414f1808", + "41d7d28c c17480ec c221a780 4160fcc8 c221a780 4160fcc8 -> c221a780 4160fcc8", + "41f66188 41c1fda0 412df5d8 c204bb23 c1f02d31 c207ef24 -> 412df5d8 c204bb23", + "c0dc01d0 c18876f2 c2401ca7 c181c4a2 411226c0 c128b8b4 -> c0eb7f78 c142ece4", + "c1e51bc6 c18ac2b6 41a40fc0 41094580 41a40fc0 41094580 -> 41a40fc0 41094580", + "c13ae4b4 c224c6c2 410ecfa4 4199e0c0 41900180 c2348d8b -> 41870460 c214ac25", + "421104c8 41fc1c18 4213c9a2 41c6ed40 41d1c040 c19f6d13 -> 4213c9a2 41c6ed40", + "3e0ac000 4242614a c20eddf5 c2073f62 41c1a698 41b9b9ac -> 41c1a698 41b9b9ac", + "423e8b9a 41e0c8d8 bf81c0c0 c1a57513 4209eec2 c22b7f69 -> 41409bc1 c1e6bc57", + "4157c280 4218e662 c1ba4886 4218cb38 41d1f9a0 41ce57b8 -> 4134ef00 41ec462e", + "c227f462 420f1662 c0f70d90 c1db92bb c0f70d90 c1db92bb -> c0f70d90 c1db92bb", + "c10d970c c209216e 418e0174 c187c078 4167f800 40d72330 -> 418e0174 c187c078", + "c1d5dd94 c1ed05c2 c1a3211c c0a4c2d8 c0dc4348 41072d64 -> c1a3211c c0a4c2d8", + "c121545c c115131c c1b3e0bd c2203e11 c18886ce 420611fe -> c1a153a5 c1093184", + "4212ab68 c1d9d7b0 423ef1de 4123b798 c031ec50 4247e352 -> 423ef1de 4123b798", + "422e89fa c0fc06e8 4088ecd8 41b00778 41aff8f0 c22e2d6d -> 4167c2e6 c17c147c", + "c211991b c0942040 c11d0bbc c228a843 c232869c 409bfa88 -> c214b1ac c0a67538", + "418e9c34 c239ff76 414463c8 c23a3579 41b7aa64 bfa25a40 -> 41494323 c2350bbb", + "41fef6d4 41da6d9c 417da7b8 c23e8c9b c1da27dd 41a01db8 -> c157c926 bfcdda40", + "422bca6a 410f9fe0 41b663bc 408f76a8 40d808a0 41caa3b0 -> 41b663bc 408f76a8", + "41e1fbfc c035ad40 41b6c7d4 c1a2f18a 3fff18c0 42155292 -> 418ef15c c0d2e596", + "42353f42 c203919c c23f95ce c1bd77f8 c1aadaa7 c1689c50 -> c1aadaa7 c1689c50", + "c1f5d8c4 bfe8e420 40d91af8 c1f94566 3f9ec480 4219b3ac -> 40873336 3f773580", + "416d2158 411fc484 419d20b0 c218f16f c158f124 418b1664 -> c03636e0 bf0f6640", + "42119400 423949aa 40568e70 c1eac709 41ec5af4 421db508 -> 41ec5af4 421db508", + "40cadaf8 41bfe758 41be8698 421e501c 41366a70 415bfeec -> 41672d4d 41a0b894", + "412321a0 c1c5d2d7 41d05ec0 42123c28 c1772840 c207f180 -> c099ee48 c17e6cc0", + "c21cd0e8 c0df7a20 c165b9e0 41bd6d98 c165b9e0 41bd6d98 -> c165b9e0 41bd6d98", + "c2008756 c2124a59 42139e2a c23b2c6f c1e12a8c c209caf1 -> c1e12a8c c209caf1", + "c2315877 c22454c0 c1f07141 bf9fd6c0 41e795cc bf66b340 -> c1f07141 bf9fd6c0", + "c1a5e59f 414ee0fc c07dc1e0 4203e012 4052f9b0 421f5b88 -> c07dc1e0 4203e012", + "c1c65b30 c2358012 c1ca981d 422e60f8 40a5b808 c2407239 -> 3fafcd80 c212af46", + "c041a510 41ccc9d0 3faf9640 c20128a0 c0dc9510 422a8f4e -> c09faaa9 41cb0e2c", + "41d134ec 41994ea4 4210e178 40be5510 c23258a1 c108b310 -> 41e61610 40938641", + "41dd21d0 c1297144 c20c018f 41a30fb0 c0a05e78 421a120e -> c0a05e78 421a120e", + "c21d0173 c156586c c187a324 c22e7ba8 c2095096 4143a8e4 -> c1dbf53f c11bd3f4", + "c224ca46 401d97f0 c2218d66 422aa642 c21158b8 4194955c -> c21158b8 4194955c", + "c1857350 418bd794 c197ac29 410b0768 40ceaf30 411d09a8 -> c18260c3 410cea33", + "422f10ec c1df877d c1b7d51f 40472ba0 bfcef6a0 c2214a80 -> bfcef6a0 c2214a80", + "417370f8 42198ede c1d64dc1 c01be810 c1d64dc1 c01be810 -> c1d64dc1 c01be810", + "c21aacf9 c15c6378 c2128447 c1fd6379 41595f38 c1b48417 -> c20dd778 c1fbb144", + "4154917c 418ac978 c19cb5d7 41d4ddbc 420dd538 42270016 -> 4109ae9c 42097450", + "c2193a02 c0b5ab80 41b7111c 4207d486 c21e11d8 421a1e4c -> c20c5d9e 4218d23a", + "405119e0 c204125f c1aa60b8 c22fe703 c1029c68 418a4e3c -> c18fc673 c1e3b77e", + "c09cd9e0 c0cd3428 40234ba0 4211997a 40cf8748 c246d471 -> 408f9bc1 c0bf7a30", + "c1dc4a91 42314b56 3e7c6b00 c1f25238 3e7c6b00 c1f25238 -> 3e7c6b00 c1f25238", + "4204d38a 415bc448 c226606c c1bf9e5d 41d88630 c15663e0 -> 41d88630 c15663e0", + "c1c23e0d c219ecde 40c44128 41cbff78 40c44128 41cbff78 -> 40c44128 41cbff78", + "c1e2b6f7 420aac16 422d245a 41df416c 422d245a 41df416c -> 422d245a 41df416c", + "c1cc6542 c1e2022f 410105a4 c1f60cfd 41dee0b8 4220d564 -> 410105a4 c1f60cfd", + "40283330 c1a8375f c1fe80c8 c1d1e97d c1dae7b6 4163f688 -> c1f6afc7 c18acb09", + "419047cc c23fb16c 421ceb46 ba460000 c0901f38 c0f6c0a0 -> 4127ada0 c0a23857", + "41df8d38 420ed0c2 418c0740 c12155e0 c1b95881 41c70cb0 -> 3f5f6300 4086d77e", + "4210a9ea c172ce70 c10248b0 3e9a9000 c140e370 413a55e8 -> c10248b0 3e9a9000", + "42009514 bfdee820 c23b1eca 419efbec 422bfe26 c08e7458 -> 4200d094 bfc37550", + "c2297d48 416ace70 41400af0 c1cc8035 41378d5c c1ddb04a -> 41400af0 c1cc8035", + "41cea444 4112dc2c 404f7b40 c1c5ff19 41a01ab4 42223dc8 -> 414d017b 4148582a", + "c15f4760 4192dee4 41ea9df0 c05f93d0 c20ab0f5 41d2a390 -> c169970c 4187ce93", + "423097ec 41ceaa1c 41bbac44 4183b28c c23d97d8 42100a10 -> 41bbac44 4183b28c", + "40745d50 c20ed2fc 41f10288 420f8ed2 423af676 c231ff1c -> 422cf537 c1dc77f8", + "c1e7c5b7 c13130d0 c20a155d 41a287c8 4025e7e0 421a7620 -> c20a155d 41a287c8", + "41cd2ab4 41d39ef8 c1c796a7 c21ea836 41a8af64 c1d0db86 -> 41a8af65 c1d0db86", + "41ef3298 423ca3da c1d51199 c0799130 4199bf5c 421a2c9a -> 4199bf5b 421a2c9a", + "421b5e8e 41915d2c 40ff34f8 c2121534 c15b88d4 41b8ece0 -> c0bf9fb8 3fee2f40", + "c0a3afd0 4212b20a c12a397c c1dfe767 420c3ce4 415d9158 -> 41c49244 4087e29c", + "c1a488b4 420eac34 41d185c0 c20beefd 4216dba8 bfcbd160 -> 4216dba8 bfcbd160", + "42458592 c204f4ca 40c40bf0 c1fbfadc 4141df4c 40d85080 -> 40dca785 c1d4b127", + "c20376d6 41c69dac c1236068 41bf5914 c2042bb6 40f02020 -> c1c5b9e9 4157d8f2", + "41a60a6c c22e0ac8 40dac8c0 c18e82d2 c20a0050 420ec30c -> 40dac8c0 c18e82d2", + "421f1d72 4232a2e6 42194b7c c199e958 4120b79c c034bad0 -> 413ab470 c07111e0", + "c21a0859 c20c4172 c197542c 3eeed400 c11dd36c c2409adf -> c152dc9e c1f2c88e", + "3fb46c20 c1b52a8c 4233e83a 421dd8fc c20693a0 424649ba -> 411f9968 422fd9ff", + "c2189ccd c087ff30 bff40780 c1b1fe47 c22e9fae c1f52c70 -> c2050e6a c1e473a4", + "41e96df4 c0650260 4203526c 410ad9c0 414b79a8 418e6c00 -> 4203526c 410ad9c0", + "c1df2f61 c09052c0 4216f73e c22197e1 4216f73e c22197e1 -> 4216f73e c22197e1", + "c1d4623d c2316e7e c221aa42 c2252e03 c07ed3d0 41d69248 -> c21a6b8d c217a28a", + "c0e8d328 c1f53c55 40b4f718 413dc378 c0fb2a28 42449350 -> 40b4f718 413dc378", + "c23bf588 41df7480 42107952 c11c511c c2004dcc 406cd960 -> c2004dcc 406cd960", + "42272738 c18d7ea8 c1b16aea bfdf9060 c222d7f1 41db5978 -> c1b16aea bfdf9060", + "41eee1b8 c1a589de c17f437c c22b0f03 41b0b818 c22ce95e -> 41b0b818 c22ce95e", + "c1df214b 3ffa5d60 422377be c1cade3b 42251f76 3f305bc0 -> 42251f76 3f305bc0", + "c12aad94 c247d384 40efc750 c11e4cbc 40efc750 c11e4cbc -> 40efc750 c11e4cbc", + "c1b36b72 420aecc6 41b89150 41d4ca30 41b98b08 c1b37918 -> 41b89150 41d4ca30", + "412739fc c192b0ab bfd07540 41fe1668 42258194 c1545530 -> 41e93ecf bef2b200", + "4093ff10 414dd2f8 42459c68 c1e3207c 423d156e 41a07d60 -> 423e04b2 416c02a4", + "c209a529 41f7363c 42297cae 42350194 bf52a2c0 c1bada84 -> 4161b2c6 3eb62480", + "c2276954 401d29d0 c23bf3d9 41a2a340 4163e658 c15c8268 -> c20de155 415e9c2a" + ] + }, + { + "glsl": "float cultmath_distance_to_segment(vec3, vec3, vec3)", + "tolerance": "ulp-bounded", + "cases": [ + "bfe7a040 40c3ac70 40898cf0 c244b85d c22e1b26 c1dbf791 c1c7e920 c19cad86 422be938 -> 423fe710", + "4227830c c1a75ca9 c23c86f7 bf9c2f60 41294554 41500a90 bf348a80 c23ce8f0 c17ca644 -> 426951f6", + "c238ae58 c2313976 c1cfdfe6 41f597f4 41fac708 c2181090 41f597f4 41fac708 c2181090 -> 42d90b71", + "41e9aa1c c10f0d68 c1b6efff c0947e88 c21a466e 40137d40 c0947e88 c21a466e 40137d40 -> 424e30bd", + "c20d4e3f c1809d92 c0e0e180 424254c6 c20b7518 c18f08ac 418ae27c 416d6160 c1db1cc1 -> 4280bfcf", + "c173c138 41bf74f8 418bb130 c18f06ce 41765800 4210b2d0 c23b5b3a c1a405bf c19fb9b4 -> 4194b97c", + "c1fa9ae0 c0f01c68 c18f34fe 40b09b60 c1f437c1 4231f56a 41e2df0c c211ae21 41e0e2d4 -> 429805fa", + "4147dd5c 422d2e48 c210393c c210ebd6 c2291e21 c1846d56 41491948 c20a8361 411cccfc -> 42b37c53", + "421d7dd0 41adaa20 c11b3dd4 42177774 c212a542 c205f4d2 41814208 41ab6b68 c0c0f838 -> 41aec389", + "423c64da c0a040f0 41e8e14c c1e4cd8e 41d06090 c219c07a c21236e6 41b16a9c c240b44a -> 42d433cf", + "4212e6ec c224a28a c1ccca8d 421e62e8 418fdee8 4071f5e0 c1d2890d c1087a50 411fcedc -> 42793543", + "419d93c0 c0faa270 c0fa3a90 423adb3a 4192b090 42172828 423adb3a 4192b090 42172828 -> 426c784c", + "42310844 4214dfe2 c22c462d c2338866 c04227f0 c23f3418 40d6c188 c1447078 4238a25a -> 42af89b5", + "422d3146 40e9a228 42219104 c15a6e14 c202008a c20f4260 41a1a0b0 c1f0f000 4118ed7c -> 4256d1ab", + "c2269c1f c20f5e3d c1ca80cf c1a1b77d 41f440b8 c02c5aa0 c1a1b77d 41f440b8 c02c5aa0 -> 4292a6e6", + "c102296c 409dc940 c23cc0cc c02fa410 40440f00 42190820 c209e21d 4183d734 419fd2cc -> 42922070", + "4208ae78 c19fe289 41a8f328 c229bc8e c23e7cfa 4130d688 42366830 c22f43fc c1b5b869 -> 4231c82f", + "41c1ee80 4245f988 c1ddb89c 418584e4 c129642c 41df8e8c 41b96960 c1cb5181 4246a32c -> 42a47eec", + "4235f7d8 c1dd29b3 c23968c0 422f6808 41f0cd00 41488128 408965a0 41fb56a4 c20d3fbe -> 428caafb", + "c1ecb0c4 c230128a 418e9aa4 c13f6850 41de26c8 422348aa 41cb19cc 42471588 c2225939 -> 429ad364", + "423d9bce c0a803b0 c228a136 c1f77c16 c215044e c2281a40 c20fef1f c0f41f20 c18ad510 -> 42a6deae", + "418690dc 41d102bc c1b4461e c1ee7c34 c23c1cfd 4223c6a2 4178f728 413d0d4c c1bd110b -> 41668709", + "4225fbc2 421cfde0 421baf10 c1e2c45c 41bf9758 c20f4322 40f0fd38 41921390 c192a793 -> 428b997e", + "c20b4f87 41f4c26c 41f8d8ac 4157454c c22b0f98 41bb3e58 417211f0 3f3e1380 c20df3a4 -> 42a0b1f4", + "bf9d44c0 4231fe5c c16ef45c c1abc4d7 c168d47c c2184f68 c1cfff86 c0b6ce08 41e42108 -> 426f29cc", + "41bb3c18 421708f4 c09c4db0 c1b02ad2 422d1494 c211b66c c2061603 c2276213 40ba83d8 -> 4257c842", + "c21d301a 41998848 c2142e82 411401fc c201a5fb c087c740 41ce2c54 4210e738 42341508 -> 4299f3cc", + "c02c90a0 423f59e6 4210d2f0 40aae180 41c5bc7c c20cba84 41769c10 423bfd68 4085d7b8 -> 42133209", + "421ef944 c2393e60 41a1797c c23f9db0 c1cb43e6 c2130698 c247fee1 c1b4b0f8 c168544c -> 42c6339b", + "4233a7d4 40a85ee0 c21c3c70 42022d82 40b4b628 40df3488 c2431f4e 41eca36c 41fc59b8 -> 423eacad", + "bf3bb280 c1d69757 4050c580 c23200f0 c21bc96b c1439bec 4182253c 41cc884c c241c9fc -> 421582e7", + "407e2f60 406ee2b0 c1757634 42045b36 c186d060 c1f426d4 42045b36 c186d060 c1f426d4 -> 421b0473", + "c1f5aaac c1a37a8d bfd22b40 40c06e98 c22bf1ba 42440764 c216187a 4246c56c c2010852 -> 41ea4dfa", + "423a0f28 412ce988 420f554e c1f0c4af 42282b1a 42139656 bfa88300 42242bba 42134508 -> 42626152", + "4226eda8 c1b4d793 c1cc860e 415fa0c8 418489e0 3edaa400 4018fb80 bf1a9340 c15d5744 -> 423a4f68", + "c22d9d0d c1829414 4230d26c c23bfc66 c10d1960 c1eb2d2e 414408cc 41cf78ac 414b1fbc -> 427ea6d0", + "c167ad58 4108c5c0 41c1cf08 42141cba c1535940 c1d4222d c233d924 c1ddbe58 c02bd7f0 -> 423c1431", + "c00a2950 c11a1e54 421dc8e4 c237e3f4 c232d8f2 414b09c4 c22ae642 42279674 c2337a3f -> 42709560", + "41586cf4 c20d0bec 41e5c800 c1dc05b4 42416c94 4151474c 41f266c4 414d64c8 4184cfec -> 4251728b", + "c1ad3867 4247284e c1b682fe c232f503 404ce580 41b5ff24 c20c5f62 c1868790 404acb40 -> 4289b7de", + "c23facce c18ee3ba 423edc8c c163c358 c1e96ab8 c19f2238 41b617fc 4181d510 c0b89770 -> 429892fc", + "41a66d28 c11cd4dc 421ab028 c1461a48 41ba6124 41a2d77c 411f4eb0 c1e9bed3 41ee9adc -> 41a5ba43", + "40b5c6e8 c0fe43e8 3f536d00 c23cda2e c2268593 c0f992b0 c17a8570 bff95c20 c2134616 -> 4228d937", + "c1345900 419aed30 c2414d7e c068d220 c1051e7c 41c0bb0c 412ffa84 c194e5cc c203e878 -> 423a7fe6", + "c1fb27c0 c1a822f0 c1904b2b c2471338 4242b5b4 c20fb725 c2403703 42189904 c21b87db -> 4281cfc2", + "4056ec80 3ec37100 c1b4d688 405e6a40 4204825a 42308006 41c36c0c 41206ebc 41fa80e0 -> 426abeb7", + "404309e0 423f7a34 4237c10e 4172d438 c0bb3b60 c1ca5242 c192fc02 c2424002 c1379ee4 -> 42b4128d", + "c238f6f2 41ecc14c c2378fe1 c1ec9b0f c21526c5 c1ab72da c1d33ceb c1ba6b55 c21fa2e7 -> 42633d08", + "c1510c18 411b4d14 4153c210 418fd638 c19b4302 c073a600 c1ea2284 421962de c1007894 -> 41a1830e", + "3d995600 3fec4f20 40c2a1a0 c1d794f1 422f47aa c2441d0d 413060f4 c1ea1c2a c187a50a -> 42068c15", + "bebfa180 4222c5ae c113ca58 c189f144 3f9c1340 c245f700 422176f8 41be1c44 c06e93e0 -> 42076de3", + "bd82d600 c212aaac c176a5c0 c18739ac 40a0db80 c01144f0 421719e6 422d5d58 c175d938 -> 423b641f", + "41177888 c20a1d41 c1bb2a63 bfcee9a0 41e3c89c c0d70708 bfcee9a0 41e3c89c c0d70708 -> 428436c0", + "c19edd6a c185cd56 c23c9061 41e3f3d4 3ff4d2c0 c1d3e71b 41daab74 c204f57f c19f5500 -> 4255a866", + "c2254b44 40e60b10 c041f640 423a44e4 c0708b30 c1f87447 c224814f 41903430 c07a4060 -> 412ad117", + "410204fc 4210c4ee 418d75cc 3f848ba0 c15422ac c202f418 420aa4ca 40891880 c2283e85 -> 428a2bec", + "c1a7d1be 41d083bc c138be78 c10f548c c17d8808 41616b78 c2077a88 424749d6 400abd00 -> 4192eb85", + "c235feef c24271ef c107759c 408276b0 41b4d1b4 423a4ad4 c1c05614 4224c752 c193f89a -> 42b3bb50", + "41f41dac 412b47b0 c103f5b4 c2432cfe 3f17dc40 c0237590 41762cd0 c0c19d20 417979b8 -> 4203541a", + "c224b6fa 421c2aa2 41469b94 c204f89a c22407ee c1d79aac 421faebc c18b1a46 c1fa1e00 -> 42b0a5b3", + "c20891b8 42280d22 41e37704 423adeec c1c072b5 c223cb25 c214f529 40d79978 c0aaed50 -> 4243bdc1", + "c1d9c145 c22d1186 4221cb6c 422d236c 41224d0c 422ddd78 42064c0a 41928a6c c17b02d0 -> 42b0711f", + "c17c5264 c1696e58 c09d49e0 c238ca4c 420b767c 41b17238 421701cc c20a2992 c1306350 -> 41a96ebc", + "41b3aca0 c1736ce8 41ca18b8 411618a8 4209e8c0 422d6218 c1934b40 421a01b2 4201166a -> 4259e43e", + "42452a06 41b27608 40d3a110 c241a9f0 c1e0e052 c22567fb c246ecb3 c23fa574 42425f36 -> 42e5b5e7", + "42413390 c20c44b4 c218978f 41cda31c 42425066 c1e32cf3 41c692e8 41f393b8 c0449a10 -> 429bde27", + "c200f3fe 420d1c2c c224c555 c1a8f55d 401aab50 423d3468 c1e7f1b4 4217fa98 c1943bc4 -> 41b87168", + "42102ecc c18a2d88 41ff4bb8 bf8be520 40a3d7b0 42344a56 41b71e2c 413ec18c 41e66090 -> 4200b11d", + "c20488c8 41545674 412cd718 c1a387ac bf374700 420ea742 42342e86 40f0d830 c1d88755 -> 41ee85fc", + "c106d2b4 40591180 bf552940 c1e4025c 4185c244 3f921040 42238c02 c20ff226 41580164 -> 40b17b67", + "41a4f0dc bea0d000 c1eb52d1 421f42f8 42321376 c216e74b 421f42f8 42321376 c216e74b -> 4245e4d6", + "c165d818 41f6fce8 c21466ef c1671514 41792950 c187d524 c1671514 41792950 c187d524 -> 41ca3a1e", + "41f37a60 408fb328 c1cc3333 c20285cb 41ecc4dc 418606e8 41ae0548 4157b080 4170f908 -> 4229ddbc", + "405ff050 c18ac498 42063de0 c2201cb4 4200bfb4 c238158b 420d5274 410e04f0 4241b00a -> 420d605b", + "c20bd12d 418971b0 c0ea07d8 421bed50 c16f5d28 c14fd744 c1b57704 c1a4379d c1cbf4d1 -> 422e7e5d", + "bf0244c0 c1ce5dc4 41be5d58 4215325a c115fe88 40748110 c0bb0e08 c159a98c 421e2774 -> 417d74cc", + "c03258d0 412a548c 418bfd58 c201bb1a c1ff7f59 c197b156 3be10000 c23c62f9 42000c74 -> 4253c40a", + "c20e16fa c21553bb 42015180 41cd9600 3e9bc300 c1e00591 3fda9400 c212fba9 c218c8a0 -> 429f80ab", + "c13065dc 41de17cc 419ac5dc 41896d5c c1fb1217 c0f70c70 408f9c40 c1a5a433 410dbc28 -> 424fd568", + "419ab394 41f6d648 41a759fc c2436a07 c21353d0 bf886540 c2436a07 c21353d0 bf886540 -> 42c520a9", + "c1bf5a3b c22ad751 c1ccb111 421f2fbc 408ccd80 4246ba2e bf98ad20 c15014ac c1faf9b3 -> 421762ca", + "c1965326 c19a5974 c198cc31 c12a83d4 c152d560 c1020188 c1dd1e77 4243cdf2 41ce43c4 -> 416f7772", + "c12de3e0 4141e26c c1ea4dbc 422840cc 419b9d18 42253234 41f6ecf8 41487b44 c2428550 -> 422f50e1", + "41e2a03c 40328820 423d3af0 402a36e0 c183043c c10402e0 420ee47c 411e37fc 4230cf7e -> 411f1811", + "3f37f240 421c1898 c2015720 423346b6 4220abf2 c113bbb8 c1b2cec8 41a38564 42011248 -> 422c83ed", + "42348b1c c2183f6b c1ed3da2 c1cd42ce c0416fc0 41ff3a64 4128cc94 415f6924 42124f8e -> 42b61820", + "c165ff68 417f7ee0 c2311ed8 41f2f2f4 4184c280 42111bc6 4158bdfc 41e35bd4 c184cf54 -> 4224f5f3", + "c235018b 41f7b658 c2406b26 c202b042 c1321900 41478b14 c116b654 3ddce000 c0b18230 -> 427e783d", + "41f21914 41d8382c c2314596 c185aa4c c2066a9f c21e4c36 c058bd40 41831f14 c18c7158 -> 42312942", + "41ba7ce4 c210a9fd c1ae3514 c17cb234 40417050 c1e1eb96 c17cb234 40417050 c1e1eb96 -> 425ef355", + "c1db44fe c1d1026f bf455380 c2336f14 420b0010 42053772 416f0a28 420de4d8 420a0640 -> 428c35e3", + "4226a3b2 c1dbd5dc c21e3b4b 41d93d78 c20f5010 c21fd444 40524b40 415f9064 40c56ba8 -> 41859170", + "408003b8 bfc51980 423c9ff6 c22ff0c3 4109903c 4124953c 4244c4e2 4164e2e0 c2039075 -> 425b89cc", + "424004ae c1d3a6e0 40ba92d8 421ca452 4223a872 402f5b50 c1e11b8f c22253ef 41895560 -> 4247484c", + "c1e697ab 41c483e4 c18c7788 41bb12dc c20ab601 4226373e c1137180 c219419f c0ed6d80 -> 4285481f", + "41b07000 423f80ee c05d3240 c23f005a c1efcc83 be0e1600 c1a5920e 41c10c9c c1ba425c -> 42531331", + "4192ea9c 423561ec 4210f64a c23afbe5 c1426a18 c245762d c217d8f2 4190ee44 41858570 -> 428317b3", + "423b396a 42032408 4222c53e c0cb9250 423e9856 c0c43ae8 c12e3b70 41eb7d08 c207ed08 -> 4290c79b", + "c1e23331 c20c901b 41991528 c1130f5c c2333d09 42160682 41f57b68 c2477c41 41d7ff68 -> 41e19719", + "4202cd40 415e9a4c c1677030 c19510ce c147ffe8 c0114140 c1d67c20 c1c15b83 42194ba8 -> 426c044e", + "c0a022a8 4243c49a c23598b0 41a81404 c0b61a00 41b558f8 40438810 421d13fa c22b444f -> 414da2be", + "4101cd54 420fa2aa 42404126 41ec0014 420d699e be078c00 41e746d8 40605690 c1be5150 -> 4252ecca", + "42247770 c16ad38c c22f7250 c09a01e8 41f5f90c c2185cb1 4132ad8c c188da56 c02ffed0 -> 423efa99", + "422472dc c09fb850 4239ff6a 41d00a24 c0c4a8f0 c212e11b c0efa948 c1d9bc66 c21ef76b -> 42a92cae", + "422bc80e 423dffaa c07f2040 422be978 4217fe08 4225a9ba 421e7896 423b2a94 417d95c0 -> 41a1001a", + "42467ae6 c0dba0d8 42210d7a 420cc4fc c1638cfc 419d790c 41fc6a1c c2214f72 422b36ea -> 41cac13c", + "c0ff60d0 c19692c2 c165ab60 4095d730 c20c0a48 c1eeb4ab 410c1660 c21395a1 421da342 -> 41ab5125", + "c0d81960 c1862442 40e60dd8 4178aaa8 c228abde 40c40cf8 c1f8497e 422e77c6 421d3d22 -> 4142ae8d", + "41885acc 4140ec60 c11c5eb8 c1fbf3c3 4124cf50 41660338 c2115c02 c0019090 4097dbd8 -> 4258f824", + "c1a02a3a 40b26d70 41dfe780 416197d8 3f785b40 c1894b6e bf1a8ac0 413c45bc 413daa08 -> 41cff268", + "c22a78ab c246c53b 41dae1b0 41bf8688 c1a8fc0c 41d41c6c c1bc809b 41831a10 420fca2a -> 427f4f54", + "c1ed1928 41c26198 42318712 c2444550 c21241cf 4217bd46 40478440 41efb19c 4223ce4e -> 41b58235", + "4105bb94 c1c5856c c20db6c2 41379b34 41069ae8 c21ce15f c1bed28a 4216af26 40a7d0e0 -> 4205dc0d", + "c191e576 c20a8622 421e8426 421d695e c1210c28 40e64e88 40dfcbd0 4185e544 420aca40 -> 4263436c", + "41407338 40740cb0 3f29f180 412934c0 c0111570 c02e90a0 c2161923 40b5d0b8 41331a70 -> 40e30212", + "41a68648 c2467c4b c209e377 c1b50250 c20d1fe7 419b7a10 c1fec15a 42004a0c 420ef186 -> 428d6760", + "c21b6d15 423a60cc 412ff6e8 c23e8901 40604670 c133bdd0 40c58010 c2340672 420aaca8 -> 424519e3", + "42350e8c c19cfdc7 c21107dc c21d9e8a 422e7b70 421185a4 c21d9e8a 422e7b70 421185a4 -> 43003cf4", + "3fc4a300 41484bf4 41a3b948 bf9fc5a0 c235d1e6 41c52b08 c1b10976 41c5128c 41a3ffdc -> 419a02d2", + "41ac4194 417a1928 41c75ee0 421186ae c194ece1 42475d56 42015342 c22bb737 c22421e4 -> 4227f6bc", + "4231b366 c22c8bdd c22a12b2 c15defd4 4176f008 422b4310 3f194980 c181f92e c1ad4b16 -> 425df2cd", + "c236733c 419ac310 c2118ec7 41c15cf4 c118f7e8 42128b92 41c15cf4 c118f7e8 42128b92 -> 42d21f95", + "c216d7fd 420517a6 c1e050f5 c17cce48 c1226ff8 420427c4 419edb60 c1c9b31b c23363c7 -> 42883342", + "c2327b76 c21444b4 c1d58f59 c2137424 c0a126a0 c1fa67fe c2137424 c0a126a0 c1fa67fe -> 42051bf9", + "41f1c438 c0aa7850 40a12d78 41c81774 420545d0 c21914f6 41cf06c8 423077dc c06d12f0 -> 424803c7", + "4235d092 c23f40bb 40015100 42395174 c081dab8 c0a81010 c04cb540 c0f08600 c1cfbdf3 -> 42316d2e", + "c23ebabb c1cb7493 42004db0 423ab61a 4036c640 c0d0dc18 423ab61a 4036c640 c0d0dc18 -> 42d39afd", + "c1d85428 4133ccbc c203764e 40fc0ca8 c2317607 c20bc898 c1a4fdec 42101bb6 c24079d1 -> 4194b237", + "42065890 c1596d84 421c9fca c1b65b29 421e1b78 420b3e54 4230ac56 c1d0adf1 41f050e8 -> 4106a160", + "3f9a2360 41093f74 41a39818 c2213458 c21c3369 422bc61c c2279c12 c1dec154 c1227ab8 -> 426ead0e", + "402d4980 c106c984 41a1f2d4 c2225a3b 40b4e330 41498d18 c1d54e37 c16e86ec c1a98a12 -> 422e7993", + "3e0ee100 c11b5e14 40e8c9a8 414e31d0 41809f0c c2075c72 c118de20 412445e8 415b3268 -> 41ae62da", + "c23fdac5 422a856e c044b020 418e7790 c2276712 c2456351 415d9934 41661838 42232724 -> 429cc7bb", + "c07459c0 4229e06a 41ac6c0c c2008d9b 41be1b38 c22b1e4c c18f2c8c c0ffa880 41815668 -> 4248e4dc", + "42346e10 c20363ff c0cc1ef8 c21fa0aa 4014fd00 41113844 c0e64628 c21c5760 c242c957 -> 4284bbd9", + "41074af0 41b04b14 c242f329 c214e4e2 410d3b54 c00ad8c0 4128f82c 41213cb0 423298a2 -> 42851c40", + "c0b646e8 c21c376e 421c7ed8 40f1ac68 c20b25d8 410f4b58 419fd254 40f573b0 4195e4e8 -> 4204e56c", + "42306646 4066d430 c20a1408 c19d3dfb c1c3719a 4241bd88 c231d161 420b893a bf7dad00 -> 42be8072", + "41513d94 41e0180c 41108e40 4008bf50 419f1944 403bdac0 bf9e2100 41c129b4 4224d394 -> 415ae393", + "c028db20 c2258a58 42338530 c205c9b1 4182f44c 41b03520 c20ce912 4208a57e c1afc5ab -> 428aaa70", + "c0fa4ea0 41a7ab4c 4214d3ec 420b0e50 c1c98044 420c88c6 406ec2e0 c2349a86 40d1cc88 -> 42799b0a", + "c21bba21 c0ef9aa0 4216a8ec 400c1f90 bf0bba00 41cd69a0 42378370 4182563c 3ff4a040 -> 422d9160", + "4183b5c8 400bc250 415f9b70 41530eb8 c21fa124 42375450 3f896740 420df09e 410ba050 -> 41698d0b", + "40db6080 4163ebf0 c1b567d2 c1df2206 c17b3044 c1e4edbf c21cf880 422879c0 4223381a -> 42284bff", + "c201a4b8 c12fb998 4188ca70 42429242 41b19df4 c0c2b410 412f52bc c2349a5e c1e86689 -> 42896094", + "c18dff08 416d65f0 41c55ee8 c18b2e98 423df98a bfc28600 c1faa43c 421ffa08 c22c1136 -> 422773f0", + "c07829a0 c178d5ac c20071f4 c182b170 c222b9ed 4191f720 c1f96e7d c04b51e0 c20b3f6b -> 41cfd6fa", + "41cbe608 40512bf0 4223f4b2 c23c5af1 3fc29f80 c238f64f 41e1f210 c1b46d6e 420c56f0 -> 41d39f1f", + "41688f88 c1bf013f c1cb1519 41ba430c 422a57f4 c071a680 421c88a4 42281294 421e4b8a -> 428cdd08", + "420c8af4 40e48688 421d4c2e 42416088 4180abf8 c1e9e50d 42416088 4180abf8 c1e9e50d -> 428cc8de", + "c12f8b04 41aef928 c20f7632 423f2c18 420490b4 c1e6f8e5 c1ffb0a6 41f8a770 422eefda -> 4237d083", + "c22605ea 3f3ca180 4224e498 41b7f198 41e7db78 41bec994 41b7f198 41e7db78 41bec994 -> 42910c6d", + "c2392851 c1f003f5 c220aade c1826576 c10ec2b0 415181f0 c13102b4 c1b993a3 40e7fab8 -> 426dd706", + "c1fb0288 c1fd3b9a 415f1a40 c2049ff4 c152c3b0 c199f0fe 4193128c 42346856 c22eba44 -> 42181bf9", + "40d20458 c0603cb0 c09ea2c8 c07c6510 c2425b0f 41e39c4c c214b0ae c21f6518 c1fea46e -> 424316f9", + "c208959e 3fb7b620 c207be82 41f8a2ec c0191fd0 41c6e2c4 c2470444 41de5c24 41ba7720 -> 427325cf", + "40dc53b8 41b68a00 41f9b130 421c3d9e c247a214 c09dccd0 41c8e23c 4094b4d0 c20bd8d4 -> 428c167b", + "420b9ede 410da5a4 c18daf5a 42134382 c11e3cc0 40b45188 c22de010 40e6dbd0 41c7a4bc -> 41effc0e", + "c225779a 41d15bc4 4199e410 41e79f10 c1f612c6 c1a9b728 c20c62e0 41898218 c23edf4b -> 4285d57b", + "c1e1a679 c202f7e4 c08121e0 c1449490 4213258c 42225b32 c1e378a3 4206fb8a 41748e70 -> 428a79fe", + "423473bc c1952b6f c1107d6c 4232df70 40b8a3e8 4102e2e4 421fd286 40e007c0 c1f6d544 -> 41c87ac2", + "c23ca44b 42316c0a 419e8e04 405c0500 c1f26877 c0defdf0 c1590800 41f5b928 c239ad09 -> 42938172", + "40175e50 41da98a0 c247e20d c1f60a32 c16943a4 c2284fee c1814524 418d2d80 c214725c -> 41c44ef5", + "4227b7de 41f1e5dc c1d689eb 41cf938c c10f0a00 c1d9b735 c1829ea0 41da3c38 c16ccb0c -> 4220ea23", + "bffa8a60 bf93f360 c1ffe1d1 41da1c70 41b01658 40fce138 4216ff7e c1b47e8e c023ee60 -> 424380a2", + "41f15128 c07d74b0 4114c160 41c54488 c1f0bee9 c1126398 c230bd2c c200d895 c1956755 -> 4201d509", + "c0bc6560 c0d9a348 c2167d2f 4225cb08 41021990 c1dd8876 3f8d0ca0 c1db2e75 41a96200 -> 422b7d20", + "c08f8540 c1bd7681 c0310460 c224f6e3 c145dcc4 41127f8c 411e1194 c239ea81 4114f4e4 -> 41824100", + "c1ee54b4 c13c5280 40c149e0 40c8c540 413c587c c22e634b 40c8c540 413c587c c22e634b -> 42836f57", + "41caad40 40a7d890 c20876ba c0ec2170 c08386c8 c1e87ad3 c0c7ee58 c1f6f058 be984c80 -> 42099846", + "c1e7308f 422a9ce6 41725ae0 c210d72d c2349fea c15889ac c135200c c14f9a2c 412c02a0 -> 426a0532", + "41fe3ad0 4217e004 c23ed2ab 423557c2 40763d30 424338fa 41c8675c c1a2962d 3fdd35e0 -> 429973f4", + "c2175395 40895c68 c23326c2 c23f99e1 c230780c 4214a25a c23f99e1 c230780c 4214a25a -> 42bf6ab1", + "c21331e4 c240f2dd c22b4314 42375a60 4060e0c0 c1e200ed 415ba874 40a12280 41886fd4 -> 42b8ba14", + "3e0cfc00 41fc3b50 c2432e15 c13caa00 4159ef0c 423a7f66 c234815d 421b17fe c03a9d30 -> 4281b5ea", + "40ecf898 41a73c34 c20fb2b5 c12d6b44 4215769a 403cdbc0 c0196b80 c2285f21 c2014244 -> 42026b25", + "4157c228 4126d568 420ca9f2 c1cd9dae 41867858 4215c3a8 c01cd740 422e4aa0 c0559180 -> 4212a195", + "c16c2a58 c1edd69d c21a4815 c242e759 c1ff996b c1888894 c241a34d c1eb6f12 c23549f7 -> 4206e510", + "41020c44 41480400 c2261c3b 422779c8 c22ad238 41784e40 422779c8 c22ad238 41784e40 -> 42ac8449", + "c12384e8 bd91ea00 40ba49f0 416581d8 c0f67ff8 4216bfd8 c0e7c9f0 41ab32a8 41d17038 -> 41e3c647", + "420fb800 c0109f90 c21acbfc c186e248 421ed7a2 423973b6 c08613d0 c1e71c36 408dd730 -> 42814a77", + "41f82f90 417d05c8 c1b7be5e c20127ae c14dd678 411798bc c20127ae c14dd678 411798bc -> 42996822", + "c1a57ed4 c2441076 3ffa32a0 c1c17817 c203fc9f c242d764 3f6e5d80 c232fd74 c2307538 -> 42485138", + "42365522 4229eea8 bf909460 c22c77de 3fac33a0 4143a830 4247a6a6 c2187af0 c1ce567e -> 4292900a", + "c1d4bb0c c216ba74 c109c394 c1fa03ee c0bbe200 4237f9c4 420367fe c1b653d8 420349d0 -> 426c247d", + "4025e680 c219dd61 c1c1f93f c22d57f0 41bfbaa8 c1d8d38a c04887c0 c18ec15a c143e7c8 -> 41c44d55", + "c23256c4 c16c5c34 4231dbe8 c218f5ec c17005d8 c0f06428 410d970c c1c62cac 42190f06 -> 4227e88b", + "c23cb3f0 4209ecce 41fd8068 c1ce3342 41f8e240 407bc620 41df0c44 c20404f6 411981bc -> 420cd541", + "c1dc8e89 4244e2b8 c188aa62 423fa8b4 c240fe5c c1d2393c c221745c 42083282 4185d690 -> 42173041", + "41c0fe04 c2163553 4206ff80 41e61548 4219884c 418e0ea8 41e61548 4219884c 418e0ea8 -> 429b7a89", + "42020742 4234c31c 40f3f2a0 42225088 4218b988 c200965d 41098dc4 c1c39220 c1efbe1d -> 4224ba49", + "c235063b 4228ea98 c1a1070c c1ef6baa 4190e338 c1a13b2c c1228a9c c21ff790 c21ae4d8 -> 41e49dd9", + "41802110 bf40f2c0 41c66680 c1ef8a80 c22f397b c23ec1dc c221fba0 c16287b4 c2129634 -> 42a91a6a", + "41f05fe0 c19c8dd8 421ecc9c 41ee7ac0 42218162 c24512b2 41d8b25c c23d1a68 c0bbe578 -> 4254d5d5", + "c2147623 c2267eca c10797dc 420b1c52 415d5528 41bd5790 413fc60c 4212200e 41082f48 -> 42ba5cdc", + "41b3c8b0 41fcab08 42098a04 4234c870 c17b795c c23e3dc3 3feb2380 c185e9e6 c1ece048 -> 42a59ab5", + "c21732dc c11c71b8 c1a26e6f 42447ff2 c1a47aa2 c1d9f542 be4d8600 41c28164 c23de205 -> 4265e7a7", + "417e1478 c1bc0256 40c72bb0 c19a29db 4235e5b8 c14e20fc 421db448 40f47a88 c2291dd4 -> 4269b8dd", + "41daa480 c1febd49 c08f2250 c1eb39b0 423a0ce0 c1d8375b c1adee11 4241da6c c07d0f00 -> 42bc39f7", + "420155bc c09fe4f8 40aacd28 c238aec7 c02c7b40 c0c58f00 41377a90 41b54c94 41e570dc -> 4226342a", + "42080212 c1b1be7f 4246e2ba 41c12b7c c2366262 4216b0d2 c1570b88 c080d3f8 c1c51fe4 -> 41e0b0d2", + "c1c3ae3d 42472cb4 c23d8cf0 3fede8c0 4239c71c 4230c9ca 3fede8c0 4239c71c 4230c9ca -> 42beb346", + "c103d978 c12e12ac 3fab01c0 c0926710 42302bc8 4232c7dc 4242ccc2 4205b2c6 3fd2f2e0 -> 4278420e", + "c20b6a75 41a87834 c204f204 40991030 c1e8fc83 41a94a60 c1836722 c2073a76 c224a3f1 -> 4268a6ab", + "bfd1c640 3fb040e0 42012376 c1307704 bee74000 c1fc82bd 4230bfca c22a75e2 4046e820 -> 425b0b86", + "bf909700 42369ccc 418b65b4 c1fdb584 42022906 c0f37d80 c15144d0 c16f9664 404458f0 -> 4225c11d", + "bff69ba0 c0f3c0e8 c20944a0 41167cc8 420d3550 c0b49038 c21f257d 41f66658 41ed7240 -> 42536267", + "422f1702 418bf838 4237819e c20b0d18 4227dc72 4206672a c06a9f10 4221879a 40dabef8 -> 42831fb4", + "c19d7775 c1851b4e 41b1f1fc 41e1db64 c17eb8a8 422542a4 c1ddac30 c1f40e82 c23976c0 -> 41f4850f", + "4151ffe8 bf10c8c0 406acef0 c13341c8 c0febf48 42423208 c13341c8 c0febf48 42423208 -> 424e54bd", + "c22a1cdb 414e3f68 c2127361 41a2e6fc c2301616 c164e564 c142119c c1bd6e69 4243c1dc -> 42a89766", + "422745b4 c192ef3f c05d8cf0 bfb0d640 41fafe58 42471b2e 41c6afc0 c1c5654a 422ff2ac -> 424b2859", + "c14cd83c 40216690 4222e1c4 c20fd64c c20d2736 41a11dcc c111d9c0 41b995a0 422daa6a -> 40db5de4", + "4222be18 c2330658 c11a4f70 c1ec319e c0b52ee0 c210b0d2 bf22d140 c20aa22a c1ea7590 -> 423b7308", + "41ba6e40 c1a10fbf c1115510 4159c690 4229c8ac c22bd673 c218bc74 c22b58d2 423600e6 -> 42255392", + "411ae908 422499d2 40b4d5a8 c1ed2100 4219281c c1cf20fb 4241fcb6 409e65d8 41b15c2c -> 41a5f180", + "c188c33e 41e3b558 c236e0d6 c15c7534 42134770 416ac320 c223a2ea 42124c0c 42251c3c -> 42743b1b", + "c23577dd c19cfdef c1e33df2 4227663c c1a96468 4117e828 4227663c c1a96468 4117e828 -> 42be375c", + "41a80868 41759980 c1823b3c 423b57c6 c22aae30 c2199453 41b875d8 c18e81d4 c1ee2abc -> 420f7255", + "c235eee1 40c621f0 4231a800 4084a770 42462444 bed08600 4209e286 41d6546c c1b1d035 -> 429f61c2", + "41baf57c c21d7f86 c1c610fe 41c11658 42335c74 c1c34e14 c2396557 422621b4 c1a9a3de -> 42a82d2b", + "c0014890 c12ff300 4224aae6 c1f43143 c1a58d8e 419c7198 c243561c 41a6f8a4 404650e0 -> 42143f2d", + "42083488 c21264ee c221c72e 4213e6dc 411d8dd8 c06e46a0 42130b1e c1657800 c17968cc -> 4205e5f8", + "422f4922 c183b7de c24004b0 c206b5b5 c1eeb4c4 40656d30 c13c3c44 41260ee4 c11e4484 -> 429117be", + "c23a6efb c244fcbd c1c94898 c200a890 41c05e84 41fc3270 c2418c82 41783780 41706558 -> 429878cd", + "c1d275b0 c1133bdc c20ed849 3f88de20 c0ffd128 c21199cd c1076e48 411f7eb0 c243b857 -> 41cd3c9c", + "40e3df38 c2161c3a 424541c0 42190a6a c1a70055 418ff150 41cddf54 c20e389b c14fe044 -> 423cce50", + "c199e51a c16bc988 c2144866 c2224df4 c2338fe0 c1136754 c0e3ab78 42053146 421a3f5e -> 422abfd1", + "41a51154 42055edc 41c288e0 41ec9ab4 c16a199c c1e60586 41ec9ab4 c16a199c c1e60586 -> 42903124", + "405ba720 c11cae50 41e22284 c1a0dca8 404181a0 c1f6074b 3fec8ec0 421ad79c c22fc966 -> 4281a471", + "bf61ac40 4087de70 4214ac18 c1ccc55e 4223ad3e c2423e7d 40b33a60 c0814980 c2432050 -> 42abd141", + "c1608a1c c23149b2 4103cca8 420358be 4219b78a c1b10d21 c1e40b63 40390d10 c2287d68 -> 428cf09b", + "422b0256 c0857a30 c1da50dc 423d7000 41be3a14 c13d82a8 42064d7c 4199bb40 c1b94245 -> 41cbb034", + "c22c7f00 407aced0 3ffbaa20 41fbd438 41e751fc c05c9fd0 c128e7c4 c1c55ce7 bfe64fe0 -> 422dc092", + "41b8c980 c1d232a7 c108977c 422af74c c20bdea2 c149dfd0 42051ee2 c00fbdc0 41ffc288 -> 4194267a", + "41f6aa04 c2253966 3f2011c0 c22c8f0d c142f8f8 4243d3a6 c22540d2 c23ad76b c193b789 -> 429165a1", + "c1f7101a c1f214d5 c238503f 4227e10c c0a23c68 421189ac c1e80f21 4200308c 406d8fc0 -> 429f0c07", + "c2353cb0 c20b74b4 42014ea4 41d306cc c1904b7f 4238a8c2 4170ea50 41983750 c2368968 -> 4292f6bb", + "4214fc5c c1f0242b c0cabd38 423e38e8 c21853d6 c162da9c 417b8400 4240ba66 c23ad35a -> 41510ac4", + "422f2d52 40c76398 c00c1270 4244cf6a 41b9612c c15d8a18 c1fddfce 4056f2c0 c1f19229 -> 41a1023c", + "42302b28 c231a224 41c72d64 4246589a c23759c6 c24311ab 42311056 417b26d8 c1bd1013 -> 428775ca", + "4243b1fc c1802958 41f069c8 c20f14b8 4216d354 c12571ec c20f14b8 4216d354 c12571ec -> 42d84049", + "c1d04b2f 41d1410c c1d983ed 42448d50 42448a08 41d09a78 40904c90 c23b2d2d 42373cc6 -> 42aa6f07", + "406b6f20 c1fef635 c2193496 c23e848f bfc52480 418a98e4 c234e202 422d92ae c21d422b -> 429a40de", + "c23ff0a7 420ec502 c247e8b5 c103873c 41fd3d04 c09d4640 421c415e c21a03ec c183e5e2 -> 4270efa8", + "c134c104 c1a3eb3a c1f6f3e0 c14c5208 411d07f4 41d16f20 42375c82 c1d48fd6 41fad060 -> 427d3cdb", + "41e8b3d8 c12b89c4 c0863430 c1dc2b23 c12779a8 c23e74f7 41b5820c 42386662 41d00fd4 -> 422b35fb", + "419aee1c 418aa1d4 c2021133 4221bec8 423093fe c1169d68 41c07bc4 c13baa6c 41d11278 -> 42197bab", + "419d8b88 41094524 c0ee3468 3f7ee640 421ec28a c0df9408 c1ab0698 c1cea6e5 4243fed6 -> 41fc99e1", + "c217d582 4218d366 c23f0365 c1795a14 405883a0 41facbd4 417ff530 414bc728 c121d1dc -> 428d1774", + "c1682f5c c0dd8dd0 c0dd4400 c24165f8 4244816a 422bdafa c22cbf7d 41aafda8 c217e46a -> 423da3fb", + "c02d1260 c19d26d3 c189b036 41714d00 c23b1bf4 40f238f0 c18a7576 c1ebeeba 423ae41a -> 4223339d", + "423c678c c1068640 c14f25c4 41bc3460 419e0120 bfbd7120 c1aba3af 41f94750 41715140 -> 4219e481", + "424189dc 41c3de64 3fef45e0 c13c92b0 42183584 c21ab3e8 c229e6ab c1bb1107 c20a0637 -> 4293a0b5", + "c2176f08 c180a8d4 c1967524 c1d55fc9 41777b20 40e7eef0 c17f23c8 41fd7bcc 40ad5c10 -> 4229ad8d", + "41801b60 4182e2b4 c190cd0e c231177c c05b1cd0 c0905ab8 4237736e 422f95ba c22fe848 -> 41677ca0" + ] + }, + { + "glsl": "vec3 cultmath_segment_closest(vec3, vec3, vec3)", + "tolerance": "ulp-bounded", + "cases": [ + "c22ed57a 41be8084 41d83b74 c19dad2b 4222bb30 c1c2c648 4112f504 41b67f50 41e3e4d0 -> c02cf0f8 41f15004 40d80a08", + "c233f126 41bb2800 c227c49a c15efea4 421bfac2 c22fb237 c159f200 4152efdc c21e66fe -> c15c091f 41bef351 c2258fc1", + "c1c20fb6 4115af30 42268d20 c10c2a38 41e5ee10 c048fbe0 c0960cc0 c18fcefc c0ed5238 -> c0f2132c 41705f9b c08cab84", + "c1eb4077 420cd05e c18ad628 c242f2c3 c2448bdf c2117c64 3f74d680 c13abd28 40dc6ee0 -> c0bf3de0 c1872f02 3f5a75c0", + "c23b3480 c1f529aa c205123e c12b4a18 c155f090 4133dd94 c11868c4 422a79b0 4104d7d0 -> c12b4a18 c155f090 4133dd94", + "4205fcb6 416c8918 3fc64c80 c1f4d26d c20f168e c18a9112 4247a4b8 c0441460 4200b320 -> 41fe286f c126ef90 41a82e6e", + "c19e2c20 41d9ca54 c16ccf24 c1788c84 c05a6740 c1b6b681 420dee04 c1f18308 c11403b0 -> c1788c84 c05a6740 c1b6b681", + "c22ed1e5 41a8d714 c2358e6a 4191f2f4 4138bd5c 424032ca c0cad9f0 c22e7306 c0ec0fb8 -> c08b2088 c21c9389 c038c400", + "41bdc51c c1d68220 421423ca 3f9196e0 c23fa4f3 402c4b80 c19ef236 40b9ebf0 c182c40c -> 3f8dd02d c23f57b1 402a956f", + "40c4ecb0 c1dc9e07 422ad3ee 421b49fe c1218b28 c237eb60 421b49fe c1218b28 c237eb60 -> 421b49fe c1218b28 c237eb60", + "c10a258c 40a09330 c1eab15a c197e514 c1c03355 42089ef6 42203c7a 40fb3b90 c2074957 -> 41972652 c064cf30 c117475c", + "c17f34f4 c24759d4 422e17bc c1bced48 c2166ed1 4122c2c0 c1bced48 c2166ed1 4122c2c0 -> c1bced48 c2166ed1 4122c2c0", + "405c2310 c22bd500 4220c160 c197b32d c18cfc5a 422f94d4 c0987e00 c1a29ef2 4210a082 -> c0987e00 c1a29ef2 4210a082", + "c101ab30 42077d1e 41e32f38 3ff6a2e0 c1ad4779 40f0d5b8 4211f22c c2014194 c1de23f6 -> 3ff6a2e0 c1ad4779 40f0d5b8", + "c244b5e4 4206a614 41755df0 c242f893 42387a52 41fb6774 c10332c8 c2010a4a 42368ccc -> c2342695 421bd396 4202e5ae", + "4246d3ee c1c711a7 42202f2a 42466b38 421aa3d2 c067a870 40c0e758 c1d03b13 c1636c28 -> 41bfd538 3f1e7980 c11d986e", + "c177e4b8 4247c586 413b80dc c2037098 4238865c c1c53c41 c2037098 4238865c c1c53c41 -> c2037098 4238865c c1c53c41", + "417078d8 c01bf690 4201e7c0 41c242ec c0ef9e18 c1800cd8 c23bc6bc c1714fa0 3f738640 -> 40aa1ce4 c11829be c137da02", + "c1f55784 c1c64782 c1b40aeb 422c4ab8 419e383c c104b1f4 42123548 41544518 41ffad94 -> 42293fcf 419824e3 c0664578", + "41ecb104 c12e29c0 41483ed0 40fa3640 c204e1f9 422f4df4 c233a162 c2337ef0 41a630e4 -> 40fa3640 c204e1f9 422f4df4", + "41702b00 423a4bac 42452712 c0453180 c2447b6a c1e07447 c19b22d2 4002aa20 c22f43ef -> c19b22d2 4002aa20 c22f43ef", + "c12e7bbc c2310ba0 421100cc 41c8b784 423a9aaa 4220cb14 c2062f48 4227b328 419517a4 -> c1620740 422df5f0 41ce385c", + "41ee12d8 c0efd060 40f01b70 42253e26 c002e780 c1552f00 408d0888 c1c0aeb4 420c30e2 -> 41dcef83 c1239469 40940290", + "41624e98 c237decf 4228c624 c245b1b6 41819634 423fb834 41d59184 c1d9eedc c1c095a4 -> c017ee80 c12a6e6a 405b2f80", + "40e2a9a0 c22c84f8 4132b074 c0c80cc8 c23a4ade c177d560 40976720 41bec844 40374c40 -> c08f1188 c20c9f6d c14838ee", + "c1582b08 41ebb498 4243db60 41f20180 417722f8 c213548c c0fa1c80 c1dbf667 c12edf08 -> bfa774e0 c1a13be4 c175b94c", + "4187f37c c2319238 c2246f58 3f1a3240 c1a549dc c2353a0e c1bf9125 c16f0080 c211d1c3 -> 3f1a3240 c1a549dc c2353a0e", + "417ff7f0 c1c8e52a 42178902 c13955d8 c231b9ce 422ec826 41ecbe18 41b71cc8 41fab3ac -> 40934dc8 c18fbcf0 421b59a5", + "41b867c8 c234cfde c16de9d4 c1989f0a 422fd164 41f479dc 41370bd8 420ab95a c233ba2e -> 40c357ac 421135b1 c1fddc2c", + "4206c054 41ca98c8 c20e5caa c1b01464 c231662e 40861fb0 418c21d4 3fbceda0 423fea60 -> 40774da0 c165a288 42036b3b", + "4124d794 c20e35c7 41c57520 414726a0 c245e47b c1f2a5f7 c0352870 c219982d 42265148 -> 3f7ed750 c224b037 41bc8ffd", + "c10d5428 c227683d 40d4bb30 420e1480 420a714a 419a5c18 c192dbe3 41432674 41a3d078 -> c192dbe4 41432674 41a3d078", + "c1a00be3 420e3870 c189de8e 40bb8810 c14b8200 c10a07b4 c21ff82e 4222b198 c21e15eb -> c1cb4ffb 41bd9546 c1ed9749", + "41c74808 c1f8dfa2 c19cd614 421c99d4 c0825048 c1af10c3 c1edf1ee 4109a6a4 c19f14da -> 41f10d20 c01a6ddc c1acf917", + "422c6810 c1f39d5a c0d3dbe0 415613d0 c2308dd4 be24dd00 c213e700 41cc5120 c1fa9602 -> 415613d0 c2308dd4 be24dd00", + "41f7fe60 c0fc3510 c1c6abb1 417a14d0 4188ba44 c232b8b3 421eb2f6 41c5faec 41fd7300 -> 41af6ab4 4198c4d8 c1c5751d", + "c2438242 c23e488a c12685e0 c1d58f5a 413be314 40cfdf18 42318a08 c1ddca71 41de0598 -> c1b4f4c7 4117ae45 40f6df6d", + "c18f57ec c22b9cb7 ba950000 42017306 c1abd1cc 41b850cc bfdd3fc0 c21e3745 c0fa60a0 -> bfdd3fc0 c21e3745 c0fa60a0", + "41aff930 c0a4d8f0 c1df869e 4239a4f2 c13a5b10 c17882f8 c0387920 c189aab4 422ee608 -> 422b6147 c140caf0 c133ec04", + "41d76054 c22cc2c1 c24173d2 41a9ef08 420a716a c08fb370 bfa45360 4222b09c 41efa594 -> 41a9ef08 420a716a c08fb370", + "423f25c4 c15af81c c14e479c 42138ad8 c1007908 4222fe38 41b9e688 41bf37d0 42287a88 -> 42138ad8 c1007908 4222fe38", + "c18b6cea 420d148e 420bcf16 c14468d8 c21c7890 41e9d478 4209ff4c 40c8c6e0 41f2f58c -> 41b2796c c0b1c570 41f0947b", + "c1ab9680 c22df4b6 423f019e 4243efde c2227ec3 41397d8c 4238783c c1c5d26b c23228e6 -> 4243efde c2227ec3 41397d8c", + "c19c1421 40a94890 408e19a0 c2457773 c134641c 40f32b38 c1551a08 c1651588 c2290937 -> c218800e c143937b c0fe60da", + "c1153f8c 40c001e8 4125c04c c1aff018 418af6d0 41b9b90c c1aff018 418af6d0 41b9b90c -> c1aff018 418af6d0 41b9b90c", + "41c2e554 416ddbf8 4229c488 c2143ff9 42269b9c c1e123af c2143ff9 42269b9c c1e123af -> c2143ff9 42269b9c c1e123af", + "414325e4 42251a7a c136fe8c 41f7c5dc 41dc1334 41f304b8 423fbc82 c0023880 4193899c -> 41f7c5dc 41dc1334 41f304b8", + "bfa17680 41da40f0 c1995d4c 4225f1fc 4243fed2 40522090 42226004 bf976a40 bfbbbda0 -> 42243602 41c4fa22 3f79d1c4", + "c1e8a176 41b46904 c0764c90 40172d10 c1931711 c15d6d20 41a09b00 c2362362 c23a575e -> 40172d10 c1931711 c15d6d20", + "c02d0700 bef67f00 41de3ef0 c1973720 c163b9c4 c06dd8f0 420da18c c09307e0 423c7a42 -> 40ca590c c11c1972 419f29c0", + "c234e848 bf507780 40e00b60 40696370 c19f691d c1f4c224 40696370 c19f691d c1f4c224 -> 40696370 c19f691d c1f4c224", + "420a0a16 420712a6 c207cdb0 40d49710 c16581c4 412d290c 40fe1828 bf246280 c10a6c70 -> 40fe1828 bf246280 c10a6c70", + "c073a110 42081312 422ddfe4 41174c60 421e94f6 c09c05e8 c14a7e88 40b70368 402dc610 -> bfd0baa8 41b51488 bf88eb04", + "40d88410 3ff850c0 c099f800 c2300d87 4244e14a 42460100 42338bdc c1ddb141 c2172a76 -> 41171084 403d8c10 c03f2f90", + "c12ecb4c c16461d0 c179483c c194e600 41ade244 c209ccea c1f8c2e7 c02ae360 c1f24184 -> c1f8c2e7 c02ae360 c1f24184", + "c15915b0 c20d9240 42370c96 c23e8005 421d6c8c c2475b74 c23e8005 421d6c8c c2475b74 -> c23e8005 421d6c8c c2475b74", + "41c6d630 418b6eb4 422dddb6 3f6d1480 419d064c c15651c8 3f6d1480 419d064c c15651c8 -> 3f6d1480 419d064c c15651c8", + "c237c640 c18b70e2 c136b96c c243a470 40ed8cc0 c15d85c8 bf7a59c0 c165916c c14d9c4c -> c21438cd 40027a9e c159964b", + "c22fcdea c21e219e becd7000 c220281c 4216e1f4 41c0c3bc c1c2d56e 42200e94 c15ffb44 -> c2068eaa 421aa040 4108d577", + "415119b8 c0fae9f0 40c5af88 3eae3380 c2057a12 42443cbe c244e9e6 c1c5ee93 420ebbd2 -> c028e23d c203671b 42410591", + "c21af1f4 c1403988 41e26be8 c14a5638 415f569c 41e226dc c1269d94 421156fe c224ffdb -> c14a5638 415f569c 41e226dc", + "41502e7c c1bc3aa1 c1b8e868 40abbad8 40569610 406d0e70 4230edac c118a83c c1efc3f5 -> 41d609ab c06f8a08 c16d3dba", + "40eee430 407c8a50 4209d5a2 42131e04 bf4a8c40 41db518c 41b8b044 413e5bf4 41d32340 -> 41b8b044 413e5bf4 41d32340", + "bd00b400 42472e7a c07fdc20 422eb066 41594724 c1d1e439 422eb066 41594724 c1d1e439 -> 422eb066 41594724 c1d1e439", + "3faab7c0 c21f0b12 c12b06d4 414d4f4c 419080f0 c18eaf26 41f513a8 423bf306 414ed418 -> 414d4f4c 419080f0 c18eaf26", + "c177d31c 3f2ce500 412500a0 c15f3b84 c156710c c20ae90a c15f3b84 c156710c c20ae90a -> c15f3b84 c156710c c20ae90a", + "c1e99233 40ea2b38 4061bfb0 42439dce 421894a4 42122ce2 c1c6917d 41dd8338 c2203aa1 -> c0d6d250 41f20ecb c1a9f1b6", + "c2390eed 41537490 41f3c0e4 c20bb042 42272590 c1a34903 410d5b94 c1bea59a c226d27c -> c203f403 421b8c01 c1aad070", + "42389a54 41d6a568 40deacf8 41959090 41d45230 c220687d c1dd788b c1582e70 c057ff80 -> 416aa9c6 41b87c5e c213a54f", + "c1fbb99a 3f8840e0 c2196628 c101e668 c0e01970 c23aee5f 421a97a0 c231f194 c20ddb83 -> c101e668 c0e01970 c23aee5f", + "c1a50e26 41817d60 421b6442 c21718ad c1bec307 c18b9960 41130fcc 41b6a7f8 40c41a58 -> 3e85ae80 415f4e12 3fd28db0", + "40012a50 c157765c c1dd1696 423f59b0 41cd68ac c1cbf33d 4221928c c0c0de60 c2469038 -> 4221c01b c0bace48 c245fc72", + "c1977cd4 41907df0 41b0a5d8 c1900941 423e7d60 421ac2de c21bc7b5 402af0c0 3fc86980 -> c1e5d11a 41c4d71e 419d7202", + "c219774b 42384632 c0eeb1a8 c1e7e9d5 c1a9b4b4 40548780 41f43d2c c1a048b7 4217ee70 -> c1e7e9d5 c1a9b4b4 40548780", + "41f2e234 bf9b3520 4181a424 421e3e18 414572a0 bf041040 3f9fdf80 420000ca c1aa655d -> 421e3e18 414572a0 bf041040", + "c233615c 4202291e c20d960e c184c692 419885a0 c0aa6498 c2420e46 4134e7d0 42306bc4 -> c184c692 419885a0 c0aa6498", + "c1e5dea2 c16e1f2c 41986818 c246afad 40caf9e0 c22deb19 c2148254 40be6398 422ff89e -> c221cc81 40c1b909 41a699e6", + "40bfae20 c21cce51 419d3d70 41e2fdd8 423ede8a 4126dba0 c226ae3c 42011b3e c2409318 -> 41104ece 422dcd89 c0b8328c", + "c1d03c8b c1feb2d7 3ff908c0 4065c7c0 c14bac34 c1a790fe bfeac580 c1a740d1 41fbb87c -> 3f3259a0 c188bb7e 40e06514", + "c1624080 42169e1c c1864246 c233b1d4 c0efdf90 c1f636ba c1ae41e0 c09838e8 41ede498 -> c20ea5e1 c0cccb2f c0d1dc2c", + "4218082c 3ea73280 c165074c c0c4ce60 c231873b 4235328a c0c4ce60 c231873b 4235328a -> c0c4ce60 c231873b 4235328a", + "4183b8a4 c1a6ec4a c1f65309 421abda8 42316cf6 c214759a c117c2e0 4150ed80 c1b5b08b -> c0a9a1f8 417c6cc4 c1bfb2c9", + "420bc1d2 41c18414 42071e14 4202332c c23b95e6 4204aff0 421baa72 c1621484 41e3f3d0 -> 421baa72 c1621484 41e3f3d0", + "c210a90a c1f0a2de 41516384 c1cb71f1 4192af4c 41dca5a4 c1cb71f1 4192af4c 41dca5a4 -> c1cb71f1 4192af4c 41dca5a4", + "c10f42ac 41bd26ac 4201e868 41001ad4 c001c480 c1007658 4235b490 4073cdf0 c2072acf -> 41001ad4 c001c480 c1007658", + "411c5e60 4235609a c1cb3a87 c20c0014 41cf88a0 c1d5a4db c20c0014 41cf88a0 c1d5a4db -> c20c0014 41cf88a0 c1d5a4db", + "4233307a 419d4854 c1e14aa0 41ba2928 c1c71615 414123d4 42445dba c20e2c7b 40e62228 -> 4200b6ab c1e48044 4126347b", + "42443370 c05d23f0 418061f4 420844e2 c1ed33fa c204e5dd c24239a9 422a2b90 c1e74e13 -> 41e115e1 c1c3bdad c203a8ec", + "c12231b4 421e0d42 c1ecf5ac 4210f866 c224602a c1eafc9b 4117c120 c21419de c215b2b3 -> 4117c120 c21419de c215b2b3", + "41ad375c c116f674 4233399a c1fa3b5f c1a63323 c0c858b0 c1fa3b5f c1a63323 c0c858b0 -> c1fa3b5f c1a63323 c0c858b0", + "c1e6bfd5 c100b994 4112ff48 c2290788 42196288 c1beedf0 4113ddf0 41c89d1c c14f7510 -> c1521f0a 41f6bbf8 c18d9d28", + "c22d7ff6 41054500 c23ccaf7 c2035e40 4193a458 c2206cab c2035e40 4193a458 c2206cab -> c2035e40 4193a458 c2206cab", + "c1de553d c232dcc7 bf384000 c1f28284 4165d2f8 c2360cbd 41354834 42107798 c24079c8 -> c1f28284 4165d2f8 c2360cbd", + "c09c0c60 4107c434 3fde84e0 c138782c 409af390 41d4e230 c2244aef c2139c32 41834510 -> c138782c 409af390 41d4e230", + "42355d90 41f4f830 c20e414b 4247b8e0 c0b6c9b0 be8ffd80 3ed39180 42241e1c c23bad33 -> 41bfc5fd 41965522 c1c5d845", + "c11c5374 3ffb9e00 41d19b48 c23032bd 41264440 c1bc9d34 41e67514 c23e2ac1 c12ef1dc -> c1633fa6 c1557638 c1932e2a", + "40e9ccc8 4213422c c23666f7 41aeee78 411d3824 40bad020 4227a448 410ac2cc c20521fa -> 421d8404 410d1799 c1e2bcfe", + "c159b5fc c239af1a 41cb2fe8 c0a46dd0 423ecaf8 c0989470 c2236a4e c1069ad8 42236484 -> c2236a4e c1069ad8 42236484", + "420424ca 4237b8f6 41e0a1c8 417ef248 c2389557 41a267e0 c159e82c 422ca184 4201236a -> c11bc5e6 41fb626e 41f5add6", + "41c0408c 42322b4c c11e54a0 4136b738 4210e684 c22e202e 4229a66c c225e49d 41d1c61c -> 41870ea2 41b43f5e c1f9e690", + "41c2802c 4103821c c226fdb5 c2081ebf 4225be28 4226f670 42201ee4 c1559708 41d489f8 -> 41e741fa c0a3e1c8 41e6c50c", + "c2198f46 41b90dec 41901924 4138e3b0 41f9614c c14c7afc 41b66a74 41360290 c2250eb8 -> 4138e3b0 41f9614c c14c7afc", + "41d31a94 40a981b0 410a2f0c 41cfd7f8 41415dfc 424302c2 41a99a5c c102632c 41579838 -> 41ac7b1e c0d40b34 4181098a", + "4175d8f0 41c70688 41c3fcd4 4213cb2e c1de2367 c24585b1 4213cb2e c1de2367 c24585b1 -> 4213cb2e c1de2367 c24585b1", + "414eb518 c139c760 4246ebb8 4237f3da c1c97778 4216b6aa c1ea2b04 41f1fa54 bf7eaf80 -> 41cc9f21 c122683e 41d9855c", + "3f143000 c2096874 c197b470 42336f18 c24466b2 c1bbc28f c24708ee 40789c20 422abb64 -> 415f61d4 c1fe62aa bfef1550", + "c203e8dc c0c14c78 bfe90a00 c20a96da c1f7e040 424654c2 421e79ce c12ad584 41f46cac -> c17a715c c1ce5327 4232dcd5", + "40bcc2d8 422e263e c000f0a0 41aed608 c1544a24 4242888c c085dff0 c14688b0 4145af1c -> c085dff0 c14688b0 4145af1c", + "c221797f 42397c0e 41a267c0 4200a63c 40b51658 41c8661c c2146ab2 41aa6744 4224c884 -> c2146ab2 41aa6744 4224c884", + "41fe860c 423b0b12 41d7c7f0 c244afcc 4171fca8 c1e80cff 41a53f0c c1f85255 4220d678 -> bfb4ca20 c1839a87 4192ad2b", + "4246c6d2 41d9347c 41020688 c1bb90f2 c1b83a8e 41fb3fbc c1bb90f2 c1b83a8e 41fb3fbc -> c1bb90f2 c1b83a8e 41fb3fbc", + "40eade68 407e6190 414a64f8 41a50cbc 40e15400 418d4d30 c21dead8 411b196c c0c11970 -> 40f1cc42 40f3c9f2 4148218e", + "c189219a 41247b84 c1fd73a8 421fce40 c1eac9d2 41bd4524 41edcc44 c22d1425 c2090c0a -> 41f71b34 c226be40 c1dd5fe8", + "c1d9fd17 c23bd58b c1b925a6 c204ba78 41123520 c205bdba c1632f04 40a61c10 41c205d8 -> c1e36a9b 41026376 c197e177", + "4190463c c0a9ef08 40bb5670 41cad874 c18c2778 c13c1650 41cad874 c18c2778 c13c1650 -> 41cad874 c18c2778 c13c1650", + "c1a448f7 41aa5bbc c14eed20 c1812692 c0495e50 c23e1a14 c16b7b00 3b8dc000 c0965de0 -> c16f1ced befe8f90 c1384110", + "c185c476 c1f03e9e 41a35cc4 40eb3a28 4182314c c2256373 420dcb3a c21a06eb c1185f1c -> 41eddaa3 c1dae38e c17ff81c", + "c20aee1d 40b74df0 40aa8d30 c0a2d6e8 40898ac8 c1b70e28 4194e130 40ef0fe8 4201a0ac -> 3f0a3580 40a1a764 c11c01b0", + "c20d46de c20eea9c c18907f4 c231808e 4218ad14 c2364bed c231808e 4218ad14 c2364bed -> c231808e 4218ad14 c2364bed", + "42063b20 4215e034 40426070 42111872 c08f42b0 c1df6edf 42202016 419c3734 c05d90a0 -> 42202016 419c3734 c05d90a0", + "42376cc2 420257e6 c1866dea c1106b60 40ac5c50 4140f784 410b9fa0 41ec76bc c1f21da0 -> 410b9fa0 41ec76bc c1f21da0", + "3fd02940 41665a40 41de7e84 4214d408 41bde390 c20823c8 c1252cb8 41997464 413d924c -> c1252cb8 41997464 413d924c", + "418150e4 40c3a9c8 c12131c4 422fe36a c1f7ef3e 421464aa 40dd68d0 40ee2770 c242f4ae -> 41a30c82 c0d0b058 c18c6bda", + "c224d551 c0b10dd0 c2131af2 c08dffe8 c1c61c65 4210ce24 421233ea c1d7b0e9 409f2048 -> 40d9ba6e c1caeeb7 41dd1788", + "c213752a c203ce19 c215d956 421c317e 40be89c8 c17497e4 41a38e8c c1f6b6e0 c2215f0c -> 41a38e8c c1f6b6e0 c2215f0c", + "c22948fa 402438c0 c1e04672 420dc244 c101efa4 c1e93439 4237956e c12421e4 c0eadd40 -> 420dc244 c101efa4 c1e93439", + "41e26018 41c16258 413f88f0 c0c73bd0 410755ec c242dd05 c22b4e77 c22b5cfb 3f963040 -> c13a7363 3f5a1228 c22545ee", + "c20f29d6 41b6662c c13fb738 42019b24 41f85fb4 c20572ba 41bfb3a8 bf625cc0 c0cd8b88 -> 41cea21c 40c5b290 c1461a48", + "c00dc060 c208b6f1 c2394414 c21e87e4 c1f82d84 c143ddd8 c21e87e4 c1f82d84 c143ddd8 -> c21e87e4 c1f82d84 c143ddd8", + "c0a20e90 42460eae c04c39e0 41e42e3c 40c73920 c1dbfd02 c21b347e c19b47fc 409571f8 -> 40f38e94 bfde56b4 c18c0d97", + "c1c7f9f2 c1dcec2d 41549104 40cd4fe0 c1309958 40a27d60 c1b5f464 c2366d97 c1c6125f -> c0be2e82 c1cd8394 c0f22da8", + "c1454650 42314d0c c04e11e0 c22d7046 c171f040 c20dcea7 c18da78a c1c9a170 c1ea661d -> c1f542f0 c1a0e899 c2019f6b", + "40f2b290 c223f37b 3f729900 405ff000 41479bec 41a3ea84 c22f0cad 42038c78 c17c321c -> 405ff000 41479bec 41a3ea84", + "420563f4 c1b0f742 c16fff54 c15bd7b8 c23bf559 c0f94760 c1fb68f1 4217ee34 40b627e0 -> c1839ec5 c207d526 c0b71d0c", + "41e38a38 423efc30 c0cb6690 419e2af8 c1ebc3a8 c21a495a 420b5312 3f1c4900 402efcc0 -> 420b5312 3f1c4900 402efcc0", + "c22070ef c24350c3 422fc300 3f24da40 bff520e0 42119c3a 423df95a c208097e 41ab7f0c -> 3f24da40 bff520e0 42119c3a", + "41a13de0 421becbe c2397aed 41e50578 413bfeec c0b43550 c1966534 c220d5f3 41153380 -> 41e50578 413bfeec c0b43550", + "4198d494 3f6ddd40 c1883e56 402f8000 41dcbae4 c0b60fc0 42283026 411d6888 4175e560 -> 418dbc82 41a69e84 401557f8", + "c19ec6a9 42066010 4218b31a c222eb66 42474e72 40b41180 c18d6ffa 4200b4b6 c1807d44 -> c21e91c1 4243f9b3 409352ba", + "c205d151 41d88480 c227ea40 41843784 423a2d86 c23daafa c10ba128 421dd85e 4230771c -> 4133d844 42343f1b c1e209f7", + "42252444 4247f7ca 41b86bec 3f799480 c21e179b 41c8520c 3f799480 c21e179b 41c8520c -> 3f799480 c21e179b 41c8520c", + "c0e36ab0 41d36884 c1458320 c202ce11 410f5e6c 41919cd0 4142abac 41e66890 c22f8275 -> c1065c64 419da908 c176cb7c", + "421416a6 41259368 bf79d400 c20f2355 42123ee0 c244c65d 422b311e 40c653d0 41c810d8 -> 41d9482c 4143d72a 4123e014", + "40d9dff8 c220e760 c23da839 c1b1e14c 4228280a c0e2f248 c20e6cfa 42432c36 c1c9b526 -> c1b1e14c 4228280a c0e2f248", + "42099a2a 42453c7c 41bae0d0 416577b0 c19eb63e c21dd5e7 42242eb4 4220677e 410e393c -> 42242eb4 4220677e 410e393c", + "c24067cc 413f20a8 4096c6b0 3ffafb60 408c1e20 42410df8 c22b9f8a 42228178 41373ed0 -> c2163855 421136d0 417d7c7c", + "42402d8c 41d0132c c1c5ec36 4244c058 4241f324 c0c69580 c21a6d97 c1870bea 41beb8f8 -> 422924c7 422d64f0 c075ff3c", + "408076e8 c1038188 420837ca 41af7864 c15c5768 4155fad4 c2066087 4216da28 4213f470 -> 40ca356c 3f34d1b0 41a01d76", + "423d3c2c c1d79ede 41bb172c c16f3678 420b39fa c23d3661 c10fd9f8 423373d4 40a1fe50 -> c10fd9f8 423373d4 40a1fe50", + "c14a8dfc c1c335d4 417dab20 c21046f3 410a0a3c c1d1dce7 c2160373 c2266f6c 41c06530 -> c2148632 c1e487f4 412febba", + "c206f4fc 4213d21c c209124b 40e9d428 c23dac1b 40fda550 c0b80730 4121e254 41df20c0 -> c0b80730 4121e254 41df20c0", + "c23972f8 c1bcc55b c20e79a4 41e5881c 41b1fe84 c1f4f365 c060edc0 41c7f9f4 c23d81fe -> c060edc0 41c7f9f4 c23d81fe", + "41e07484 411e8db8 c212c65b c194205c 41c858c4 c205e16c c194205c 41c858c4 c205e16c -> c194205c 41c858c4 c205e16c", + "423ec03a 415860ec c227f11a c1bfbb96 c1acac73 41cf69ac c1a28c28 c18c4304 c1b8f55c -> c1a28c28 c18c4304 c1b8f55c", + "42018686 bef28300 41f721d8 4211be9c c21e95ee c22abd24 41d2f778 c10518d0 c12c0efc -> 41d2f778 c10518d0 c12c0efc", + "41a08284 c121e650 c14801b4 c1eef6f7 c21c40d2 c21b2146 c1eef6f7 c21c40d2 c21b2146 -> c1eef6f7 c21c40d2 c21b2146", + "41eef4d0 40cb3ca8 41bd30ec c0ede9c8 42010e22 42103550 c0ede9c8 42010e22 42103550 -> c0ede9c8 42010e22 42103550", + "41f1a050 c20b542c 4163c170 416f8b68 c208aaad 4208c3c0 416f8b68 c208aaad 4208c3c0 -> 416f8b68 c208aaad 4208c3c0", + "c2229515 c15de3b8 418d7440 41bfa63c 422fbed6 4216010a 41ffa9b0 42309b76 42463b20 -> 41bfa63c 422fbed6 4216010a", + "42295416 c20b9cf8 c20334f3 c241417b c1fe2cb9 41c07ac8 c241417b c1fe2cb9 41c07ac8 -> c241417b c1fe2cb9 41c07ac8", + "41a8c994 c0254370 c0656d30 40f9ce70 c1bfceb0 c23f03ad c19f51f3 c154b994 c237d241 -> 40f9ce70 c1bfceb0 c23f03ad", + "c153b2d0 41333fa0 41db92e0 c2025c54 c18274b4 423acd2c c074e990 c203ffa8 c1d244a1 -> c1cef669 c1a1a78b 41ed3237", + "420e1b16 4129b7bc 421872ac 412b595c c23900a6 419e8ae8 41e177c4 c13e083c 42465b12 -> 41e177c4 c13e083c 42465b12", + "41e2a058 c1dcd34c 421c932c c21c3ef8 be002d00 42428a46 c1761834 c1bbb159 c01ea580 -> c1adc932 c189b108 41335fd0", + "415a3180 c23cac30 bfde19c0 c118277c 41ea27c8 4245b576 414c9f54 c118458c c1137f30 -> 414c9f54 c118458c c1137f30", + "422ded5e c09b1618 4081d3a8 c1178084 c075d520 424062b0 c2051ec4 c21e0925 4114e474 -> c14e925a c10ff30e 4229f504", + "c14e25dc 422c6cb8 418c47b0 411ebbf8 41969e10 4227d916 c1fd05ff c20e830d 41b0797c -> 411027ea 418d1064 42261a28", + "419bd560 4204e790 41fb84e4 c20a2a9a 4243a392 c1f2ebd9 c20a2a9a 4243a392 c1f2ebd9 -> c20a2a9a 4243a392 c1f2ebd9", + "4222a462 c1d25b49 c144caec c22f46ec 4202c746 c216a144 4110ecd0 416c7968 3fe3a460 -> 4110ecd0 416c7968 3fe3a460", + "c1888012 c09769a0 c1cef9d1 c2336317 c1869a22 4192b7cc 421666aa 41ad4e34 42153ace -> c1d45cb0 c1048191 41b466c0", + "c2132c2d 41e8a294 bfcaa3c0 4144fbbc 41a43f50 c16b4024 c1c56a66 c1060ecc c1bbcecc -> c1344d8e 400674a8 c1a25dff", + "be87b700 3cd10000 c17f9824 c1ab1001 c21efa32 415b6b2c 41952974 c15c8d78 c196fc7c -> 414bc186 c18cf11c c160fc0c", + "c208f94a c1a0c312 420cca12 42327b58 41e076a8 c1ad6346 c12e0cec 41a18534 41c640f4 -> c12e0cec 41a18534 41c640f4", + "423087a4 c0ffa868 c1659a50 4019bdd0 41ff0808 c219bf8a 42448aea c219ace7 41ca4ef4 -> 41e55c0c c0f447a8 c0279480", + "c13be900 c1d6b5b7 4233971a 419a36c8 41b025e0 c2024118 c1fb2958 4203a5d8 c21b072b -> 410dd117 41c20e98 c2075868", + "c1176aa4 422abf76 4209039a c1c02a0e 4242597c 3fb14120 c1f3ad7b 4205355c 422f8738 -> c1e2a6e2 42196a92 41eeb08d", + "4186b7a4 41c0f97c c050c050 c23e762b c1a595c8 40a44190 419ca64c c2291a61 c20e7f4c -> c121eee8 c202f3ce c18cdf05", + "412ed49c 413d9974 c1db2f2f 421282a8 42440d36 40e20d08 4220489c 422a6190 c16fe294 -> 4220489c 422a6190 c16fe294", + "410f2718 bf994fe0 407425f0 c2090e12 c1b4948d 40c6b770 41a83640 c24237d2 40f83ab8 -> c0e56744 c20d3847 40defaf0", + "c201341e 41b73b48 c12066dc 422dc820 c1b123e6 c208aa72 3f18c500 41622408 41d36250 -> 40675ae0 413941d4 41b13de2", + "41944a48 c1cb13a7 c1b84478 4238d1c2 424784fe c21c7a4b 4221d4e2 41e57df4 41a0ae1c -> 4229374e 420dfa65 3f8884e0", + "bfda4000 41e12a94 41c7a834 c1d2f1a4 40088ae0 c1b8709f 4238be6c c1ffb35c c1ed8b44 -> c19e9429 bf714d7c c1bd3b19", + "bd06e400 c1e88eda 410c5270 c2070600 c1b2ab8f 419115f0 c12a2900 42181782 c1e0ffd8 -> c1f66fdc c16a12ca 4143b16a", + "c2074f98 c1332998 c2089310 c2312255 c21fe6a8 c1c080ce 4216b1ca c17ab198 c1e15087 -> c1d33eda c20ab12f c1c7a917", + "c1951dc1 c17dff5c c10b0238 c216d57c c11f6ba0 42295c26 c216d57c c11f6ba0 42295c26 -> c216d57c c11f6ba0 42295c26", + "41871038 c1ea675e c18b867c 418c4f1c c12725a4 423fc98a 4122dca8 41944f14 c1920bf5 -> 41441bf2 4125adb6 3edf2180", + "c0c6cf18 c23f5de5 c23e42a0 412e9db4 c0193700 417d8648 4165e590 c211922a c1be6dd4 -> 4165e590 c211922a c1be6dd4", + "4106905c 420dac64 413dab4c c21ce8b6 c2220799 4144a16c c227f026 41d1a9d0 c16ac7b4 -> c2276d9b 41b8fc8a c156d56e", + "40fb7208 c2096fe5 42473f28 c153989c c208a1e3 41ecf244 409fbfc0 420c115a 41dbb92c -> c141017c c1edf7de 41ebd90c", + "420872ea 40b444b8 c11eeb18 420070f4 40bfc9f0 41a21c20 41e06340 c21f7797 c1466120 -> 41f6bd40 c105260a 41211759", + "c20b89a4 42208f12 4100bc98 c1678b00 4187ef78 c1ebdb58 c1276a30 41fbb770 410d85f4 -> c12786d6 41fb83b8 410c7404", + "c1864d12 4233e02c c09db580 c15a474c c16304d0 4207e242 c2280cb0 c1aed3fb c23e9d0e -> c1c1e806 c1886948 405f0c90", + "c15dbb00 c0bd3ef0 4098f058 c2169098 c240b912 41ead014 41e16ae4 c23ce480 c094c6b8 -> c105e210 c23f04f3 4163ab46", + "c1364b44 424730d2 419e443c 422d78ca c1fec614 423f8770 41680b10 418dbe5c 40f307b0 -> 41680b10 418dbe5c 40f307b0", + "c1bea049 c10e465c c06cdd90 c1db9e26 3f0a2140 41bc3880 c14f2d9c 421c92be c21dc0ba -> c1bee288 41219682 40fdeb6a", + "c228da88 c1c60f5e c182535a 41b0a398 4127fae0 bdc8c400 42098114 41a83c74 c16a3be4 -> 41b0a398 4127fae0 bdc8c400", + "c15e2dc4 4177a2d0 c1fe5d92 c1f97664 424458cc c153d830 c0945770 c184aeb8 c1c683e4 -> c182af37 4145b944 c19db521", + "41a46a18 41ee640c 413d1b8c be813c80 c23a0f56 c11baf7c 404b82f0 423422d6 423f25fa -> 400b9c36 419337c8 41f870f4", + "4228dc38 41ba2abc c1890bdc 4203070e c23f4a41 421c22b2 422061f8 c2128b22 4180b500 -> 422061f8 c2128b22 4180b500", + "c18d23b0 c1338f64 c1d44fbd 4200926c c21c354a 422de48c c149613c 412b1ca4 c1d8c59c -> c104ff44 40be1e08 c1a2d3f4", + "415f52c0 412d0700 4194c244 c2268534 c1babc2b c239740b 41eacd20 c1b0191a 4156c5bc -> 41ba0a5c c1b102ef 4104a148", + "41b9f07c 40269f80 c20570f1 c232545b c178a1f4 421d5e3c c232545b c178a1f4 421d5e3c -> c232545b c178a1f4 421d5e3c", + "bd408800 c00aa9d0 c18fff9a c0ae9230 414d7cc4 c18b22bc c0dea2f0 c13334bc c21ff3e2 -> c0beb7e9 409880c0 c1c7dd48", + "bffaf5e0 422382fc 4229f106 c2285a06 c191ce34 40cacf18 421dab30 40c32920 424229ca -> 41644444 bfb41e30 420e1267", + "c2157085 421b9ac8 4141ba18 c1c763fb c194cb0c c2354bc4 412abb6c c0145170 c1e3270f -> 4070fc38 c0af3c62 c1fd6d88", + "c2125df8 4199e1b0 41c49100 c1ee2767 41ee0860 c1dee5d0 41b79aa8 412895a0 4232a1b6 -> c0dd43f4 41ab625d 4064e078", + "41095410 c216bb62 c01b2560 c15b08bc c1e8ade3 c1dfe224 c20a76e3 c20dd758 c1006610 -> c18067a9 c1ee6efe c1cdde0c", + "c1ff3576 420be816 c2136cc0 c2032768 42074d10 423a04d4 c1f041b3 4130d454 420ee6de -> c1f041b3 4130d454 420ee6de", + "c20339a7 421f1fd2 c1aebc6c 42003cc4 c22d60b7 423570b8 42003cc4 c22d60b7 423570b8 -> 42003cc4 c22d60b7 423570b8", + "41666200 4244b850 c1a8f471 c0e24128 41e66ef4 c206c584 4143afe8 c2375b0c c2227474 -> c0e24128 41e66ef4 c206c584", + "4221d4f6 c17716b8 c0779cd0 c07a0c70 c246b523 c10acb84 c07a0c70 c246b523 c10acb84 -> c07a0c70 c246b523 c10acb84", + "c237d82d c1ac8c1d 40c2ecb8 c2366c20 c1598310 4204ff5c c22786a0 c21867c2 41c67d14 -> c22d3a0b c1e5c7eb 41e052ba", + "c234b76b 41966a64 4208a2d4 c2159b0d c1a2c2f0 c1c38f54 c1aa3c96 c156b974 4240ee2c -> c1c593f8 c16e366d 42034d7e", + "c16efa60 40bbca60 41f68648 41dc9bf8 c1ffbf71 409e3a40 41dc9bf8 c1ffbf71 409e3a40 -> 41dc9bf8 c1ffbf71 409e3a40", + "423511e8 c01fd8e0 41286458 c217b444 c1f2d76d c1f23013 c214cd86 40580960 c0a2ec90 -> c214cd86 40580958 c0a2ec90", + "42479cf2 40c8f8f8 42152014 c2319c04 c20e0216 c1da4c3d bf9430c0 c18b651e 41e4d93c -> bf9430c0 c18b651e 41e4d93b", + "c23a74bc 413bcd00 423fe8ae c235bd09 41da540c c20757f7 c1aef321 42117398 41fbafe8 -> c1aef321 42117398 41fbafea", + "40155e40 c236ae31 4219e516 bfe84160 bfea2f20 c0189320 41ec5944 41718a08 41990ae4 -> 4041380e 3f478548 3f6ea734", + "c12bfe68 c18d4442 c20f1c34 c1618fd8 4228161c c20a4b64 4241513a c1e5a244 c199ff97 -> 41806bb1 40fba020 c1d961b6", + "c23f297b 4244c4bc c173792c c2447ff5 4210e2ec c1d5a84c c2447ff5 4210e2ec c1d5a84c -> c2447ff5 4210e2ec c1d5a84c", + "c2157ef1 41385774 c1bc823d c206a34d c183c2b0 bef31e80 423ae47a 40edaba8 41870e38 -> c206a34d c183c2b0 bef31e80", + "42346fcc 41c43538 4206fbf8 41a307f8 42364b22 418e7410 c0e97b60 c215d324 413dd5b0 -> 41872afa 420c7f22 41887893", + "420870ec bedc9980 c22ca86f 41d74f48 41a85acc c01f08b0 41f4afd0 413f6c18 c1c8faa6 -> 41f4afd0 413f6c18 c1c8faa6", + "420bf8d6 41cea728 c07f2060 c092fdb8 40491280 419c6034 40d02318 41c30c5c 41795ce8 -> 40d02318 41c30c5c 41795ce8", + "c02a3500 c0d061d8 c23cf9e8 c0cfa028 c0ef20a0 41c750d4 c165be5c c1bd3522 c23e190b -> c15cef6e c1b4279f c229d4a4", + "41b75894 c1bb76c4 c0968588 411d8f6c 411817c4 421297e0 4176a358 4150e908 4095f250 -> 4176a358 4150e908 4095f250", + "c18b9a70 c1e4325c c2030d2c 41a696fc 422550b8 c173da34 42034132 c1f5c791 c1abe6bd -> 41fa2efe c1abb5d0 c1a57abe", + "c042a5f0 c1fd2d1f c179d128 41916674 c22c3c64 419294d0 c2474d3c c1160b60 c04bf4b0 -> c11c65c0 c1e9b8aa 4117b532", + "4117d048 41707b48 420f9a58 40562bc0 c1f03a0a 408793d0 423a83d0 4106d0e4 c19bb774 -> 41892fbe c18e20c1 c0548d2a", + "c1f2703b 42330bbc 400bb440 411ffb1c 3e1fea00 422dca22 411ffb1c 3e1fea00 422dca22 -> 411ffb1c 3e1fea00 422dca22", + "41d5d620 41a56748 c2068bce c0f452e8 c1c11444 c1bdfe1f c17b3110 403a03f0 4224bb8c -> c101b198 c1b4738d c19fabac", + "bf556b00 420f5c6e c1c9a8a4 c124f700 409216c8 4228b8e6 c242a471 3f5a2080 c14e870c -> c216f8ee 3ff45e72 40319210", + "3f3e6300 c1a4d191 c1cce60c 41ca2ac0 418c27ec c166ce18 41941bb4 c1ffd960 c2120686 -> 41a07f2b c1a518f2 c1fb919d", + "c1bb0d86 4070f570 41c279cc bfafaf80 400c9e40 41815c58 41a0ab48 4202af18 c2399137 -> bfafaf80 400c9e40 41815c58", + "4232dece c1b991f0 c0fdf840 40cccd68 c1c67f52 c217816d 41faf3e4 41c144b0 c1c51789 -> 418cb1d6 c037cf58 c1ff8e7e", + "c20ba2f9 c18c05cc 41c6c358 41d9a12c c1fd275a c0c2e630 41cc0ec8 c02ac270 c06d9570 -> 41d0358c c1388104 c08e1270", + "c12964ec c0ee37c8 4215f85c c1b30780 c1a56a1b c206df94 4178fea8 42359afe c219e077 -> c17fa0e0 c1186f78 c20a1472", + "c0306460 41f58920 3daa1400 c21e5089 c075c190 c1faa713 c112494c c1d07af7 42155640 -> c1d8fe02 c14eec0f c04ee6b8", + "422a9f14 c15b5c70 c19dd39f 410246a4 c22a8200 42316b84 410246a4 c22a8200 42316b84 -> 410246a4 c22a8200 42316b84", + "42081382 c1322cb0 c1d9fc67 3f8a24a0 42307c24 41e75b54 41cfe510 c1b7628a c2246015 -> 41b0df32 c147c278 c1f18c2c", + "406ac4b0 c2454459 420fdef4 41b5af9c 400a5c70 c12b054c c20c3b3b c197a6a3 4246bfde -> c181a328 c1410747 41efdd94", + "c1f4676b bf111200 3fc89be0 423aa980 c1799e24 4201a810 42189500 c1ee037f c1708244 -> 4220e3bc c1d26b0e c05dd4b0", + "41e9a364 c14af1e4 41ab870c c1d2fd51 c23b821f c216dd2a c1b3e7f2 41ac7548 c1d4bbcb -> c1be459e bfa1dee0 c1f26972", + "c10d2b84 4202bd94 421ac7e6 42012406 41aa0e60 40675d50 c182ac1a 40eeb010 c1e4c1e9 -> 41b547c0 41943412 c030bc50", + "c19b5359 c21982d6 c2054752 c1922e98 41ddb49c c23303ca c1922e98 41ddb49c c23303ca -> c1922e98 41ddb49c c23303ca", + "414c10cc bfe19200 40b7a250 4117857c c176a0dc 42152ff4 420d1e94 419cb3dc c121f440 -> 41b27558 3fff5be0 415b6318", + "419be344 c16e24e0 c0d3aef0 4121b3ec c206973b c1a60fbe 4121b3ec c206973b c1a60fbe -> 4121b3ec c206973b c1a60fbe", + "c10c343c c153c528 412bcf48 c2026429 c1c4bb61 41f64544 c1bd58b4 c19a8203 42435f34 -> c2026429 c1c4bb61 41f64544", + "41fd9904 418ca910 c1eaea51 c23b0945 c082c7c0 423f81aa 40e05fa8 422bb43c 42090ab0 -> 40e05fa8 422bb43c 42090ab0", + "41381a28 40bcb458 c2139c59 412a77a0 c17f3da8 c209ed18 c1cbd247 c202bed2 c1ae4440 -> 412a77a0 c17f3da8 c209ed18", + "423e71a2 c2134583 4210dada 3ff5ad60 423a71ec c17abf48 41a3c248 c1da5aae 41bec7f0 -> 41a3c248 c1da5ab0 41bec7f0", + "40dca8a0 421b7892 c12a21d4 c1ed2227 c1593dcc c201cb8e 4102d9b4 422a1874 4236ddee -> c104e4e2 419092c9 413a5d38", + "4111fdc8 c0413530 42056b42 419c1160 c2161a54 c0f9eba8 419c1160 c2161a54 c0f9eba8 -> 419c1160 c2161a54 c0f9eba8", + "c2185125 c0f2aea8 c223ed88 c1f5c7ce 420d5c66 c1d2a9e2 c1f5c7ce 420d5c66 c1d2a9e2 -> c1f5c7ce 420d5c66 c1d2a9e2", + "c246eff7 4194240c 41faf354 c044e350 c22d7b31 c219a926 421d0e50 c17b1ad0 c1f75f76 -> 3f919bc8 c2227698 c216ad73", + "4109f750 41b51bf0 c205e100 415e6f0c c1ce254b c20603dc 42228e8a c1900330 c1e3397d -> 41adf302 c1bbec4c c2000802" + ] + }, + { + "glsl": "vec4 cultmath_power_border_step(vec3, vec4, vec4, vec4)", + "tolerance": "ulp-bounded", + "cases": [ + "c2201cb6 4200f3c2 c1b1be9d 410b54c8 c128e108 408d7b08 41710c8e 41ab9074 421ea468 c21b6137 4012362c c1a16188 41d296e8 c205860c 422a425f -> be413d59 bf3e74d1 3f241965 00000000", + "c1e5bf5e c21e543d 4215af36 41f1f4c0 41e158c0 c1d71b75 419864dc c0c7a098 c22a15f4 400d56d0 40eadfc1 00000000 00000000 00000000 7149f2ca -> 3edc866a 3f55a57c beafe11a 00000000", + "bfacaec0 42219a38 421afe4e beba7600 c134f4d8 c233d1c8 415a7e74 419f8658 c24415de c1e940c2 400da599 00000000 00000000 00000000 7149f2ca -> bee3ba52 3f537a09 beb12f54 421c02d3", + "c115acd0 418c31fc c1204480 41e3b5a4 41346d7c c19585c8 4180216b 41aa8ed0 c23e06c3 c19fc357 41924f71 00000000 00000000 00000000 7149f2ca -> 3df704be 3f7e1221 3cb10b28 41f6444a", + "c1ed93a1 421e4c24 41d66a30 c1e185b6 3f786780 c22f8f6f 410a0f17 4174c470 c0731520 c1e8cf5e 41352d0b c0e32a90 417f5c80 c222f352 414f601b -> bf7112d2 3dd37853 bea3f611 40a8ceb0", + "3c084000 c20d10f2 418e17a4 c1e1f51c 41cdc558 41efe8b0 419d09d1 c1e1f40e 41cdc5c5 41efeaa0 411ad947 c1fbec7c c205f9a6 c1fc83fb 41e36066 -> c1fbec7c c205f9a6 c1fc83fb 41e36066", + "c1ed42c7 41df99b8 4152e724 c23e95fd c1fcfea0 417597f0 4162c507 c22fe9b5 40c95478 c22379fc 40e216e1 00000000 00000000 00000000 7149f2ca -> bd5d4115 bf0eef08 3f53ee53 00000000", + "41a25b58 41c6ba2c c223d6bc c247c84d 41c9fde4 c1bf078f 410ffb76 414f1c64 c1b16403 40b192a8 41893402 c1ccde28 bf0bcf00 42234eac 420a27d4 -> bf3f7957 3f1061f8 beb330e9 00000000", + "41c61324 421a72d6 c1d7a6ea c1f1a046 41e191b4 40f18c18 41872932 c1f19e6a 41e191c1 40f18e1e 411aacf1 c20fa1b0 4238a7be c1183b64 423b534f -> c20fa1b0 4238a7be c1183b64 423b534f", + "3d43c800 c23b903a 40848420 c20fc493 422fefc4 c2086ac7 417ffa1e c0dd8670 c1ac46de 40653b00 411ea36d 00000000 00000000 00000000 7149f2ca -> beb78385 3f4f2a57 beee5215 00000000", + "4184be00 c0abeeb0 c1ed0db6 41f20fac 423c3618 4194956c 4141a913 41f20fac 423c3618 4194956c 4141a913 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "4226446a 41842e70 42400d16 c20777dc 4236241a 4210ea40 4189b4f8 41bf12ac c0789340 c149fa7c 40fedf97 00000000 00000000 00000000 7149f2ca -> bf239fea 3f0c04a1 3f0a697f 00000000", + "42458e18 41b9fb6c c1869884 41f7f7d8 413668b4 423ea230 402c48bb c1cf6652 409066c0 c2047a7a 415a9252 41dda6f4 c1efafc2 414b9174 421aa369 -> 3f131a67 3d8e6868 3f50c1fc 40eddcca", + "c2333b2d c0420040 c22aa046 4230c386 42327e56 c210496b 410c3587 bfd7cb60 c200af62 41818440 40976851 41f84454 41d80c98 422f30f6 419ae784 -> 3ee2b922 3f3dc26c bf012335 00000000", + "422669f4 c1ec084a 41ab049c 41ac89b4 3e211100 41d861d0 417456cd 42133866 418637b0 4206eb9a 415edca8 00000000 00000000 00000000 7149f2ca -> bf25df66 bf34eacd be917b57 41b1768a", + "4230c944 c1bdc489 c1c157f9 41c3d130 423ab152 c0def160 415d0ece 41ce1664 c1550f1c 3f30d980 411077c2 00000000 00000000 00000000 7149f2ca -> bcaddc6b 3f7de1d7 be01a279 00000000", + "c1395c10 4153d188 c1425f94 c1db02a6 c0b115d8 c151e94c 4157deba 41beb21c c1e6c164 c1d6bf66 412ea55b c208569b 420b4ffa c245e88b 4213c715 -> bf625d1b 3ece10e0 3e72a437 41ba984d", + "409d6dd8 419e70e8 c1bbf245 c18834ea c23c72d3 c1e31221 413f8782 4162e6e0 c1dd82dd c049a140 3f097890 00000000 00000000 00000000 7149f2ca -> bf332f36 bedf0c1c bf10e259 00000000", + "c209e314 c1b3b9cf 42221678 c21da840 41f60fd4 41034764 415b6495 421e9922 c106bfa0 c20af142 3fcf8681 412a9c78 c1223938 c1cf1081 41e4394b -> 412a9c78 c1223938 c1cf1081 41e4394b", + "c2079595 c206718a c1658238 40c06dd0 41ab5be0 421362ee 40d8b33d 40c06dd0 41ab5be0 421362ee 40d8b33d 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "c129bcc4 c0f75520 c1603e6c 41540538 c119a274 416f39d0 4189a064 41c4412c 41f5dcf0 c19351a3 4197535d c0f8cf88 41fe0a78 c16773c8 41cb49d2 -> be57b6e9 bf40d424 3f1f83a6 413c35a4", + "c1252888 c05651c0 4014c760 40925028 c222a604 41aadddc 40e1491d c1353ca8 41c90b10 41495298 3f8159c3 00000000 00000000 00000000 7149f2ca -> 3e6e8ab5 bf76c584 3e03a953 00000000", + "c1e5ec8a 41f324f0 c23fe69d c1e4f68b 42456a0a c183ecfe 4167331e c1e4f68b 42456a0a c183ecfe 4167331e 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "c23dd1eb c17eb378 c191cb62 c234f4dc c16a103c 420b3746 410479fd c234f3e5 c16a1026 420b3709 4196a368 00000000 00000000 00000000 7149f2ca -> bf787999 bcb10d0e 3e757502 00000000", + "42404dae c1dc7932 bf1e7880 419beef0 c23de91a 40e9bc38 419dee3f c232f059 c1ba4e77 c232c901 4113f145 00000000 00000000 00000000 7149f2ca -> 3f3ef35c be8fd57e 3f1a9a22 425f0a18", + "c1984928 c13f881c 41bb5330 c22950a7 40fe6b68 c1e78517 405f2fec c176b490 c0fc05e8 41b22378 41885f5f c236c613 413d8e78 c21b1e79 416ff31d -> bee5bb4e 3e871c91 bf5a94f9 00000000", + "c0acfac0 c213ea53 c20cfbd2 c22c1206 40dff3a0 c2452e40 416270b7 c22c114e 40dff2ee c2452d61 418a6cfa 407f7820 4212e998 c1fab0ed 41ed312b -> bf227264 3d9d2650 bf44e0e5 00000000", + "4188e484 4209a56e 41cfb908 41d32cfc 4240dcfa 4235d3ea 418c116b 41d32d63 4240dd8c 4235d454 41740bf4 00000000 00000000 00000000 7149f2ca -> be8c888f bf4733e5 bf10a06b 4749be47", + "41c8f40c 422a39fe 41a590c8 41a57994 420a5982 c187b578 41433288 41a57994 420a5982 c187b578 41433288 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "41d67ba4 423eb700 c239e6cc c1fdcb3b c23f91a1 c2290d12 4190c8f4 c15312bc 4220062a 422ad832 41825e24 00000000 00000000 00000000 7149f2ca -> be197813 bf35f9f1 bf2fec0b 00000000", + "c1ed4c39 4233b172 c189e73e 41dec568 c1f31154 c17bf794 41857731 c240573e c225a2c8 41a156a4 417f9dd9 42012d3e c2151381 c1928694 422b84d7 -> 3f65734c 3e054485 bed90ec5 3fb108ec", + "c19d34e9 406c77c0 41219698 40eb81d8 41f5eefc 41167488 4062c809 41b3bf70 40b01580 4104df88 418be1c8 00000000 00000000 00000000 7149f2ca -> bf0365e4 3f5b7f69 3d18e80b 3ee014ce", + "40cf1f80 c23cfa73 41a619a4 4152a5b4 c1f17dbf 4234066e 413cafea c171b5c4 41fb51e0 c1dba63f 3ed70118 00000000 00000000 00000000 7149f2ca -> 3e91e3f2 bf1eefec 3f3af5b4 42252778", + "414511b4 c20d62fc 41c67e48 c1ec1b0f c132009c 41c6c9f0 4153d5fa 41cb75b0 416d5cc8 c15619bc 4112268e 00000000 00000000 00000000 7149f2ca -> bf43ebbe beb92261 3f08512a 41543325", + "42470382 4125e7b4 c1bcc951 c13402b0 421b1c18 41c949c8 40890f11 c1a5fdce bf886cc0 c196cac8 413bd651 00000000 00000000 00000000 7149f2ca -> 3e21c6c5 3f29a790 3f3b659d 00000000", + "41a033cc 41cd47cc bfc4f200 3ffda800 c2057d28 4205d2ea 408b0e5d c1eb6637 42268cbc 418117f8 40a4b6ed 00000000 00000000 00000000 7149f2ca -> 3ec16751 bf66f4f2 3e554e57 00000000", + "c212782e 42060268 c206b83c 4238933a 422a8cda c0278040 41811840 c1d464d0 bfe57480 404a6a70 409c71f0 c2448e91 c00d9d50 c12f62a0 41d587af -> 3f59ee26 3f053319 bd8a9fca 00000000", + "40c97e08 420712a0 41df3c4c c1fe7324 c21daf03 c15571f0 40c7792c c1fe72c9 c21dae1b c15575f3 40d606fa 41c646b8 40e12740 3faa4960 41a31069 -> be057e6e bf2a2b03 3f3c525b 00000000", + "c0d23d08 c2141aac c242ce3c 40ba80f0 c208ee98 c1654d08 4183d09b 40ba80f0 c208ee98 c1654d08 4183d09b 41fa0920 41fdffac 42000830 4224799a -> 41fa0920 41fdffac 42000830 4224799a", + "bfaea780 c2102aa2 41327c10 41df9998 42003bdc c21d1b87 41200d83 41df9b79 42003ca2 c21d1c4b 41698bf8 00000000 00000000 00000000 7149f2ca -> bf27482e bf09b880 3f08545f 00000000", + "c2466d2d 4112c330 c2258044 c20370f0 40e2c088 4246efc8 40f7d4b0 c2037054 40e2c056 4246f0c2 414660a7 c18c7a18 c2020616 c103b1c4 41cc1537 -> bf077e38 3cadb583 bf5922e4 00000000", + "c18715dc 419065a8 c1e757a3 c1b8396a 416af9a0 41fa1138 419f95e3 42375f10 42463a04 4229b1b6 419602df 41c1e7c8 41b85c4c c1aee316 419e4ef4 -> 41c1e7c8 41b85c4c c1aee316 419e4ef4", + "42216e70 c1abb782 c2380876 c1a3fc5c c21c0a94 4235eb6a 413f2456 c083fac8 4207cc5c c18a667e 414525bf 00000000 00000000 00000000 7149f2ca -> be2bbadc bf3f4d46 3f249c20 00000000", + "c1e1a2c9 41f61d0c 41d4a928 413fb7f4 4203642c c1ba7cbc 40094827 417f58b8 c244a730 4185fe2c 404427a8 00000000 00000000 00000000 7149f2ca -> bd324b5b 3f65ce6c bee081de 41bd3bcc", + "4091e868 41806b24 3f109a00 423de178 406c8fc0 420f1d32 4101a10b 423de1bb 406c8846 420f1c9a 40a50d61 00000000 00000000 00000000 7149f2ca -> bea79469 3f159a39 3f3e1727 46c33bb1", + "c1d8c606 c2169b87 c19c4760 41487fe0 bf55d280 c16a67b8 413f940b 414882b5 bf55a6a8 c16a6bb2 415ae055 00000000 00000000 00000000 7149f2ca -> bf018032 befa9b37 3f35d641 00000000", + "c2222bb9 42045b0c c22bc808 c19178b7 c17fb740 c1ee8061 41075701 c19177a5 c17fb99c c1ee810b 4144eaea 421e15a0 413c94a4 421c5edc 41c19f2e -> bf1ec589 3f2eff18 3ec50410 00000000", + "414e00d8 c1b11a98 423f0d2c c202aae0 c1ffdd3d 41f90850 4113be4a 421ec0ce 4204db2c c22bffb2 417d1844 41b50bcc c092bc58 c20455f8 4180651c -> 41b50bcc c092bc58 c20455f8 4180651c", + "40c8de78 c2468f28 42319b54 c1b73052 41709db8 c236ef96 414553d9 c1b72e7c 41709cc6 c236f09c 4131e21d 00000000 00000000 00000000 7149f2ca -> bf28765f 3e2d7afc 3f3bd151 4623fff0", + "42082f5a 422d5fc0 c16022b0 3f682b80 c2347465 c1963f61 41876dca 3f682b80 c2347465 c1963f61 41876dca 41363128 41c62eb8 c1c74c72 42046ec6 -> 41363128 41c62eb8 c1c74c72 42046ec6", + "c0a86668 c197481d c2418d27 41ad3dd4 c1be0dc9 41d0b57c 40b5ef39 c1773604 40ffa4d0 423a9264 402e7a17 403e9f40 41d6e77c 4209b550 41b10b08 -> 403e9f40 41d6e77c 4209b550 41b10b08", + "c19fba9b c1cdd3cb 4182ac38 c206f702 c1e16240 c18e2e1a 412d3734 412acd98 3ff43500 408b6488 3e02af48 411a5328 c0d02de8 c238ae87 41f6efca -> bf43f28a bf04b462 bec33e93 40a6a090", + "c1bf8a84 423acd5c c1d9a4ca c1a6a66d c2295444 c200da96 41161410 40acaf70 c23655c5 c0c471b0 416dc069 00000000 00000000 00000000 7149f2ca -> bf34d9d0 3db35ca6 bf33cb91 41ba0506", + "c22fad0d c0f6d160 c213c46a c1a53a07 422d552a c1850d08 41811c7a 42145c34 c20f5cdc c20e3c77 3fc5e5ec 41ecd6d4 4026ac60 c1854ccc 4207c1a7 -> bf141c9c 3f4b14b7 3e4232b2 41a27af8", + "c1c30f12 41f348a0 4228a9dc c1bab56a 42040f04 c1b45160 4177a626 c1955f2c 410931f4 c1e819d8 407f4728 00000000 00000000 00000000 7149f2ca -> be39e32a 3f735b31 3e80e7ad 41f9ac97", + "42210716 c1a4a37c 41873640 c056e740 c1af7f60 4172ea90 402fba22 c23d424e c21eb9d9 c2305dd3 3f42c674 c1935fcf c242ad8d c1f21f6a 40f805ad -> c1935fcf c242ad8d c1f21f6a 40f805ad", + "c01f98a0 c1e59a81 422e114c 41ac9338 c2090c05 41c23cb0 4187fe55 41ac9511 c2090c81 41c23c68 410910ae 00000000 00000000 00000000 7149f2ca -> bf60b17b 3eeb9e82 3e08cfa7 47ccdff2", + "c16a3a80 3f7d8380 c1c5e288 c118d560 421062d4 bf3dc700 4196671a c118d2d0 421063bb bf3ddf24 4140a9d8 3fb7dd60 c1bef646 40f15860 423ee81b -> 3fb7dd60 c1bef646 40f15860 423ee81b", + "41b3c2ac c187166e c2071f49 c1aada90 bfdf3540 c20baf18 4054fbf2 c1aada90 bfdf3540 c20baf18 4054fbf2 c216b3aa 42239c4e c1ad00c5 419f2607 -> c216b3aa 42239c4e c1ad00c5 419f2607", + "c208464b 4223ab2e 4233e60e c1b121dd c2375bbe 41f14abc 4169cf10 40d766f8 406e6a90 41cb56f0 4069b5a9 00000000 00000000 00000000 7149f2ca -> bf006b5e bf5c73cc 3da8cd7e 00000000", + "420f834c 412e3a9c c20a8b19 c2106408 42450020 c22f1e28 4177b636 c18ecf0e c19665c5 41a6a160 41283ba4 41be2cfc 4105b258 41798d18 41243b21 -> be4375b4 3f363d56 bf2d05e1 3f9f6028", + "41b9c26c c1b8da1d c1313b34 4211189e 421d7f1a c16b31a0 4161e2ee 4147b170 c19ce479 c1e18e70 3fc795ce c1cf5d9f 41c7c534 c148ae40 41b33ffb -> 3ebb5c6c 3f683e35 3e548880 00000000", + "c2207efa 41a75c80 c22c94ce c1e146ee c1ddb7ff 417e4b70 4182a63b c1e1464f c1ddb9db 417e4cb5 40b32308 409291c8 c19f9331 c19fc6f3 421f3893 -> 409291c8 c19f9331 c19fc6f3 421f3893", + "c244c0a6 bf7a05c0 c09ff398 41836850 be9d5900 420589fe 40b6646e 4166f050 4188b630 419b4174 418e4b3c 41e3e8d4 40abb5a8 c06c7040 42090ba5 -> 3db61c36 bf46c577 3f1fb626 00000000", + "41f590ec c13944d4 41e98c38 c0834950 419bfdf0 c0a29e78 3fca0bfa c07810d0 c0c68348 c21de3d9 40e3b914 c183cb28 c1601734 c212b77c 42320e5f -> bbacff89 3f19409c 3f4d0e4a 41ec94b5", + "c0e6d0a0 c241f27a c20017f2 420a206c c244a2bf c2026bb0 4199aeda c1ebc55a 41f18cac c13888d0 408714a2 00000000 00000000 00000000 7149f2ca -> 3f1d6433 bf432352 be4f45b9 41db8ae3", + "c1d5a8fa 410e1250 4067af20 c21df13e c0a13010 c1f506fd 40d53f55 4135d9a4 4195436c c1b3d03d 40178f2d c2423ba1 bf2f8600 41e02e0c 41b17db4 -> bf65a22a bed600ee be133efe 40cf79f3", + "42435598 42249fa6 c23ee845 41408584 41e4e448 c20edffe 41397e59 c233da20 424598e2 4190a4d0 406bc50d 421c6954 c1eb8b78 408eb950 40e177ca -> 421c6954 c1eb8b78 408eb950 40e177ca", + "4182cfb4 c233a380 41c9d5a4 410cbefc 41fa68b8 c2419cb2 4110c2d6 c21c1618 c216a4f5 c1a9f0b8 40993ec0 c0a3aee0 c1f40b2e c0ebb870 4200b68e -> 3f0ac8e5 3f4826e3 be9da872 00000000", + "419a11ac 411715e8 422d8d50 c19dc07e 4240590c c1f31676 400e051f c23b0e5c 423d3dc8 c215434c 40295473 00000000 00000000 00000000 7149f2ca -> 3f77e48f 3ce3cac7 3e7e1207 4289cd30", + "c18c2484 42104328 c1b7a62e c210c002 c0b90678 c243c025 401d0557 c210c002 c0b90678 c243c025 401d0557 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "4234247e 41c74808 c213f61a 42303bf8 42143dd6 c12ad4f4 419728f2 c23ca9a0 c0f721b0 3fc00e00 4051365d 00000000 00000000 00000000 7149f2ca -> 3f642b90 3ee0061d bdf3aa5a 424e35d1", + "4227e82c 41fd4390 c1cd9365 c0982220 41985424 42299fcc 414865ce 4144524c 4200cb00 c1ef0a91 419e5052 4190f7b4 c1b2706d c2190e5d 42211776 -> be672471 be32a348 3f755c99 00000000", + "41570eb0 422ea35a 4169b7e8 41c5c34c c20f9d88 c19a63aa 417b79f5 41c5c34c c20f9d88 c19a63aa 417b79f5 420021fe c22fe4a4 c1515730 4192e6f0 -> 420021fe c22fe4a4 c1515730 4192e6f0", + "c23bc3ae 422d023c 421ad398 423b920c c1f87c07 c2197d06 418479ed 423b920c c1f87c07 c2197d06 418479ed 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "4207d590 42088266 c1c8bfce c116f8cc 41214328 c194f48e 405eb3cb 406c3090 c1abb6ff 4217fe6c 413fabbe 409e3cd8 413b4680 4207d4ac 4175dca0 -> 409e3cd8 413b4680 4207d4ac 4175dca0", + "c23c20f5 c0cac048 bffd9520 41760a18 41542408 c2260843 40551991 41760a18 41542408 c2260843 40551991 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "418b036c c1ab9b9f 41651d78 41b7b790 421270ec c22f7b14 405587b7 41b7b96d 4212700f c22f7c04 40d739fd c22603ee c1905c8d 41f5329c 420451de -> bf17143f 3f0bfe5d 3f18077e 00000000", + "c1fa653c c196c111 423734a4 c2144ff2 41c42fa0 c232fc30 40bbf12d 4234ebb8 423d64a4 41dffaf8 3fe8f444 423b47c8 c1d8e408 c244fbf2 41af1981 -> bf3bcf32 be5053a7 bf25fc43 400704c2", + "c1ac718d c1396f60 c1f7efde 42015608 c1efaf22 40c165a0 417d483e 423f1c82 421f2922 4204f6f0 404bed7d c19cbe3a c1fbbda1 c226a5c6 4134cefd -> c19cbe3a c1fbbda1 c226a5c6 4134cefd", + "41a03a20 3f0d2d80 40b5a790 c1b35903 4181416c bec48000 41489510 c19b4bf5 408f7b10 bf4a3900 4120b059 00000000 00000000 00000000 7149f2ca -> be7f3f70 3f77c4fe 3d09ee07 00000000", + "42210628 422afb50 41d65924 41cfc0f8 41834dcc c2369334 4193ed11 423dcf38 c229c480 4233068a 41951194 00000000 00000000 00000000 7149f2ca -> be48021e 3f08fc23 bf526816 40d77de4", + "41bfafb0 421ccd0c 419857a0 40981448 40787ba0 c22e4a4d 4059331e c1e187f8 c1d4fb84 41e71448 4096427c 4191c770 c02e7fc0 c1932e57 40e40c30 -> 4191c770 c02e7fc0 c1932e57 40e40c30", + "c2459858 c0e6f4b8 c184b0ec c22e5e84 c23b7d20 41ea22f4 4182b202 421d8b44 4240c32c 40e2a640 41433ae9 42301110 41f80604 4207f616 417c6fbe -> 42301110 41f80604 4207f616 417c6fbe", + "3f413680 c1b6b78d c170a838 c22c5109 c1e1b965 c1ace538 4196c42e c20da6f0 41c1a550 41822a04 41193261 42390746 c206d1af c239d1bc 4078061c -> 42390746 c206d1af c239d1bc 4078061c", + "41fabf28 3f610580 42159204 4202cb2e c245793e 41ebed24 40c803c6 4202cb84 c24579d2 41ebeda5 419f2edc 42384d58 41bae060 c06545e0 418e8445 -> bef0b722 3f4f208f beb4895a 00000000", + "be1d3100 c20982d0 4241d198 421a4696 423f09ca 416b52c8 4180de60 41c66468 c1d01ef8 42233fc8 402e8889 00000000 00000000 00000000 7149f2ca -> 3e317453 3f6daf8e bea834d5 00000000", + "419b4a8c 41d24048 c01bc120 c1ce386d c1e6c6e9 bf8d25c0 414b2013 c1bfdb0f 41d391c0 c241bfb1 415775a0 c2474613 c0e20ef0 40e41520 42103e3f -> bcca0755 bf426a13 3f266e45 00000000", + "c2433173 c19814d6 bf6bde00 410e5048 c1656744 c24331bb 4191a534 41ca1d78 41230c1c c24012bc 409caa5b 00000000 00000000 00000000 7149f2ca -> bf0e0f4c bf54dc0a bcd8ae92 425a613b", + "c01d85b0 421cff78 c07dcab0 42473cb0 423e4fdc c1e1d2e0 4097afab 41753ee0 420df65e c0137730 4167d5ad c1e203c2 c1f5a3c6 c084aa38 42297c78 -> 3f450869 3e8a2395 bf14221c 00000000", + "c2231dc0 41c265c0 c1d443de 42126160 c19339fe c1f49e7e 40aae232 c1be546d 41e6f204 41ee537c 410d3764 00000000 00000000 00000000 7149f2ca -> 3f1e64a9 bef7fc70 bf1e5877 00000000", + "406a6e90 c104278c c23bd2cd c22b268c c21057f0 41ff4050 41114a72 c22040fd 41c59954 408925b8 41267f81 00000000 00000000 00000000 7149f2ca -> bd26fbd0 bf68dfa1 3ed3a1b7 00000000", + "41a9b68c 4170a8b0 c1b4a0cd c21324b2 417fb370 c23e9a31 419b335f c1db6c1c 41955d44 c2222a47 3f08eb7d 00000000 00000000 00000000 7149f2ca -> bf46b60a be646a4e bf16f5e0 00000000", + "c177a9a4 c1efe3ad 41ad6b0c 4101d910 41ac9c98 417ca198 40b049a7 c2140585 c21473d8 41db87e0 4116d0a7 c105b014 41d2c1d0 c171f4d0 41c2a4cd -> 3f1a225c 3f487c3c be1f3679 00000000", + "c23b81a2 4219fc52 c1cb214f 4221e8a6 41de1bb0 c1ecc4a3 414822e1 c0beb3e0 c1cd4e40 c1bff630 414759c2 420ba6f0 41aee928 c1bcb18e 41eb756b -> 3f276a1e 3f409d84 bda18989 00000000", + "422f4074 c093aa48 416d3968 41909804 41165480 40ebedf0 414535e4 41909804 41165480 40ebedf0 414535e4 c109e2d0 c154e940 c09f1fe8 41defa14 -> c109e2d0 c154e940 c09f1fe8 41defa14", + "421a3348 3fb7e100 420b0692 41de82ec 40d76858 c23613ac 3fe467ec 41de82ec 40d76858 c23613ac 3fe467ec 4221f038 c1f6e714 421c3af6 41db1cdd -> 4221f038 c1f6e714 421c3af6 41db1cdd", + "c1a6546c c246f165 c08ec9b0 c1dcc6b6 c1fd0e8e 41507fc0 3e90d2e0 4208bb22 c222c216 c0dc7330 413ff255 00000000 00000000 00000000 7149f2ca -> bf714f45 3e0d8314 3e9b9d98 418b8349", + "4189de64 41f4a580 41a48484 4181d01c 418cd7a8 c1e3ced7 412c665f 4181d069 418cd629 c1e3d088 4102f201 419749d0 c13c3ae0 41b305e8 40fa579f -> 419749d0 c13c3ae0 41b305e8 40fa579f", + "c1df4d62 4219a03e 4215252e c0987838 41cb8f74 42016ac6 414d14f6 c0987838 41cb8f74 42016ac6 414d14f6 c2133299 419a7ae0 c1b75f46 422d5a06 -> c2133299 419a7ae0 c1b75f46 422d5a06", + "c1a0ff26 418f0218 4231c76e c23d1717 c1e8711a c1a0b318 40c9543f c15ee45c 413f9a5c c1f2884c 41705088 00000000 00000000 00000000 7149f2ca -> bf1e816f bf430e96 3e4283d9 00000000", + "bfd8ac80 4206569a c22e602d c130d760 c18113a0 412c1b54 41996eb0 c2406dac 4204d528 c1c72c27 408b6857 00000000 00000000 00000000 7149f2ca -> 3f051b0b bf313f32 3f00126d 00000000", + "c1290bf0 41133d44 4228ec9e c141a9a8 c06d83f0 3f2b1340 40fe6d4c c141a720 c06d88bc 3f2b1556 419ec069 00000000 00000000 00000000 7149f2ca -> bf671974 3edaf94d bd3e716b 00000000", + "41d3e818 c0a164e8 424387d6 41ddc7d0 c1b05fd8 4198e100 40dd69c3 c217a1f0 c0554bb0 c0e74700 416a3554 4218e31e c1b2cd2d 4225a596 423ac25f -> 3f65ad88 be82fb43 3eb85652 4222cdaf", + "c214e1e0 418ae5e0 42457bf4 4240b152 c2094129 41981f1c 40e566f8 4240b152 c2094129 41981f1c 40e566f8 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "41b7c1fc c1718d9c bfb4d020 41db2c5c c1ed2aef c20e19e6 41674a57 c192cba7 41f89020 4221a408 41296ba3 00000000 00000000 00000000 7149f2ca -> 3ed9fb4f bf10a85d bf34eae3 419fb19e", + "416eb4c0 c14d04ec 4049b7f0 42147ef2 422b11be c20647d0 407a9f26 c2043c74 40c44c18 c19c256e 40ad8101 c216eec3 c2479f0d 4242fb54 41cb798f -> 3f5f73c5 3ee944ac be32f4be 00000000", + "c1efe73e 3f6eaf80 41f19014 42439e80 3fd72780 c095cb18 410ac268 423f639a c227a6b5 c20e7ad9 416b48f2 c160ff94 42382e90 c245865f 42327fdb -> 3ca20728 3f50b9c5 3f14228a 422db387", + "c1c882e5 411edb00 c1c04a4e 41451810 c20d6ecd 41b803a0 419e8696 4218e074 c10e9df0 41a8e328 4173e563 00000000 00000000 00000000 7149f2ca -> bf32e552 bf36a6e7 3d50f5ef 4141b4e1", + "bff9f8e0 c20797de 405669a0 c1c0dbc7 41d2a244 c237cd9d 419d0484 c1569e10 c14f5fdc 41b28998 410db53a c2378745 c23eb3f3 412ce514 41749295 -> be09c238 3efd1257 bf5bdc43 00000000", + "c191efb0 c21ead3c 41ca2284 c0a79c70 418c51f4 4217fac2 3f2d727c c24533d6 c21de788 41a56b84 40f6e40b 413845ec 423cc418 c21f529a 421e2c57 -> 3f183525 3f44f3eb 3e6f47ba 00000000", + "c237cf84 42432cc6 c18f3ef8 41e2957c c1c71bfc 41524bfc 4018638f 41f90b54 c224d7d6 c207c860 419865bc 00000000 00000000 00000000 7149f2ca -> bd666082 3ea76abc 3f717fa4 41a2e248", + "c1bbe0e0 c24170f7 c2310ea0 418e7044 c0ecc600 c233780b 4122d3b1 4183836c c0f24848 c1c93079 41925f22 41570c70 417fb3c0 c22e4524 4209b7e3 -> 3d8d7e6b 3c0eb19a bf7f60e9 3e65a17e", + "c1d84002 42311b22 41f056bc 41aaae58 417e6b38 c1ed9478 4154d5b0 41aaafee 417e6dc3 c1ed9391 41916452 00000000 00000000 00000000 7149f2ca -> bf368e33 bf125bf0 becfbc4c 00000000", + "41299910 c13f1b04 42321ee6 c188d7f2 418f6270 4178b740 418c4f2b c209045a 41dc41d8 423c9dbe 40ab0d19 00000000 00000000 00000000 7149f2ca -> 3eebe132 be842bf8 bf596419 4191c218", + "422d4812 c21a05c6 424029fa c20d3c0b 4182e264 4224cfde 3f5a6ced c23c07b5 4109795c c15e7b18 406cf9e3 41d598e4 420b5232 42092d16 41b40c2e -> 41d598e4 420b5232 42092d16 41b40c2e", + "423d6276 42077ea6 c08b5fd0 c12661ac 41f61020 c1b27c92 418a5d0f c1265f10 41f60f3c c1b27e21 40252ea1 00000000 00000000 00000000 7149f2ca -> bf168208 3ecd7bdf 3f33cc63 4803c639", + "c22fc382 41ed00f4 40d87150 41d10fb8 40d37660 c23bb4b9 4174673c 4228a590 418a3c64 c1bb81f7 419a692a 00000000 00000000 00000000 7149f2ca -> bf071a60 beb3e3a7 bf45f8fa 3e895a63", + "422f071a c10780b4 3f9b1280 c214fca6 c1f87ad8 4130f214 3fdf0d6c 41f17590 c1549ae8 c226510c 408deb23 420e6922 4158389c c2027f2b 421d8249 -> bf45930d be504c16 3f1a3c4f 00000000", + "41e33fc4 c1d97bbf c149c158 41848a7c 418af320 40ac2cd8 4042788f 41848c65 418af126 40ac272f 419f8b68 408a11c0 c1e2f58e c22cdd6b 41f3ce3a -> bf1e2bfd 3f23abb0 3eea58bc 00000000", + "c19b7628 c1fedfdf 41c5a4e0 c243d482 41a80b54 c1270b80 413d1424 c243d482 41a80b54 c1270b80 413d1424 c1906a21 40b2c770 c02ae0c0 41c3074b -> c1906a21 40b2c770 c02ae0c0 41c3074b", + "c18a5d3c 40890838 c20189f4 c0741e20 3fc92080 c2314918 4195a1c5 c0741650 3fc906ac c23149c1 40dbcaa9 00000000 00000000 00000000 7149f2ca -> bed92159 3f33754a 3f12c7b2 480372e2", + "c222b02c 419583dc 40acc518 c1d7a0cc c20a98c9 c1fa449c 40366d46 c212ddbe 413db18c 42065674 410357a1 417b4e70 4196e3a8 414e6f64 408e5b05 -> 3df8a82f bf140e58 bf4e8460 00000000", + "423bce2c c1f4fa16 4226ecae 4061cef0 c1b95244 c20374c8 410d630c c1894908 416dc540 bf3870c0 401cba19 c1248500 423eb432 bfdaf340 419f7824 -> 3ec47545 bf348b07 bf189d5d 40a282fb", + "41a6ca00 41a59524 41d6efc4 c14b6290 c207659d c23075c6 40a916fe 419c2554 421a105a c241ad86 41603847 00000000 00000000 00000000 7149f2ca -> bed0000b bf6982a2 3d5e3c42 00000000", + "423bfb14 c17b1f20 c1a870d8 4235a68a c1c01646 41a97b40 40408204 c2070a6d c21d4385 c21aff01 4069c495 c1483dfc 41d74a44 41c31ccc 421bc08d -> 3f49bac7 3e1bfcb0 3f18b5d5 41dc4002", + "c1320e38 41e0c134 423cc324 41cb70bc 4110fb7c 4171ec68 3faf7c05 41cb70bc 4110fb7c 4171ec68 3faf7c05 41d9a728 400228d0 c1dd3348 41d9195d -> 41d9a728 400228d0 c1dd3348 41d9195d", + "41bed3d8 c159b698 c004fb20 41921180 41e553c4 c1a835d3 41261714 41921180 41e553c4 c1a835d3 41261714 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "c1c8fad4 400280a0 c1d33084 4051d180 41dea7bc 4221517a 412760ba 410e0a10 c2383c2c c193e304 4106ddda 00000000 00000000 00000000 7149f2ca -> bd726928 3f47f191 3f1f26a2 00000000", + "c0a1e2c8 c210d145 41e5d168 c0df7160 4101fa84 40c6bce8 40cd695e c0df6a7d 4101fbd8 40c6bc17 411bb54b 00000000 00000000 00000000 7149f2ca -> bf6d66bf beb72264 3de125c3 00000000", + "c2379d80 42467d50 c22cb875 c15140c4 41e17140 420fd402 3fae9cfa 3fe43d80 c2070c62 41313b68 4136b584 c19b2c14 c1b441ff 419df9bc 410b8d90 -> c19b2c14 c1b441ff 419df9bc 410b8d90", + "4131fb88 4231b8a4 c214a487 423d11f0 c20914b6 41f17578 4054504b c1d525c6 c05360b0 4180a810 40621466 00000000 00000000 00000000 7149f2ca -> 3f688a71 bec2dc81 3e317375 00000000", + "41e172d0 41848c58 c13cf9d4 c243d950 41bab3bc c237d082 4167313e 423a7880 c1aa5fee 402dfe10 408e5127 00000000 00000000 00000000 7149f2ca -> bf529dc2 3ec4b5d2 bed68132 00000000", + "40ecc458 c183ad6e 421e48da c1258888 4147355c c230e6ba 41905fc6 3f3ecf40 c0e33200 40e0faf0 4187c223 420b28b0 c1f4ad24 42077cdc 41a9e1b2 -> be4aed33 3eb2d951 bf6a7286 00000000", + "c18ca250 c1049cf8 4223f8e6 41ad8dc8 c1a399c8 42380132 416b3c69 41ad8e89 c1a39b0a 423800ed 408eb7d4 00000000 00000000 00000000 7149f2ca -> bef70ec9 3f4e1846 3eb0a717 47fb4a43", + "41ba34b0 bfdf4f40 c22a40d9 4206cf40 4208fc9e 4124eb04 40af8b1a c1fb346e c1e9be48 c187c63c 411c6637 00000000 00000000 00000000 7149f2ca -> 3f2f9412 3f2b28e7 3e9323e2 3f352bd3", + "41e3e0b4 4034a620 41b6e06c c08415e8 420f364a 4236c084 40ef489b c21aaf66 41b937dc 41b9dd10 41489f72 c188cb8a c220e7ec c204c607 4114471e -> c188cb8a c220e7ec c204c607 4114471e", + "c0587710 c07e7c20 407adb40 c23effe2 408b4498 41b3329c 419a7c7e c23effe2 408b4498 41b3329c 419a7c7e 423b25d0 c1da324e c1c704a2 415491b6 -> 423b25d0 c1da324e c1c704a2 415491b6", + "42332a00 4235bb24 c176c43c c20907ba 3fac4c40 3f08ab80 400909a6 c22aead0 c017b120 411cb970 4189e362 00000000 00000000 00000000 7149f2ca -> 3f25ad9e 3e915ab4 bf351ef0 428cac8e", + "c191106a c22ccddd c1f87afc c0cc16d0 c1946493 c1d5b194 4102ab52 42365852 c1e18ce8 c1da684d 4127f6a2 c15e2e50 4214313c 4226bc4a 4237ed5a -> bf7baf8a 3e3adad0 3c36a5b3 42041abf", + "41375980 c1bc22d0 c23fc67e 41b2511c c1fcb71f 41da8104 41699ada c18caeb0 c20b5527 c1da1df0 4030d7f1 00000000 00000000 00000000 7149f2ca -> 3f16d95d 3d44571a 3f4e7865 00000000", + "414ec8d0 421a8902 c2097390 c15a049c c20b120a 4157c5cc 4072f3ac c2194324 c1c1693c c14e75fc 40dad376 00000000 00000000 00000000 7149f2ca -> 3f27d676 be8fff5a 3f336533 00000000", + "c205330e 4208411a c231c57f 41aaa930 c213d6ba c080ca60 41591078 41aaa9be c213d6b1 c080d009 4096054a c116afa4 4111d184 413fe700 4247f065 -> c116afa4 4111d184 413fe700 4247f065", + "41702a98 c10f19e0 41d2daf4 411365e8 c22db46b 41136998 40d9a6a1 411368a0 c22db4e1 411369b3 411ffe85 00000000 00000000 00000000 7149f2ca -> bf53c3dc 3f0f9c5d bd0370be 00000000", + "42368b44 422e514e c0b20f40 423283ce c165d404 421d8c16 415abbdb c1da2bc2 c071abe0 c235b819 4006c76f c23f7e6d 41d614a8 c0893880 42085be2 -> 3f24cb06 bdc22458 3f4265b8 418d7b23", + "423069ba c1e87f8f c1d31961 401e3620 c1f60067 41df1038 3e0c0119 c13eb520 42057096 4146ad8c 41181974 00000000 00000000 00000000 7149f2ca -> 3e5a513a bf7323bd 3e6a9d3b 41df5bd0", + "c1f9b538 c158397c 41823714 413f952c c20db4a2 c22ac939 414025ba c0fafca0 c20674ce c219fc04 415a256f c1909c95 409aeaa8 41d8c628 424087d0 -> 3f7970a7 bdb67eaa be537b58 00000000", + "c192cc38 423d1122 3e705e00 c1cfa9ab c21db032 422ddd4a 3f997c78 c1cfa93d c21db095 422dde41 41430b03 420742a2 c21eeca8 c165bae8 40e6a30e -> be4f4485 3eba8a78 bf68b47e 00000000", + "41ca88ac 4209ce98 40eabe20 413706b0 42154e16 c1d7aa74 40963917 4237b24c 4187cac8 3f69da00 417df404 00000000 00000000 00000000 7149f2ca -> bf34f31e 3ed595aa bf123f9d 00000000", + "40989db8 c23d0960 c2214fe7 c1411780 c238046f c210a683 412e8fc4 41821bcc 42148b80 c12c7e00 4052b685 00000000 00000000 00000000 7149f2ca -> be9ea83e bf68cacd be8e2333 422d8b5f", + "c09655a8 41f1fd08 c2005a8c 41f5bd80 c1a785ca 4219d936 4110a27d 41f5be59 c1a785be 4219d95b 40c38acd 41d27e40 41d9bd4c 4244f30e 41a4bae4 -> 41d27e40 41d9bd4c 4244f30e 41a4bae4", + "4137abac c239d1f5 c2465fd7 c1d96a96 c1b2c359 4205b7a4 41997e2f 423e369a 4218b8d6 c0988f40 41051423 00000000 00000000 00000000 7149f2ca -> bf38e2b4 bf15be42 3ebd0026 410b81a1", + "c2222193 c1dc0fc7 42270aa4 c20b2c74 c1415ee0 414738c8 40ddd642 c20b2c43 c1415b94 414736b7 3e93e9eb c1b2871b c15614a8 40a2b640 42452dd7 -> c1b2871b c15614a8 40a2b640 42452dd7", + "c04e9d50 c2302b6a c208db99 c0d1e670 4117b4b0 40b946e8 40836288 c20c0226 c22a72fe c200cfae 4185db22 421f5e16 c2200794 4154a41c 4142bef0 -> 3ecea58f 3f3d3d99 3f0a03f6 00000000", + "4000c7e0 41f86bdc c2256a7c 419144f4 4247e1e2 c04c3330 41039892 419144f4 4247e1e2 c04c3330 41039892 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "414d9340 42093a8a c2240e8b 40839b40 c1aa68ad 421dc53c 4089f8f1 420fce26 c23fae95 c2353835 3fdd3994 bff6b9e0 401d5c40 41a85958 41729187 -> beacc050 3e906eb7 3f65e9c6 00000000", + "415b9cf4 c20d70eb c18ef594 41ca4170 41182d2c c22413f1 417e18b2 4192a840 c1ff6afd c205f0a6 41976fff 00000000 00000000 00000000 7149f2ca -> 3e26b702 3f78828c be34bd7a 00000000", + "c22fff02 c22bc192 c1c6a9cd 410d77c4 41150b48 41756a30 4026094a c20726db bd89d800 41d2dc48 3e44d9c2 00000000 00000000 00000000 7149f2ca -> 3f726944 3e5569dc be7aa37e 00000000", + "40e4ff00 c0a7ea80 c1c28886 41e6a55c 419980bc 41f3b25c 4106e3c6 c14aaadc c0a72d90 418e565c 403d57de 00000000 00000000 00000000 7149f2ca -> 3f5562bb 3efb0fc1 3e824d0e 00000000", + "c16db980 416dc688 41705f38 c1b71f99 c0e78b38 c12a4b04 41991270 c1b71f99 c0e78b38 c12a4b04 41991270 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "41962ba0 c15512d0 c126b508 409a5b30 c210d3d8 c13b7c3c 40ccda52 4190dec0 41339ac4 c12bb308 400ffc1d bf8ebb80 c15f2748 40309670 419aa240 -> be8a1007 bf7676ba bca40d40 00000000", + "41d1630c c17bd414 41c8dc18 421c68f2 c22b5385 c14ffc6c 3f877438 c1aafea4 c0d46240 c22e1e41 41967984 00000000 00000000 00000000 7149f2ca -> 3f4990f2 bef144f3 3ecb833f 41e27879", + "41bf55e0 c1c34338 40870db0 c00ac290 4237902a c19215fe 4145c025 417b89d0 c22d8053 c242dff4 40ae3077 40325f30 420d55da 4200f15a 419ef329 -> be3ed13d 3f6e0a7f 3ea270f0 00000000", + "41755a18 c229e1c3 bf4d6040 bff14740 422ee3ce c135b280 3fec0282 c2456502 408c3448 3fd561a0 4092fc92 422fb9d8 41decbc0 41e936f8 4134cba0 -> 3f40d749 3f1fd6f1 be53a5c4 00000000", + "c1542fd4 c2333e4d 418952c4 c241677d c23b4e81 42048240 4184a369 4246de10 c23f53a4 422c61a2 4129d970 00000000 00000000 00000000 7149f2ca -> bf7eaca9 3c27095c bdcf177f 4186b5c7", + "c225ab97 c1ff7fb2 c233e8c8 424511a8 410db064 c22a1006 3f36b430 42451294 410daed5 c22a0f4c 4187f8b2 00000000 00000000 00000000 7149f2ca -> bf3ed245 3ea14f09 bf1664a3 00000000", + "41ccbe90 41a3ddc8 c2412685 41711dd8 400f9250 bec58080 3f7338c6 41a40c90 421aae0e c1c7d04c 417b38a5 00000000 00000000 00000000 7149f2ca -> bdfb687e bf52928f 3f0e274e 00000000", + "423103ce 3febcf00 c189bcde c1eb8511 4152a8a8 c20e4365 419a32b9 c2302da6 422eb22e 42226c70 405072d5 00000000 00000000 00000000 7149f2ca -> 3e337078 bebb6ac5 bf69f882 42308110", + "c2472f99 c23035ca c22b56cf 423f56c4 4209fae6 40b265a0 4149da73 41658bf8 c092ae08 c2397c74 3fe9913b c21985f3 c146bdf4 c1b8dcc5 416370a8 -> 3eea7a91 3f08cfe3 3f35dc65 00000000", + "c2374cd9 419b964c c209fade 415af880 40d6f5b0 c2324614 4187c376 418a7958 3fc603a0 41d6d830 415ec582 c2302edb 41343548 41c0dc84 419837c2 -> c2302edb 41343548 41c0dc84 419837c2", + "c1b1c79d 3e12c900 41e0f0bc 41b7a204 c1242a84 c216d5a0 418b2316 42252eb4 c2315718 41d28664 4129aa7b c157a38c 42303366 c0835df0 414cf0c1 -> be7b0ea9 3ee934bb bf5b1705 00000000", + "422f7a22 c1b9d118 c12cbde0 42218092 410ac184 bce33800 41297878 4222ed1e c20416aa 422c8f8c 419ca060 00000000 00000000 00000000 7149f2ca -> bbc25edc 3f31d8a0 bf3821ad 41550480", + "41d32dec c1f58f43 c149ccec 422b7ace 419b7410 4189b3d8 40b6dc15 41d01bf0 c083c650 c245d71a 405ad285 00000000 00000000 00000000 7149f2ca -> 3e6d7467 3ea5df39 3f6ace2f 00000000", + "408c6e70 412345c8 418ff308 4202506e 41f889fc 41451b1c 40dcce9d c0d2a3e0 c21ccd25 40e019e0 41808963 00000000 00000000 00000000 7149f2ca -> 3ef8b4f1 3f5f2171 3d870b3f 40f001dc", + "c000d140 c1be22e4 c1dbcd4e 4241b3e6 c15c4484 c22396ba 409fac10 c2276350 c1616ea0 c1996e78 414c730a c23b54f5 c206c191 411d2be4 41cbb52c -> 3f78e585 3b63d45d be6f85ef 00000000", + "c22167aa 4225bfa0 42286dd6 40573000 c226c28e 41998788 40760e46 c23570c3 41df33e8 c07f7a80 416e5391 c21c43b3 41ea2eb8 c18a6fc6 40aa8340 -> 3f0da52e bf4a4feb 3e86cb7a 00000000", + "c1b09d24 c12169f4 c230fb75 421a52a2 c1ce0e1d 41e31fb8 419395c6 4245d622 4228eec0 c14f63b8 40aff325 c1d39ea7 c22e651f c1803a3a 41b5e02a -> be0ab136 bf58b4d7 3f03cda8 00000000", + "42084480 422333e6 c1bb1366 c11bae90 c1039ee4 40811178 41306069 c11bae90 c1039ee4 40811178 41306069 c0d20db8 c13a95a8 c1734444 41735707 -> c0d20db8 c13a95a8 c1734444 41735707", + "420eab34 c2241eba c031dbd0 42432e06 42158ba0 41b6f8f8 419df7e7 42432ee1 42158ba8 41b6fa75 3f90c3b2 411d7228 4222d596 c15e1554 41a27e34 -> 411d7228 4222d596 c15e1554 41a27e34", + "c0c49898 bf639900 41e91c7c bfd83740 4201e0ac c1cd24a2 40f0c97a bfd82eff 4201e07f c1cd2591 41809bcc 41f0e4c8 41908094 4244b3f4 40f0d29c -> beeb2dba 3ea045ef 3f54cea2 00000000", + "41b2be5c 41cebe4c c0fb8b28 c24557e4 c2349ce2 4162aa60 40b81388 c24557e4 c2349ce2 4162aa60 40b81388 41ff7778 41553258 c1f9d238 41e1fe97 -> 41ff7778 41553258 c1f9d238 41e1fe97", + "41bea2f0 423300a0 c2122d38 c2061de8 c2419c2a 41838c6c 418ef9a5 c2061de8 c2419c2a 41838c6c 418ef9a5 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "41308460 c1fbb3e3 c1bf7cb6 400f8a50 c1421818 c23e577e 3fc48d86 41999a8c c21a3363 c20860dc 41639f2f 00000000 00000000 00000000 7149f2ca -> befe18ba 3f45ef98 beca2646 00000000", + "421dfb20 c1cfd376 c0dea188 c184a5f2 c0aed870 41786b98 41882a30 410ab1e4 c1fa0c9a 41f6d8a0 40eddd97 c0f7b740 4202ab64 421f54e4 4228dd2a -> bf24d57c 3f286095 bec8260f 00000000", + "422d6f94 42069222 41e93324 422f435c 42261718 c197af11 4097b74d 422f435c 42261718 c197af11 4097b74d 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "41ac4bf4 42320fca 420415d6 4232ae24 c1a5a6f5 c1a6348e 40b83a44 c21ddf32 422ad2ea c16f34b0 40dc93f8 423670e4 c1f205c5 c20279d8 4120ad56 -> 3f4c2096 bf19d857 bd621fc8 00000000", + "417ffb48 c0992e28 c0868ed0 c1265950 4040dda0 c1783644 41461253 4112c9bc 41233a68 4233308c 404089a2 00000000 00000000 00000000 7149f2ca -> be9d071c bde6b2c1 bf71f34b 41721c08", + "c2456356 bfb41640 c09f8d90 41a1e484 c1d6ee5f 4131bcc8 407e5ddd 40a223b8 41d23d58 4232f34a 41560acf c226e71e c08cfe90 c1851c94 423dea57 -> 3e701ac8 bf524c71 bf0511aa 400e41e6", + "c21aa8a1 4246df3e 41934000 418ee69c 408d3590 c0f04938 419d5211 418ee72c 408d34b4 c0f05101 418c20bc 00000000 00000000 00000000 7149f2ca -> be8d5d03 3dd7f8c5 3f749040 471d0f95", + "417588a0 423a7aee c244e028 c11b45d0 419c9430 41bf8744 4041307a c2379209 4207afee c247c2c0 411a179a c0a85840 421b9240 c1ad3dbd 414ce474 -> 3eddde80 be2ff3f9 3f627ba7 00000000", + "c1dbb073 41d44884 c13426c8 c23e810a 4195c43c c1fb0f4c 4089e6a9 4214fc9c c1975add 41c53758 40c4744b 00000000 00000000 00000000 7149f2ca -> bf485b52 3eb1b65c bf044775 41f5549b", + "40833a78 bfef9c80 c2412b24 421cc77c c193ac99 c2309ef5 40f7959c 4205a3f6 c1b4b11e 4246a1fc 4085d39c 00000000 00000000 00000000 7149f2ca -> 3d7bd83e 3d33af0d bf7f44cc 4247d84d", + "c1e9414f 418233ac bfcfcd60 c14141ac c2449805 40aa5a40 4195ac65 c0a94ec8 c17bc1a8 c1e0417e 4161dc21 00000000 00000000 00000000 7149f2ca -> be11b81e bf33554a 3f33055a 00000000", + "42348054 41d7048c c1fe2df6 c20c5985 401863c0 4230dc36 3fff3323 bf2cbe40 c19e2ad4 c1f55f37 40edc2b8 c24374ef c1f3eebe 417a5808 40934e70 -> bece759e 3e84e6c4 3f60a44b 00000000", + "c1f1508e c1beb84b c195cdd6 41a9dd68 41aa9aa8 c0dcd3e8 419dd7cb 4193faf4 41c84270 c2323a38 4012740f 00000000 00000000 00000000 7149f2ca -> 3d93adc1 bdc81de2 3f7e1af5 41500031", + "c1c241f9 421d9790 c19ecee0 41de6364 4246dcea c162f560 40b4a822 42358920 c237db00 c23d7123 40d928bc 00000000 00000000 00000000 7149f2ca -> be2f3299 3f6e4e76 3ea5424b 42433312", + "c1ef41c2 41ab78fc c22b138d c0ca41c8 41f871d0 3f8ed660 4010db3a 41ac36ac c19be4a6 42060dbc 3ff13722 4061b0e0 c10c1f00 41d352c8 41170930 -> 4061b0e0 c10c1f00 41d352c8 41170930", + "422fe84e 408a78b0 c2477f99 4147a628 c238a3fb 40199630 419f0ab2 c1b9bac1 c073e230 42324a66 41256bf4 c21bb25e 402315d0 42475510 41f0b674 -> c21bb25e 402315d0 42475510 41f0b674", + "41d9b9c4 4242dd50 c21a1b7c 421f8094 c1e144c6 c1382e38 4187fef3 421f815c c1e1460a c138304c 41821298 c1e34993 c231801c c20024ee 4137583a -> c1e34993 c231801c c20024ee 4137583a", + "42094bd0 421bc356 40f08140 42092762 c0f194b0 421ac6e4 4175702f 41b4d1ec 41fffcd0 c2105b10 403ec45b 422fc572 c1596c2c 422337b8 41f73e6f -> 3e0c1f5a beed1a42 3f602ccf 00000000", + "c204f494 40b38e28 421a9be4 42075296 421df26c c044e860 418322ba 42075314 421df17d c044e0d3 410c79b8 00000000 00000000 00000000 7149f2ca -> bed9f998 3f4ebaf1 bed10035 47a5b5d9", + "41ec1228 c2449255 c208bfef c0f02618 c2390b8e c2307c7b 416ffbc5 c0f0251f c2390aa7 c2307d13 40cb8ddb 00000000 00000000 00000000 7149f2ca -> bde512b8 bf54837c 3f0bd5f7 47a9bf5b", + "c103aa5c 4232da58 c1e47868 41e8ea24 421ccb84 c19e846a 41574c23 4180c9f8 42308990 4211a3da 418e1e20 00000000 00000000 00000000 7149f2ca -> 3e661a6c bdae82f5 bf787f52 41db6956", + "c218aa8c c1ed21f7 414befac c05f6000 c222949c 4137ee8c 40716bc5 410062b4 418b50cc 41f818a4 408bc724 00000000 00000000 00000000 7149f2ca -> be3d2e5f bf6e7b06 bea053b0 41d71a40", + "4161b870 41f13f64 c221115c bfa293a0 4044fe30 41c1ac28 3fa3c97e bfa27b77 40450bd6 41c1abd5 41234463 00000000 00000000 00000000 7149f2ca -> bf27fa3c bf3dc93a 3e10448f 00000000", + "41b7c5d8 41d51c08 c1449c78 413cccbc c2283a13 c2292b64 40d0ff0b 413cccbc c2283a13 c2292b64 40d0ff0b 41a13b60 c12a37e0 423d6fe8 4219bbcd -> 41a13b60 c12a37e0 423d6fe8 4219bbcd", + "4222c23e c1b99d64 41235c24 4233c252 41c2da08 c21131f8 419ffd6c c1a1842d c1f85c96 c23e0994 40cd08f8 00000000 00000000 00000000 7149f2ca -> 3f415711 3f24768b 3e051de3 418bdc4b", + "423f5678 c20bef2a c236b272 4229330e c2387079 c2156598 40c4f867 40bab910 421f0118 4183a354 400270cd 423d0ab6 c10596dc c1cf4b44 420fb9e5 -> 423d0ab6 c10596dc c1cf4b44 420fb9e5", + "4198a6cc 415fce70 c22ade2a c0b23348 41871884 423606d8 411f22dd c1e10d36 41d8c49c 41b0677c 4173486a 42015f3e bfaa06c0 41a47d34 41054122 -> 3f295607 be993d85 3f300aa7 00000000", + "c1a65ec6 c15f6cf8 c1e05a75 c08fd180 423a5dee 420c75ac 41450a0b c08fd180 423a5dee 420c75ac 41450a0b 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "c1a9f9db 3f83a760 423c2bb8 c00868a0 c14ff2e8 c2036c6e 4181acac c1804486 c2156136 42319dea 40daa792 c20c548a 422bea80 4061bc40 41dcd338 -> 3e2d3468 3e97acf5 bf70a4ec 00000000", + "4243dba8 c081d3e0 c211ebe8 4243b3c6 41a25ca8 c21e6ed5 418d0c69 c2443446 c18f5fc0 c049ff50 40aae163 00000000 00000000 00000000 7149f2ca -> 3f615885 3eafcc40 bea7add3 423e46aa", + "c205ce2c c105e4a4 42187cd0 c1ddef35 4142db60 41e8927c 4091b47f bf874a00 4185a9e4 c22cfd9a 4194a042 c1988f25 4210c9d6 c1e0c815 40b45f49 -> c1988f25 4210c9d6 c1e0c815 40b45f49", + "3ef3f900 c20aab54 c21a2d6d 419e5ae8 c120a82c c14d6610 4197a369 419e5ce5 c120abed c14d645e 401b8476 412d5838 4247d02e 422e2558 4116d0f0 -> 412d5838 4247d02e 422e2558 4116d0f0", + "4201a9d4 c236c153 c1c4d16d c2257ed1 c12a2868 c1ce7159 41545c2a 400060a0 4175ecb8 c11e8970 40d8605b 00000000 00000000 00000000 7149f2ca -> bf51774f befb23e1 be99853a 00000000", + "418093c4 c1bd9bab 41d55478 401daf10 c1de3e3b c10174f0 40b326dc c11aedfc c1b541e6 42023b14 40acfbe6 41a0c4c0 4210f9aa c1ad12c8 4238d7ad -> 3e918955 bdf5882c bf738374 00000000", + "c1adf1e0 41bb63d0 42074cd0 3fa03760 c1139548 c091a6a8 419ac7d0 c214f546 419a270c c140c958 40f41621 42380fa4 c201d9a6 421ce6ac 423ae897 -> 3f4b4872 bf167aca 3e1e6312 00000000", + "c13f8f7c 40f11490 c22cbe53 c1bf0742 408226b0 c1cdb4e1 41059a0f c24326cb 41fb8c68 4239d79a 40c8079c 00000000 00000000 00000000 7149f2ca -> 3e9d3c6c beaccefb bf63caef 426b1cd5", + "41012e20 c0ac94b8 421b5670 c23a8c5a 41c0a578 4195a6a0 40fc7274 c1c6f545 4212d5d8 c1e6b4c9 41318f2a 4183b164 c15e0808 4229e682 41cb9551 -> 4183b164 c15e0808 4229e682 41cb9551", + "c04bf250 41d7b4a0 403a9ce0 41e59e68 4117f3bc c2433999 4015359c c22268ec 4234c0ca 4199f4b0 419de8ec 00000000 00000000 00000000 7149f2ca -> 3f2b7489 beb09869 bf285a4a 00000000", + "4232f05c 41ca63f8 41cd2a3c c1b6c39b 42166c22 4218a792 411d8fa2 c1cab71e c20daa33 418c19d0 40b50ada 418bb2d0 41e43a40 c1c6e77f 41df8fa2 -> 3d0689b4 3f76349e 3e8b41cd 41caf655", + "414e2af4 41cae620 422096dc 4087d050 4245fc7e c0e4ed30 418993db 4087d050 4245fc7e c0e4ed30 418993db 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "c212b4f6 422e87d2 c2163c80 423fe72a 424469b6 c18803ee 3facc90d 41ff9ab0 400507f0 c24157ae 4177a0dc 00000000 00000000 00000000 7149f2ca -> 3e8bb0f3 3f4cf4b9 3f089140 00000000", + "c203ba23 c146f7a0 c1b1573e 420af2a2 41f4d5fc c2411291 4162e604 41e0d95c 423686a8 c0f66060 415e751d 42186fa6 c095d640 41511338 41a9b7b7 -> 3e1b22db beafc9b3 bf6d4a31 40138a16", + "42011fbe 41bd0b44 c1f4e5e3 c2248c7a c1db9b72 c0a4e2e8 4106dadd c2248c04 c1db9a74 c0a4e0d5 40d807e4 c20557f4 c1a3d15f 422921b4 40808c4f -> c20557f4 c1a3d15f 422921b4 40808c4f", + "40ce4eb0 4115d178 c22860d9 c1c779fc c21c05f1 4216b8d2 410b3137 c1c77801 c21c05d1 4216b987 3f5d7300 c1667718 c16dc788 c1526190 4211bc3c -> c1667718 c16dc788 c1526190 4211bc3c", + "bfb2c9e0 41c7d15c 4053d1b0 41cefe3c 4100e2d8 40dc4e60 40bb497f c18b95f8 c1736788 415ef1dc 3fe3e6f1 00000000 00000000 00000000 7149f2ca -> 3f5f3f3f 3eefcf1e be114ef2 411cda03", + "c185dbb6 c15c901c c1d49817 40429ac0 420a8c98 4093d910 40a9bb01 c1c62bd0 4201e7a0 c20c76be 412fec5c 00000000 00000000 00000000 7149f2ca -> 3f12a63a 3d3652b9 3f518608 00000000", + "4212246e 413dfbb8 c1f38946 40f18788 c1ce31f0 c205042c 4190d7f1 42093a5a 41377c38 42288946 41741b13 00000000 00000000 00000000 7149f2ca -> be9b43ea bed81752 bf5ab681 418c9c04", + "42021bc2 c176e37c c21c1f51 3f4dbf80 41ae7a7c c23506c4 4182f3ec c23f738f 41810420 41217dac 419db515 00000000 00000000 00000000 7149f2ca -> 3f288a2a 3d9d716b bf3faf4d 4246050d", + "c1d69dd1 c0dbf578 41b7e36c 41c80828 c21dc0e9 c033f5e0 406b33f0 c20a01ae 41ae662c c0bd6a60 411814f0 00000000 00000000 00000000 7149f2ca -> 3f32490d bf377a01 3d14f5a3 00000000", + "421d6f28 c1423dd0 c1aff83b 41c36634 c21d559d c21f6ff9 416a0485 c22fa0c0 c1ecbb46 c240e07c 4088ea6d 00000000 00000000 00000000 7149f2ca -> 3f7b9938 be0f7b9f 3df63fbc 4244bd36", + "c1cff99f 41f640c4 c10080b8 c222c9b8 3f67fdc0 c0a1bae8 413ae7b0 c222c96a 3f67e0f5 c0a1bbea 4193de21 00000000 00000000 00000000 7149f2ca -> bf0bd7cc 3f4e7ca3 3e67475b 00000000", + "41dcf22c 3fb259a0 c1891b2a 40c484c8 c21d1755 4221f46c 414c71e1 41d96d34 422d8110 c2088d72 415bc272 00000000 00000000 00000000 7149f2ca -> be3e172d bf3ab3ef 3f2894cd 00000000", + "42188702 c0a12f20 41ba7a34 41b50a3c c23cf145 c10a78cc 41272135 41b50c44 c23cf078 c10a780d 41867098 00000000 00000000 00000000 7149f2ca -> bf46f86b bf1ce168 be122aad 00000000", + "3fea0400 4235bc14 3fbbcb40 412be848 c08ddd20 420f2908 4142b070 422ddf3e 418a9f1c c22cc736 418416d3 00000000 00000000 00000000 7149f2ca -> bebdea7c be7c956a 3f65329b 406ba5d4", + "42256a5c 41c527f0 4194efe8 bee9bf80 c1aaf015 c2175147 41717c58 bee983df c1aaee72 c2175147 418fd0a4 00000000 00000000 00000000 7149f2ca -> befd4abd bf5e7a90 80000000 00000000", + "421e11ac 40d1bce0 40974d80 41ac20c8 413d2180 41f4cfb0 41875d9f 41ac20c8 413d2180 41f4cfb0 41875d9f c18f968e 4179a718 41b1bec4 4202d1d5 -> c18f968e 4179a718 41b1bec4 4202d1d5", + "c06958c0 41a54dd0 413d2988 c1b4983c c1918afc 420107c6 4175949b 421b30f2 40c08e18 421e9b64 4002bfe4 00000000 00000000 00000000 7149f2ca -> bf6ca8a4 bebab71e bde41a3e 40b16e20", + "bda63200 c18496f4 4234dede 422dba4c 422007c0 c20cabc4 4156bd6f 422dba4c 422007c0 c20cabc4 4156bd6f c16b94ac c10cc3f0 c21f0015 4228446c -> c16b94ac c10cc3f0 c21f0015 4228446c", + "c1f6015d c241c788 c239a6b8 414686a0 4118bf64 42298c30 41933f8d 414686a0 4118bf64 42298c30 41933f8d 00000000 00000000 00000000 7149f2ca -> 00000000 00000000 00000000 7149f2ca", + "c10f1cf4 41830458 3e88f780 c1c06cc1 c2161b54 c20db8e1 41874d13 c08c72b0 421c731a c1b9357c 404bbea1 00000000 00000000 00000000 7149f2ca -> be7b7bf8 bf7508cd be1d0aab 00000000", + "41882f8c 41f31140 c10eccb4 c1118214 4239bd8c c14c3674 4155ab98 c1b393f9 c1e0609b c225388e 418107ab 00000000 00000000 00000000 7149f2ca -> 3e291267 3f6bc4b8 3eb4b1eb 41f684db", + "3faa6dc0 c1c3189e 421363ae 4217c3c6 c19658c7 40d19c58 41043097 40d6bd40 410b2570 411b5694 41019c03 00000000 00000000 00000000 7149f2ca -> 3f3f9c1c bf28a8f8 bd9b0489 00000000", + "c1f72ddf 40f5d5c8 419dc4c0 41868aac c1d97c75 41651858 40eeb3de 41868aac c1d97c75 41651858 40eeb3de c207fd3e c202c815 4185b250 42302288 -> c207fd3e c202c815 4185b250 42302288", + "c08221c8 4228a466 419bc204 40f56f30 40fcfbe8 41a2636c 416ebf12 c1983277 c226b196 c1ea9a08 3e8bf34a 00000000 00000000 00000000 7149f2ca -> 3eb619f7 3f291b60 3f29424e 4263a9b1", + "c18e2b46 418f71f0 c2037eb1 412bc2b4 42448dee c0b3f510 410c4f00 424429c2 c244d621 421da3ee 4152dcf2 c20b2f26 c12c117c 41c26b24 41cbe19e -> c20b2f26 c12c117c 41c26b24 41cbe19e", + "4182fa64 4212ea8e 421ad280 416f3220 41d64e68 c1f9b654 417956df c2270704 c1f049b9 c212c6a4 40a9c43d 00000000 00000000 00000000 7149f2ca -> 3f346968 3f34c943 3d8b79c6 425967a1", + "c229db74 c195e1e3 c16da2e0 419a48ec c0e98ae8 c19793d4 3e0abd14 42372426 c1dd328e c1c346f1 4152f821 c22a3cea c1abc895 41125e88 41d1d105 -> c22a3cea c1abc895 41125e88 41d1d105", + "c216f0c6 4093fce0 4223e0bc 4205d806 c18ac058 418efef8 419f9a70 c1a1f568 41016cf0 4105b760 41524b97 00000000 00000000 00000000 7149f2ca -> 3f6474d1 bed8605c 3e21f07c 00000000", + "423e746a 4216dcd4 412666f8 c20fcaa9 419ac83c 42210920 40740c23 420f4c72 c21fd131 4152da6c 3e3d850a c0dbd198 40f555e0 3ea4a880 4204822e -> bf3d7f3b 3f1c9263 3e8effa6 00000000", + "404029a0 c16ab264 c039c7f0 c1fbccbe be97d500 41df26bc 4113969b c1fbccbe be97d500 41df26bc 4113969b 4067db00 c2423dd0 419cd7a8 41f57ef6 -> 4067db00 c2423dd0 419cd7a8 41f57ef6", + "bffa7260 4234b73e 4171e128 c19810c2 421e1a08 c21f2b3f 411efb8a 42361bb6 c1f2d86f c2168a3d 41696c6e c224b4f8 42272fb4 40faa900 4247d516 -> bf2da35a 3f3c0588 bcb9bc54 421942c9", + "c0ac7180 401896d0 c212c9c3 405f4c70 421e081c 40c74458 41814ce4 409aa6a0 c1ebd671 403e1da0 4123fa8a 00000000 00000000 00000000 7149f2ca -> bc9f5cf4 3f7faab8 3d411938 00000000", + "c185225a c1d844b6 41c24e60 401a06e0 c111eacc 421063a8 418cec80 41dc05b0 c247ee15 407ec350 415c61c3 41f249f8 42132762 c23d36f4 41766fef -> 41f249f8 42132762 c23d36f4 41766fef", + "c1b3d0b4 c0f954e0 c20f85ff 4133cf34 41416c1c 4201a05e 4171478b c0dc25b8 41e61cf4 c1bddbcd 4187c9b7 00000000 00000000 00000000 7149f2ca -> 3e97524c be8b4622 3f6a70a9 00000000" + ] + }, + { + "glsl": "vec4 cultmath_power_score(vec3, vec4)", + "tolerance": "ulp-bounded", + "cases": [ + "408d9aa0 c2231ce1 419b8254 41e028e4 41c09adc 4219f124 3fd83d2a -> c23cc23c c301b528 c2185ff4 45a0154e", + "c234afb2 41ebc238 c0af6888 c21afd02 c1a4a86f c12fc3cc 4177d1a4 -> c14d9580 42c83554 41301f10 45120e09", + "c1ebfa46 4243f5a4 42012448 4224aca0 41e65488 c2393cb5 4028ac35 -> c30d54e2 422196c0 431d307e 4634cf47", + "4204694c c14536bc c205019e 4218afb2 c211d8ca 419935b0 416cd593 -> c1223330 42411636 c2d19c76 4543f2e3", + "c167ada8 422176ea c0dd4180 409302b8 423acb8c 421dfcc4 40962893 -> c2189782 c14aa510 c2b9a4f4 451e7e3a", + "42232ecc 420a2b0c 4222c592 4214a65e 41bcd3c8 41c35bd8 4161e7e0 -> 40e886e0 41af04a0 42022f4c 4346517e", + "c15823d0 42405fbe 410c9804 420c6d92 41e20368 c218edf6 3fbf9efc -> c2c27686 421ebc14 42bc13f7 459b2e40", + "c0d90200 c191548c 3ff9d500 4247e436 c1db6262 41b066bc 4164b0b1 -> c2e30476 41941bac c220c96c 455b264f", + "41ac619c 402c2c70 421f64c0 412898e4 c1f55369 c17e4b24 415e4716 -> 41b02a54 42856c7c 42def789 45819feb", + "421c6a32 c24244e1 40d51538 c18a3f86 bef6db80 408813b0 40c05ff1 -> 42e189f5 c2c0572a 409a0310 45aaa888", + "c20e3568 42265eb4 c237f9be c2333f9e c1a5d542 c0f69be0 411602e0 -> 419428d8 42f94955 c2992642 45a71dfd", + "c126b5b0 40fec308 c23bbde0 c16b69fc 40ec4670 4186e0e4 4193be81 -> 41096898 3f93e4c0 c2ff2e52 456a3896", + "410884bc 42248928 4093e108 41c0f97c c202369c 3fe0af80 407b8b04 -> c1f96e3c 43135fe2 40b76a50 45b10ce0", + "c1912f78 c2449f2d c1baffb4 40889cc0 c11afd2c c243712f 41187b62 -> c23356a8 c29ddfe2 424be2aa 4523b016", + "423aa4a0 c23f7ca6 4018d550 c1aa2128 40f07c98 41da8170 40ba695b -> 4307da9a c2dd8c39 c24766c6 46013475", + "c11c23e8 c0037990 423323d4 422d3970 c1a1f248 c1ca506e 40cec416 -> c2d4426a 42118316 430c2606 45fa7af9", + "4232ea68 421322a0 c1c5fe91 413f35f4 4189f988 41d80dc4 40c5e0c7 -> 42831ceb 421c4bb8 c2cf062a 4580046f", + "c21ece08 c23fd97a 41098e04 c18f6e38 c23e0305 c21e29ed 41844afa -> c22e2dd8 bf6b3a80 42c08d6e 451d6110", + "4222fde2 41db0c38 3f6b3280 421bd4aa c10d8934 4244e566 410a41c4 -> 40652700 4290e869 c2c1389c 455f6548", + "40baa830 3f2d32c0 c22dc9eb 4247793a 421e2fba 41587ebc 406f5b3c -> c2b02434 c29b7aef c2e3e99a 45d0d41a", + "c0d9f9f8 411d6134 41f68698 4216c28a c1b7a499 42151fc4 40ef9944 -> c2b201c9 42832a9a c14ee3c0 453e16eb", + "c20fc1cd c2428092 4229461c 41b887e4 c1cef022 c204bc28 418a49cb -> c2ec05bf c2361102 43170122 4612e585", + "c247a32c 422f29d6 423aa688 40a094c8 4186d54c c074d2d0 411f2fc9 -> c2dbb5c5 42577e60 42c9f3b5 45c1855b", + "41a48494 c0c447b0 c2369b3a 421a692a c1c41b37 421c3044 40fae392 -> c2104dc0 4213094b c32965bf 45f2fca1", + "c15e48a8 c1fa6abb 41415108 41dd9a10 c21218cc c216e127 415747b0 -> c2a65f32 41271b74 42c73569 457d8768", + "c0f98e38 41de4068 c0b3cd28 41cb9e90 c1d69365 c090dc40 4175c5a3 -> c285010f 42da69e6 c00bc3a0 4570c678", + "41d00d5c 41099abc c2086f48 c203ea3c 4201a18c 40d1da68 4133156f -> 42ebf0ea c23e75ba c2a2aa95 45ae346a", + "40dc57a8 c2207073 c0a4caf0 c1da75d5 c2029325 4196620c 4168d54e -> 4288c5e0 c16eea70 c23f94c8 44c654b6", + "c2081ebd 41d3bd0c 42445960 c241c4b1 4240ef80 4240e87c 4179cdcc -> 41e697d0 c22e21f4 3fdc3900 43db3ca6", + "4202b4cc c19e1c50 423576e8 c21d5f44 c235db01 c1f5fd20 4139eb5f -> 43100a08 424d99b2 43183abc 4633c6f6", + "c207f65f 401202d0 41ec86a4 c0ca5d40 c24531a4 41b672e8 41975630 -> c25d556e 42ce51d1 41584ef0 45429c51", + "420d105a 4219d40e 41aca6cc c0dd7940 c18c1612 42049d2e 417dd769 -> 42a8bf82 42dfdf17 c1b92720 4595d2dc", + "c224c4ea c203125f 40a03f98 42387a5a c0d09168 4231f2c2 40aa3ddb -> c32e9fa2 c2520064 c29deacf 4619caee", + "c242be52 c0969830 41bf27f0 c1c87265 c0304040 4242ef52 4195619d -> c23d0a3f c079e040 c246b6b4 444fa062", + "c1ad1652 c1ebcc62 c22e8af8 41def91c c14b188c 423f6998 4103c009 -> c2c607b7 c206401c c336fa48 462c6c0a", + "40f37b00 41748d40 41e8217c c2056180 4237f792 41e085b4 40c6b91e -> 42a3d0e0 c275a884 3ff37900 45216814", + "42180a78 c1b3f40b 4107a9dc 417bea28 c20bb4b3 4242ed7e 416ccc67 -> 42321fdc 41c6eab6 c2a10307 4500394a", + "c213fbc9 c11a4428 c20dd99d 4130dcb0 c1c9e2a1 c192bcb7 40418f11 -> c2c032f5 41f9811a c208f683 45313e9d", + "c22c0cce c23150a7 c1fa24ec 405d25f0 41c09444 c2431648 4136c68b -> c2b9df2d c308cd64 420c07a4 45db2efb", + "418f7480 41737978 41735128 4234bb18 420d3396 c13a79d0 41249e0f -> c25a01b0 c220aa70 4256e57c 44dc350f", + "3ff94a00 41cfee6c 41ebb7b4 c0209bf0 c206501b 42361c10 402fd6b4 -> 410ea078 42ee4751 c200806c 456eadec", + "c200d900 c20a567f 41133110 c18e9ea2 c247fe2c c1f44fa5 404a0657 -> c1e626bc 41f69eb4 429ef416 44fbb56c", + "41f155b4 42274ea6 c204ba9e c215d4d2 41818fe4 c1be8d3d 4122c732 -> 43073fd6 424d0d68 c195cffe 45a2f1ee", + "4119cfdc 41248cd0 41533080 c1e0a522 41d6b248 41be6ac8 40830f12 -> 4296c688 c2046be0 c1a9a510 44dfcee1", + "41449e74 422d162c 41a47ee0 c1a1d096 41262fcc c1daa401 41440108 -> 42820fe8 42838a39 42bf9170 4585d214", + "4165df00 c16ed5d8 c211bf16 c226a136 c15de9b0 c2426f43 418ece33 -> 42e018f6 c0076140 41c2c0b4 453995c7", + "422105d8 41188518 c1e5bc9f 41c090a0 41fe2314 c1075470 418c859e -> 42017b10 c231e088 c2221267 44568e64", + "41bb1f70 bfce22e0 42028fec c1f728b7 c21757d6 c245b078 4193cbd7 -> 42d92414 4290e6bf 43242032 462670ae", + "c2092bfe c206f047 c1c36e5a c126a4f8 c1e232a7 422ce6fe 41324f62 -> c23f0580 c12eb79c c3074f16 459de712", + "c1ded958 421a8cd4 c23e6706 c1262878 423b2a2e 4089b5d0 404fa0a4 -> c20bc51c c1827568 c2cf9dc0 453ef3b9", + "40d820d8 c23afb89 c237339c c19f7b44 c1c9aeb6 4136bff0 415e6f35 -> 4255837a c22c485c c2e4e398 4585099c", + "c244fe13 c1015640 c009ae00 4234479a c18deb02 c18d7e5c 418e537e -> c33ca2d6 419a7fc4 41f89138 460b47e5", + "c0a3c5e0 4217af84 c21d53ef bfe386e0 c1df4312 4195c71c 411c887d -> c0d5c850 4303a886 c2e8377d 45ee19ad", + "c1f98a60 4217f818 41961010 c20e6118 c2275641 c1826662 415a77d5 -> 410cdf40 431fa72c 428c3b39 45e8521e", + "41a728e4 c1f8ee92 c178b648 420be75c 4214f42a 41afb89c 405a47cd -> c1e14ba8 c308b5ba c29609e0 45c3d019", + "c09bac70 41e38710 421c2946 42157f86 c12d81cc c1d82f8b 4044de6e -> c2a8f514 429d23fb 43042086 45f01348", + "41c2ca94 41ddc764 c0af86b8 421ddc2e 412e98b0 4184cf00 417799fc -> c1f1db90 42067b0c c230b0ae 443dd99d", + "c24522b2 4226ece8 42259218 41c5976c 420e532c 41891eb4 40f4d801 -> c313f734 4144cde0 4242057c 45bcc772", + "c20af3a1 c168ee90 c2095c8a c205811a c1b239a7 c2430466 40c1542d -> c02e50e0 4177097c 41e69f70 4368b67a", + "c1d7bc8f c2126d4e c21f9fc4 c09f4d60 41259214 41b2188c 419f98d9 -> c22fe937 c2bbd1d3 c2f8ac0a 45c0592d", + "c2221402 c1e2fa6a 412d9110 4203beea c0882568 c1825cac 410f27eb -> c312e976 c240f110 42592534 45cf5124", + "c21eeb9b c1ce0e42 c1c87a8a c02fc6d0 4188caa0 42236674 41610ca9 -> c293ef2e c2ab6c71 c303d1dc 45e5b57a", + "c1b6c864 c0ddfd58 c21ee45a c2415f01 c234b30d 41e584a8 40c16e98 -> 424bf59e 4298f362 c308d357 45d31f0a", + "c0e006a0 41bb0ba0 41a6013c c21a439f c1e226bf 420c649c 4124fd76 -> 427c8596 42ce9930 c1e58ff8 456b3908", + "41654408 c1794450 c0b1d138 c245be59 42315b38 41dc1e78 41920c13 -> 42ff0f5b c2efac4c c2844963 46038285", + "41a0d43c c19ba456 42270cce c122a0a0 c18484a0 422df3c4 3f8bf5dd -> 4272248c c0b8fdb0 c05cdec0 446791e0", + "c21b3484 4222e0ba 419af6a8 4129f774 c21e6adb 411ad954 41997134 -> c2c5b261 4320a5ca 419b13fc 4606b2e7", + "41a2a4bc 42474498 c0d45558 40b0bc98 422e49f2 419efd80 415546c0 -> 41eceb2c 4147d530 c25412d6 4443d3ee", + "bfe060a0 422063a4 41ac0514 c1cfe29a bfb25e20 422c91f6 4113e024 -> 4241dc90 42a5f695 c22d1ed8 45283957", + "421f49f2 41f3f9c4 c053e130 41b61430 c212a8c8 41e78ba8 41373e15 -> 42087fb4 430652d5 c28103e7 45b277cb", + "c215ed80 c1fbe24e 413d249c 41ab1e88 420cce90 c1c8f3ce 40cdb495 -> c2eb7cc4 c3055fdc 4293c30e 4610516d", + "4202a514 c2427ab5 3f4fa100 c21aa884 c1c4a374 40aded30 41967225 -> 430ea6cc c24051f6 c113f910 45a6a820", + "c17656a8 c243af7c c09eaf60 c244eeb9 c2296f83 c1c9f703 408e61f8 -> 4287590f c151ffc8 42224b2b 44c5784c", + "c118d744 c1edeb79 c208b6db 420b50a0 c2469e31 4110d258 408b5359 -> c2b18671 421f50e9 c2aceb71 4583c140", + "c21f1c27 c1da8d32 421773c6 423c3dec 41f5e100 c132af18 4139acb0 -> c32dad0a c2e83719 42c41f8c 464df1b8", + "41fa6b7c 41fc585c 4208884e c226849d c0a03ac8 c1751b74 41526ce0 -> 4311dd2e 42923387 42c5cf2b 460b7e46", + "421ade5c c1ea77f7 c21548c8 c1d6826c c144aec4 3ff89840 41316a50 -> 43030fc9 c2082095 c29d0d8a 45bb93d2", + "41eb58bc c2416828 41aff1a0 c2313945 40860ab0 c16cedcc 416712a7 -> 431372d2 c2d2297e 42933443 4611f610", + "42410496 c07fffe0 42123ea2 420b6cc2 417d4610 c21e4ddb 41683eae -> 41d65f50 c21ea304 4318463e 45c0773d", + "41e597c8 414f2afc c20ee671 c0aa11d8 c2059694 c15d04e4 412b4fc2 -> 42880e1f 42b96153 c22f4a70 4565644d", + "c1f3b752 412e8718 422995e4 414a5f58 42204b5c 40c8a9f0 41264f2e -> c2ac737f c269532c 429080a6 457425d6", + "4246463e c23b6e12 413a475c 414a35fc c22b902c 418143dc 40c75c6c -> 4293b8bf c0fdde60 c11080b8 44aa2565", + "c1e7bce1 c208850b 42257732 c1bba1ab c2397053 420ef78c 4185032e -> c1306cd8 41c3ad20 4133fd30 c281af16", + "c1674f50 423e49aa c1d3e2bd 41e94e48 c1cdf204 422c96a8 4005fd5a -> c2ae7af8 4312a156 c30b4403 463d68aa", + "40f7ca30 42419daa 41e40208 c1e72a3b c208fa06 c24054fc 41404457 -> 42928e64 43254bd8 43192b00 4659175c", + "c11427bc 41ecc5d8 c0de88d0 4161d7e8 41e75e9c c1ed4708 419de86d -> c23affd2 3face780 4235a4d4 44283184", + "c0e48f60 c1c8a666 c1de417d 410b86c0 c0b77e48 c105d8fc 413935aa -> c1fdce70 c21ac6d4 c21b54ff 44593ca0", + "c03b0360 c1d8bb46 c1fee2cb c2142641 3ee39d80 41a206e0 4186840d -> 4288760b c25c49bc c2d074d6 458819e4", + "41556070 41970e84 4205f0b2 417d1170 4151fa54 c1049a88 4106c577 -> c09ec400 41384568 42a71754 44d62a85", + "c2350bbb 420490d0 c1077588 422569da 4163dba0 41a75ee8 4180a028 -> c32d3aca 421733d0 c26b19ac 460441de", + "c15b9fdc bfd6f680 4146e4c0 c1ca3f44 41766c40 420972d0 41945b05 -> 41b8deac c208a588 c22f7340 440c95ea", + "41b539bc c242d0a0 c1ec7519 41efed90 3fc19d00 40168230 400e3c64 -> c16acf50 c2c8dd88 c27f455f 45604c2d", + "41cbf698 4125c9ac c2276edc 4174fb00 c192b0da 41cf1fb8 41780e1e -> 41a2f230 426595b0 c3077f5c 45a4e6aa", + "c21d2456 4118f8cc 4241319c c208cf46 41e5063c 40db8af0 40f5f105 -> c122a880 c21889d6 42a5c03e 44ffed50", + "c1039014 41f57948 418aefac 41f0329c 41a5b498 41dafdac 40100163 -> c298fd53 419f8960 c1a01c00 44cf2b75", + "41c4b420 40b6ab58 4218f960 420c2c2a 420f90a2 42253a12 41912ac7 -> c1a74868 c271766e c0c40b20 442f1b1e", + "418cafc4 4150acf8 420f4d96 c2198e53 421d713c c196b902 40bd6b9a -> 42dfe635 c2528bfc 42daaa17 45d3d96e", + "c1d9c331 c184dd0c c1bfa9cc c18b6152 42341f98 c23c7277 40a5f59f -> c19cc3be c2f68e1e 42393b22 4589a455", + "421b0a1a 41621e50 c224505c 421317f2 c1b3fd1d 40922250 40c7d148 -> 407e4500 42928622 c2b694a6 4553e43e", + "c1eb1a88 4044d9e0 4247dd78 41f66534 41c7d29c 424771ba 3e8fa885 -> c2f0bfde c22f3760 3e577c00 45803136", + "c2356300 c1f0d07a 41f22528 c0874878 420a55ca 4212e2b8 410aebf8 -> c2a479f1 c3015f04 c14e8120 45b68a14", + "423a12f4 c2161bfa c23740f3 421d11e4 c1c26442 c2247f2c 40785a96 -> 41680880 c1d3a764 c1160e38 436a7f67", + "c02d4d50 c10acd10 c0236090 41cd7568 41c3e298 420cfb60 41897036 -> c2631f12 c284a490 c2973169 453df327", + "42264dd8 41ea937c 4241143a 41063cc0 c15428dc 411ce968 41172a1d -> 4284bea8 42aa53f5 4299d9e0 45868562", + "c220225f 420f701e c19981dd c20e7812 c1959c78 c1ad5082 406d41e6 -> c10d5268 42da3e5a 409e7528 453acc82", + "c2120649 c0873bd0 42133866 c21e3630 c207552f 4201b898 4193a5f3 -> 40c2fe70 426cdb6a 410bfe70 440d1846", + "3fd47180 c2350f69 423e060e c240cc6d c089e458 c2187cb1 416b0cef -> 42c76ff9 c2a3d2de 432b4160 46303e83", + "c218ff1e 40213830 c2338818 c24607ff c20d89a6 c20baebd 402cf3dc -> 41b42384 42979d29 c19f656c 44ceec01", + "c116c7e8 41fffcb4 421587c2 c00a0000 c1b8af46 42389ea0 418a9746 -> c1688fd0 42dc55fd c18c5b78 4532fe63", + "c1bb182f 41bafff4 41c713ec 42319c1c 41f4522c c24483d3 40da6d73 -> c307941a c16548e0 431406e4 461d787d", + "42363436 412a4648 4173c390 410519ec c23cbd37 422e58d4 4100b189 -> 4294edbb 42e74ec9 c262cfe0 45aaea68", + "41c4b24c c244f1d4 40d2dce8 42243254 c0048f50 41bd3b28 419d28c1 -> c203b25c c2bca8df c20883ee 45160cd4", + "c18546c8 c1c271ac c2107013 c2054496 c212f984 c233cdc2 4169c514 -> 42054264 41c702b8 418d76bc 4394708d", + "415c68b0 4245b0a4 4149a740 421d0274 421119f8 c2313e2f 40a2b23f -> c24bd090 41d25ab0 42e3a7ff 457c346e", + "c1951ec8 c1db07cf c22a6889 41726980 c21bf8de c127a78c 4054b8b8 -> c28729c4 41b9d3da c2807ea6 450f9974", + "422781f0 c121e3f0 c0fa73d0 c218cc6f c1e40f20 41b949c0 4153b59c -> 43202730 42131d28 c277e6b4 45eb7c8d", + "41f9e05c c199a7b6 40d96d70 41e7e2a4 c1dbfde7 42195894 41954a4c -> 408fedc0 4184ac62 c27c55cc 44341db0", + "c01472e0 412fe820 41ddc164 418a4530 423749f0 412e1710 40cd8bc3 -> c21cd38c c28b4fe8 4206b5dc 44e5f228", + "413383b8 c23d78eb 41988810 c205d72e 42179702 c20c855b 410b3c2c -> 42b2b81c c32a87f6 42d8c963 463d8031", + "41e12428 bf4ef680 c1c0d018 c151405c c17de220 42001014 41059eb4 -> 42a4e22b 41f0f2b8 c2e07820 459c6ace", + "420f4024 41adbcd0 c2347826 42270e0c c190e545 c22c4930 4184348d -> c13e6f40 429f510a c082ef60 44a91ba5", + "419508fc c230c3de c21eeede 415c63a8 c20296c3 c191cf4f 4186048a -> 411b5ca0 c1b8b46c c22c0e6d 43a9605d", + "413a0840 c1a29273 423f77c8 c20b42cd 41e520b4 4209b2a0 40c66cdf -> 42b9c4dd c2c3d994 41d714a0 4592c3ac", + "c14c0040 41b8dafc 42350ac0 c1833d24 4104a8e8 c1d9e752 3f371d22 -> 40e9e820 41ed0d10 4310ff34 45ab8300", + "41fcd000 c198d48c c0fdf4b8 42197994 c22eb780 3fe79420 41469654 -> c1588ca0 42449a74 c19bece0 4413aaae", + "421d1ba0 41b6b1ac 41cc2918 415ef244 407cef40 bf43fc80 41943426 -> 424abe1e 421713c4 425248fc 44a85432", + "423b4af2 410ccb9c 4030fe90 41a45b88 4204624c 4118c2fc 4058be41 -> 42523a5c c2425eca c15906b0 44a46cac", + "c1f3e542 c1afbfa6 c1e21a94 40afb8f8 423e5d74 c21cc658 411c3941 -> c28fe9c0 c30b1ea4 41aee438 45c0693a", + "424270ea c22182e5 4102b274 41bcc644 4208aa78 41eb97c4 418b592b -> 42481b90 c31516ae c22a3e8a 45c5dfda", + "41c74cd0 41919f70 41cb3ea8 c21bdf43 41efb770 c1e181c6 4167f666 -> 42ff85ab c1bc3000 42d66037 45d70987", + "40daef80 c1dd398d 3fa01440 c1ca7d36 c16cf5b8 c13eedac 4102519a -> 42809c8b c1cd7d62 41d2f034 44a34716", + "c20ec568 c0f02950 4150cea8 41c98fdc 41536e60 42124e16 41474a2e -> c2f38d56 c225c184 c23c34d8 458db7c2", + "c23c8a73 c1ed629a c188fb12 c22514f4 c10ff420 c212c788 41912434 -> c13babf8 c225688a 421c93fe 4400f3e2", + "41536eec c2029810 4221596e 419e48f8 419e4858 c231c013 408eba2c -> c1524608 c2d1bc3c 43298cc0 461b9d80", + "4222632c 41dae128 4118341c c23b796c c1443974 c0bab358 41492540 -> 432eee4c 429e7ef1 41f58dc8 461146fe", + "c231430d 41a3e42c c199948e 41466b88 41b5ea28 c22774c8 418702ad -> c2e2ddef c0902fe0 42355502 4557ad2f", + "41890488 423478f4 42419b36 c1e8623e 422b7dca c1c87c3d 4166fffa -> 42b8b363 408fb2a0 4312ecaa 45e4eb94", + "c007efa0 c0ef1910 c23eca4e c1309d00 c225f95a 41fd776c 4195dabb -> 418ea118 42881638 c31ec302 45e09b13", + "c23404b6 412e9cd0 409ce748 41767998 c18bf6b0 c1fbdf1a 409a3008 -> c2f1a31c 42634518 42918c76 45b3e92e", + "41722908 c239d95d 41b082b4 c1c42c16 c0f2dbf0 4245ab30 419b82d0 -> 429ea04d c29b7ddf c25ad3ac 4557e14f", + "be236200 c23fb343 c06afd70 41921bc8 c23352c0 c22e8b9a 4199c567 -> c213628c c0c60830 429fdbc3 44c51635", + "c1de2206 4227be3a bf954ca0 41d74cc4 41f4fc18 be0c5100 41099f8a -> c2dab765 41b500b8 c003c280 453e4dad", + "c172b12c 40e6bab0 4162b750 c1a62a06 4147b778 41985a78 3e72d3b2 -> 413345c0 c128b440 c11bfb40 42a5c428", + "c221b51f 41cf31a0 423bfc7c c11c3e50 421e7ac6 41297b98 3efe2e2e -> c2754b16 c1db87d8 42919d96 45195643", + "42265250 c1bd4c4c 4235e4ec 3eeca380 c1c3d29c 41c6f084 419cdf62 -> 42a47909 3fd0ca00 4224d954 44d86ef7", + "c118bf7c 40bf2c40 41a595b4 c23aa69a 41ca8ea4 423e28bc 41848ea0 -> 429476bb c21ac394 c256bbc4 45095c3d", + "4197d1f4 c22fb8b2 4219f802 3ff0d360 41953988 41f7ea88 40c42bd8 -> 4208c4be c2fa5576 417015f0 45841d64", + "c06b0b30 c2286c7a 4238fef8 41ef6d48 c19d041a 4239f6f0 4101cfa8 -> c2866757 c233d4da bef7f800 44c411e1", + "c1be9827 bf2b1500 c1afc50d c209cd85 c0875408 42306176 40c665f7 -> 41aa05c6 40e3e2d0 c30421fe 458b1f6c", + "41799178 40570ae0 c1bc65c9 40a33ad0 41c7f6d8 c0aa1200 41970cf1 -> 41a7f410 c22d157c c211e149 440a92d7", + "c2430e32 422de2f8 c1c0dcd2 4214a68e 41ac0900 c2004aa3 4102db3f -> c32bda60 422fbcf0 417ee1d0 45f5b3d7", + "419ea304 c225fb86 421969d0 c1e843ff 41ecd344 41ad82e4 4111af75 -> 42c37382 c30e3294 420550bc 45eeab40", + "c1fc7357 4244e5f4 41a44544 423498be 41e302a8 40f89550 403c3d23 -> c3196935 4226c940 41cc3fe0 45ca4587", + "c22d6e25 c0ea94f8 421726ea c1a39c5b c23a38bb 4006fa00 3f45c3dd -> c2373fef 429ce61c 428eb74a 45507aac", + "402d69f0 4140ab9c 423b1f40 422ea158 c15b21f0 c1613414 41112bb4 -> c2a3cab9 424de6c6 42f36c45 45ba421a", + "c20e4f73 41a2dac4 422b1018 410de5d0 41e48324 4246afd6 4135018a -> c2b1c8e7 c18350c0 c15cfdf0 44f55118", + "c112c338 c125315c 4232547a 418157b8 c1dcbff8 420d99a8 4117bd4a -> c24ab954 420a274a 4192eb48 4469af78", + "408455d8 40bd53b8 411f3a6c 423a7a1a 4213ab16 41f0cebc 419764a7 -> c2a9ef5f c278013e c2213186 452fdc62", + "3f4d6600 c13e5550 40f3a5d0 41907a78 417d16f0 c14c8ad0 406070bb -> c20a0f48 c25db620 42232edc 44b7b507", + "c06266d0 42264a8e c1b586af c0d66f08 c163c620 c2475a7c 3f6675a4 -> 40ca7740 42df3c16 42592e49 45714cc5", + "c1a90eda 41de251c c15b82d4 42473fbe 41018b54 40fdce50 415327c0 -> c30de396 421d5f72 c22d34fe 45b29583", + "c23c0647 422cd270 415617dc 41f84e80 4185abf0 40c73480 419dbae1 -> c31c16c4 4253f8f0 4164fb38 45c9bbd5", + "c22f7f91 c152bd68 423c273e bf1ce440 40ba5ce0 3efec600 414c2a94 -> c2ad0c00 c217f5ec 42ba29b2 45845ccd", + "c18dfa96 c16d9290 42233c38 c2150429 41474a24 c12c61e0 41970764 -> 421c0dbc c25a6e5a 42ce54b0 45566631", + "bff2dca0 418a2fa4 c1d90c87 4212918e 420cf424 c0dbbde8 40a41ada -> c29a2873 c20fb8a4 c2221d0d 4509060c", + "41e12fd8 c1d2a160 423b3a5a c1a96f7f c1dea4d9 c1a9c56b 4119d279 -> 42c54fac 40403790 43080e88 45d9d760", + "c0a33e20 4230eec4 421415fa 42446fc4 41f7ed78 c1fba204 4102087e -> c2d8d788 41d3e020 4308f37e 45f1c7e5", + "4097cf48 c19dd52b 422fa5b0 41ef85b4 beac0400 c11994b8 419a9c7b -> c24991e2 c21b251b 42d60ade 455acd1a", + "c0ec4678 c090e760 421443e8 4236904a c1fa5b7b 41ab9a14 41305fa9 -> c2d41919 425621a3 41f9db78 45642634", + "c1c08ac4 c117cf18 423195b4 41fbc3a4 c213a1b4 41ba737c 40b55ba3 -> c2de2734 425b5bdc 4228b7ec 4584c814", + "c2135eaa c247131d c1eb77a3 c182c3ee c1e23f7c c208c0ea 418bde16 -> c223f966 c22be6be 411828c4 4415b1b8", + "c1114da0 c238d9c2 c21173ed 41fbb798 c1ea8eeb 4080e3d8 41956d48 -> c2a22f34 c2072499 c2a19068 4548be89", + "c14ff65c c1a857e6 c22d314d c166cf50 c23d128f c1aac76d 40e577b0 -> 4036c7a0 4251cd38 c22f9b2d 448c06e5", + "41e1987c c221098e c1869016 c23a24af 40ea8208 422bab40 4077f4d5 -> 43157876 c2be59cf c2eef34b 46322e15", + "406e28a0 422a8046 c201720f 418f30e0 c09855f8 c2168f60 410602ec -> c1e2d798 42bd8b05 4128ea88 45164209", + "c19faef3 41bac304 c06db300 c1b07094 c1cb4887 c222f49a 3ee030b7 -> 40860d08 42c305c6 4294196a 456a8252", + "c1050cac 41bb6fac c20f4b82 424019b8 c2024f72 413885b0 418e605b -> c2e15ce3 42e00748 c2bd6cee 4600b3db", + "c219c7d2 4216c702 c08352d0 c21e8f24 c0ab1460 4229c7ca 40e1d02e -> 4018ea40 42ac298e c2ba3224 45782edc", + "4221f670 42158c38 c19e7a8e 41664008 c1d8d856 419319b4 418b9e3e -> 4250ccdc 4300fc32 c298ca21 45bb57b3", + "c21b5a07 4237fe22 c211bca3 41cb8694 c1055090 3fe2d3c0 3fbe27e4 -> c3008ea8 42d95246 c298d341 4605742c", + "40b39460 4126a788 c2297b89 41e12368 c1f4de3b c18153bc 40ebba51 -> c2343e50 42a41900 c251a356 453070bf", + "c15b0590 c1f7f912 c2323e68 c1218134 c194ec57 c19fb52e 4107db93 -> c0e61170 c1c61976 c244c7a2 442ec9de", + "c23446bc 41adf094 40f13ca0 c245a833 c1f0ae54 c22d7c86 40ff0c26 -> 410b0bb8 42cf4f74 42cba41a 45a38a7a", + "420fd548 c2079de8 4158ded4 c2413818 c11205cc c20dff76 40c590ef -> 432886b0 c24638ea 42c4372b 461d8979", + "41db7368 c2458edf c1db5322 41ce0964 c220f532 41ffbca8 4133b8f7 -> 4056a040 c19266b4 c2ed87e5 4559eab4", + "c1b5c5c1 c13bbb44 c18e41b2 c1c5e6de 4109c6a0 4241c5b0 412e1b8b -> 408108e8 c222c0f2 c3047344 45926a75", + "41931184 c1c9fdbf c1cc1f63 42260a02 c13a623c c09f0270 3fab8527 -> c2390280 c1d99942 c2245ec7 448e8447", + "c1cdf451 40c0de48 41c6d6fc c1e1f9f4 c09b66e0 418b4f98 415f6082 -> 40a02d18 41ae2294 416e1d90 c16d3fc0", + "c0b5c1b0 c0bd99e8 41d39398 41e424ac c1f554d1 c2300774 413d12c1 -> c288ca8c 4245ee57 430ce8a0 45ce6e60", + "c1fcdb54 42036b2a 41626c00 c1e301f4 bff71d60 4210e4bc 4178d872 -> c0cecb00 428b2415 c2309378 44b7378a", + "c18431ca c1c56f27 41ca9678 4134dcb4 c2274236 420d7a42 40663b54 -> c25ea024 42091545 c1a0bc18 4490804c", + "422560f8 c12ee268 c21f4219 c23de8e4 419bc1b0 c1cdabb3 412ae948 -> 4331a4ee c27332e4 c1e1b0fe 460b098d", + "c0ad5538 c01150e0 40800d68 4169dea8 c20dc979 4211285e 4184dea3 -> c22044a2 4284b46b c28126b1 450dca73", + "4230c46c 40b8aad8 c0505c50 c12b8fc0 4229cd26 423532ec 4120c52d -> 42dba85c c292b7cb c2c238b1 45cecd16", + "c101a824 41255538 419f15f8 4221205c 410cebe0 c1ab5edd 41915260 -> c2c18a65 40434ac0 42a53a6a 45687bf5", + "c19a5948 42462042 41272f5c c150aa98 42002d8c 40050be0 412a4613 -> c1480ff0 420be56c 4185ec64 4396d82a", + "c233faa3 418217cc 41cff674 be0b4000 41fd9ccc c2312ef3 416c9c11 -> c2b36f63 c1f70a00 430c9516 45d9e6ea", + "c16dff20 c21f66ac 40e03ae0 c183dee4 4247bc5c 4232c6d0 40fd5c13 -> 404df540 c3339184 c296bf74 461335a8", + "419c6624 c1ab5dff c1dfc9c4 c2090f5b 42204756 418cac34 411f0b10 -> 42d7426d c2f5f656 c2b63afc 46073745", + "41e5e430 c11b3450 c217093f c21d5a20 4236d996 4146547c 40372300 -> 4308261c c2dda6aa c2c89e5e 461f9003", + "bfe6aa00 422e35d4 c1b2bb61 c18bee06 c17ca17c c1a022fc 418ec8f9 -> 41fb06cc 42ed5e33 c094c328 4557e780", + "421e0976 41a5fe00 421da750 c21d0140 421e61de 41d172e0 3fb946e3 -> 431d855b c216c5bc 41d3b780 45d25b35", + "3e3bfa00 c2147c62 40d87e68 410dfa70 c180ec7a 3fbf81c0 41445289 -> c18b0a88 c2280c4a 41289df8 43c4fd34", + "41a79e84 c1393d18 c1e63695 4227e634 4209faa4 c239e42e 40aa7ad5 -> c2282de4 c2b849ea 420d91c7 453215c4", + "c1c04e0c 415c11e4 c12cc484 420ff4d0 c0d62090 411eec04 418b3030 -> c2f01bd6 42239116 c225d844 4581a2c0", + "c2059c80 c1a535e7 c243f86f 417b92f0 416b6130 3dc73e00 41803986 -> c2c4813c c28d7340 c2c45c0e 45b5c680", + "40fa9000 c18b1866 c2340e1b c2461a88 42259caa c0ea55f0 40b90649 -> 42e56c88 c2eb28dd c296c35d 45fe2901", + "c1b4a165 40af37a0 3fe4e8a0 413d3f4c c21c66ee 402e1b30 41778cc0 -> c289a086 42b24de2 bfee9b80 45374572", + "40a428d0 c22e4266 c11774dc be918100 c1bc5a9f 414eaf30 414bef4b -> 412d40e0 c2202a2d c2331206 44402da8", + "c22c0579 3e587100 c1c9ec21 c06da0f0 c2070192 c1f13f93 40d91406 -> c29d2b6a 4287da03 411d4dc8 45273846", + "42061e92 40b841e0 422c99de 419962f0 c2426790 41f8ed5c 402d86a0 -> 41e5b468 42d96fcc 41c08cc0 454e2815", + "c230c313 c2070d30 422600bc 422c5df8 412d9a44 423edd26 419dad42 -> c32e9086 c2b273c1 c146e350 4610aab8", + "c226e27a 4215a79a c1ceb604 c18cba48 c22b26b3 c22145e6 41454fbf -> c2410aac 43206726 41e7ab90 45dd00ef", + "c1d8b11b 41279324 c207f842 c13be990 4214b7d4 c20606de 412375c1 -> c1f578a6 c255a616 bf78b200 44531d26", + "42019b5c 41f1cfec 4085fc40 41c93c78 c1d955e9 4233dda4 410d599c -> 4167e900 42e592ea c2a31e1c 459a1b91", + "4246deba 410a3598 422a9e5c c221ff5e 41acd60c 4161f8b8 411ea2ed -> 43346f0c c1cf7680 4264405c 460cfbd1", + "4220caca bf777cc0 40d3f828 4179b078 41733a90 41701b40 419df4a2 -> 4244bd58 c201592e c1861f2c 4408a8ac", + "414cc35c c2459b0f c2107ceb c223dadf c21f59e2 41b0f428 41429a37 -> 42d70bb6 c19904b4 c2e8f6ff 45c28ee8", + "42352372 41d92440 c198a849 c20f1f64 4169f628 41449728 409842c0 -> 4322216b 41c85258 c27af3dd 45f04dad", + "c15fd498 c14afb30 c2004044 c13fb9ec c23d007e 4094c790 3fe6dfcb -> c0806ab0 428a41b2 c292d936 451ef3bc", + "c1a9cb99 c193f2b8 c1d8bb8c c16646e0 c08e20a0 c21769c8 40d3883f -> c15aa0a4 c1e0d520 41ac3008 439e20a2", + "c21a3d44 411622e4 41b532f8 c1e02da3 3fbe4a80 4007a770 408009d4 -> c1a899ca 417cb328 42243e0a 4410b88f", + "41ed060c c11b0e38 4180f234 c2155112 c1d938e0 4205199c 3f7b6dca -> 4305ea0c 420bb1c4 c2094104 459ecc7b", + "41fbf688 413bca00 42352004 c22c1285 c240a79d c1c0b2c6 412e21ff -> 431506e4 42ef9a1d 430abcb4 46582781", + "c2191f28 c13502dc c1b34acc 41473c8c c21e9223 42209e34 40dbda4f -> c2caee4b 4262a2d8 c2fa439a 45e25d63", + "4198bc9c 4223e0da 41bb6db4 4169a8c8 411f8f70 c1b0cb13 418647c6 -> 410fa0e0 4277f9fc 42b61c64 452d3ffe", + "c200f698 4104497c 4228f76e c21374c9 c21f54ae c238c8f3 41351f53 -> 4113f188 42c0670d 4330e030 461cb0a0", + "423c04c2 3fe8d420 c1c53ad0 41ef37e4 41aafeac c2377c79 411823e4 -> 4208d1a0 c21c716a 4229be22 448155e0", + "419e2848 c1b2fb96 c1aafe67 c0c8e3b8 4210ef9c 41e43974 419f8e21 -> 42506136 c2ea6d67 c2c79bee 45c1ed84", + "c1ea6d1f c09e08f0 41186830 c10dee28 413f7110 420e53e0 400c95ac -> c223760b c2073ac4 c25073a8 44ac2af2", + "bf2919c0 422ac240 bff76860 414dfed0 40abf930 c1eb4ae2 414c893a -> c1d8906c 4295431a 425bd45c 45077500", + "c23a1fe0 c23bd769 422f6242 4226ad12 c1df20e0 423f381a 4041cf2f -> c3306679 c2188df2 c0fd5d80 45feab3f", + "421378a8 c23f07fe 42023332 c13045dc 42101aac 4212f7b4 419eebda -> 42bf8a1f c3279155 c1062410 460b9e93", + "41557a98 c0a64f98 c1e8f2b0 41bde884 bf209100 42087ed2 419b52ce -> c1a65670 c1123d78 c2fcf82a 456a7998", + "c2132c83 c18a453a 41b00d80 bfe61e00 c1fe39a8 c084e710 41195db2 -> c28bfb93 41e7e8dc 42514744 44fd67a8", + "41121180 41da3bb8 c203e3c2 c207ffd0 420628f8 42062d12 4154b3a5 -> 42ac8430 c14858e0 c305086a 45c01836", + "c1cb4cc4 c17385d8 40036770 41620030 41f5c940 420c05ce 40da9f52 -> c29e266e c2b7c616 c283cf57 459349a7", + "c0e5c900 41d7cdb4 c23f6a12 41cf832c 42435c2c c21b2572 4189b50f -> c2847ab6 c22eeaa4 c1911280 44aa1c8e", + "c0073cc0 c1b683d6 421c8b72 c22ffe97 c158910c 418563cc 41907f66 -> 42a78acb c19476a0 4233b318 44fc5a1b", + "41a29668 c1e148fc c0d10ff0 c238739c 3ffa9f60 418865d8 40b3d6d1 -> 4304df68 c270f2f2 c23ca9d4 45b6abea", + "c1c84bb1 41785bc8 c1d8234f c23e0e4b c23b355e c187d3b6 40f9fdc3 -> 4233d0e5 42f94c50 c1a09f32 458a6a7a", + "c21fe87c 4196a060 c2218bca 41953238 42447906 4153bcbc 4161b695 -> c2ea8198 c27251ac c2d67af9 45dbb53c", + "40b7b448 419ee1a4 41b21af4 c1f4f201 c175ddc4 413ab0d8 40159528 -> 42916f8a 428ce843 41a98510 4526db0f", + "3dbf8a00 c1b0de66 c2200139 c03b2c50 c20484d4 41d04ec0 412e6077 -> 40c128a0 41b05684 c304144c 4588a83e", + "c2143cf9 c225a78a 4123ce98 c1a9e0b7 c2002d1e c22fa380 4069d0f1 -> c1fd3276 c195e9b0 42d89726 454b8d45", + "c21a3019 41e94f2c 41bb9fc0 4236918a 41e188d0 c0308140 40f45151 -> c32860d2 3ff8cb80 4251afe8 45f12bbe", + "4105b798 41ec2e78 c14a5ed0 c14a7520 c23a3d49 c1f0fff2 40402009 -> 4228165c 43182a42 420bd08a 45cbf382", + "3ffd55e0 41a9a114 420a0564 c202b394 c232794a c20603e4 416ffc0c -> 428a9e43 4303a4ea 430804a4 461b36fe", + "c145e768 c214106e 40ad23d0 42114f76 40df7628 4209f69e 419b5af8 -> c2c2c950 c2afff33 c268a448 45953ead", + "4123dee8 bf1fdc00 c121da20 41f94c48 40e49578 4021fe50 410e9cb4 -> c2275cd4 c17890f8 c1ca59b4 44109faf", + "4222c93e 42433d9a c1d21514 40ce2130 c20e4bb5 41bb06f8 4192d813 -> 42890518 4328c4a8 c2c68e06 4622d49d", + "bfd0cde0 41b52cf4 c221157d c212478a 40c53ad0 c125190c 4143b361 -> 428bc11b 4203de40 c26f9e74 450bff36", + "c149e04c 41cddc84 c21a3cc8 c215b3d4 421e6064 c0e06d58 416ca63b -> 42467782 c1ddc888 c27c5e3a 44c5ff7b", + "41817004 c1ffa933 c222bdec c1e654b7 414c0538 c1137f30 419cffee -> 42b3e25e c2b2d5e8 c27bbc40 45909279", + "c19ed2a9 423dded4 40c5e4a8 c06cff90 418ac044 41a25c18 4144b958 -> c20132b7 4270fd64 c1e1c5dc 44980640", + "41b325e0 412c3fbc 412e2114 4223d26a c0dc3b00 42048884 418ee7d3 -> c2147ef4 420d2e9e c232007e 444ffe1c" + ] + }, + { + "glsl": "vec4 cultmath_multiplicative_score(vec3, vec4)", + "tolerance": "ulp-bounded", + "cases": [ + "c11a9ba0 c08a3048 41b72e00 c244b895 c0a618f0 c15e0f70 3ef856da -> 3fc12861 3d086a9a 3fb3c27f 42de9eae", + "41bd249c c1ac7381 4194b3f0 418c6498 c221d270 41a3b9c0 3f0b3bd9 -> 3f0fcd98 3fdefe9e be314190 4212b141", + "41f62464 c20e4c9e c16c45f8 3fd65f80 c18b3970 422e7bb4 3eb44477 -> 3f9c2fe6 bf431cb7 c01cbaa9 434055c3", + "41c96f4c 4062dee0 418910e0 421b4738 419b1760 4246b6e6 410e7e87 -> bd222f02 bd3c5ba6 bdc17bf0 408afc42", + "c20c21ac 3f0ebc80 c1e30c7e c06183d0 411da748 420a3d2c 3f189693 -> bf3e9c56 be60ef23 bfbe6042 42ee3b28", + "41b2e2e0 c15953b0 c1ece38d c2003b94 c2355bf0 41ca0cc0 409e973f -> 3e0694bc 3d9d12a2 be07b09a 4186dd88", + "41983128 4216629e 41e5fb78 40f99490 4247512c c153bf1c 42604d22 -> 3b914a26 bb9e576e 3c87da16 3f4e1a3b", + "c06a3730 c1c2cc7a c12b8248 c21deaa8 421e0cd0 41a85360 41102962 -> 3d4c057b bdb5dfc0 bd34e62d 410dbb1f", + "42288c08 c230f16f c217ffcd 41cb6260 c158eb08 40fbd680 40b841a9 -> 3d4e33da bdbd3ea3 be0d7a3c 412037ff", + "41df1698 c041fca0 c1e76af0 be9e2100 420f9fb4 4242b24e 3e370653 -> 3fdd3129 c018bb8d c09832a6 43ff5d6a", + "41e0109c c20c9fb7 c18222e0 c1b0818f c1fd1556 413b7a1c 3e1ca926 -> 40b63dd4 becd0438 c04bb4a0 43bbd1e8", + "417f2d48 42198ab4 c197d6b4 419c7508 414e9ab8 41bae87c 413732d2 -> bbd06fc3 3d37eaab bd98dcde 408a78a1", + "c1c8bda1 42015a54 c160b650 41a2ba04 c211ec84 412af5ec 41cc15b8 -> bca9773d 3d0058dc bc387b42 4057fbf0", + "c19ac6fb c22671fa c0ef6628 4191bda0 c2027472 423f5064 4258deab -> bc284424 bb2136c1 bc77c09b 3f9f4542", + "c115f664 40f599a0 c227912c c2104e88 c13e8854 4204dffc 41338283 -> 3ced88d7 3cae31e4 bda7074a 40ea20d0", + "c21cc686 c231cf22 4202561e 41a92ef8 c222b4d7 41100984 3f1c4612 -> bfc2f7ef bdc33107 3f18637f 42d49e71", + "c2027c22 41f7d71c c2308953 41bc3d24 420a0692 42203234 40789f1a -> be122e5d bc12e301 be5b2892 41d08419", + "416a1790 420c781c 41eacd74 41b31870 c1402cb4 c1ae8949 402897a6 -> bd2c4c72 3e82dd8b 3e8e14cf 41d491b0", + "c22e2dbd 4224db56 411b81a0 c2441639 415e388c c20bee37 3f133077 -> 3e392cf1 3f66f6ce 3fbceaf5 42b73d53", + "c19a5101 c1d8b45c 40b44858 c1c96e7b 42209442 c246d279 3e879d7c -> 3e826fbf c03a21b2 40193479 43a4c0e6", + "41d652e8 4057c4d0 4244c588 c23737ad c24144e6 40812588 3e801548 -> 4039e660 40045d18 3fe74675 43c7addc", + "c1b4bb0f c1558dc8 4232c040 c188f608 c228e1cf c13d7350 419866a5 -> bb93b6d2 3cc2e268 3d3ec5c4 40560a4c", + "41b47630 c1a9efcf c1076b00 c24796e8 40a12508 c1e82f16 3e0a4cf1 -> 40d73627 c01c1ae1 3ff44498 4413a770", + "c20eaa77 c1d91491 41a15b68 c09217d0 c0c07b48 c2448834 421f42dc -> bc2252fe bbdc7605 3cb4da98 3ffd77a6", + "410116ec 3e6da100 bfa54640 42317250 421f04ae c131f664 422cb0bc -> bc7c7b8a bc897906 3b88c9db 3fa1bce1", + "c1920863 41f14268 419187c8 c15b191c 41c12d54 c17eb368 41bc24d7 -> bbb5e357 3befb664 3d2a0df1 3fbe22d6", + "4091f638 41708098 4190c994 40c37f90 41d6dd38 bf2ce600 40b1b7e4 -> bc4d5218 bdc413e1 3e1ba0f6 408028a0", + "42309db8 c20f9c35 c1ca40aa c16e4178 41ea8a24 c220ff82 40ef40f0 -> 3db53bd2 bdc82ff3 3cb7c579 413ef9a8", + "c19bf2d5 c1a7d058 410c2d30 40f65418 404ace60 c1bb2773 4140755a -> bd3ebee0 bd29613a 3d619147 4081232f", + "4211aeee c080ac70 c137b54c c1ffccf9 424520c4 4218a014 3fd6914d -> 3ed1146d bea2f13d be97bd29 426e6b1c", + "bfb32380 41bac2b8 415cbd80 41f71bec 4213954e c1c59126 40c6c11f -> bdcc98c7 bd2bbb16 3df3e8ad 41060c55", + "40faac80 c23fb716 421d4d14 418903f4 3fc56c60 c1abe013 41044b6c -> bc6946ed bd9b3985 3dbecd24 4118c169", + "c15dd8a8 c1d013ba 41140ab4 c21e4064 c1a6fc2d c1c4eef9 3ddf1b87 -> 40b04469 bf8cee79 40e851ff 43c48c81", + "3f912c00 c2224767 41e4de6c c1e82c76 c22a1920 c2212cf2 413125af -> 3d14477d 3b19caa4 3da9666a 40d974e8", + "c1f79496 c1a35bc6 c13ea648 41dc9bb4 4132b158 c202a2e2 4014dce5 -> beb8eb93 be479f15 3e0316ae 41ef9a8f", + "c113f644 412ec130 40870d58 4229afc2 4209c910 c23d42d7 4172460f -> bd364939 bca5fbda 3d35d08d 40a209ad", + "c1b8622c 419b7c70 4222488a c2417e7e 42405c50 c2324b46 404e6d4f -> 3dac4892 bdc2edad 3e90cdc4 41e781a1", + "c1e01761 41ea2000 c229a618 41a13db4 414c5e3c c126d7c0 42a7e357 -> bc1c5b99 3b56271b bbcfa7e1 3f375c58", + "415ea30c 420cc02a 411e90c8 41eb5ce0 c2099ba1 422686e8 3fba7c19 -> be0ba886 3f1cb2c7 be8edb71 42563f11", + "41b3ed98 3f9ed4c0 421e3420 42217f0e c21b4d27 c1fd1da5 4291609f -> bb40ce03 3bd7fc38 3c3fe21d 3f934229", + "41511760 c233defe c1ffe04e c0aa3938 c1da694b c1ab7798 3f080d23 -> 3fa07bba bf9a3009 bf382ce5 424fb3d7", + "c120167c 421826ac c1f52f79 c2227570 c236e1ac c200953c 42a348ec -> 3b89bed0 3c3c7616 3957a786 3f8bd4b3", + "3ea10e80 c19c06f3 c22a5101 424194c4 41de261c bff4d5e0 41a1843e -> bcf7c2ca bcf397f5 bcd18dee 40799af7", + "41cde044 42313d7a c213feac 4196c964 c21bc9bf c180ddae 4089b70f -> 3c9837a0 3e660c22 bd66e3ba 41a013e0", + "c1fe70de c243eb96 c21afd8d 4213a978 4214438c 409ced70 40bb657c -> bdcae241 bdfe089b bd80df60 41a1d260", + "41c1ddfc 421e4a0e c1c433fe c11ecf28 c21bfa24 41ba461c 3f059cf0 -> 3f2ac6d5 3fc46548 bf6f05d0 433bf969", + "423c997e c1171048 41a047bc c21ab9f5 41be3848 c1048624 3eece62f -> 3ff695ac bf3ede75 3f22b535 43501d74", + "c1ea0bbf 42008522 4227ea4a c184c06a 41a22fb8 c1fba487 4226c07f -> bb83e66f 3b7706f1 3cbf3e86 3fe7adf9", + "c21d1c78 c233f17b 41cea850 c2196ae6 4232b30a 419dc4b4 3ee6cfea -> bcbab558 c00da1d6 3e1a747b 43475cb1", + "42141242 c2279a30 c1dc3dcc c2032539 414f3458 c13db44c 41994b45 -> 3d258473 bd020f7f bc14a8d0 40968c7f", + "c1113624 41ff91fc 41052240 41861a64 41c66c84 403ab490 41b63bc5 -> bd29e529 3c3be02c 3c0e1ea7 3f99aad8", + "407018c0 c0e11458 40f0f538 c14b9790 4228b2b4 c18db924 42a7b4c1 -> 3b5f239b bc269c32 3baaf3c2 3f302e4e", + "c1f8e16e c1f5cfac 40609ac0 c204d450 c15a4038 41acb184 4100a9e3 -> 3c2b2e5e bdae51d4 bdb86f87 4046aab7", + "420a3b8a beb71300 c1ac91c8 c206ad2e c239bf4a c23f846e 3e4e2ff5 -> 407ae700 4029743f 3fc17e67 43d69fdb", + "c18c53c2 c01bd3b0 42306b44 c21cb0f0 c239b477 c079e700 41c677b1 -> 3c5034a0 3cd3b517 3ce70b47 4031031d", + "c24743dd c182bc8e 41852530 4235e19a 417a09c8 c22500ee 40a3c8a2 -> be245c33 bd5c93ae 3dc7b92c 41b54b4b", + "4140c440 c1fd94fd 41c2f5fc c23dffa9 c1490458 c1cd3540 4130fe53 -> 3d89a751 bcb0ed3d 3d674368 40e7ad33", + "421b4da6 4197aedc c24650e8 c1bb45bb 41847458 c215b857 409d15b6 -> 3e4c96d8 3bfcd892 bd1fc0c7 414ed326", + "c18d91b6 c1a0dd17 3edd2f80 41a9eb18 3f4bedc0 41939ed0 3ededd7b -> bfefe729 bf80cd8e bf5e10ff 42db492c", + "42359ab2 4156cd88 c1bc69e9 421a672a 4210c1de c2017a39 3eba6781 -> 3f3cb087 c01de8f6 3f74aa1a 428b3685", + "420e7670 42137714 c1e56bd8 41a5db00 414d66c4 c22dd687 3ef26cbf -> 3f7c49d8 3fcba693 3f7a8fb8 4286bb59", + "c1954750 4081e0f0 c210ad86 41810398 41de2c64 c0ffdde8 40025ec1 -> beac99a8 be6b5014 be8bc9ed 41c6f209", + "41e4d6ac 422ebc2c 4208f1ee c14fba88 c183cc32 c1d45e87 412dfc9c -> 3d24bacc 3d6e49b5 3d70c267 410bebb9", + "c238efbc c20727c6 c1ce27e3 c20cad45 c11b4158 c16525c0 411fc7f4 -> bd1d30c5 bdab14c7 bd22a120 4039089d", + "409c10f8 c00500d0 c21066d3 3f9fa160 c22d2068 bf140b40 3dffa4c2 -> 3f088a35 40c1bb6a c0a704ef 43da6513", + "4200605c 41e8ca08 40bb7d20 c2391f86 c22fe1d0 c181271c 3ddae5ab -> 40d68233 40c7fcb1 3ff0e2e3 447fdc17", + "41ceaaac c156606c c2338c3f 41b8330c c1bc69b9 41dd45e8 3ea35d47 -> 3df5e656 3ede3f29 c046801f 4365c04e", + "419dee6c c0f93710 3fcab980 402a7f70 4230b50a 3f538a00 41e45738 -> 3c333217 bd08518e 39fe5754 3ff55288", + "41a53db4 423c5e06 40bcd620 c1dbabf5 41a6e5d4 40bba0e0 419d6469 -> 3d36cb83 3cc74d8b 3812dcde 40324358", + "c22f73d5 4247b94e c20c7b40 41a86d34 422a5470 c1193af4 429d29d9 -> bc40f30b 3aaebbeb bb97d825 3f6485a1", + "c20da8d7 c1acfb6c c1859e38 c1b40891 421e644a 41875464 3f304910 -> be87269d bfa0376d bf2ff60e 42ce4a40", + "41ece0a8 c1f70f66 c1031b30 c2109b79 41004e70 be18fc00 420f42f6 -> 3cc3c7c4 bc67a15e bb3f9a03 400949c9", + "c231292c 41450d80 42425516 c215d572 424261ac c1e51ded 3e61aaeb -> beb96f88 bff62f87 40830117 43c2323e", + "420006fe 4247d4de 41f96ce8 c16d52e8 41dff0ac c1cbfed8 41453fa2 -> 3d4acca1 3cbe347d 3d75650b 40c730c3", + "c15545a0 4220ef02 c2401d13 c1811298 c14c3938 c1edb73d 40907d88 -> 3c354312 3e56141d bd93f486 4146f0c8", + "c210a92c c1fdb62f c1c6a781 c235af40 4207a3f8 407ab400 42577ce5 -> 3b1bde26 bc8a2302 bbf2103a 3faba4d3", + "41dfcb70 c20f9e6f c2253a81 c214a0b2 c22ff2e8 42254f50 3dd2ee9d -> 40bfc34a 3f3e600b c0f34c0a 448012d8", + "c1462850 c206d056 41083030 422ff2c6 c1f77f8d 420c4976 3f72fd7a -> bf73bdf2 bd3f5de9 bee5ae58 42836ee7", + "c1aca528 4007a6f0 42295070 c219940b c0f2b318 4103c704 3ff888b8 -> 3e620586 3e0271f9 3ee524f0 41a1a4a9", + "c1a8ed69 c122a6e4 41efdba8 c1e9bc2d c1a37abc c1a02a47 42643270 -> 3b340d74 3b643e61 3c8aebc9 3f67ee1c", + "c0bf0c38 41bb51ac c2282632 c20d424d 418b8b94 c1ecda01 3e074af5 -> 40db334c 3fb26ec2 c039b6de 4375680f", + "420f734e 41b3e1ec c1dd6810 41afd67c c1869d78 419a27ac 42bb5da0 -> 3b1aae85 3bdb01aa bc02c3c6 3f2b91c8", + "41bf7eb0 c0d148f0 c121f048 c1fe9d10 c16c9454 c1db603d 42120eab -> 3cd42b3b 3b7aff1b 3c03a6f7 3fceb368", + "418154f4 c1894862 422be4ca c1081698 4236b980 bff26720 403e0f08 -> 3dd1e6e6 be85a8be 3e3edbbc 41da5e9d", + "41c21694 c1aa50a9 42283d64 41d394ec 413591c8 c225caa8 42806873 -> b9c7199f bbb9bab6 3c6d9bb0 3fb2cd3f", + "c0e3c958 3f0c8f80 41ea6a24 3fcf4de0 416ad9d8 c1aba234 3ff20de2 -> bdb1317a be0f429e 3f00a88d 41e1ee18", + "41ed12f4 41a008f0 c125fd20 c22307a7 421bddea c0c3b768 408e6b27 -> 3e5dc8de bd6efaf1 bc56a90b 418343ad", + "42397f64 c11e586c c23d8f8e 423167b8 c22a6505 c22e2969 41ad602f -> 3b397286 3d3b59b9 bbb0712d 3fc2d8d5", + "c116cbe4 c20c0afe 41b986b4 41ae1898 41b24c74 409e26c8 3e643772 -> c0043555 c072e67e 3f9ab84e 4397f92a", + "c0c735b8 c19de2d9 423620c8 41ae99a0 412b79f8 c2321ec9 3f5ab93d -> bea994c1 beb81b62 3f881eaf 42e8085c", + "422ba4a4 41293b70 41846e10 41a448e8 423020fc c0e485b0 421dc555 -> 3c47006b bc94c5da 3c52bd8d 3f979150", + "414d5d58 40564140 c18dfbfe c22d246c c2371c4c 42309278 41ada7ce -> 3cda86f0 3cbf49a0 bcf0fedd 408ee079", + "421a6dc6 421dccf2 420062be 407c9780 c23fa13f c2091c8b 3df02c2d -> 402466c3 40cf2d5f 409d69ca 447547a2", + "c1670b10 c22f8e47 41eedc4c 4229903e 41bcd41c c1985bc9 3f986775 -> bef24100 bf0fd9a9 3ed074d1 42a9732f", + "c1242868 c0bd0078 c14951e0 c1ae0127 c1396090 c1d0dd1f 3e021457 -> 409b5664 40199078 40b6d841 4312b0d4", + "41ec3610 c15f1a58 c1d1797b c2128600 41599d34 42255300 41abe7a3 -> 3d001545 bc554fb8 bd02b663 40929f43", + "413a43bc c110faa0 4170c2e0 41908508 412cc980 c18247c6 40909a25 -> bd1aa67f bdef1458 3e3c9759 41054e09", + "c112f97c c21241f7 c2007ca6 4109fef4 421efdc2 c1aa0295 40a824b0 -> bd2f7e34 be3bfb24 bcd63812 4170e6f8", + "408ee918 4212c8e2 41e12870 c1ec9224 c21862d1 3f2c3400 3efc6ba3 -> 3f4bfc93 3fe01e0d 3f24a417 432fbedd", + "c222fbde 4233567a 41e3b850 417cef68 41a20214 41c36248 3e3fbebd -> c09c642c 4007f65c 3eb2d6e2 43a50408", + "405938a0 41047dec c116c220 c1382230 c1ccdf14 c1cb77c8 418404f7 -> 3cb767d3 3d508aaa 3cc50cce 401c6dfa", + "4172c180 c20cc293 c1cd648f c214c852 423cf5fe 41f58958 42b9b323 -> 3ba3e73b bc00ff34 bbb06ad3 3f9b71b8", + "c19abc30 c1f3afa4 419cff60 bfaabcc0 423492bc c078ca90 3f108fca -> bec91595 bfd30e56 3f0345b9 430fca6e", + "bf23de80 c08a87a8 422bc312 3fd943c0 c1157740 4094a210 406eac87 -> bc84b41d 3d0e4922 3e87e1d2 412601ee", + "c0795200 42125490 c23ef954 42223156 4114abe4 c07a73d0 4227bfc8 -> bc7edee1 3c1c80b1 bc7b5a01 3fcfee85", + "40a4f468 41da67c4 c1eeef6e 4175b530 c2374567 4205bb1e 423eedc3 -> bb1008ee 3c810a2d bc5f6c48 40026453", + "41af16ec 40746800 c22980c0 c20d58cf 419fd844 c1cea5ab 41b66047 -> 3d269497 bc3c314a bc40a741 402d45d0", + "41ca5c98 c224a388 c2036e41 41c8dc9c c1ad8463 420814dc 3e074f04 -> 3ca6e08e c007628f c0e884a6 4403c8ea", + "c2158f90 c0173990 42132d56 4206ee46 419f5fb4 c1e3c102 3ebf1ebb -> bff62ddd bf1a44b9 3fe1e5e4 4384b2c7", + "c1ae2e45 c1df71e6 c1ddf351 c140d3ec c1765058 c219f9d2 41934b88 -> bce1b404 bd118883 3cf99a20 3f853864", + "c0f85da0 bf022680 42053cce 4223d820 414ae0e4 c163bb7c 41a8c5ac -> bd086c92 bc13b5d3 3d051edb 40525b5a", + "4227688c 420d43d2 c14f744c 41a56c1c c19c31d1 41be5524 415501ea -> 3cbbed5b 3d735c96 bd231da2 40a6a6d8", + "41ddf030 420c74ee c20a3cf6 c19825ac 41410fa0 42058b16 3ff1dbb8 -> 3e93f393 3e11d8ff bed6faea 42354be8", + "c1a2b10b c1854a1c 41fcfe0c c17bd504 413e6e78 41a1ce84 400299a0 -> bd945e7d bee6792e 3e37f12d 4173cee7", + "c192011d 420d78e8 41d5b858 c169ff20 c2155903 c23ba11f 3f7b2743 -> bd123581 3f373d60 3f398d42 42d310ad", + "41159448 c181561e 4208962c 417a1658 bfdf88c0 c1bb841d 3ed6c89a -> be806ed3 bf136b16 40132be3 430e4d6b", + "41452254 be759600 c213c7c7 c128dcf4 c010b130 bfdee260 40514875 -> 3e2a6c4e 3c70e8c9 be832376 414da7eb", + "c150b780 c22cbcb2 c22c2224 41b45004 c1af09d0 c1885586 3e74171d -> c043321f bfe9bb66 c00e93c1 434d5598", + "c207638c c2414237 40d66b10 c244e365 4178a778 c1817b10 40cb57cf -> 3d0e7c86 be13f200 3d5417c3 412f211b", + "4247caea 41251b04 c16b28ac c200bfe5 41a59760 c143f5a8 3eb66c04 -> 403221d3 beb4172a bdaa0709 436876a6", + "3fa3ffa0 c195a646 41759e50 c210bfd2 40da6920 c1e1b38e 4127a613 -> 3d68f1d0 bd1ebb2f 3d876b6c 40c00715", + "42065088 41948d9c 423341fc c20f594f c1e04355 422cb1d2 428b9751 -> 3c42dbc0 3c02d13a 39936354 3f995c58", + "41e46b30 419dfca0 414d60dc 420a2be4 41a11348 c1ec25a6 3ffcfb18 -> bd911c43 bb95a0a4 3f003ef5 41ad2743", + "c18ed1b0 c1b46e6e 416da3e8 4202d9de 422afb78 412a7b24 40eddd97 -> bda8780e bdd98f49 3bdfc180 4131ffcb", + "421dc3a8 41de04c8 c1e2eeb0 41d85278 c21df9a9 c18f447c 4214b064 -> 3b9e06e1 3cd63beb bb854543 3fee3314", + "41cc2ce4 c10626e4 410b9f54 41aa5be8 c21b50fc c09890a0 3f72eba0 -> 3e07e380 3f74add5 3ed8e654 420d80bd", + "c1871208 413e2d98 421275ea c0cda3b8 c115bd68 4174ef28 3ee0767d -> bf3fb431 3fc2b9e5 3fc34b1e 42915187", + "42224872 41b3bb40 c185d794 c245bdf3 c202ea97 41c994c8 3ebffd72 -> 40073967 3fa5d99f bf7bf7c3 43977a79", + "c2389bec c2460166 c197335e 416146b0 41321dc0 c2341ec4 42856686 -> bc258c69 bc26a6fc 3b8fa316 3fab8157", + "42234468 41b972a8 c14e0a2c c21a2802 41315044 c22384d2 3dfc7d3b -> 40f246c8 3f93c0e3 402afbd4 442c65e1", + "c1aeefee c2378f9e c213020f 410f6a80 41c9fe84 c21d834b 42bb0e70 -> bb8b3cad bc20a3c5 39bdc459 3f54572a", + "4178f588 41e1e620 c12dc6b0 4006ad40 42356300 c1105e98 42b8fc7f -> 3bda3a8e bc0abe30 ba6e76d9 3e71d63c", + "c232db3b 42197472 41d3ce60 422cf0ee 40dc9ae8 418452a0 41621f93 -> bd87ace0 3cc23018 3bf53b01 40d4b266", + "c10e214c c1b2fcf9 c22b23b8 3d1e4c00 c11bcd40 c13903dc 3fedc9fb -> be0d240b be47e5d1 bef6f567 41960bd8", + "421ad212 bf01e2c0 c18f18ea 41ec792c 40c604e0 c1fd13b0 40eef065 -> 3d8cca36 bd4e228d 3dd39f89 4018b832", + "4192da7c c1efd376 c106624c c0ff4ec0 416936c0 c1ef2eae 3fb43ca1 -> 3eaadd24 bf108909 3e8b7c61 421f338b", + "c1dde8ed 4227d7fc c2181928 417c91c0 415fe388 423511ac 42133a0f -> bc4597b8 3bfdf037 bcbd10a6 402a7e4a", + "420b44e2 412a5914 c1fe31e0 c2373f4d c0ed7110 c1952669 422321cc -> 3cc19421 3bad80c2 bb7c3278 40034b56", + "41d3ddbc c22fde57 c2244cf4 c17035b8 41b17b58 40d76cb8 41a1b579 -> 3cb7abcc bd1266d0 bcd39a96 4090f37e", + "c1aa0ac9 c22be537 41b45c7c c12d766c c1db1b9c c15914cc 3fa4177f -> be4c716f be98fc11 3f313d66 41fde848", + "4192bc5c c17200f8 3f9b58c0 422945ae c063f590 c184e8a8 3ebc568a -> c0023533 bf7b30d0 3fc1a15a 42ae2fc7", + "c16559e4 4234f56e 42090324 41d2279c c0da9518 40d89790 3e05f2b4 -> c08ae159 40b219b0 403c03e2 4408b125", + "421b6230 c2107386 41caf7c4 c2119143 4214095c 41cb6018 42642c0a -> 3c4df8d4 bc482e05 b70ece1c 3feb6cd2", + "c2100b64 c18a973e c22bdc6a 42299004 4155ec48 4136ed84 427f98e0 -> bc488af8 bb9d0614 bc0b2500 3fc8cbf2", + "420bbd34 c1291d94 c1bafbea c109e540 410d5b80 bfb2fca0 3e9fc849 -> 402a20f5 bf9798df bfabad0f 43283b08", + "c1c1d2fa 41881894 c21884fb 42389138 423fe120 41914870 3fd6a7ba -> bee17af7 be466435 beb45dc1 42634581", + "c21cd3c6 c1caa02f 410b7b10 c1a7df62 4247daa6 41b7bc40 3fc9742b -> be1686d8 bf1b7c0f bdeb6917 42482f0f", + "422c8e50 423cb25a c1c398b0 c1665cac 41302b00 c09e36c0 4088b121 -> 3e43157a 3df53bc5 bd844520 41846973", + "c23f349f c0ba4678 4247b5aa 42044596 41afa094 c1c54996 4054dd57 -> be5b6d8e bd96b986 3e4a62a2 420875ba", + "40b9e6b0 40f408c0 c171cb84 4209567e c227552a 4215a67c 40f9ab9a -> bd4106bb 3da757cb bdb1b70c 411f1847", + "c047fd00 41580378 c202227a 421c283e c22af42c 3f872100 3dff6357 -> c08ae380 40b9409a c05d496f 441c2e09", + "c227fb87 bfd765a0 4155fed8 415681ac 4219dd42 40678830 4262f3b2 -> bc677b57 bc27bffc 3b231138 3f9beab5", + "c0f7ce00 c243b19c c230e225 423f4c20 c239d10e 4141f488 3f0272fa -> bfb04d0f bd7ab2a3 bfb2c25d 431b5fd7", + "c1d955ce c2183aa5 c213b45d c1bfde56 c0e5b7e0 42205904 408ec75a -> bc0cc708 bdaab1a7 be54dc51 4194e0e6", + "41885da0 c1d15cb9 c0aa3178 42272fd0 420e37a2 41d69980 401c5934 -> be0c75b0 beaf2417 be36695f 41f1e1c1", + "c1829d04 c227a9de c05bf690 406feec0 42300020 3f942600 4285ec76 -> bb5e63e0 bc6defb4 ba4b93c5 3fa8e24e", + "4237725e c157282c c1f2b5ae 4205f308 41adc568 410ef5bc 3e8293e7 -> 3f6560e3 c022fa21 c0360013 4354547b", + "40d195a8 c1a72178 42120a5e c235841c c1c5ad4b c127fdd8 3f06bde9 -> 3fb40583 3dd3ca3d 3fa2f80f 430547ce", + "3fc77040 c2366e1e 41505da0 41670b40 412f8014 bfe4e040 3fd8c152 -> be02148e bf0ed2b4 3e158e96 420d7465", + "c1cc19a1 c1fa7438 41ace138 c23c5a60 41d65784 c08ef9d0 3e3942b6 -> 3fe305d6 c098d524 400932a9 43b9d3da", + "422bf842 4113750c c0bd9660 c221d12e c21c240e c1a4f78d 3f24f623 -> 3fa9ff68 3f449857 3e6f8392 43175174", + "41cb1ecc 422da67a c0ef11a0 41a8cca4 c196c8d4 c1091cc4 3e53707f -> 3eaa6dd2 409a95d3 3dae9340 43972516", + "4232e260 4102bdcc 4214b3ec 4124391c c14acf2c c1de39f3 41e890f3 -> 3c7e1937 3c19bb72 3cef7f13 402840d9", + "c2393bc0 42062930 421d3c1c c187bfc8 c23c37ce 404f1400 415d7c5d -> bcba9aa6 3d8025e6 3ce56de8 40d7175c", + "c2008ff0 bff96e60 41f49ad4 4233b6f0 c2126358 c2341e2b 41011277 -> bdac8f65 3d1b283e 3da94827 4160e337", + "419f2404 c0f216b0 42344d12 c20eb298 c21f83b0 423c485c 419a378b -> 3d37978c 3cd58661 bad2f7d1 405582a1", + "c21c1497 c1ec0cc7 422d5c7e c1a17723 c22cdfd1 c19c4ce7 3f4817e3 -> beb80399 3e85f3f0 3f998f68 42ab9539", + "412859c8 4209bcb2 c0eb4540 c12881cc c1d58481 c1bc4275 423f05a8 -> 3bd8c59a 3c9d5601 3ba69848 3fb29f5f", + "41cd6828 409888c8 41d41d6c c227ec40 41d125f4 40b31c70 40aa3e14 -> 3e300b67 bd5e7e29 3d59b553 415e784f", + "c09470a0 413f418c 41d15ec0 c2010112 c158a418 c043e570 3f0e4389 -> 3f8594ac 3f76a96c 3f8d6ac9 42ab5a2a", + "c2090db7 422866d8 c081f908 c1b66035 c1c6caab c230361f 4271c698 -> bb1db9f5 3c663b11 3c09865b 3fa6eb76", + "4150be48 4237df9c c23b2453 4238a804 c1d9d098 c1064688 40a7fcab -> bd9119f9 3e205943 bda83752 4187b14b", + "4159df70 c14127bc 40aebb18 42205ee8 41e40620 41c20ce4 428621bf -> bbf8ec43 bc3ebe44 bbb0b808 3f465dc1", + "4216ac12 c1fb8349 c22ec658 c1802d54 c1086cc4 c1fae674 4114d37e -> 3dc62272 bd291c1e bcb60641 40cd418e", + "4108a4e8 c20352e1 c217ba80 41a29268 420617e4 c2343f8d 400d2b43 -> bda16972 bee346b1 3d435f03 41f5c916", + "422955d8 423ad678 c216f058 4240a314 c1ebd637 423a5b2a 3e75024a -> be5b173e 403316cd c04635dc 43edcc77", + "410cc5f0 41ba6610 c2189444 4057b470 c2100ad0 c2473a49 41e2ae7a -> 3b4edc27 3d0d4555 3bde3927 400913d1", + "c1cfcb5c c1ea5007 c1b2bff4 40fe9f58 41b5766c c19b1b1f 3f31f31a -> bf491b1b bf9a03e3 bd8c224f 42b2c8f0", + "41bc50fc c125e324 422ce690 4206b5dc 42153d1a c1b7414a 3e0bcb0d -> bf676833 c08808a2 40bcb015 441672a7", + "41e664fc 4224962e c1c14262 c12c00c0 c1554854 c215ca8a 415c1928 -> 3d2b9e20 3d6c645c 3c66af3c 409f9f7f", + "c10c819c c0d9c228 4227bbd4 40ff7160 41dd5690 41fcb2d8 3f3c133b -> bf1320e9 bf974518 3eb59a0b 42582c9a", + "c097a570 4231cdec 41f4dc20 c1b420c2 c1fc71e2 42077f6c 3f8ae1d9 -> 3e56bf13 3f658a32 bd1ddbde 4290025f", + "4239d522 4209a57a c2168ab6 c21ca352 41c29c04 c205220e 3ebb8ac1 -> 402d4d96 3ea350ba be0cf3cb 436ba81b", + "40e27a08 c1f7adce c20e12c6 c186506c 419bf79c c22781d8 41c8efec -> 3c8a90b5 bd1277df 3b93aa05 400f2450", + "42009cdc 42100cee c20f8489 41da8e88 42169040 c21e27f4 41f3f490 -> 3cced904 bc0b5b82 3c9c9b97 3e52cc7e", + "41dc2080 c1646f38 4247e5c0 42340fee bf79bf40 4244cba2 3f348c7f -> bf906637 bf5b8452 3d4cc57d 41f97dd7", + "c09a35a8 c2158781 40c631e0 4196ec14 c0d90080 419feee4 41ec397f -> bc9ff101 bccea674 bc3a5ba3 3fb21601", + "c22d0f4d c212167b c1acb9bd 41457fa0 42375784 401f4ab0 4205bf99 -> bc853e23 bcc555c7 bbe6c976 4043b587", + "c1cec2bb 41db9d34 c1c9d33e c2275086 41bbb68c bf908d00 40fa41c7 -> 3d8f6376 3c8f178d bdd830d9 406ee3a4", + "c2263f01 4183e534 3e285a00 c1999263 41bb4ec0 3fda85c0 3ebd780b -> c024d8f6 bf4c3729 be35f22a 427d9fe6", + "bfa7d720 c2167076 c208b340 c1c59602 c201edb0 4222102e 3e68e9b0 -> 3fa7cc01 be932939 c085f90f 43ac6b1a", + "c22e4f66 41049bf4 41658700 c1bdc842 c13de524 423ea1a2 41926e63 -> bccb50ba 3cce67c9 bd2a8fc7 4018d1a4", + "41b446d0 420ed856 c20c18a4 422738bc 40ff1b08 4242aa62 407f4677 -> bd5b4647 3d9dd0fc be6e11c9 41b502c9", + "41045664 41c99ebc 42136074 41cc7b80 3ea80480 4172bad8 3fa1fd10 -> bebbca13 3f071696 3eeb6929 41eb758c", + "c077a190 c22fe21d c13f030c 419e7120 c1fdb97b 415661e8 40b06aa3 -> bdef209d bd77925e bdffebe6 40d57a41", + "c243a605 c215a99f c14f545c 41e28a68 413f91f8 41b1f4c0 3eae4747 -> c013df4d bfbd214f bf86ce2c 43903ead", + "c1f6b0c6 4126d28c 41ff2738 c16aadc8 3f9b3ec0 4216c24e 3f98df23 -> bf31cff8 3ecaa57a be7ef0fd 41828fad", + "41f63488 c16cfc0c c13007b8 c20a3c02 40429cd0 41794d08 424e57d0 -> 3c8e98f1 bb9bdb64 bbe81481 3fb489d4", + "c14cff54 c1a82768 be846000 4189848c c1c53d0f 41c93b58 40ce0415 -> bdf1b4d1 3c6a5098 bdccbb45 40c443a8", + "401091b0 c1bdbafc 40cf1a78 c1f13917 c17bdb5c c2028344 415e9912 -> 3d399dde bc36b107 3d5feb86 406c7eeb", + "41b903e8 41df78e8 c2120c78 4237fee4 c1bc9ffb c165f1a8 3fbebc5c -> be81c78d 3f1224e8 be7b4276 42228c7f", + "c20ce544 c2343327 c11c5b3c 42447612 41dbd8d0 c244a54c 41122437 -> bda0407e bd89d0a2 3d15af8c 414eb6b3", + "41a6b9c8 4244412c 408ba498 4173e5d8 423f4538 418d077c 41042afd -> 3d400cdc 3c2b0516 bde392fb 3fdfed3f", + "42066a16 421533aa c21b7d13 c155f3ec 423c5cb4 40ee1ab0 4122a757 -> 3d8de82f bc6c9886 bd8be7a7 40d1ec71", + "c17db77c c1c49f68 c20a0ee7 c2042f33 41a28b20 416750b0 3e2daf58 -> 3fbd05d9 c076db36 c086a248 43ca4bb7", + "40e82450 c1c3eaed c1f475cc c1bb0c6b c1a060a6 3fa7b620 3ef0c728 -> 3fbbafd8 be59bc28 bfc33c7f 42bcf226", + "c1cfc11a c221f1f1 41909868 c008aef0 41c285f0 4233bf0e 41dda222 -> bc3e3fd3 bd015171 bc566ca5 402b265c", + "c1b63d52 c23f9144 40934ff8 c158f038 be838080 c229d062 4241fb2b -> bb385e42 bc6e19c1 3c6b3621 3fb2669c", + "422288ca c23e8f64 4115ef80 c1a55965 41e18080 41b19ef4 41d1f047 -> 3cc29427 bcf0af20 bba2ea43 406fda87", + "41ec391c c1ca0fd0 4200a546 c22b592a c159e5d8 40f69aa0 3e82e023 -> 406a7d8f bf16dc5f 3f9e7ccb 4397238b", + "41bc6d44 c1714220 c1360154 418eeb14 c206b9f4 c1082e84 40c40949 -> 3d416e82 3e1e2448 bcc2c533 404d6b7a", + "41de4b34 c0de4a38 421b0df4 c1d9cc85 41481118 420df24e 3e253035 -> 40baba28 c0040b52 3eb1f8a5 43b52326", + "c1d57ce1 412e1c68 41f419b4 c1eb66db 40dd2468 c1feff20 411f7e93 -> 3b8fe6d6 3bd09f5a 3dccd671 40c8de98", + "c1d6cc24 412124f0 423d267e 3fe1ed80 41e8dc74 c1038cb0 400a70e9 -> be4f7a97 be0a06cc 3ec93e39 41f17474", + "420b15f6 420fa6ee c114c714 c1410e4c c14c5114 418ea7b4 40825caf -> 3e21b812 3e281737 bdbb59d0 418ef62f", + "41897e88 c20815ac 41949cd0 c1849a1a 4180767c c1a06584 3e78b79a -> 3ff82d43 c0380f42 400df743 4393952f", + "4114e788 41a4dbd4 c22dc670 c2094406 4212dd2c 41bdafa4 409b70e7 -> 3de12981 bd264a8f be2d4f92 418686d3", + "415dc3f4 c2416796 42125a42 41ebc3fc c126b46c c0423660 40501973 -> bdac6718 be5176a6 3e5acc90 418c50df", + "41c6cc7c c10a9b48 c20799e2 c14ca0b8 4246d78c c20bb844 4276e5f8 -> 3c0fd3e4 bc5f0ef1 397bd0ad 3f900c8a", + "40e47e58 bff808e0 420b5d50 c1c5cee9 c201618c 40506150 409a8385 -> 3df95e68 3dedf3a6 3df72af0 413399b4", + "c0a319c0 c218418c 4214999e 4223694e 4218b332 40718900 4103a767 -> bd709a2a bdc799fe 3d2ec384 4138db5f", + "421ddb50 4222ecee c15eb234 4229910e 41908a04 421927e8 3ed9125b -> bdf82354 3f70211d c00a4980 43066b92", + "42090e84 40839fc0 410769c4 423e98d8 c1e91180 c23af1fe 426b989f -> bb624b48 3c0c856d 3c694eaa 3f8f0732", + "41c5224c 401e84b0 4238db22 4182c764 c20c7a7e c1f158e8 3deddb00 -> 3f55bda8 40723580 40f60a5c 44381fbf", + "c1dba39a c1e24780 4221a36e 41987d6c c1ec5c85 c247a74e 3ebdaa3b -> bf9e30d7 3d0925d9 40199580 43892427", + "421ed9f8 4245c0a4 421a78b0 3fb3f640 422cc40a 42123ca8 4211c1dc -> 3cdd91e9 3b908669 3abe8407 3f88877d", + "3f1b1000 41f02554 c0a5c9e0 c192daee c1b9c05a 41b0d554 4175b383 -> 3ca131b2 3d62464d bce7f0ad 4082c597", + "422fcbc0 c1bcfa42 c1b30097 423b2734 bbfda000 415ca514 414d1902 -> bba7adaf bd2e5275 bd857cc1 40581d4f", + "411758a0 4223be7e c1cbf4c9 41ba5b60 c18075f6 413ad7d0 4122d05e -> bca0682a 3da531be bd577c2d 40da5b81", + "41982158 c08a7fe0 c1d55b51 c018cbb0 4218cf36 c2402f3d 428944a1 -> 3bc3cba4 bc428758 3bc38c03 3f42ab50", + "40959aa0 419ec384 c0706db0 c1b29992 c2052ea6 c22c31e7 3f06af7d -> 3f38061e 3fb5188c 3f85e69c 4307b260", + "41b3ab40 3fb28ba0 c174bb58 421865b0 c01171e0 c1a5ae5e 3f388de6 -> bfa3cf5d 3e99a45f 3ee2d3c3 41bc200d", + "42355960 414c8ee4 41b22f08 41a3b358 c15b424c bfa6ed80 3f4ef17d -> 3f35dc48 3f41a8d6 3f2c5f9d 42565639", + "c225fdda 4161cc50 41e0e404 4113fc14 c1c8f296 c1fc445e 41e0455a -> bca94dec 3c82e23f 3cc6fd54 4047f612", + "c17a756c c1e41727 42081f44 c136bd8c 41a133cc 41e29974 3fc0f100 -> bd69dd5b bf280d76 3d9da25b 42027ffa", + "40d108e0 41fb0d1c 4198e7fc c185b28c 40dad960 c0719430 4222f53d -> 3c64fe52 3c71c77c 3c617b0e 3f8042ee", + "c127577c 421f3470 420cc802 4210dc24 c18ce5ba c13ad554 4181dafb -> bd06778f 3d256856 3d070a01 40acac9d", + "42038c4c 3f875aa0 41d93334 3ff3f900 40508300 4164c300 401b5f0f -> 3ec262bd bcdce96e 3e2147f1 415d8883", + "c2311151 41910e48 41936864 42274aa4 4219f046 c0f1b570 3fb210a3 -> bf2bd461 be227d8a 3e4f699a 42848d55", + "c1a0c01e 3f2c7980 bef57700 41dc9df8 3f770580 421d4a08 3fbacac5 -> bf06a87f bb529368 bee0dbfc 422a39aa", + "41fb3a54 c23b5c7a c14d3438 41eba880 c23e1e29 c0d7e5d0 413b7a32 -> 3cd3f4fe 3c161b3d bda57f63 3f0c40db", + "41c27d44 422baa00 41b845c4 4229f992 41f1264c c2285bb9 405fd9f8 -> bd9ab8e9 3d595e78 3e8a8a5d 419d6272", + "41a37330 c22c7a57 4212b0d4 c2046e48 c20fe405 422c673c 4055dfa8 -> 3e96ccfd bd210a5e bd10d8bc 418237db", + "c2130094 c2454035 c1088fb0 4192d5c8 c238e294 bf8e4e40 3e473a22 -> c0a2c07c be92169b bf2f65c3 438f1da8", + "c12df5d8 c1653440 c22572d8 41fb6218 bf7fd700 c17203e4 3de2e68d -> c0ed1800 c0156697 c093123d 43e88813", + "c0068b10 c120655c 41b39710 3f499640 c1e7a50d 41d9b254 3f6055d8 -> be2b1d38 3f8c1ff6 be8d07e9 41b426f1", + "41c9ba44 42359150 42455112 c226a2df c1776bd4 42129ca2 40c2b6f0 -> 3df685c7 3de05568 3cbaea08 4170150c", + "c0c69e18 414d90f4 412af510 c150ff94 4238e2ca 421805d8 41315038 -> 3c68152d bd8d397f bd67393b 407c355a", + "c23e1c46 4236d6dc c21b96a4 4242c46c 423175b8 41153758 3f9173c7 -> bf496394 3c342614 bec9dd1b 42bd7121", + "40e7b880 416656e8 c21bb77a c196dafa 41b84a7c bcc62800 3ef2d07d -> 3f93dd4a bec3cf54 bfdc6c7f 42c8e625", + "41873e00 c20f1ab4 4180d6bc 422bee82 c20871ed c1f4fb3f 3fb1192b -> beb43ff2 bcb81dfa 3f217dc9 421ac7a9", + "c232d184 c0fba7f0 41203710 4199f0c0 4143c3b4 3e23d600 4290e58c -> bc557297 bb862def 3b038eec 3f6f67a8", + "41b69d68 c00301d0 c0b07878 4031dda0 c0486d00 c1855d3c 40138cf7 -> 3ec1d758 3ca7cd62 3e57bb2b 411f6636", + "c0b781a0 413588b0 40061ec0 c1ba907c c20074ac 4238f3f6 3eb13816 -> 3f49fc4b 3ff994bf bffd8095 433a0a1b", + "c19808d6 4219088c 41d9953c 4137ff2c c1552a64 c150efc0 41a21455 -> bcaada30 3d1073bc 3ce17977 40640d05", + "bfb021e0 423251e6 c0c17330 41f2a970 419506ec c19f0914 42a490e2 -> bc11fe34 3beef8cc 3b7ec783 3f068d16" + ] + }, + { + "glsl": "CultSiteCells cultmath_site_cells_insert(CultSiteCells, vec4, int)", + "tolerance": "ulp-bounded", + "cases": [ + "c2d12391 c168dec8 c255e394 454b7280 42fc6542 c2aea78c c2b47f9e 45f6f0a2 00000000 3f800000 42fc6542 c2aea78c c2b47f9e 45f6f0a2 00000002 -> c2d12391 c168dec8 c255e394 454b7280 42fc6542 c2aea78c c2b47f9e 45f6f0a2 00000000 3f800000", + "424cd0e8 c0f6f040 4044a7e0 4408225a 402d78b0 c2a09e39 420f5373 44d78ea1 3f800000 00000000 40522d50 429c0099 c217549a 44bd56dc 00000002 -> 424cd0e8 c0f6f040 4044a7e0 4408225a 40522d50 429c0099 c217549a 44bd56dc 3f800000 40000000", + "c08a7cfe c094b82f 3dbf6e3a 43fc9f6f 4244e6a0 c1ebead0 426c487c 44cea555 00000000 40000000 bc118bfb bbf6806f 3c8322f4 3f816eb0 00000003 -> bc118bfb bbf6806f 3c8322f4 3f816eb0 c08a7cfe c094b82f 3dbf6e3a 43fc9f6f 40400000 00000000", + "40c10da0 4269ae0a c2882f05 44e1aecc 00000000 00000000 00000000 7149f2ca 00000000 bf800000 3c535ac1 3c5e2426 bc1ec484 40087dcd 00000001 -> 3c535ac1 3c5e2426 bc1ec484 40087dcd 40c10da0 4269ae0a c2882f05 44e1aecc 3f800000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 beb47754 3da47244 3ec575f1 42409244 00000000 -> beb47754 3da47244 3ec575f1 42409244 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3c8b8ad6 bc374c45 bc9f50b8 404b783b 40bf6f42 404dfcc7 c0d79e80 43af1c1f 3f800000 00000000 424755a6 c22de3dc 426ca98a 44ddbdc1 00000002 -> 3c8b8ad6 bc374c45 bc9f50b8 404b783b 40bf6f42 404dfcc7 c0d79e80 43af1c1f 3f800000 00000000", + "c0055e66 40675b8c 3f379d07 4360d1d9 3f8bfb6b c01390c8 3ff524e4 439d6714 00000000 3f800000 c196c50c 4331971a 4312270f 464fde76 00000002 -> c0055e66 40675b8c 3f379d07 4360d1d9 3f8bfb6b c01390c8 3ff524e4 439d6714 00000000 3f800000", + "c2341f91 42aedbae 41783e48 45170fad c1a292e4 42e66c3c 428913fe 458f69d6 00000000 3f800000 c056ed2e 4090e31b 4004f9ca 441b001d 00000002 -> c056ed2e 4090e31b 4004f9ca 441b001d c2341f91 42aedbae 41783e48 45170fad 40000000 00000000", + "bb275831 bd06735d be324fde 40893592 00000000 00000000 00000000 7149f2ca 00000000 bf800000 bb275831 bd06735d be324fde 40893592 00000001 -> bb275831 bd06735d be324fde 40893592 bb275831 bd06735d be324fde 40893592 00000000 3f800000", + "bb844b4a 3c89418a 3ba7adf3 3fb3d8d1 3f2870a7 3d21fc33 3e8d1f84 422d7cb9 40000000 3f800000 3d04e396 3fe1f340 c064ccfc 43d31757 00000003 -> bb844b4a 3c89418a 3ba7adf3 3fb3d8d1 3f2870a7 3d21fc33 3e8d1f84 422d7cb9 40000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 3aa293ad bc20958d 3c1db5c8 3fa1312f 00000000 -> 3aa293ad bc20958d 3c1db5c8 3fa1312f 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bcca8533 3c354145 bd065c2c 3fe34018 00000000 -> bcca8533 3c354145 bd065c2c 3fe34018 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "429ac4b1 c2bd880f 42661d29 458bab8b 00000000 00000000 00000000 7149f2ca 00000000 bf800000 429ac4b1 c2bd880f 42661d29 458bab8b 00000001 -> 429ac4b1 c2bd880f 42661d29 458bab8b 429ac4b1 c2bd880f 42661d29 458bab8b 00000000 3f800000", + "bb3c85d2 3c273a03 bc41cd4c 3f54a889 bb3c85d2 3c273a03 bc41cd4c 3f54a889 00000000 3f800000 bb3c85d2 3c273a03 bc41cd4c 3f54a889 00000002 -> bb3c85d2 3c273a03 bc41cd4c 3f54a889 bb3c85d2 3c273a03 bc41cd4c 3f54a889 00000000 3f800000", + "bc1c0d48 bca3811e 3cd429a5 3f9bbfb0 bc1c0d48 bca3811e 3cd429a5 3f9bbfb0 00000000 3f800000 bc1c0d48 bca3811e 3cd429a5 3f9bbfb0 00000003 -> bc1c0d48 bca3811e 3cd429a5 3f9bbfb0 bc1c0d48 bca3811e 3cd429a5 3f9bbfb0 00000000 3f800000", + "3c2f5b19 3bac725f 3c33ca25 3f56feeb 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c18305aa c30d4606 42c9e5cb 45e5b7ec 00000001 -> 3c2f5b19 3bac725f 3c33ca25 3f56feeb c18305aa c30d4606 42c9e5cb 45e5b7ec 00000000 3f800000", + "42729786 c00e4f70 410adb60 4425b105 42d5495f 40836480 40471780 4530db20 3f800000 00000000 3b539000 bc13f9af bc2cc94c 3f72ad3e 00000002 -> 3b539000 bc13f9af bc2cc94c 3f72ad3e 42729786 c00e4f70 410adb60 4425b105 40000000 3f800000", + "41b5ab58 42fe18e0 41101450 457b9c49 42487cae 430fd3ba c333cf36 465705d3 3f800000 00000000 3e61e8f2 bf8f6047 3ff02ed4 43454497 00000002 -> 3e61e8f2 bf8f6047 3ff02ed4 43454497 41b5ab58 42fe18e0 41101450 457b9c49 40000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bc9a940d 3dbc20d0 be15b7cf 41408565 00000000 -> bc9a940d 3dbc20d0 be15b7cf 41408565 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "bb847720 bc8c27a5 3beefcd7 3fc401a1 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c2de8b82 42c184c4 42f4024a 460922c9 00000001 -> bb847720 bc8c27a5 3beefcd7 3fc401a1 c2de8b82 42c184c4 42f4024a 460922c9 00000000 3f800000", + "c1fbf178 c30dfe42 42b107ea 45e028c0 00000000 00000000 00000000 7149f2ca 00000000 bf800000 427d6fd0 42da3070 42364221 4588406e 00000001 -> 427d6fd0 42da3070 42364221 4588406e c1fbf178 c30dfe42 42b107ea 45e028c0 3f800000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bbb7ef6b bc0e9ab5 bba7237e 3f2fabe9 00000000 -> bbb7ef6b bc0e9ab5 bba7237e 3f2fabe9 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "c312d4ac c2259781 419ae6e4 45b5bbb9 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c19a29e8 c314c252 42012683 45b47097 00000001 -> c19a29e8 c314c252 42012683 45b47097 c312d4ac c2259781 419ae6e4 45b5bbb9 3f800000 00000000", + "bc09ee02 bb50dde9 3bc34fba 3f9fdbf5 bc09ee02 bb50dde9 3bc34fba 3f9fdbf5 3f800000 40000000 3e6c7783 bd0df6cb bd817870 414e142d 00000003 -> bc09ee02 bb50dde9 3bc34fba 3f9fdbf5 bc09ee02 bb50dde9 3bc34fba 3f9fdbf5 3f800000 40000000", + "bd07fc0e bd915407 bd244fbb 40bb9789 bd039f0d bd6df516 3db22eca 40be19e2 00000000 3f800000 3f99878b c09e6782 40f418ff 43cce07d 00000003 -> bd07fc0e bd915407 bd244fbb 40bb9789 bd039f0d bd6df516 3db22eca 40be19e2 00000000 3f800000", + "bda1ae85 bc8b3e51 3e4245cd 4133e5b8 00000000 00000000 00000000 7149f2ca 00000000 bf800000 bda1ae85 bc8b3e51 3e4245cd 4133e5b8 00000001 -> bda1ae85 bc8b3e51 3e4245cd 4133e5b8 bda1ae85 bc8b3e51 3e4245cd 4133e5b8 00000000 3f800000", + "bc92b085 3ccd11e2 bbacc819 40108298 3e8b1988 3e96ef7a bfb7617b 42434ebb 40000000 00000000 3a8d694a bd212fe0 3c1f09a2 3fb9342a 00000003 -> 3a8d694a bd212fe0 3c1f09a2 3fb9342a bc92b085 3ccd11e2 bbacc819 40108298 40400000 40000000", + "bf5542f5 3ece15dc 3f62974f 4307e5f7 428f7a2f c26f546c c2c00734 458c2ec1 00000000 3f800000 429976a3 430e7a1e 40aaf060 45c619a6 00000002 -> bf5542f5 3ece15dc 3f62974f 4307e5f7 428f7a2f c26f546c c2c00734 458c2ec1 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 40c1e514 c03241bd c0217797 4388c238 00000000 -> 40c1e514 c03241bd c0217797 4388c238 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "4217f968 c13ac370 c2ea9ec5 45647492 4217f968 c13ac370 c2ea9ec5 45647492 00000000 3f800000 ba4885d9 3c3c4d3f bbb46c2b 3e805c00 00000003 -> ba4885d9 3c3c4d3f bbb46c2b 3e805c00 4217f968 c13ac370 c2ea9ec5 45647492 40400000 00000000", + "c0b8fc00 c25c6de0 c263d24a 44c51767 c2765aa6 4248882c 42cf390a 4579d286 00000000 3f800000 3e102001 3df40384 3e2427e7 414fba19 00000002 -> 3e102001 3df40384 3e2427e7 414fba19 c0b8fc00 c25c6de0 c263d24a 44c51767 40000000 00000000", + "bc13d45d b9e877c4 bcef7c08 40219b52 42d4573a 42a2cb04 c31d4ad4 46246bee 3f800000 00000000 c31f7b0f c1c555d4 42df1467 4616446d 00000002 -> bc13d45d b9e877c4 bcef7c08 40219b52 c31f7b0f c1c555d4 42df1467 4616446d 3f800000 40000000", + "420271c2 c31746ee c18d7ba0 45b7dae5 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c2d47613 c22ad922 4323fca2 461c3ccd 00000001 -> 420271c2 c31746ee c18d7ba0 45b7dae5 c2d47613 c22ad922 4323fca2 461c3ccd 00000000 3f800000", + "bd1e6ccf 3b302264 bcb9d631 3fb5bf50 00000000 00000000 00000000 7149f2ca 00000000 bf800000 3fcb116b 3fcf836d bf16cf29 4359ee3f 00000001 -> bd1e6ccf 3b302264 bcb9d631 3fb5bf50 3fcb116b 3fcf836d bf16cf29 4359ee3f 00000000 3f800000", + "c28594ae 426e7260 42624046 451e2aa3 c28594ae 426e7260 42624046 451e2aa3 00000000 3f800000 c28594ae 426e7260 42624046 451e2aa3 00000002 -> c28594ae 426e7260 42624046 451e2aa3 c28594ae 426e7260 42624046 451e2aa3 00000000 3f800000", + "bddfa669 3f033541 bec843ad 41f75324 41e9c188 42a799ae c197a51c 44d742c9 00000000 40000000 4051ab3a 3fc8f582 3e8c6af7 4294f96f 00000003 -> bddfa669 3f033541 bec843ad 41f75324 4051ab3a 3fc8f582 3e8c6af7 4294f96f 00000000 40400000", + "3ea978b3 3ec43d61 3eda49f0 42a742b2 3ea978b3 3ec43d61 3eda49f0 42a742b2 00000000 3f800000 c271f704 c2399db2 42598c86 44fc77ff 00000002 -> 3ea978b3 3ec43d61 3eda49f0 42a742b2 3ea978b3 3ec43d61 3eda49f0 42a742b2 00000000 3f800000", + "beb25dd8 bd199571 be06ded4 41ea2ea4 bf3b0ccd beddbba3 be0db400 4298a09c 00000000 3f800000 432334df 423c810e c21a1860 45ebd208 00000002 -> beb25dd8 bd199571 be06ded4 41ea2ea4 bf3b0ccd beddbba3 be0db400 4298a09c 00000000 3f800000", + "bc7a27a0 bc1bb1bf bd8c57ec 3ff86a9d 3c614f47 3dba853a 3b9c689c 4077aec8 40000000 00000000 bc7a27a0 bc1bb1bf bd8c57ec 3ff86a9d 00000003 -> bc7a27a0 bc1bb1bf bd8c57ec 3ff86a9d bc7a27a0 bc1bb1bf bd8c57ec 3ff86a9d 40000000 40400000", + "3c9af50b bcf0c240 3ccfa8f0 408c1922 bd5e755c bd21fccf 3d20244b 40d5fe45 3f800000 40000000 3c9af50b bcf0c240 3ccfa8f0 408c1922 00000003 -> 3c9af50b bcf0c240 3ccfa8f0 408c1922 3c9af50b bcf0c240 3ccfa8f0 408c1922 3f800000 40400000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 414b48b8 430497a1 c0688520 45832932 00000000 -> 414b48b8 430497a1 c0688520 45832932 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "baf0a770 bbdee7cd bbebedb7 3f498843 00000000 00000000 00000000 7149f2ca 00000000 bf800000 3f9cf1d4 c0d10947 4022abb9 4400cbee 00000001 -> baf0a770 bbdee7cd bbebedb7 3f498843 3f9cf1d4 c0d10947 4022abb9 4400cbee 00000000 3f800000", + "424ffb4c 4224942c c20885fe 44ab2123 00000000 00000000 00000000 7149f2ca 00000000 bf800000 424ffb4c 4224942c c20885fe 44ab2123 00000001 -> 424ffb4c 4224942c c20885fe 44ab2123 424ffb4c 4224942c c20885fe 44ab2123 00000000 3f800000", + "3a646677 3c2c70a2 3b8f774b 3f1a92bc 42a3a167 41e456a0 42008583 45011df9 3f800000 00000000 c1b3c4ac c24b740e c2f15a82 4580fcf3 00000002 -> 3a646677 3c2c70a2 3b8f774b 3f1a92bc 42a3a167 41e456a0 42008583 45011df9 3f800000 00000000", + "3ae41256 3e0bf3bb bd654545 41066157 3ae41256 3e0bf3bb bd654545 41066157 00000000 3f800000 40630f97 403910ef c08313e0 43af5059 00000002 -> 3ae41256 3e0bf3bb bd654545 41066157 3ae41256 3e0bf3bb bd654545 41066157 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c2a9ad9e c2517e5f c1200168 4512a0f8 00000000 -> c2a9ad9e c2517e5f c1200168 4512a0f8 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "c2816619 c27bb7e8 42894b73 4541c496 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c2816619 c27bb7e8 42894b73 4541c496 00000001 -> c2816619 c27bb7e8 42894b73 4541c496 c2816619 c27bb7e8 42894b73 4541c496 00000000 3f800000", + "427c0452 c33e03ac c260129a 4625a167 00000000 00000000 00000000 7149f2ca 00000000 bf800000 3cc8664f 3c90e04e 3c69120d 3fe9bb37 00000001 -> 3cc8664f 3c90e04e 3c69120d 3fe9bb37 427c0452 c33e03ac c260129a 4625a167 3f800000 00000000", + "c0e68880 c0c021e0 42e23418 45402487 c1e57e10 c2864e27 42ba3670 45551893 3f800000 00000000 bc0f79dc bab741bb 3b9be191 3f0ce6e1 00000003 -> bc0f79dc bab741bb 3b9be191 3f0ce6e1 c0e68880 c0c021e0 42e23418 45402487 40400000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 3b13cdf3 3ac5e068 3c630dd8 3f7f6ead 00000000 -> 3b13cdf3 3ac5e068 3c630dd8 3f7f6ead 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c2726950 c28aa340 c1f745e4 4510d349 00000000 -> c2726950 c28aa340 c1f745e4 4510d349 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "bc5fa7fc 3cd3b382 bcf04139 408c7852 00000000 00000000 00000000 7149f2ca 00000000 bf800000 bc5fa7fc 3cd3b382 bcf04139 408c7852 00000001 -> bc5fa7fc 3cd3b382 bcf04139 408c7852 bc5fa7fc 3cd3b382 bcf04139 408c7852 00000000 3f800000", + "bda4d694 3eab468b bdfe2036 41b7852e 00000000 00000000 00000000 7149f2ca 00000000 bf800000 3d65dc3d 3d56215f bd83db55 4106f2f3 00000001 -> 3d65dc3d 3d56215f bd83db55 4106f2f3 bda4d694 3eab468b bdfe2036 41b7852e 3f800000 00000000", + "41aa8920 c2135a1a 42885a63 44c3f48a 00000000 00000000 00000000 7149f2ca 00000000 bf800000 4181988c 4248e2b4 c2b38758 4527b942 00000001 -> 41aa8920 c2135a1a 42885a63 44c3f48a 4181988c 4248e2b4 c2b38758 4527b942 00000000 3f800000", + "bf6bf0a8 bf2a7884 be9d805e 42fccf39 4209ab62 42011d1c 42044adc 4447ecb5 3f800000 00000000 4209ab62 42011d1c 42044adc 4447ecb5 00000002 -> bf6bf0a8 bf2a7884 be9d805e 42fccf39 4209ab62 42011d1c 42044adc 4447ecb5 3f800000 00000000", + "be137c4f bfe0d73a bd98736c 4257149f 00000000 00000000 00000000 7149f2ca 00000000 bf800000 417d8e10 c21a9e5d c27528e2 448e1020 00000001 -> be137c4f bfe0d73a bd98736c 4257149f 417d8e10 c21a9e5d c27528e2 448e1020 00000000 3f800000", + "3c49e866 3afd6ffc 3cd16d78 3fc08fdc 00000000 00000000 00000000 7149f2ca 00000000 bf800000 bd85cec2 3e0732de be38f9d5 41af92f9 00000001 -> 3c49e866 3afd6ffc 3cd16d78 3fc08fdc bd85cec2 3e0732de be38f9d5 41af92f9 00000000 3f800000", + "c00c0b50 424e1114 c1939bd4 44397c79 c288da0d c108e1a0 41a96dd4 4493a31c 00000000 3f800000 427d38f8 42b00f47 4270524d 4567e453 00000002 -> c00c0b50 424e1114 c1939bd4 44397c79 c288da0d c108e1a0 41a96dd4 4493a31c 00000000 3f800000", + "3ee63d72 c035efd7 bf30a65d 43891c11 00000000 00000000 00000000 7149f2ca 00000000 bf800000 3ee63d72 c035efd7 bf30a65d 43891c11 00000001 -> 3ee63d72 c035efd7 bf30a65d 43891c11 3ee63d72 c035efd7 bf30a65d 43891c11 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c0fd9490 428605c4 420dbc48 448cfeac 00000000 -> c0fd9490 428605c4 420dbc48 448cfeac 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3f30b3f6 bf06b457 3e840169 423cba51 00000000 00000000 00000000 7149f2ca 00000000 bf800000 bd837096 3d167561 bd32782f 40aeaf4d 00000001 -> bd837096 3d167561 bd32782f 40aeaf4d 3f30b3f6 bf06b457 3e840169 423cba51 3f800000 00000000", + "bc13cfff bb9aef87 bbf736ed 3f3a7c51 c2bd5fed 42773160 c03c49e0 45406f69 00000000 3f800000 3d60532a bf93a8ac bf276911 42a03eff 00000002 -> bc13cfff bb9aef87 bbf736ed 3f3a7c51 3d60532a bf93a8ac bf276911 42a03eff 00000000 40000000", + "3c80a275 3c69940f bd180c79 407f1dec c09ad4c0 41d11cf8 424ea56c 441ba26b 40000000 3f800000 3ab55b2c baa45f0a 3c866e11 3fc2581b 00000003 -> 3ab55b2c baa45f0a 3c866e11 3fc2581b 3c80a275 3c69940f bd180c79 407f1dec 40400000 40000000", + "408ae760 c28ec3bd 4270aa52 4502b8e4 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c2ea2c30 c290ebb4 40718fe0 459436bc 00000001 -> 408ae760 c28ec3bd 4270aa52 4502b8e4 c2ea2c30 c290ebb4 40718fe0 459436bc 00000000 3f800000", + "42ed69f8 4289febb c0c47e68 45931a5a 42ed69f8 4289febb c0c47e68 45931a5a 00000000 3f800000 4145b6a8 42d9fd88 c2ce2e01 45b07d31 00000002 -> 42ed69f8 4289febb c0c47e68 45931a5a 42ed69f8 4289febb c0c47e68 45931a5a 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c271e8aa c28195c0 c1aca12c 44e0cd90 00000000 -> c271e8aa c28195c0 c1aca12c 44e0cd90 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3d05f1e0 3cc3b793 bda24454 40edc1c2 00000000 00000000 00000000 7149f2ca 00000000 bf800000 42d77127 4273e2aa 41ec215c 4576f138 00000001 -> 3d05f1e0 3cc3b793 bda24454 40edc1c2 42d77127 4273e2aa 41ec215c 4576f138 00000000 3f800000", + "3ba1180d bce43418 3dca63fe 40dbda6d 3e41d151 c10fdc9c bffde594 4443758f 00000000 3f800000 c303a69b c218ce90 c225953c 459a9521 00000003 -> 3ba1180d bce43418 3dca63fe 40dbda6d 3e41d151 c10fdc9c bffde594 4443758f 00000000 3f800000", + "3f2db8f0 3e18c440 bf1c5337 419a404f 3f2db8f0 3e18c440 bf1c5337 419a404f 3f800000 40000000 c1f5beb4 c2a8427d 432d71ca 4614d181 00000003 -> 3f2db8f0 3e18c440 bf1c5337 419a404f 3f2db8f0 3e18c440 bf1c5337 419a404f 3f800000 40000000", + "3f85165b bf090751 bee3084a 427a56e0 c26278de 424a456c c1c8cfc0 44a64ae2 3f800000 00000000 41fda546 c2ab0abe c23533e8 451b6ac7 00000002 -> 3f85165b bf090751 bee3084a 427a56e0 c26278de 424a456c c1c8cfc0 44a64ae2 3f800000 00000000", + "c293f1c7 c29dd49a 429dc75d 458b82ec 00000000 00000000 00000000 7149f2ca 00000000 bf800000 4004ed88 c06ed0b8 40e3df67 42748dd5 00000001 -> 4004ed88 c06ed0b8 40e3df67 42748dd5 c293f1c7 c29dd49a 429dc75d 458b82ec 3f800000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 3f51a26b c022c902 3f1d51af 4323ddba 00000000 -> 3f51a26b c022c902 3f1d51af 4323ddba 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "43086e26 c29940c8 41675308 45be97b5 43086e26 c29940c8 41675308 45be97b5 00000000 3f800000 c3070a1c 424d69f7 423c5fbc 45a9b594 00000002 -> c3070a1c 424d69f7 423c5fbc 45a9b594 43086e26 c29940c8 41675308 45be97b5 40000000 00000000", + "3f3664c2 c043277d 3fd11107 431b3ede 3f3664c2 c043277d 3fd11107 431b3ede 00000000 3f800000 3e97a388 be41468f 3ea73cbf 41c651bd 00000002 -> 3e97a388 be41468f 3ea73cbf 41c651bd 3f3664c2 c043277d 3fd11107 431b3ede 40000000 00000000", + "3cca1fca 3e84eb79 3f71cfe9 42601b02 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c32d36e9 c03f92c0 4207c9d4 45f35fe7 00000001 -> 3cca1fca 3e84eb79 3f71cfe9 42601b02 c32d36e9 c03f92c0 4207c9d4 45f35fe7 00000000 3f800000", + "3c7a0b5d 3b26831b 39ab53a9 3f0f487d bc7da687 3c976eee bbb55e76 3fab16f1 3f800000 40000000 c1b1ed68 c1f9ed70 3fa64400 43a0698c 00000003 -> 3c7a0b5d 3b26831b 39ab53a9 3f0f487d bc7da687 3c976eee bbb55e76 3fab16f1 3f800000 40000000", + "3cb2fe95 bd0fe5d4 bce403d9 40b1c29e 3e03e6ec be0dd2bc 3e6222b8 41bd7081 00000000 3f800000 42d00a5e 41934a0c c29d0587 457e940f 00000002 -> 3cb2fe95 bd0fe5d4 bce403d9 40b1c29e 3e03e6ec be0dd2bc 3e6222b8 41bd7081 00000000 3f800000", + "bb3ab04d 3a8fd1f3 3c3863f7 3f02d64b c1f69c00 c1dc8de0 c0df73a0 43b3a2da 40000000 3f800000 c1f69c00 c1dc8de0 c0df73a0 43b3a2da 00000003 -> bb3ab04d 3a8fd1f3 3c3863f7 3f02d64b c1f69c00 c1dc8de0 c0df73a0 43b3a2da 40000000 3f800000", + "bce828f8 bc7a761c be1b44b1 40dd4f7d c1b5c9b4 42ce7d33 41dce056 45292d52 00000000 3f800000 c303d083 426e0100 42be94c1 45e649e5 00000002 -> bce828f8 bc7a761c be1b44b1 40dd4f7d c1b5c9b4 42ce7d33 41dce056 45292d52 00000000 3f800000", + "42368a04 424db178 420f3f94 44bbc323 00000000 00000000 00000000 7149f2ca 00000000 bf800000 bc805d37 bb2cbcc8 bbe3cd71 3fb84560 00000001 -> bc805d37 bb2cbcc8 bbe3cd71 3fb84560 42368a04 424db178 420f3f94 44bbc323 3f800000 00000000", + "bb899415 3bb8c94c bc277506 3f46f591 bd3c4b33 bd84f25b bd0dc4c1 40512b54 3f800000 00000000 41ba3a94 c1dbfbc4 42db661d 4544274c 00000002 -> bb899415 3bb8c94c bc277506 3f46f591 bd3c4b33 bd84f25b bd0dc4c1 40512b54 3f800000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c182bd6c bff7f160 4201301e c21b70e0 00000000 -> c182bd6c bff7f160 4201301e c21b70e0 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 42d9211c c276c156 bf916f80 455be192 00000000 -> 42d9211c c276c156 bf916f80 455be192 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bf587c27 bf0356b3 bf2df166 425887c3 00000000 -> bf587c27 bf0356b3 bf2df166 425887c3 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 4101fef0 4250ba91 40ddad10 440387c8 00000000 -> 4101fef0 4250ba91 40ddad10 440387c8 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 41aa8ef0 c22e68fa 42950374 44ed2f77 00000000 -> 41aa8ef0 c22e68fa 42950374 44ed2f77 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3ef453ea c012a475 3ffa57c5 428f654d 3ef453ea c012a475 3ffa57c5 428f654d 00000000 3f800000 bcbeefeb 3d64fa13 bc90d89b 40274a84 00000002 -> bcbeefeb 3d64fa13 bc90d89b 40274a84 3ef453ea c012a475 3ffa57c5 428f654d 40000000 00000000", + "b959870a 3be8682e 3c135f9a 3f834a92 422a61fa c1e28550 c3095bb4 45a01903 3f800000 40000000 c277d3a6 42a87f29 c1bbdca0 452aab01 00000003 -> b959870a 3be8682e 3c135f9a 3f834a92 c277d3a6 42a87f29 c1bbdca0 452aab01 3f800000 40400000", + "c2c48e9a 42122038 c225a3ab 452fbee5 c2c48e9a 42122038 c225a3ab 452fbee5 00000000 3f800000 3f678aae 3d7d5ca9 3f7ef42c 42866602 00000002 -> 3f678aae 3d7d5ca9 3f7ef42c 42866602 c2c48e9a 42122038 c225a3ab 452fbee5 40000000 00000000", + "417491dc c19566dc c11785d0 43015535 c3166646 41ff106c 403f7f60 45b436c8 00000000 3f800000 c26751e0 4258a170 c19899e4 44cee37f 00000003 -> 417491dc c19566dc c11785d0 43015535 c26751e0 4258a170 c19899e4 44cee37f 00000000 40400000", + "c22743fc c15915a0 421a2e86 443c54d8 c21451c6 42b7bc45 42e41125 45b154b4 00000000 3f800000 c21451c6 42b7bc45 42e41125 45b154b4 00000003 -> c22743fc c15915a0 421a2e86 443c54d8 c21451c6 42b7bc45 42e41125 45b154b4 00000000 3f800000", + "3f7bd7b1 4057521e c0bb5277 43b66666 00000000 00000000 00000000 7149f2ca 00000000 bf800000 bf875b3f bab2cf8e bf54f141 425c1edb 00000001 -> bf875b3f bab2cf8e bf54f141 425c1edb 3f7bd7b1 4057521e c0bb5277 43b66666 3f800000 00000000", + "bce7b8d3 3d8c7ee0 bd2a7373 4023f8a3 bce7b8d3 3d8c7ee0 bd2a7373 4023f8a3 00000000 3f800000 bd43d43a bc4b829c 3d418c8d 407245e1 00000003 -> bce7b8d3 3d8c7ee0 bd2a7373 4023f8a3 bce7b8d3 3d8c7ee0 bd2a7373 4023f8a3 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 418f4860 41cf2be0 c1a612ec 43aa00f9 00000000 -> 418f4860 41cf2be0 c1a612ec 43aa00f9 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 3f95c8db 40220788 bfb39c29 4321d920 00000000 -> 3f95c8db 40220788 bfb39c29 4321d920 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "befb3487 be83a35a be9ab225 42447b45 c28529f4 430ceab0 41f90480 45c4fce7 00000000 40000000 c16c6348 406cafc0 c0963c90 c33bf8c4 00000003 -> c16c6348 406cafc0 c0963c90 c33bf8c4 befb3487 be83a35a be9ab225 42447b45 40400000 00000000", + "bda83f96 3e004bf2 3e623f5d 418cc511 bda83f96 3e004bf2 3e623f5d 418cc511 3f800000 40000000 c2e63c9a 4195f630 42bd0659 45a60efa 00000003 -> bda83f96 3e004bf2 3e623f5d 418cc511 bda83f96 3e004bf2 3e623f5d 418cc511 3f800000 40000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bd40beba 3d5ba4fa bf29f189 427707ec 00000000 -> bd40beba 3d5ba4fa bf29f189 427707ec 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "42f092a8 429fe52b c26d9e3e 45bb8de4 42f092a8 429fe52b c26d9e3e 45bb8de4 00000000 3f800000 c21647e4 40657a80 42aaeb54 44f1cc3c 00000002 -> c21647e4 40657a80 42aaeb54 44f1cc3c 42f092a8 429fe52b c26d9e3e 45bb8de4 40000000 00000000", + "bc16420b 3e1f09c1 3dbec8f2 41894ed5 c14353d8 41fea504 4221cf94 4425ee98 00000000 3f800000 42bac5d8 c2bf3634 4170d9b0 458129aa 00000003 -> bc16420b 3e1f09c1 3dbec8f2 41894ed5 c14353d8 41fea504 4221cf94 4425ee98 00000000 3f800000", + "c2a619b6 c2c4bc54 c28310c8 45a124b8 c19d62ac c2f171c5 42b4578a 45b005d1 00000000 3f800000 43162bd3 42baedb2 c300bcea 4635c4e8 00000002 -> c2a619b6 c2c4bc54 c28310c8 45a124b8 c19d62ac c2f171c5 42b4578a 45b005d1 00000000 3f800000", + "c305a6f6 c2c0767d 42a4dc89 45fcfd03 c305a6f6 c2c0767d 42a4dc89 45fcfd03 00000000 3f800000 c1ce5ecc c18b5908 42a2ca96 44ec72e2 00000002 -> c1ce5ecc c18b5908 42a2ca96 44ec72e2 c305a6f6 c2c0767d 42a4dc89 45fcfd03 40000000 00000000", + "be9ee657 3f4ef215 40214301 42cd2d00 42ee9682 c2068a5f 432405a6 462488cf 00000000 3f800000 c1f58a8c 42296fc4 418bf3c4 43fac65b 00000003 -> be9ee657 3f4ef215 40214301 42cd2d00 c1f58a8c 42296fc4 418bf3c4 43fac65b 00000000 40400000", + "3f9bab8a bf1baf24 bf624495 42972480 c04ee8b8 3ea14132 406760eb 43b4f8ef 00000000 3f800000 3f9bab8a bf1baf24 bf624495 42972480 00000002 -> 3f9bab8a bf1baf24 bf624495 42972480 3f9bab8a bf1baf24 bf624495 42972480 00000000 40000000", + "bfc25a1d bf4fbc4f be4eb2ce 42bbb0f3 bfc25a1d bf4fbc4f be4eb2ce 42bbb0f3 00000000 3f800000 4252812e 4245faa0 42af851d 453b07b8 00000002 -> bfc25a1d bf4fbc4f be4eb2ce 42bbb0f3 bfc25a1d bf4fbc4f be4eb2ce 42bbb0f3 00000000 3f800000", + "c00bdc5e c0e9dcf6 bca1ad4d 43298244 00000000 00000000 00000000 7149f2ca 00000000 bf800000 3ab1fd2b 3c4c6392 3c854ab7 40102806 00000001 -> 3ab1fd2b 3c4c6392 3c854ab7 40102806 c00bdc5e c0e9dcf6 bca1ad4d 43298244 3f800000 00000000", + "be09627a bcceb8e3 be39ef44 40790957 00000000 00000000 00000000 7149f2ca 00000000 bf800000 be09627a bcceb8e3 be39ef44 40790957 00000001 -> be09627a bcceb8e3 be39ef44 40790957 be09627a bcceb8e3 be39ef44 40790957 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c17869d0 c24cac64 c2415a02 44907ade 00000000 -> c17869d0 c24cac64 c2415a02 44907ade 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3f072d06 bea9e9a0 3eeea099 4285b1a8 00000000 00000000 00000000 7149f2ca 00000000 bf800000 425d5bd4 c294d6bd c29ddff9 45565949 00000001 -> 3f072d06 bea9e9a0 3eeea099 4285b1a8 425d5bd4 c294d6bd c29ddff9 45565949 00000000 3f800000", + "c2367b15 c210b88e c321ada5 45e63612 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c336ff86 4284a1c5 c19b3590 46154409 00000001 -> c2367b15 c210b88e c321ada5 45e63612 c336ff86 4284a1c5 c19b3590 46154409 00000000 3f800000", + "3d25ebe7 3bfafc63 3cf712ad 4020c92a 42221570 c3221373 415822d0 45da51a2 00000000 3f800000 42221570 c3221373 415822d0 45da51a2 00000002 -> 3d25ebe7 3bfafc63 3cf712ad 4020c92a 42221570 c3221373 415822d0 45da51a2 00000000 3f800000", + "bd6e172d beb1cd6e bc1f32c9 42050795 4258fa14 c0979de0 c3172044 45c5f3d6 40000000 00000000 4258fa14 c0979de0 c3172044 45c5f3d6 00000003 -> bd6e172d beb1cd6e bc1f32c9 42050795 4258fa14 c0979de0 c3172044 45c5f3d6 40000000 00000000", + "3aa84f7a bc8d7908 39da7c99 3fa0fbaf bddb8690 bd111f90 bdca297e 3fcd8cfe 00000000 3f800000 c21023a8 42b00352 c0d5a490 44f6e4b3 00000003 -> 3aa84f7a bc8d7908 39da7c99 3fa0fbaf bddb8690 bd111f90 bdca297e 3fcd8cfe 00000000 3f800000", + "be008a9a 3d7b5c82 3e545044 41559df1 3e88cdec c00f8e7f 3f1df1e8 4187790e 00000000 40000000 3e88cdec c00f8e7f 3f1df1e8 4187790e 00000003 -> be008a9a 3d7b5c82 3e545044 41559df1 3e88cdec c00f8e7f 3f1df1e8 4187790e 00000000 40000000", + "3e3a546b 3d27e67a 3c955da2 416fd974 c1a593a8 c2e61e26 c199a008 454f265e 00000000 3f800000 42ee9da9 c3095a27 430e55bf 46503911 00000003 -> 3e3a546b 3d27e67a 3c955da2 416fd974 c1a593a8 c2e61e26 c199a008 454f265e 00000000 3f800000", + "43037045 c3037362 411e86f0 4602ec45 43037045 c3037362 411e86f0 4602ec45 00000000 3f800000 43037045 c3037362 411e86f0 4602ec45 00000002 -> 43037045 c3037362 411e86f0 4602ec45 43037045 c3037362 411e86f0 4602ec45 00000000 3f800000", + "bcb55c8f 3b59d263 bc9f0a94 401be566 bcb55c8f 3b59d263 bc9f0a94 401be566 00000000 3f800000 bd8b8259 be0ea4d9 3dc610ef 40e41c6c 00000002 -> bcb55c8f 3b59d263 bc9f0a94 401be566 bcb55c8f 3b59d263 bc9f0a94 401be566 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 40aad8d0 c29b2ef7 c29d6f64 45296721 00000000 -> 40aad8d0 c29b2ef7 c29d6f64 45296721 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "bf17ebd8 3efef62a 3f3674fe 428faf9a 40003bf5 3f2be27e c013351e 431d3b59 00000000 40000000 40003bf5 3f2be27e c013351e 431d3b59 00000003 -> bf17ebd8 3efef62a 3f3674fe 428faf9a 40003bf5 3f2be27e c013351e 431d3b59 00000000 40000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c30927d0 42b7494d 42cb8da4 460eb075 00000000 -> c30927d0 42b7494d 42cb8da4 460eb075 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bd22196a 3bf7d145 3e2124f2 4132d98e 00000000 -> bd22196a 3bf7d145 3e2124f2 4132d98e 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "be4b68f8 3d752a44 be6252e4 41ad187c c2b33229 42d3e1c0 c2cd3f92 45dca85c 00000000 3f800000 bf3647d3 3f25f329 3eac4c42 42d4e2ab 00000002 -> be4b68f8 3d752a44 be6252e4 41ad187c bf3647d3 3f25f329 3eac4c42 42d4e2ab 00000000 40000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 4293fbe4 c306030d 41f6af74 45b47feb 00000000 -> 4293fbe4 c306030d 41f6af74 45b47feb 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "bb7f8fcf ba1504e0 3c2dc4e5 3f11bd7c bb7f8fcf ba1504e0 3c2dc4e5 3f11bd7c 00000000 3f800000 c1600a30 41ebd4bc 42cadf57 452e18bd 00000003 -> bb7f8fcf ba1504e0 3c2dc4e5 3f11bd7c bb7f8fcf ba1504e0 3c2dc4e5 3f11bd7c 00000000 3f800000", + "415fc530 4274c744 c15ecd60 447504ee 4229ea81 c30558c4 4328748f 463aafb1 40000000 00000000 3feed354 c00b4c2b c02e6d49 43e3eb04 00000003 -> 3feed354 c00b4c2b c02e6d49 43e3eb04 415fc530 4274c744 c15ecd60 447504ee 40400000 40000000", + "420e84d8 42816339 c2b89b38 4558fe53 c216bc00 c1caaee0 c2f8743e 458470ec 3f800000 00000000 42458ee4 c0eadf88 c1aa0468 43cb8ec1 00000003 -> 42458ee4 c0eadf88 c1aa0468 43cb8ec1 420e84d8 42816339 c2b89b38 4558fe53 40400000 3f800000", + "3ca8ebf6 3c8f8a06 3d62d0de 407b4dea 00000000 00000000 00000000 7149f2ca 00000000 bf800000 3b720389 3cc63820 bd02971e 3fb700c5 00000001 -> 3b720389 3cc63820 bd02971e 3fb700c5 3ca8ebf6 3c8f8a06 3d62d0de 407b4dea 3f800000 00000000", + "3dd1c23f bdd11d16 bdfe4539 4170d6b9 428c4e71 411d0a58 c2872e0f 44fe8d24 00000000 40000000 4276f778 c2d45b83 414aaa00 455d7861 00000003 -> 3dd1c23f bdd11d16 bdfe4539 4170d6b9 428c4e71 411d0a58 c2872e0f 44fe8d24 00000000 40000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 4015f838 bf944c7e 3ea68997 43441841 00000000 -> 4015f838 bf944c7e 3ea68997 43441841 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "4211df3c 41c20998 403046a0 4391ff0c 4117f960 c1ba719c c307be85 459147a4 00000000 3f800000 4211df3c 41c20998 403046a0 4391ff0c 00000003 -> 4211df3c 41c20998 403046a0 4391ff0c 4211df3c 41c20998 403046a0 4391ff0c 00000000 40400000", + "bc827444 bc0e448f 3c27e00b 3fca9892 c314fc6e 42ed2105 4211e2f2 460f294b 00000000 40000000 c2fd17d6 c2bd3427 c337d6ea 4662eb0d 00000003 -> bc827444 bc0e448f 3c27e00b 3fca9892 c314fc6e 42ed2105 4211e2f2 460f294b 00000000 40000000", + "c09d1cff bf96b6ed bf893af7 4400b5e7 c09d1cff bf96b6ed bf893af7 4400b5e7 00000000 3f800000 c09d1cff bf96b6ed bf893af7 4400b5e7 00000002 -> c09d1cff bf96b6ed bf893af7 4400b5e7 c09d1cff bf96b6ed bf893af7 4400b5e7 00000000 3f800000", + "bd452123 40ac0259 40840c1c 44143b18 bd452123 40ac0259 40840c1c 44143b18 00000000 3f800000 bd452123 40ac0259 40840c1c 44143b18 00000003 -> bd452123 40ac0259 40840c1c 44143b18 bd452123 40ac0259 40840c1c 44143b18 00000000 3f800000", + "bdafb44b 3e04c526 3e49e227 41b3cc88 c2516783 c300c14a 42e5e4e3 45fb2d32 00000000 3f800000 42c47ef7 425f1578 c205d48b 454398c7 00000002 -> bdafb44b 3e04c526 3e49e227 41b3cc88 42c47ef7 425f1578 c205d48b 454398c7 00000000 40000000", + "3ed5c5b9 bf5f3030 bd1afa4f 4276eb8b 00000000 00000000 00000000 7149f2ca 00000000 bf800000 bc064cf0 3c7eb2c1 3c6d707f 400ec6b7 00000001 -> bc064cf0 3c7eb2c1 3c6d707f 400ec6b7 3ed5c5b9 bf5f3030 bd1afa4f 4276eb8b 3f800000 00000000", + "be03c764 be5333df be334a8c 41ebb5da 00000000 00000000 00000000 7149f2ca 00000000 bf800000 4306ab44 425b4090 42346c2c 45b4b64d 00000001 -> be03c764 be5333df be334a8c 41ebb5da 4306ab44 425b4090 42346c2c 45b4b64d 00000000 3f800000", + "4309c569 c2068eac 42c4d8c2 45e4fcdb 4309c569 c2068eac 42c4d8c2 45e4fcdb 00000000 3f800000 bc961f0c bcbef847 3c81bce4 4013ea5e 00000002 -> bc961f0c bcbef847 3c81bce4 4013ea5e 4309c569 c2068eac 42c4d8c2 45e4fcdb 40000000 00000000", + "424a089a 419d5fa2 c3022135 4598e5a5 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c26966cd c20e601f 40bd60e0 44664eed 00000001 -> c26966cd c20e601f 40bd60e0 44664eed 424a089a 419d5fa2 c3022135 4598e5a5 3f800000 00000000", + "c26231e0 c2da157a c23b9fc8 4583b967 c2a5e2f7 430762a6 4272a14e 45dd9dab 00000000 3f800000 bd4cfe29 3ced3c59 bda829ec 40e5a999 00000002 -> bd4cfe29 3ced3c59 bda829ec 40e5a999 c26231e0 c2da157a c23b9fc8 4583b967 40000000 00000000", + "bdef5aec 3e55f793 3e2ef221 418260d5 bffcdeb0 c091f518 40812a20 4421573f 3f800000 00000000 3dfb30a1 bda4fe69 bccc287c 414362db 00000003 -> 3dfb30a1 bda4fe69 bccc287c 414362db bdef5aec 3e55f793 3e2ef221 418260d5 40400000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 431c4ef8 4233ba64 c11e9d78 45c47ad0 00000000 -> 431c4ef8 4233ba64 c11e9d78 45c47ad0 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c12b23e8 401e45a0 c26e7f32 444d4798 00000000 -> c12b23e8 401e45a0 c26e7f32 444d4798 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 42b4ef76 42b58574 42e1ffed 45e3a2d1 00000000 -> 42b4ef76 42b58574 42e1ffed 45e3a2d1 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3bd58ec0 bd339398 bb9552b8 406586b4 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c27a7862 c32a2d0a c3352854 467fffa1 00000001 -> 3bd58ec0 bd339398 bb9552b8 406586b4 c27a7862 c32a2d0a c3352854 467fffa1 00000000 3f800000", + "4000a047 bfe65580 c0016997 432ff332 00000000 00000000 00000000 7149f2ca 00000000 bf800000 425406ee c266f962 41a9996e 449e6843 00000001 -> 4000a047 bfe65580 c0016997 432ff332 425406ee c266f962 41a9996e 449e6843 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 41ac2258 420c61e8 c1e79d18 4416fdda 00000000 -> 41ac2258 420c61e8 c1e79d18 4416fdda 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3c914d3b bd0d5bcd 3cca1ec6 3fc479d2 c1e420c4 4215f174 c0a42000 440b3c75 3f800000 00000000 c2ab6a12 c3224548 430eaacb 46521750 00000002 -> 3c914d3b bd0d5bcd 3cca1ec6 3fc479d2 c1e420c4 4215f174 c0a42000 440b3c75 3f800000 00000000", + "4262aaae c2ee20ab c299aea1 45ab0ef8 00000000 00000000 00000000 7149f2ca 00000000 bf800000 4311f378 42e373ee 42563ecc 460b77c5 00000001 -> 4262aaae c2ee20ab c299aea1 45ab0ef8 4311f378 42e373ee 42563ecc 460b77c5 00000000 3f800000", + "3e1c5d4d be4fd087 bae32449 41c25d7d 40233e5c c0364ef7 4052c663 426bbe07 40000000 00000000 42147c64 c1cdd2f4 c2291a6e 444a643d 00000003 -> 3e1c5d4d be4fd087 bae32449 41c25d7d 40233e5c c0364ef7 4052c663 426bbe07 40000000 00000000", + "bc9c3840 be7f350b be44d758 417d5c8b bc9c3840 be7f350b be44d758 417d5c8b 00000000 3f800000 bdace87c 3e483e71 be4cd544 41761134 00000003 -> bdace87c 3e483e71 be4cd544 41761134 bc9c3840 be7f350b be44d758 417d5c8b 40400000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bf98c93f 3feb60ae 3ec63e56 42f428bf 00000000 -> bf98c93f 3feb60ae 3ec63e56 42f428bf 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3b2ec8c7 bb84ff74 bd236ebb 401818ec c2cecc57 c31c5b52 bf935b80 460863f7 3f800000 00000000 3b2ec8c7 bb84ff74 bd236ebb 401818ec 00000002 -> 3b2ec8c7 bb84ff74 bd236ebb 401818ec 3b2ec8c7 bb84ff74 bd236ebb 401818ec 3f800000 40000000", + "4326fbae 42dd6510 40fdf710 46197bf0 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c1fd70cc c25ee05b 42467f24 44cd227b 00000001 -> c1fd70cc c25ee05b 42467f24 44cd227b 4326fbae 42dd6510 40fdf710 46197bf0 3f800000 00000000", + "3dca8f47 bc207fd0 3c650f31 40996455 42537b70 41c25e48 42d74b76 4565de52 00000000 3f800000 3f6f84f9 40c06afa 3ffb8eef 44131ba4 00000002 -> 3dca8f47 bc207fd0 3c650f31 40996455 3f6f84f9 40c06afa 3ffb8eef 44131ba4 00000000 40000000", + "3c2f26f7 3bee8ee9 3b3bf0af 3f8b9e85 3e8b6d53 be5232f2 3de7f7ed 4192f49c 40000000 00000000 3c2f26f7 3bee8ee9 3b3bf0af 3f8b9e85 00000003 -> 3c2f26f7 3bee8ee9 3b3bf0af 3f8b9e85 3c2f26f7 3bee8ee9 3b3bf0af 3f8b9e85 40000000 40400000", + "3beaed3f 3bb230ef 3bdb5be4 3e762ad6 3beaed3f 3bb230ef 3bdb5be4 3e762ad6 00000000 3f800000 bd00859b 3dda1c99 3d5d1bc6 41496c9b 00000003 -> 3beaed3f 3bb230ef 3bdb5be4 3e762ad6 3beaed3f 3bb230ef 3bdb5be4 3e762ad6 00000000 3f800000", + "3cfd1392 bd866492 bc902c6d 40d3b25f 41f0b060 c0c01e20 42d9628c 453ab490 40000000 3f800000 c1a92be0 c2b23369 430e806a 45dbb839 00000003 -> 3cfd1392 bd866492 bc902c6d 40d3b25f 41f0b060 c0c01e20 42d9628c 453ab490 40000000 3f800000", + "c05cd116 4033673e 3fb0dfef 43a4cb86 00000000 00000000 00000000 7149f2ca 00000000 bf800000 bc04a30c 3d7a3454 3d95a2f3 40a55985 00000001 -> bc04a30c 3d7a3454 3d95a2f3 40a55985 c05cd116 4033673e 3fb0dfef 43a4cb86 3f800000 00000000", + "42806f36 42557b3c 422a568e 44e67023 00000000 00000000 00000000 7149f2ca 00000000 bf800000 42806f36 42557b3c 422a568e 44e67023 00000001 -> 42806f36 42557b3c 422a568e 44e67023 42806f36 42557b3c 422a568e 44e67023 00000000 3f800000", + "bc312c04 3a122517 bc5b0be3 3fa66efe c082e925 bfb680b7 40a89a70 43e80973 40000000 00000000 42affae1 41f80478 42d861fe 45962114 00000003 -> bc312c04 3a122517 bc5b0be3 3fa66efe c082e925 bfb680b7 40a89a70 43e80973 40000000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c0260391 4023c1f7 406be779 438130e9 00000000 -> c0260391 4023c1f7 406be779 438130e9 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3f0b18b3 c052281f bf86fe02 43651cb6 bfdd041e c0e1d572 c0c10cb4 442f8ac1 3f800000 00000000 bc80271e bc3a565c 3b8eb0d6 3f8c7e73 00000003 -> bc80271e bc3a565c 3b8eb0d6 3f8c7e73 3f0b18b3 c052281f bf86fe02 43651cb6 40400000 3f800000", + "be5c4a24 c0384976 bf6f8229 42adfc5d c27f6dab 41846650 41785fd0 444f4922 00000000 3f800000 bd87f3fa 3b1b76c6 bc7fc6d9 40a7ea52 00000002 -> bd87f3fa 3b1b76c6 bc7fc6d9 40a7ea52 be5c4a24 c0384976 bf6f8229 42adfc5d 40000000 00000000", + "4222b06e c1b36690 428ed7aa 44de318a 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c3043872 43019716 c2c60591 462b1d47 00000001 -> 4222b06e c1b36690 428ed7aa 44de318a c3043872 43019716 c2c60591 462b1d47 00000000 3f800000", + "be290b26 3e124b84 3e1425cb 41c1191c 00000000 00000000 00000000 7149f2ca 00000000 bf800000 be290b26 3e124b84 3e1425cb 41c1191c 00000001 -> be290b26 3e124b84 3e1425cb 41c1191c be290b26 3e124b84 3e1425cb 41c1191c 00000000 3f800000", + "beaddda5 be99b658 be887deb 420ddb73 c29387b9 c216aed4 430e042a 45d22e7f 00000000 3f800000 42298adc c2ce7a5f 41dfac50 45483dec 00000002 -> beaddda5 be99b658 be887deb 420ddb73 42298adc c2ce7a5f 41dfac50 45483dec 00000000 40000000", + "bf217c8d becc21d0 bf378e33 42c53108 bf217c8d becc21d0 bf378e33 42c53108 00000000 3f800000 bf217c8d becc21d0 bf378e33 42c53108 00000003 -> bf217c8d becc21d0 bf378e33 42c53108 bf217c8d becc21d0 bf378e33 42c53108 00000000 3f800000", + "c167ddc0 c1f40f78 4320be2c 45d2bda6 00000000 00000000 00000000 7149f2ca 00000000 bf800000 42a6931d 407c8e40 42a61cd5 4547a8c8 00000001 -> 42a6931d 407c8e40 42a61cd5 4547a8c8 c167ddc0 c1f40f78 4320be2c 45d2bda6 3f800000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c1e4e8a0 c25b8dec c2ce2346 4556aa42 00000000 -> c1e4e8a0 c25b8dec c2ce2346 4556aa42 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3fcb389b bfa59b45 bfe3cb26 4386cf2f c1a79864 c2560988 c241c9a4 44ae6380 3f800000 00000000 3fcb389b bfa59b45 bfe3cb26 4386cf2f 00000002 -> 3fcb389b bfa59b45 bfe3cb26 4386cf2f 3fcb389b bfa59b45 bfe3cb26 4386cf2f 3f800000 40000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 430dced8 c2d3b8a0 41c3f5b8 45f4e96b 00000000 -> 430dced8 c2d3b8a0 41c3f5b8 45f4e96b 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c30244bd c314b27a c2241c9c 461f3b8e 00000000 -> c30244bd c314b27a c2241c9c 461f3b8e 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 3f8ec21f 3f13a3d0 be7dd51e 42b950fc 00000000 -> 3f8ec21f 3f13a3d0 be7dd51e 42b950fc 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "425205f8 423462c8 c1805658 445d1b32 432395c6 bd4fb000 c2291eef 45dd6214 3f800000 00000000 3e3f984b bdc5b7d5 befc9897 41f9ca97 00000002 -> 3e3f984b bdc5b7d5 befc9897 41f9ca97 425205f8 423462c8 c1805658 445d1b32 40000000 3f800000", + "3c377337 bdb000af befabf23 41cc53af 00000000 00000000 00000000 7149f2ca 00000000 bf800000 3cbfa657 bd854ed7 be2c11d1 4135a8d3 00000001 -> 3cbfa657 bd854ed7 be2c11d1 4135a8d3 3c377337 bdb000af befabf23 41cc53af 3f800000 00000000", + "3bc0eff7 bbde0001 bc671ae8 3f93e1bd 00000000 00000000 00000000 7149f2ca 00000000 bf800000 3bc0eff7 bbde0001 bc671ae8 3f93e1bd 00000001 -> 3bc0eff7 bbde0001 bc671ae8 3f93e1bd 3bc0eff7 bbde0001 bc671ae8 3f93e1bd 00000000 3f800000", + "bc998664 3c00cd54 3af4f061 3f28e0b7 bd5b6dd6 bdc2e0d1 3de4ff70 410f6a1e 40000000 00000000 3c965ae9 bca5e084 3df57fac 40daf44d 00000003 -> bc998664 3c00cd54 3af4f061 3f28e0b7 3c965ae9 bca5e084 3df57fac 40daf44d 40000000 40400000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bcb99379 bc59010a bb97feb0 400fa465 00000000 -> bcb99379 bc59010a bb97feb0 400fa465 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "c19784d6 42567558 41bcbf08 4441b7f6 42e6f537 c268519e c264ca6e 459bf263 40000000 00000000 3dd9a9b0 bc924e18 bd9ab0c9 40809c6a 00000003 -> 3dd9a9b0 bc924e18 bd9ab0c9 40809c6a c19784d6 42567558 41bcbf08 4441b7f6 40400000 40000000", + "3e7bde79 be534dda 3d6961e2 41f2d462 3e20e584 c01d87cf c015bf2e 433edf85 40000000 00000000 428cfa5d 42e0b108 4315c424 461bf506 00000003 -> 3e7bde79 be534dda 3d6961e2 41f2d462 3e20e584 c01d87cf c015bf2e 433edf85 40000000 00000000", + "3cd556db 3d5d1ead 3c392b85 40808000 bd39fc6e 3c08e03d bd80f472 40f945bc 00000000 3f800000 41ad7282 42d08441 c24f1cde 455aaa85 00000002 -> 3cd556db 3d5d1ead 3c392b85 40808000 bd39fc6e 3c08e03d bd80f472 40f945bc 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c1c51684 424bc8e0 41848608 442ff6a8 00000000 -> c1c51684 424bc8e0 41848608 442ff6a8 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "bd750162 bd911a5a bce396fe 40d9975d 4223561a c30c1c54 4263739e 45ba34f9 00000000 3f800000 c2d1460c c18c35e4 c21715b8 45398b24 00000003 -> bd750162 bd911a5a bce396fe 40d9975d c2d1460c c18c35e4 c21715b8 45398b24 00000000 40400000", + "c2f28601 c2a0b57c 432e37ab 464462e5 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c0268eab c07cf20f c00df25d 440b5d37 00000001 -> c0268eab c07cf20f c00df25d 440b5d37 c2f28601 c2a0b57c 432e37ab 464462e5 3f800000 00000000", + "3e80e48b 3f5b98e4 bf2c6d87 42906c73 3e80e48b 3f5b98e4 bf2c6d87 42906c73 00000000 3f800000 bb8b29ca bbe93688 3bf8a155 3f968339 00000002 -> bb8b29ca bbe93688 3bf8a155 3f968339 3e80e48b 3f5b98e4 bf2c6d87 42906c73 40000000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 42ebc780 408ac2a0 42b663cb 45a183c9 00000000 -> 42ebc780 408ac2a0 42b663cb 45a183c9 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "c2a96ff9 c20e1852 c284bb8d 453b9f03 4319c860 42b4f772 42be17b2 461f9a92 00000000 3f800000 413c31f0 c192d298 42bacd42 44f5e48d 00000002 -> 413c31f0 c192d298 42bacd42 44f5e48d c2a96ff9 c20e1852 c284bb8d 453b9f03 40000000 00000000", + "3c8e91cf bc307a92 bc30efb3 3ff957d4 c1b16e68 c31c5368 420b1744 45cba2f0 3f800000 00000000 bc6f6839 3def9155 3c8ededd 40d4ecc4 00000002 -> 3c8e91cf bc307a92 bc30efb3 3ff957d4 bc6f6839 3def9155 3c8ededd 40d4ecc4 3f800000 40000000", + "430061e2 c28d11e3 429fdc0e 45cdaf7a 00000000 00000000 00000000 7149f2ca 00000000 bf800000 433b1fde c2f7629b 42af41e3 4661c9fd 00000001 -> 430061e2 c28d11e3 429fdc0e 45cdaf7a 433b1fde c2f7629b 42af41e3 4661c9fd 00000000 3f800000", + "c2334098 41219ed0 c2b90faa 452060de 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c2b2f3fa 400f5e60 c3009ce6 45bfa03e 00000001 -> c2334098 41219ed0 c2b90faa 452060de c2b2f3fa 400f5e60 c3009ce6 45bfa03e 00000000 3f800000", + "3d9773db 3c321e36 bd2412fa 40c0491c bf1df1fc bea6eba0 be9521cb 41e09802 00000000 40000000 3df066e2 3f1371dc 3da83f65 41434a99 00000003 -> 3d9773db 3c321e36 bd2412fa 40c0491c 3df066e2 3f1371dc 3da83f65 41434a99 00000000 40400000", + "3dc2c1a9 bdf601a1 bd31f11b 412c842a 3dc2c1a9 bdf601a1 bd31f11b 412c842a 00000000 3f800000 c28c83bc 40e887b0 c29f91c4 452ec7aa 00000002 -> 3dc2c1a9 bdf601a1 bd31f11b 412c842a 3dc2c1a9 bdf601a1 bd31f11b 412c842a 00000000 3f800000", + "be02de43 3f5fef29 3ee2c192 42ccf3c7 00000000 00000000 00000000 7149f2ca 00000000 bf800000 42198261 42a1e01d c1c8d228 45042c45 00000001 -> be02de43 3f5fef29 3ee2c192 42ccf3c7 42198261 42a1e01d c1c8d228 45042c45 00000000 3f800000", + "40740bbe c0164e08 bf7a071b 43f4777f c0d57746 3f6c5699 3fe65268 44191499 00000000 3f800000 424f35b4 41d80e68 c2ee21bc 4581a572 00000003 -> 40740bbe c0164e08 bf7a071b 43f4777f c0d57746 3f6c5699 3fe65268 44191499 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bffa88ea 3fbf6541 3fa47def 43649586 00000000 -> bffa88ea 3fbf6541 3fa47def 43649586 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3e3a809b be6395f9 3ec2fd8c 420d19e1 3e3a809b be6395f9 3ec2fd8c 420d19e1 3f800000 40000000 c0a55540 c328d9c6 c187e198 45e0d9ca 00000003 -> 3e3a809b be6395f9 3ec2fd8c 420d19e1 3e3a809b be6395f9 3ec2fd8c 420d19e1 3f800000 40000000", + "bfaacc60 3e9b7ede 3ffbfb40 43336d6f c26bc864 41f20600 c2b04465 453c294f 40000000 00000000 c227fd08 41a8994c 420f1648 43ec8b44 00000003 -> bfaacc60 3e9b7ede 3ffbfb40 43336d6f c227fd08 41a8994c 420f1648 43ec8b44 40000000 40400000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 beb0d395 bcfb97cc 3df2a041 4157b33c 00000000 -> beb0d395 bcfb97cc 3df2a041 4157b33c 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "42ac3149 410e5658 426055dc 4523dcf4 42ac3149 410e5658 426055dc 4523dcf4 00000000 3f800000 42ac3149 410e5658 426055dc 4523dcf4 00000002 -> 42ac3149 410e5658 426055dc 4523dcf4 42ac3149 410e5658 426055dc 4523dcf4 00000000 3f800000", + "403b6cf3 4099aa25 404e2d90 43f659c2 42d751ee c18830e8 c01f7e00 452f4875 00000000 3f800000 42d751ee c18830e8 c01f7e00 452f4875 00000002 -> 403b6cf3 4099aa25 404e2d90 43f659c2 42d751ee c18830e8 c01f7e00 452f4875 00000000 3f800000", + "bec445d7 3e28d4f1 be32d824 41efb594 416737f0 c24b929f c20c0936 447b5d5a 3f800000 00000000 409ec940 4236eaca c209abcc 44406e99 00000002 -> bec445d7 3e28d4f1 be32d824 41efb594 409ec940 4236eaca c209abcc 44406e99 3f800000 40000000", + "3c06b36a bc19252a 3ce8d940 3fbedce0 bf056358 bd5eef12 3dc018c9 41ac8360 3f800000 00000000 42d7ff34 4309cc42 428b89fe 4608cac5 00000002 -> 3c06b36a bc19252a 3ce8d940 3fbedce0 bf056358 bd5eef12 3dc018c9 41ac8360 3f800000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c3182116 42b7c43e c29d4067 4612e435 00000000 -> c3182116 42b7c43e c29d4067 4612e435 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3d93bf4c 3d9beb4a bd6c2cbf 40f4d006 3e24799c 3d8ec0e0 bebfa454 41b4e49a 40000000 00000000 be9cd6e1 408f9b66 40ad8cbe 43af3f71 00000003 -> 3d93bf4c 3d9beb4a bd6c2cbf 40f4d006 3e24799c 3d8ec0e0 bebfa454 41b4e49a 40000000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 3d2ef9fe bd2b44d4 3c353a84 3f52bfef 00000000 -> 3d2ef9fe bd2b44d4 3c353a84 3f52bfef 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "bd08f4a1 3db64ba5 3dabac3a 411ac555 c2139a06 c2f7d87a c2a447f7 45b26718 3f800000 00000000 bc46d9ef 3bacb9c0 3c9015e3 3fe60c16 00000002 -> bc46d9ef 3bacb9c0 3c9015e3 3fe60c16 bd08f4a1 3db64ba5 3dabac3a 411ac555 40000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bf71ee1d bffc7ac2 3f785f37 430bca00 00000000 -> bf71ee1d bffc7ac2 3f785f37 430bca00 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3bca1b7f bbf671a0 bbbfcbbf 3f900240 3abc9b96 bcebd341 3bc6022c 40192411 3f800000 40000000 3cacef41 3f18aa2c 3eb576dc 421e21a6 00000003 -> 3bca1b7f bbf671a0 bbbfcbbf 3f900240 3abc9b96 bcebd341 3bc6022c 40192411 3f800000 40000000", + "c08dcc30 3ffd0106 bfc3d8d9 43c4b803 c3087a10 c1dfb850 c1ba2886 459a875f 00000000 3f800000 c1a73a58 c2daec0c c2a5344e 4592a474 00000002 -> c08dcc30 3ffd0106 bfc3d8d9 43c4b803 c1a73a58 c2daec0c c2a5344e 4592a474 00000000 40000000", + "3f546192 bea717ae 3f77767d 42e64bf5 c2cd0231 c214f244 42e64112 45c43209 00000000 3f800000 bd101274 3cf09d2a bd4cf967 40e1ebe6 00000003 -> bd101274 3cf09d2a bd4cf967 40e1ebe6 3f546192 bea717ae 3f77767d 42e64bf5 40400000 00000000", + "40896f82 3eccb914 3fb71ed4 43b5c2a8 c233e24e 430d4366 c18671b0 45a9595c 00000000 3f800000 c2407b76 c29bf0ad c26f2278 4539863b 00000002 -> 40896f82 3eccb914 3fb71ed4 43b5c2a8 c2407b76 c29bf0ad c26f2278 4539863b 00000000 40000000", + "421a2528 428f89c6 40dec4e0 44c5ffce 00000000 00000000 00000000 7149f2ca 00000000 bf800000 421a2528 428f89c6 40dec4e0 44c5ffce 00000001 -> 421a2528 428f89c6 40dec4e0 44c5ffce 421a2528 428f89c6 40dec4e0 44c5ffce 00000000 3f800000", + "3ca8215c 3d512cbd 3d91552c 410a7890 3edfa916 c0058f21 3f8219df 434ad088 00000000 3f800000 c1d8154c c2383afc c29920f6 4503683c 00000003 -> 3ca8215c 3d512cbd 3d91552c 410a7890 3edfa916 c0058f21 3f8219df 434ad088 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 3eb55705 3e68efa2 bfdab418 4308223a 00000000 -> 3eb55705 3e68efa2 bfdab418 4308223a 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "c2bd0184 430ba5fa 416071d8 45d69ad7 00000000 00000000 00000000 7149f2ca 00000000 bf800000 3e2014aa 3ed7fffc bf64d108 422b17b1 00000001 -> 3e2014aa 3ed7fffc bf64d108 422b17b1 c2bd0184 430ba5fa 416071d8 45d69ad7 3f800000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 4309a0f8 429d5fd5 bea37f00 45c13f2a 00000000 -> 4309a0f8 429d5fd5 bea37f00 45c13f2a 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "bd2412df 3b05b035 3d126060 40bebc28 3fa588fd 3fa3f8f4 3fa9ff5d 43314f22 3f800000 00000000 bc73b8b2 bd3bab2b 3c21c834 4099c97d 00000002 -> bc73b8b2 bd3bab2b 3c21c834 4099c97d bd2412df 3b05b035 3d126060 40bebc28 40000000 3f800000", + "3bed4fcb bcb9c52e bc6ee106 3fed4c30 00000000 00000000 00000000 7149f2ca 00000000 bf800000 42d9434f c207f668 4165ca70 454bed00 00000001 -> 3bed4fcb bcb9c52e bc6ee106 3fed4c30 42d9434f c207f668 4165ca70 454bed00 00000000 3f800000", + "c1625990 42aeccbf 42d3e5f6 4594c0b8 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c1625990 42aeccbf 42d3e5f6 4594c0b8 00000001 -> c1625990 42aeccbf 42d3e5f6 4594c0b8 c1625990 42aeccbf 42d3e5f6 4594c0b8 00000000 3f800000", + "409d6f11 c02432e9 bebfee28 4287f66b 409d6f11 c02432e9 bebfee28 4287f66b 00000000 3f800000 3ebf8acc be8ee732 bb942875 41d985b1 00000002 -> 3ebf8acc be8ee732 bb942875 41d985b1 409d6f11 c02432e9 bebfee28 4287f66b 40000000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 3e41ba4f 4003e7d6 4085dd6d 439c2b8c 00000000 -> 3e41ba4f 4003e7d6 4085dd6d 439c2b8c 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "4059649f 40fe490c c01bb2b3 44451f2d 00000000 00000000 00000000 7149f2ca 00000000 bf800000 43134960 4256a044 42cc567d 4607933b 00000001 -> 4059649f 40fe490c c01bb2b3 44451f2d 43134960 4256a044 42cc567d 4607933b 00000000 3f800000", + "beaeb2a4 3e27801f bf13c68b 42466695 00000000 00000000 00000000 7149f2ca 00000000 bf800000 bb554583 bc0ba479 3ba4d7bf 3ec4d572 00000001 -> bb554583 bc0ba479 3ba4d7bf 3ec4d572 beaeb2a4 3e27801f bf13c68b 42466695 3f800000 00000000", + "41021c68 c2c64430 c25dc594 4547c4fc 41021c68 c2c64430 c25dc594 4547c4fc 00000000 3f800000 bc475502 3d1a4115 3d27985b 40c8bc00 00000003 -> bc475502 3d1a4115 3d27985b 40c8bc00 41021c68 c2c64430 c25dc594 4547c4fc 40400000 00000000", + "bbd0a278 3c537e69 ba0bf6e9 3ee6e657 bc13fffa 3d9ff69c bbd8a594 40c815f9 3f800000 00000000 3f52c09a bf0d25fc bf1c0940 42c651b2 00000003 -> bbd0a278 3c537e69 ba0bf6e9 3ee6e657 bc13fffa 3d9ff69c bbd8a594 40c815f9 3f800000 00000000", + "c26d308a c1ca2188 412ee8e8 446eb671 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c26d308a c1ca2188 412ee8e8 446eb671 00000001 -> c26d308a c1ca2188 412ee8e8 446eb671 c26d308a c1ca2188 412ee8e8 446eb671 00000000 3f800000", + "be7fbdf5 3c5b13bd 3d6d8011 41adb6cd c12fc300 c214d6e6 4209b85c 43b4646f 00000000 3f800000 3cdeaa28 3d90de32 3d5b4fd3 4092e9b0 00000002 -> 3cdeaa28 3d90de32 3d5b4fd3 4092e9b0 be7fbdf5 3c5b13bd 3d6d8011 41adb6cd 40000000 00000000", + "37a17647 bdc1d51b be6245e2 41870bf5 bf375391 bad438bd 3eeb90d2 4258c8ef 3f800000 00000000 bf375391 bad438bd 3eeb90d2 4258c8ef 00000002 -> 37a17647 bdc1d51b be6245e2 41870bf5 bf375391 bad438bd 3eeb90d2 4258c8ef 3f800000 00000000", + "4182ccf0 c29b690f c16badc0 44c728da 4182ccf0 c29b690f c16badc0 44c728da 00000000 3f800000 4182ccf0 c29b690f c16badc0 44c728da 00000003 -> 4182ccf0 c29b690f c16badc0 44c728da 4182ccf0 c29b690f c16badc0 44c728da 00000000 3f800000", + "c1c6eb48 41c9f5e0 431e17da 45c59813 00000000 00000000 00000000 7149f2ca 00000000 bf800000 41a0ce30 42951f4a 4283f0cd 451e10d1 00000001 -> 41a0ce30 42951f4a 4283f0cd 451e10d1 c1c6eb48 41c9f5e0 431e17da 45c59813 3f800000 00000000", + "c2159e56 c280119a c27feb48 45156c8b 420295c4 42a864be 42a8271b 45551e1f 40000000 00000000 c17144b8 c315585c c2ed5dfc 460a0941 00000003 -> c2159e56 c280119a c27feb48 45156c8b 420295c4 42a864be 42a8271b 45551e1f 40000000 00000000", + "c3236180 c101d698 c1cae694 45d5b2f1 00000000 00000000 00000000 7149f2ca 00000000 bf800000 406a6bc1 3f85682c 40377d8e 437986fd 00000001 -> 406a6bc1 3f85682c 40377d8e 437986fd c3236180 c101d698 c1cae694 45d5b2f1 3f800000 00000000", + "bc6ea768 bc215ee2 3c8f03e1 400b06fe bef86745 3f840a15 beeb492a 4286eb60 00000000 3f800000 bef86745 3f840a15 beeb492a 4286eb60 00000002 -> bc6ea768 bc215ee2 3c8f03e1 400b06fe bef86745 3f840a15 beeb492a 4286eb60 00000000 3f800000", + "41d8319a c30fe628 c31cdab8 4633a21b 00000000 00000000 00000000 7149f2ca 00000000 bf800000 42caf296 c287cc1c c19ed1b0 456e4ed3 00000001 -> 42caf296 c287cc1c c19ed1b0 456e4ed3 41d8319a c30fe628 c31cdab8 4633a21b 3f800000 00000000", + "3dd919a0 3e709621 bd4d7997 419f11b6 3dd919a0 3e709621 bd4d7997 419f11b6 00000000 3f800000 3dd919a0 3e709621 bd4d7997 419f11b6 00000002 -> 3dd919a0 3e709621 bd4d7997 419f11b6 3dd919a0 3e709621 bd4d7997 419f11b6 00000000 3f800000", + "3d166561 be2b8926 3d9d2863 414b1da2 c26a258e 42864904 bf9c0680 44d7bdaa 3f800000 40000000 c3002a6d 429d05ea 42661c84 45ca5653 00000003 -> 3d166561 be2b8926 3d9d2863 414b1da2 c26a258e 42864904 bf9c0680 44d7bdaa 3f800000 40000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 3cece539 3df85c32 bee7de6b 41ede48e 00000000 -> 3cece539 3df85c32 bee7de6b 41ede48e 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "bd920fce bc788af7 3cca3f70 40186a2e 413b2520 c33a0e25 c23e09d8 460f1af2 00000000 3f800000 3e86fab7 be7781cb c00e1b40 42adc15a 00000002 -> bd920fce bc788af7 3cca3f70 40186a2e 3e86fab7 be7781cb c00e1b40 42adc15a 00000000 40000000", + "3e525022 3ebd53be 3f0eadca 42582ee9 c28f500d 42a76822 433461a3 462cc2b6 00000000 3f800000 c1ea75f8 41a831be 4121e2c0 42985260 00000002 -> 3e525022 3ebd53be 3f0eadca 42582ee9 c1ea75f8 41a831be 4121e2c0 42985260 00000000 40000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 428c9acc 42f48d92 c3134647 46225b00 00000000 -> 428c9acc 42f48d92 c3134647 46225b00 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bcbe9ff9 3ce55cdd 3ce1e7e7 40811e9b 00000000 -> bcbe9ff9 3ce55cdd 3ce1e7e7 40811e9b 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3e8ab6d6 bed4d850 be221b65 421a25ce 4055fb98 40a64980 40d67ef8 448fbd1a 3f800000 00000000 bff7f498 bfd9fa74 c096f2d1 43ac2876 00000002 -> 3e8ab6d6 bed4d850 be221b65 421a25ce bff7f498 bfd9fa74 c096f2d1 43ac2876 3f800000 40000000", + "bbf54f32 3a6dcb50 3c0f0586 3f6d6c65 bf7d5a66 be8fe834 bdc04b66 42b5a1e0 40000000 3f800000 bf7d5a66 be8fe834 bdc04b66 42b5a1e0 00000003 -> bbf54f32 3a6dcb50 3c0f0586 3f6d6c65 bf7d5a66 be8fe834 bdc04b66 42b5a1e0 40000000 3f800000", + "3dc46d6c bdf39ab7 3e18a146 4155496d c2f85bae 418070ac c28fa3db 4598f325 3f800000 00000000 3d0f554e 3dae95b4 bdf9fde4 4121284b 00000002 -> 3d0f554e 3dae95b4 bdf9fde4 4121284b 3dc46d6c bdf39ab7 3e18a146 4155496d 40000000 3f800000", + "baca1e7f 3b6b2c00 bc28c6f1 3f538b53 baca1e7f 3b6b2c00 bc28c6f1 3f538b53 00000000 3f800000 c3184e7e 41c9e270 c2be0038 45fe7f9d 00000003 -> baca1e7f 3b6b2c00 bc28c6f1 3f538b53 baca1e7f 3b6b2c00 bc28c6f1 3f538b53 00000000 3f800000", + "41d3ede6 be8a5a00 41928e46 c2caa304 3dd0a383 bd992a2f 3eed233c 41afc2a0 00000000 3f800000 3dd0a383 bd992a2f 3eed233c 41afc2a0 00000002 -> 41d3ede6 be8a5a00 41928e46 c2caa304 3dd0a383 bd992a2f 3eed233c 41afc2a0 00000000 3f800000", + "419b8f80 42ed2224 c1e50120 455be475 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c2eb04e2 c1636648 428ca0cc 4593927d 00000001 -> 419b8f80 42ed2224 c1e50120 455be475 c2eb04e2 c1636648 428ca0cc 4593927d 00000000 3f800000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 428d64c2 422c8b82 3ea18000 44c9c6ae 00000000 -> 428d64c2 422c8b82 3ea18000 44c9c6ae 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3ecd7cc2 bd84f333 bdf11131 4209aba2 c1b3e650 42e2bc08 c2fe6df4 45e501e7 3f800000 00000000 3ce0e8b9 3d43d4c1 3acc4e8f 40960c29 00000002 -> 3ce0e8b9 3d43d4c1 3acc4e8f 40960c29 3ecd7cc2 bd84f333 bdf11131 4209aba2 40000000 3f800000", + "c0bacbb0 431203d6 425be26e 45b91b7b 00000000 00000000 00000000 7149f2ca 00000000 bf800000 c0bacbb0 431203d6 425be26e 45b91b7b 00000001 -> c0bacbb0 431203d6 425be26e 45b91b7b c0bacbb0 431203d6 425be26e 45b91b7b 00000000 3f800000", + "429037a8 c17c5538 c2e5ebf8 458e28fe 429037a8 c17c5538 c2e5ebf8 458e28fe 00000000 3f800000 c26a572a c18d5038 c2bb4011 4536ec86 00000002 -> c26a572a c18d5038 c2bb4011 4536ec86 429037a8 c17c5538 c2e5ebf8 458e28fe 40000000 00000000", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 bfe25cb1 c0516d30 40f731bb 437b2264 00000000 -> bfe25cb1 c0516d30 40f731bb 437b2264 00000000 00000000 00000000 7149f2ca 00000000 bf800000", + "3c05077b bbbf850c 3d948b13 40a26047 42ade7d4 41f8e46e c2ad270a 456b69ec 3f800000 00000000 c04cbbfb c038503e 3f0e0579 43c6c09a 00000003 -> 3c05077b bbbf850c 3d948b13 40a26047 c04cbbfb c038503e 3f0e0579 43c6c09a 3f800000 40400000", + "c07d384b bf72db72 bfa26397 43b2fede c23f11ae 420f8180 41777050 445001a5 00000000 3f800000 bdce5cbd bca59602 bd9683a2 3fb6907f 00000002 -> bdce5cbd bca59602 bd9683a2 3fb6907f c07d384b bf72db72 bfa26397 43b2fede 40000000 00000000", + "c2a9d951 c172d680 4238b3a8 451577a1 c1f96cb0 c13f1a50 42e63435 45507ce8 3f800000 00000000 c1f96cb0 c13f1a50 42e63435 45507ce8 00000002 -> c2a9d951 c172d680 4238b3a8 451577a1 c1f96cb0 c13f1a50 42e63435 45507ce8 3f800000 00000000", + "bf5360d7 bf244cbb beab1aeb 42de8fe3 00000000 00000000 00000000 7149f2ca 00000000 bf800000 bf5360d7 bf244cbb beab1aeb 42de8fe3 00000001 -> bf5360d7 bf244cbb beab1aeb 42de8fe3 bf5360d7 bf244cbb beab1aeb 42de8fe3 00000000 3f800000" + ] + }, + { + "glsl": "vec4 cultmath_site_cells_border(CultSiteCells)", + "tolerance": "ulp-bounded", + "cases": [ + "42a0a598 427a3628 421485ec 452b3b99 4318adf2 c14cf6e4 c2805d04 45d40e33 00000000 3f800000 -> 3efe8f4f bf0491d4 bf32376a 41de6a87", + "be0be5c7 bedd78c3 3f15e6bc 4247afd5 42b729e3 428f74ac c30e3c88 460069e1 00000000 3f800000 -> 3efe9c20 3ec85126 bf463c8f 423127b0", + "bd4e7cbb 3ce33dbf 3c971e62 402d9cb4 be7bbd68 3e952e2f bd700435 4189747c 00000000 3f800000 -> bf146ac1 3f48363d be6a0bc0 422bb250", + "42f5e3fd c2850cfe 40e86b60 4593ed9a 41cda168 c31a3338 c20c5fce 45c86b2b 00000000 3f800000 -> bf34e64f bf231a39 be9d97e7 41434c2d", + "3c19baef 3d26e8aa 3c34f1ad 4072b52b 00000000 00000000 00000000 7149f2ca 00000000 bf800000 -> 00000000 00000000 00000000 7149f2ca", + "bf25ce03 3f5d324e be93a3b9 423c7216 c2485d78 c234e4dc c30bc6ee 45b899a5 3f800000 00000000 -> bea35210 be983c24 bf66609b 421739c2", + "bd39b422 bbaec90d 3e0e0ca8 411fbdf6 bd7035bd be9e0f70 3e427abf 42195b6c 40000000 00000000 -> bd30fe78 bf7c31c5 3e2a4085 42b82713", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 -> 00000000 00000000 00000000 7149f2ca", + "3fc35780 c1d90040 c1504c70 43321e6e c0acf250 4250b56c 425c2308 448ef801 00000000 3f800000 -> bd87881e 3f41d8fb 3f26596f 4113866e", + "bbbbe7af 3d80aec6 3d316e31 40514ec9 be6fbdb5 bdfd1547 3ebf53ed 41d6e14a 00000000 3f800000 -> bf040bd2 bed78d12 3f3f022c 42551ad2", + "3dbd9080 bbbe98cc 39ccef4d 40908e10 3dbd9080 bbbe98cc 39ccef4d 40908e10 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bea8537d c0e6a83c c0b83df6 4456eaed c144ab38 40fdbfe0 42cd6b34 45282c26 3f800000 00000000 -> bdde631d 3e0cb38d 3f7c0b26 4184f70f", + "bc48778e bb9ad4e6 3c2573c7 3f90d0cb 41af6da6 4243b91e 42f7c490 45854833 3f800000 00000000 -> 3e2671ab 3eb99d23 3f6aedb2 41fcb44c", + "3d6f0a30 3e87488b 3e7e9e03 41ab4cf2 4327ef9c 42c3ef7f c29c1e88 4625f777 00000000 3f800000 -> 3f4d351d 3eeedbc6 bebf7140 424a766f", + "be306147 bd571676 3e551623 4185d0b6 bfe68c19 3f79aa10 3f80bef1 4364d52c 3f800000 00000000 -> bf48071d 3efc6a9d 3ec3ec0a 42cb7cbf", + "be229705 3c891306 bd10b473 4141e1bc be229705 3c891306 bd10b473 4141e1bc 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "ba41b1c6 3a65e8e3 3c2d4cb2 3f155f77 c2e3809a 4280c709 42bc2761 45c51d57 00000000 40000000 -> bf34d3b0 3eccb65a 3f158914 421ca901", + "bcae176b 3c328aaf bdd2e382 3fa9da31 c02d0f91 3fd25490 beffe230 42d93b83 3f800000 00000000 -> bf58f9bc 3f0403a6 be005dae 4207946c", + "c06c2599 c03e5839 40bc389a 4308c4eb c06c2599 c03e5839 40bc389a 4308c4eb 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "40c2fc32 c096a954 c0a1a357 43dbeb10 430394a2 c21352ce c186f10c 4593748c 00000000 3f800000 -> 3f76fa55 be7ce39f bdba0da6 420394bf", + "c0447c72 c08a72fa 40c4ec2c 4438cf96 4175ad08 c30f911c 42b57cc2 45dfaeee 3f800000 00000000 -> 3de62474 bf596777 3f04133d 421c971c", + "bf86cbdc 3d8742ca bedcc4f1 423479c7 42c30b3a 4298572e 413b7004 45671224 00000000 3f800000 -> 3f49add4 3f1bb47c 3dc6cd0b 41e97e8e", + "3c3f1285 bb90b62a 3a28d941 3f9fb416 c0b80f7f bebb7716 408a70f4 435a82bb 40000000 3f800000 -> bf4c7de2 bd4d5889 3f197978 41f0e42e", + "bfebeb88 bfa6f606 c0409ab8 435b58d6 00000000 00000000 00000000 7149f2ca 00000000 bf800000 -> 00000000 00000000 00000000 7149f2ca", + "3b4120e6 3d25f484 3d908d2c 40ee8779 3b4120e6 3d25f484 3d908d2c 40ee8779 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "42fac1be 41755f78 418e1c20 457c8860 c138f4b0 42cca0e5 c2c0c176 459184a3 3f800000 00000000 -> bf30bb81 3ee08244 bf134faa 4046c546", + "c04f8260 41631e30 4275c764 446cd2ee c04f8260 41631e30 4275c764 446cd2ee 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bf183f66 bd8f968b beba12d0 425bf7cc bc8a413f bee179d4 bf8b0636 42d8c4a8 3f800000 40000000 -> 3f146ce1 bebe379e bf39a282 425649a0", + "3dbe2b87 bfb6446e 40250870 43610a46 42bf02b6 c2136e94 427122a9 454f5f2d 3f800000 00000000 -> 3f50c406 be9b0fcf 3efc85a1 41d37b20", + "42b06bb3 4283a251 40b84b70 453610f9 4313e472 432de7c7 421edc4d 464d96c7 00000000 3f800000 -> 3eeea036 3f58158a 3e87c3fb 42a000fc", + "bc249c92 bb6a4838 bc06fa21 3f6c0f21 bda0d106 be087a6a bd806738 4106292c 3f800000 00000000 -> bee0172e bf543ae4 beb2375d 423ecd2e", + "bdfde9ef be0eafb7 bc8ea3c7 418c7201 42d3d161 c2745c5e 3f1d8c40 45695211 00000000 3f800000 -> 3f5df0ff beff282e 3ba98cb6 41f3099f", + "3e74aed6 be6e5696 bd4a72ab 420b1f94 bf876326 411874f1 3fa57ca1 442a01e4 3f800000 40000000 -> be059ae0 3f7b7209 3e0a4e7d 4281da76", + "3c9833bd bd07a0bb bd886d64 40519050 40872370 c19f6578 422d46b8 43fe355b 3f800000 40000000 -> 3db3b79e bed48f67 3f67cf5c 4128afad", + "be0f9bee bc82e2ea bca6c8c8 409da9d2 bd662bf5 bf73de17 3ea10636 4263564d 40000000 3f800000 -> 3dac6fd4 bf703394 3eabc065 424fff18", + "3dc3e6f5 bfd9456e 401e21e9 438a0aef 3dc3e6f5 bfd9456e 401e21e9 438a0aef 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3dc169ba 3d24ebd2 beb404b5 4201513b 3dc169ba 3d24ebd2 beb404b5 4201513b 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "3f60b64e 3dcbbb96 3ec4d467 4294e6c7 be925189 c02e232d 3bae8bec 43321f73 40000000 3f800000 -> bec1c601 bf6ad87b bdfc89af 4206e211", + "bd9957ff bea17096 3de0e48f 41b121de bd9957ff bea17096 3de0e48f 41b121de 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3cb5e81c 3e3d9218 bf2a41bb 41e24a95 42bb898f 431ad09b 426c7754 460ccdc8 40000000 00000000 -> 3efc0533 3f4fd8d2 3ea0b643 423cab2e", + "c2111349 c00dbac0 c2bcb216 451d770a 4248f0bc c33a6e21 429f24ad 46297a1a 00000000 3f800000 -> 3ea57162 bf302921 3f26508e 41f8d7cf", + "bb2a3817 3c9553a2 bb266631 3f821dcd bf8d1b5a bfc1ef22 bfd8a7b8 435c804d 3f800000 00000000 -> bede49b1 bf1af4e6 bf2acbed 42ad497f", + "bc947f8b bbfa824f 3c8b765a 40318088 bc947f8b bbfa824f 3c8b765a 40318088 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "3d02ef9d bd3a5f76 3ba40a95 4070e5aa 41af2b0c c2625692 c2857c51 44e927a1 40000000 00000000 -> 3e784e2e bf208685 bf3d829b 41a528bd", + "4228ac98 42fbd9c4 c2b2e78b 45c80753 43208d1d 41ab8f34 42d2f3cc 460df4ad 00000000 3f800000 -> 3ef19f56 bed53f5a 3f46ed5e 412b351a", + "bf257e8c 3f27ed02 3fa50894 4306d50b c1c663c0 428729ae 42868890 45177ef6 00000000 3f800000 -> be7ee1c2 3f30917b 3f2e112c 41bcba6a", + "417e8268 42f20726 c32ccdc2 462ebda9 c2d50b29 42e3f9ca 4314d77e 46350540 3f800000 00000000 -> beb6190e bca7351d 3f6f345a 3f95718b", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 -> 00000000 00000000 00000000 7149f2ca", + "425f3a8c c1f5c9b0 c2bb91ae 45384090 c277a728 42f0b81c c2d60f75 45ddd82f 3f800000 00000000 -> bf1cf848 3f4974be bd8d4b9f 41acf7d3", + "4187e6c0 c1067b18 4180dc4c 4300aeeb 40cf4f40 428bf864 4258bfda 44f0761a 3f800000 00000000 -> bdf53041 3f649cd5 3ede1b7f 41a396da", + "42bd43a8 c239dca0 c1a1aa7c 45338f41 c1b46ffe c2c42b0a c2ed0035 45b54cce 00000000 3f800000 -> bf39d77f bea3b83c bf1be0a4 4191235f", + "bd8e4071 bd8c012b be80dae5 41563c93 3f633d82 3f956b2a bea0337f 42587339 40000000 00000000 -> 3f1ca469 3f4a3c0b bd2050fb 41d045aa", + "bc978af2 bc0927cd bcecb72c 3fa2a313 c289ed1d 433b48d4 43107531 466d08de 3f800000 00000000 -> be8f4456 3f4298eb 3f161f27 42764228", + "3a9a2467 3b927443 3c1bf400 3f6c51a1 c1b0bbf0 429a6223 428c3d0e 45257f20 00000000 3f800000 -> be543ee4 3f39621f 3f286293 41c6ab96", + "c1c6eb0a 411c6e68 c28640c1 448e6b53 42a8b2c8 43018770 c1403954 45b20672 00000000 3f800000 -> 3f235238 3f331487 3ea4d543 41d4fa96", + "be48a2a3 bec819b1 3e02d58e 42183ad4 4240ea46 41ed4ea8 c28c37ac 44cccf74 3f800000 00000000 -> 3f090e00 3eaa1f6c bf46c9ac 418d8d00", + "3d1786e3 3c4d4281 3ce18cc8 401b713d 421a4eb0 42c603e4 c2a7ee5a 458e0ce1 3f800000 00000000 -> 3e91b4cd 3f3b2233 bf1ec65a 4206307d", + "bb8f2ba5 3e03cfca 3db89067 4138ee2a bf0e1ca6 3ce43113 beee45b3 421e123b 3f800000 00000000 -> bf32c31e be02f4bf bf344ce8 420dcc2c", + "c1c45450 c24f9c4a c20ff110 448f5d40 4284c9ee c2493de2 c012ab00 44c59754 00000000 3f800000 -> 3f7004f8 3c867af1 3eb1dd8f 408f20fb", + "3d4c4ce4 3d54ae2e bd0cf5de 4101da7e 41e06088 41ce9164 41281728 43a0bc60 00000000 3f800000 -> 3f358634 3f2713d3 3e88ad13 40fdf5ff", + "bc9715a0 3c80c9df bba24cde 4014820f 42f8a393 42c3cdcc c252ca08 45d8084b 00000000 3f800000 -> 3f3ed834 3f163e84 bea1c0e5 4225bca6", + "412a0a20 c1e1e746 c0d71b00 c2a81dd6 3e9480de 3fbe8887 4050a45e 42267218 00000000 3f800000 -> bea04d05 3f667b5b 3e9aca61 407397b2", + "425bb24e c1ff4640 c18599e0 44856ac7 425bb24e c1ff4640 c18599e0 44856ac7 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "3c143fbb bac78563 3bcbd87c 3f5c4dcc 3e8e2d38 bd125f87 be230fb1 418075e6 40000000 00000000 -> 3f58b3c4 bddcca1e bf057886 423f8b72", + "bd697f7e bd2a922f bda40702 408a2d25 bd697f7e bd2a922f bda40702 408a2d25 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "3e6bb389 be3d183d 3da45f7e 418c7a80 3e6bb389 be3d183d 3da45f7e 418c7a80 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3f0a185f 3ea95352 bf2bc721 429e917a 3f0a185f 3ea95352 bf2bc721 429e917a 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "c3019691 c2d44f67 c17446d8 45db15d6 c3154b80 41965950 c30f6204 46278f49 40000000 00000000 -> bde02b9e 3f31aa83 bf362b49 41a4fd85", + "3be7e085 3bf08121 bbc37de7 3f9ad4ba bc546143 3cf44a98 3cac3c3b 406d663d 40000000 00000000 -> befdb3e7 3f0e4f8c 3f2adb98 42773ff9", + "be94a596 4079e2ba 40a3dabc 4319cb85 bf138dd5 3f35e4b3 c02ed05c 435eace7 40000000 00000000 -> bd0a258d bec0ced1 bf6cff52 4101f0ae", + "3d803b97 3d1f6e63 bd696fcf 40f53751 c30698f0 4331573e c2004884 46459b13 00000000 3f800000 -> bf194287 3f49caa6 be11be2d 4260c380", + "c2dbd915 41d53860 42c50cc3 45aad087 c2dbd915 41d53860 42c50cc3 45aad087 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "4005d134 3e06ffe7 bf966352 42926898 4005d134 3e06ffe7 bf966352 42926898 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "41173f48 42a7b6ff c1ee9d04 44fa3213 429495d5 41246060 c266cdf9 450a045f 3f800000 40000000 -> 3f22cca5 bf38c11a be8bf971 4001c032", + "c21f19dc 4218e6c8 c239974e 4485ff67 c1894688 c2f387b0 c284aaea 458dc65a 40000000 00000000 -> 3e0e3f16 bf7b928b bdfac87f 41aa412f", + "3f2d0f67 3d9633d3 3dd4bc1b 418fdbee 42625e50 40be8160 4293e711 45025d2b 00000000 3f800000 -> 3f1a39f1 3d81be55 3f4baf22 41b23bba", + "baeb8603 3e58485e bc4c1ad9 41616f6d 4284c75a 41b1a438 4215eb39 44b815e7 3f800000 00000000 -> 3f562dd8 3e8de7e8 3ef1e69c 41930b9f", + "bd63dc7a bc9fb44f 3d3ee52a 408e4ae4 42ae4f55 424b54b8 c209a89c 452df88a 00000000 3f800000 -> 3f514acd 3ef41348 bea56754 41d06b1c", + "427d5476 c0547740 c0c84210 447dd201 c21b31dc c336f00e 420ce008 460ca4b4 3f800000 00000000 -> bef81fe3 bf5a302a 3e498890 421792f9", + "418fbd18 41aaa8fe 428d9632 44b4ec53 418fbd18 41aaa8fe 428d9632 44b4ec53 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "be271648 3e1c3924 3d7480a0 41abea45 be036df0 3dfd4cbd bea07eb8 41b123b1 00000000 40000000 -> 3dbdb8f7 bd9d59a0 bf7e23a2 3fde5fea", + "bde1fca9 3dd66f3d bcd0e285 413c1686 432303bb 4049a2e0 c31f388d 464565e2 3f800000 00000000 -> 3f37323c 3c5aeba4 bf32c881 425d7ae4", + "bf8160b2 3f651ffe beb8d12c 4208d8de 40691926 c052bfd6 bfc3c07d 439339c1 3f800000 00000000 -> 3f3b0bea bf285b18 be3bde45 42237647", + "be23c9ad bc2fb2b3 3e94d322 4187c734 42dee9cf 43019999 428bd5e9 4602dd90 3f800000 00000000 -> 3f1ab974 3f33ab09 3ec1093d 42350a33", + "3ba0b5fe 3bb5d1f4 bcc66333 3fe58caf 41997a7c 41abe6d0 c3007636 45856ea1 3f800000 40000000 -> 3e153630 3e271f4a bf79cc35 4201b38a", + "41e9648e c27d4562 c1cd9a38 44881a9a 41e9648e c27d4562 c1cd9a38 44881a9a 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bd8a8d85 bde7cc21 be0b2573 412980a6 bef6688c 3ea7cead bd211936 4219757f 00000000 3f800000 -> bf2cf38b 3f385fbf 3e217ee6 4235712c", + "c222bdb2 c317fd42 42b57ea6 46002abf c222bdb2 c317fd42 42b57ea6 46002abf 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3e4bb0e7 3d8c3e3e 3e1c2d72 41b1e562 42a9053e c2d85cd3 429fffec 45c1f3aa 40000000 00000000 -> 3f07f588 bf2e8fd7 3f00c2b3 421bd24f", + "bd5e7069 3bd067ed 3d0efffe 40d8083f bd5e7069 3bd067ed 3d0efffe 40d8083f 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3bb0e12e bd3bfc92 bd1886a9 408ec83c 405032aa bc56bd4d c09d0ce3 43929b1e 3f800000 00000000 -> 3f0e0534 3bb787ad bf54fd1a 42454ba8", + "be705e8b bea3fd02 3e6ef194 423238aa 40a4c63a c0c09cdf 409c9020 44608121 00000000 40000000 -> 3f17213b bf1ff850 3f02c99e 42bb2a44", + "3d83d776 bda2be90 bdd8cef0 41744d7c 3e27cf6c bd3143a9 3f26ddbc 41fab199 40000000 3f800000 -> 3e052e45 3d41beec 3f7d895d 41a804e7", + "3b851385 3d126a15 3bcd5894 3ffe618c 42ac98f9 43146238 c231b11c 45ee35b5 00000000 40000000 -> 3ef93a62 3f5638d9 be8050f2 422bf2e3", + "bd034ca1 bce1d339 bc9a48c8 406fab40 bd034ca1 bce1d339 bc9a48c8 406fab40 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "3e807d3f 3e6b6e78 3ecc4fab 41df58f7 42d3937b 409aae80 c1a7121e 452e2386 3f800000 00000000 -> 3f7ab80d 3d2efed5 be4a3e1c 41ccc607", + "c27aafd0 42153930 3ff5fa00 44880288 c22c1618 c19e10f6 c24c56bc 448b1207 00000000 40000000 -> 3e7a80e9 bf35ddbf bf28ef1a 3e9c10a7", + "41c4ae92 4185d3a8 428143cd 449dee7a 41c4ae92 4185d3a8 428143cd 449dee7a 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "40d8f4a0 c24b9b24 c2b361ca 451fc2b2 c2a8e0af 420e1f93 c28da58e 453c91e1 3f800000 00000000 -> bf37c4e9 3f2e2069 3e180b04 4068282e", + "3f607a65 bf2cc82e 3d069c0d 42bf28d7 3f607a65 bf2cc82e 3d069c0d 42bf28d7 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3fa741f6 3e2cf062 3f2437c1 42e267d6 402aea77 c00f2b81 4099c830 4396c520 00000000 40000000 -> 3e8bb080 bef66b45 3f5540f1 4216b3cd", + "c321d904 c195ba90 c28ea382 45f5c86e c321d904 c195ba90 c28ea382 45f5c86e 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3c719a9f 3cade7bd bb0ad233 40074bec 3f199817 bf997aed 3f257089 42b7f4ec 3f800000 40000000 -> 3ec7aba9 bf502bdc 3edd3622 426f8852", + "c24b51ea c20fbd16 4244cf6c 44c4b2f3 c297c61b 42e09aa7 42b3a9da 45ce31cb 3f800000 00000000 -> be24c22c 3f73ad7a 3e85936b 42010eca", + "40a45742 40787049 c08a8fb9 442e0cf1 c18e9b44 42343cc4 429f9359 45072d96 40000000 00000000 -> be73d4eb 3edaa2a8 3f5f50bf 41735a4c", + "3d4c755f bdebbb73 3c05c4a9 40d2b33e 3d4c755f bdebbb73 3c05c4a9 40d2b33e 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "40872f60 40088b00 c1a7787c 42ca31bf 428d298f c23a30e2 43016535 45b4ac2f 3f800000 00000000 -> 3ec63d12 be916f0b 3f608d53 42049439", + "c2507a32 41c90ab4 c1080050 4412bb3c c2507a32 41c90ab4 c1080050 4412bb3c 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "bfe07d00 42b29cd9 42157106 4509fbaf 42363874 42038fa2 c2c5bb17 4546f7b1 00000000 3f800000 -> 3e9c6c8b beba8940 bf6135fe 40c9a41a", + "3c608008 bab0a65f bc0d8934 3fbe8842 bd269283 bda25f6a 3ca2ca1d 40669356 3f800000 00000000 -> bf0c4ad9 bf491a13 3e932248 41aa7b3d", + "3a10eddc 3b954d93 3cc22a9c 400061cb 3fa21b3f 3f2c3883 bd8f83d1 4294acfa 00000000 3f800000 -> 3f61e9d4 3eee7cc5 bd85e271 4249b171", + "bd196540 be689891 3e0b3e0b 4148bf2e 428d5155 409998a0 428e3b11 4519fb83 3f800000 00000000 -> 3f346e25 3d4d4754 3f35271a 41c37ed5", + "3e2436c4 403e3eeb bdbfc19a 42f83aa3 423fc3fe c2b09ff8 c2373200 453b0ee7 00000000 40000000 -> 3ed90a25 bf4f535e becf9c42 41cb9d08", + "400db8ec 3f04fbb0 bf4129c6 43580004 421e7948 c21387ec c2a9b49f 451057d9 00000000 3f800000 -> 3ec0c2c6 bec0c05e bf58b2fe 41a89307", + "bd17fff2 bc36fc52 bc3e0049 3fedcb22 c20b7144 c2ee4e06 431126cf 460e8179 00000000 3f800000 -> be3ab380 bf1fb08a 3f429160 423ef794", + "bf404700 3faa3b9f 3ed964ff 42b2cc9e 41edf8b8 c2983995 c299a9d0 4534e411 00000000 3f800000 -> 3e89806b bf2e943b bf2e28ce 41c5980b", + "3e09328c beb417df bf9b0834 42d92b64 4258e97c 431c04b1 c2c9c6aa 460f6d9d 3f800000 00000000 -> 3e8f6138 3f4f3c0b bf041998 423bd598", + "3e2fa1e1 bf5abec7 bfaa5666 43110a39 422e03ae 42bebfd5 4257a8bb 4556aeed 40000000 00000000 -> 3eba3f7a 3f4ecdca 3eed742f 41dcf1df", + "becba0cf bfd6f832 3db1af6c 4306710c c23b31d8 41e55820 421baed3 4439905f 00000000 3f800000 -> bf2f7ba2 3ee58a87 3f12dd8e 410faae6", + "3d34f321 3e1d02a0 bd4811db 40bb43dd bd1251d8 be1ff886 be2b4299 41fc1dea 3f800000 00000000 -> be6ffdc4 bf687259 beb1d167 42968cc0", + "43297d3e c2c45949 c2885cf3 4628041b 43297d3e c2c45949 c2885cf3 4628041b 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bced85df bc49c291 bd0bc96b 406e7c79 c29a38fb c1da2fd0 c2c1f970 457959f1 3f800000 00000000 -> bf1b9795 be5c1b92 bf43b39e 41fb6cda", + "bf8281ce 3f688d7b 4005e3fc 436e8126 c2637c50 c2b153bb 42e02b5c 45b7ca8e 00000000 3f800000 -> bebb93cd bf1669b5 3f38b446 42140e98", + "c268d56a 427834b6 428b55d8 453c5703 c268d56a 427834b6 428b55d8 453c5703 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bdc09820 bd8a6651 3ea8c4bb 420b987a c306611f 42991759 4255d920 45c99724 3f800000 00000000 -> bf5248f3 3eeff21e 3ea667f3 421cfca9", + "420269f1 429cdc1e c2c71d14 45786774 420269f1 429cdc1e c2c71d14 45786774 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "3c0ef7da 3ca950b2 bc0519b8 3fd5e73c 3c0ef7da 3ca950b2 bc0519b8 3fd5e73c 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "c2c9ca8c c26bf7a6 428797ce 458b2cb5 c2c9ca8c c26bf7a6 428797ce 458b2cb5 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3cb09f39 bd51ab8a 3b08868e 4080fea0 c29ead3b c194fd04 c22b9ea2 45047b9b 00000000 3f800000 -> bf5c9165 be4e79b0 beee818c 41b7c1d4", + "c229e057 424718b4 41b12fb8 448b4a6c c229e057 424718b4 41b12fb8 448b4a6c 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "bc7481ba 3d40915a bc2e4149 409a9f50 c29c4189 c277f2d0 c2c9a4f6 4599cfe0 00000000 3f800000 -> bf0d00a5 bedff4e3 bf35f9c8 420aaff5", + "3d7a19a1 bcc72a66 bd38bd79 409a29b1 3da39ea9 be0c2d7c 3e264124 4116db8d 00000000 3f800000 -> 3da2e304 bef36d9e 3f604ae0 419bc8f8", + "bc92c717 bc80b263 3b97e023 40190ba6 be508a27 3eb7c548 bfaf5286 42ae73ba 3f800000 40000000 -> be04654d 3e85864d bf74ea30 426c37f7", + "42906a6d 421f88e8 c2706244 45181cd9 42906a6d 421f88e8 c2706244 45181cd9 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3cd2cc7f 3b0548c5 3d956345 40b98c4d 3cd2cc7f 3b0548c5 3d956345 40b98c4d 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3ce1c5e2 bdf9aef4 3d82f0a5 403b659b 3ec00641 3df7c0de 3d49e209 41bc3f3a 3f800000 00000000 -> 3f51b2b8 3f12937d bd0d6e69 424244a2", + "3e7639ab 3ea4aa1e 3dd59334 4209c6d7 c269bf3e 42efc1fa c2ad1f4c 45c1b13e 40000000 00000000 -> bebd1271 3f409efd bf0ba0dc 421b29e7", + "429945fa 41c53630 c245ad4f 44f8f1e3 429945fa 41c53630 c245ad4f 44f8f1e3 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3e532c0c 3e6499be 3d8f31eb 41c31655 3e532c0c 3e6499be 3d8f31eb 41c31655 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "bb91c73f bcf24e52 bd1338ce 40b3259f c239f8be 421f8c66 4296e474 45072f4f 3f800000 40000000 -> bef4d29b 3ed236b2 3f46c195 41b18546", + "bf3352b1 becf8dcd 3e1284ab 42ae194a bf3352b1 becf8dcd 3e1284ab 42ae194a 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bb887e96 3c568c98 bd9bb3ff 40b33e35 be52df07 be26ffbe bea6e8f6 419eb850 3f800000 00000000 -> bf0cfa8f bef6349e bf2ea965 421b7410", + "3d087895 bce220be 3cdc84cf 3f68faca bd13c9f5 3c0c98c8 3d2f773d 40934367 3f800000 40000000 -> bf5e7142 3ee7f686 3e4c1ab1 4238e5de", + "3bafe4c5 bbf172ec 3c0f0909 3f44a12b 3bafe4c5 bbf172ec 3c0f0909 3f44a12b 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 -> 00000000 00000000 00000000 7149f2ca", + "3d4388cb 3dfa6dc3 3ca15d01 4123057b bd78f291 beb4cd89 3f13eb17 424a1709 00000000 3f800000 -> be15ef00 bf243719 3f40c7d5 4259afde", + "c0ceabc0 bf9e4beb 4049eaac 4373ac68 c29916bf 42bccc95 c2cf0c0f 45c097b4 3f800000 00000000 -> bee0fc3a 3f1980a8 bf2b39e1 4214736a", + "3de728c4 bf031af6 be82457f 421f430e c212e93e 4215fc48 c2ffe172 458d1df2 00000000 40000000 -> be8876b7 3e8cca26 bf6c7c11 42018720", + "414e6538 41187160 c303d006 45894e4c 414e6538 41187160 c303d006 45894e4c 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3c687779 bb2262a8 3ab44954 3eb414b7 bf56cd8b bf3e228a bf8d17ec 43021d33 3f800000 40000000 -> bf0a506b beeffc38 bf32e7ab 42a4550a", + "c005e8a3 c08edd84 c0b11fe9 4424fce6 42c677a1 41d9d908 c2f08f0f 45c31e99 00000000 3f800000 -> 3f25ee8b 3e4f9e69 bf3be7d9 420ee0b0", + "bce1b7a4 3c7de6c1 bcb332e7 404959f3 c30c430f c2bb1ede 42a62f97 46067944 00000000 3f800000 -> bf3efeab befee4fe 3ee26646 423714fb", + "c08378c0 c294ba3b 4270bd47 45093be1 41a75ba4 42f9994e c09e6640 4564d328 40000000 00000000 -> 3df2e3df 3f7199d6 be9e070f 40de36de", + "bf5c53d1 3f2146ca bfb140d6 42899eca c2aa7ac4 c00db580 c0e69810 44e2fd30 3f800000 00000000 -> bf7f3fa8 bd09a8e5 bd8ce032 41a5282b", + "3d430f4f bd41052c bc5625c2 404033b3 becf7e2c bedd8f64 bf9c1469 42b11ca7 3f800000 00000000 -> beac66a9 be92cae6 bf659ae2 427e6fc1", + "400ecb6d bfd87ce0 c08138ec 43c86c16 c065fb80 c2f04134 c11085c8 455740ae 3f800000 00000000 -> bd4904b6 bf7f76e8 bd2c5e16 41cd2101", + "3cd197be 3e4a97bc bd1a4224 41369611 bf36c3ff c09bc0cb 3fddb87d 43a20dec 3f800000 00000000 -> be0bd0b1 bf6f687e 3ea74ec1 4266efb7", + "be2db75a bf043000 be633eef 4233f00f c0bfeba0 42f493c3 c0f0ee10 45543287 40000000 3f800000 -> bd41d208 3f7f4303 bd730473 41d99d3b", + "bdb87ece 3e8944f8 3dfdf37d 41b07893 c2821523 c0a24630 c28b26e4 44ee1ce3 3f800000 40000000 -> bf2e40de bd652f9a bf3afe58 419ddae3", + "40742660 c29403aa c1c83430 44b70581 4308564b 428a6391 c271bf06 45d2311e 40000000 00000000 -> 3f2b1538 3f38dea5 be36dbf3 41d4488b", + "c0b6aa23 3fdd0e34 c05d0880 442621a8 c0b6aa23 3fdd0e34 c05d0880 442621a8 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bfda95d5 bf22f5f7 bf9b17f0 4381852a c2dd8850 42b24406 c178a8a8 459f3cdd 3f800000 00000000 -> bf44a4bf 3f21dd02 bdceb34b 42084346", + "bd13899f bcc1bf49 bd8466e7 40a96761 42795338 42c02572 41a6f094 4553af14 40000000 00000000 -> 3f0918d9 3f533df0 3e380dbd 41e84ce0", + "42c8a3c3 c202aa2e 42042e96 453e2399 42c8a3c3 c202aa2e 42042e96 453e2399 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bce83ed0 3c4eff19 3d83bd44 40471b3d 3c82c11d 3d362f5b bb08296b 406bb0c7 3f800000 00000000 -> 3f03fbf0 3ebdb3c7 bf45c950 40d4d3e8", + "c21767b8 42176443 432202ed 45decbcf c21767b8 42176443 432202ed 45decbcf 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "4289f7df 42b9d479 4208405c 455d982a 4289f7df 42b9d479 4208405c 455d982a 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "c080e38e bfc388a6 c0aebf9a 43a759d4 c2404e3e c235a8e8 bed4ba00 4434809c 40000000 00000000 -> bf34c1c9 bf341859 3da5a23f 40c6ab1e", + "c25d6408 c240e892 c306566d 45b71744 4315440d c1c25570 c32f7395 46500864 3f800000 00000000 -> 3f795957 3de95914 be486941 420df497", + "3e3ea266 bf1af195 3e621c3e 418e523a be638efd 3f2b6650 bf4f5a95 42af7405 00000000 3f800000 -> be7786d0 3f412946 bf1c30b6 42259491", + "bc91887a 3d887d76 3cbb989b 3fa7b690 bed618e0 3e8076b9 bd92a1a7 4100f80b 40000000 3f800000 -> bf63637f 3ed149a5 be56aa45 416f9959", + "3d4ff4fa 3fea1036 3ebefc75 41e601e2 c05e8149 40db17f7 c03df341 443bc82f 00000000 3f800000 -> bf014913 3f37eb85 bef4e7dc 42ced89b", + "40469edb 40a4aa91 c0aeaf38 42d5c166 40469edb 40a4aa91 c0aeaf38 42d5c166 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "41459d40 c2035954 42ef28c2 4568d6a3 42960e2b c2ae3209 4299b812 45949c7b 3f800000 00000000 -> 3f2c0c0d bf14f1c7 beea8849 4130bbcc", + "4294043a 418935ac c2a65aac 45464650 41e59610 42dfcae9 c240102a 4574621f 40000000 00000000 -> bed17745 3f5b0045 3ea28c8f 40d52872", + "41ca922c 418bb820 4186b2d0 c2a721b8 41ca922c 418bb820 4186b2d0 c2a721b8 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3ddc4ed7 bc964e1b 3c05e420 40be2401 3ddc4ed7 bc964e1b 3c05e420 40be2401 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "4283ddb9 42cf7df5 c33f6958 46463889 4283ddb9 42cf7df5 c33f6958 46463889 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bf901d99 bef654e9 3f8bf596 42ce18d2 4288dd02 c25b96a8 bfeed820 44c4d941 3f800000 00000000 -> 3f49844b bf1da65d bd092e18 41853e82", + "3ba31571 3cf63363 3c4961aa 3f2087c0 3e328595 3e565819 3bbfafb3 41a3ce14 00000000 3f800000 -> 3f2fbeb7 3f3a0636 bcd5e65a 42a0e986", + "3f26b312 bf813ea9 3fab21db 4223c53e 3f26b312 bf813ea9 3fab21db 4223c53e 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3c372042 bbec2b8f 3c9b7a83 3f9739ad bb3ade46 3c87dd6c bc0dd963 3fa020ea 40000000 00000000 -> beb7d365 3f1be27a bf351315 3fe3dd0c", + "3eae8152 3e8bba8f bd9e7c99 42505845 407fe820 4205d7f4 420e9764 43aded91 00000000 3f800000 -> 3d993175 3f2dbf96 3f3b0814 40c18e00", + "42ffe028 41eb2358 427ccf78 45a497b5 40d96280 43182fef 4327cf74 464885eb 3f800000 00000000 -> bf19bb0c 3f1bd337 3f04bee8 42160733", + "3ea69900 c12a46d8 4130b100 c2192d3e bf82f2d6 beb9c125 3f8b9c36 42bfc924 00000000 3f800000 -> bdc0280f 3f371c0c bf3148f1 41156493", + "bd14ab6f bd1b083a bd84ecf1 40ef45a6 409d62b6 c09727ad 3ec42ab7 441e2b42 00000000 40000000 -> 3f39985e bf2f8631 3d86444b 42b6f6e1", + "3cb1bae0 3d268053 3d3db4cb 40a9e747 c2199ca0 41452e70 c2b9c7cd 451135ef 40000000 3f800000 -> bec22ebd 3df84c07 bf6ad4f1 41b70a2a", + "3bc918df bc096bf3 3bf60d28 3e2647ca 3bc918df bc096bf3 3bf60d28 3e2647ca 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "c05602ca c0ac897b 4039c42e 440b9aab 408f0222 3e60ac98 40be0da8 44284f01 00000000 3f800000 -> 3f464912 3f0e683d 3e9a2186 41361f9b", + "3d28d9d9 bc6519bf 3c7d9187 40684621 3d28d9d9 bc6519bf 3c7d9187 40684621 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "be21a2c6 3f0cb1ba 3efd6d38 426ebad3 42bff6aa 42516b66 c308cabb 45eaad07 3f800000 00000000 -> 3f0c4c04 3e97330a bf4857e5 4229def3", + "3e977756 3efda6bb 3de11ee9 4220f36e c29775c9 c241d2c4 430daa38 45d24f2e 40000000 00000000 -> bee7bd35 be953613 3f57bdbe 421f4e50", + "3d6fe6e8 3d5ffc89 bdf9acbc 408649d9 3d7c32a4 be4e9a80 bbb163a9 417c2e41 40000000 00000000 -> 3c2e9b08 bf69105b 3ed3c0a2 42243969", + "bdb1233c 3da67f26 be89ee65 41768903 c285d67e c2fb56c6 c2c0d28b 45e06418 3f800000 00000000 -> bec725f1 bf3b5b61 bf0f3e0c 4226cd59", + "3d8640cd bc2921d2 bd0af0ab 3febf067 4205e1f0 c2056ca8 424be7f0 445a4130 3f800000 00000000 -> 3ef619da bef5aa02 3f3be6b7 414890c6", + "3cb5bdb3 3b442702 bbaae7b4 3fb3e8e0 3cb5bdb3 3b442702 bbaae7b4 3fb3e8e0 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bdd13685 3f6f71a2 bfbc683b 43022986 bdd13685 3f6f71a2 bfbc683b 43022986 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3a01cbe6 bc67429c bc3174e1 3fb8507e 3cf8e55b be320519 3cebcf35 41751ef2 40000000 3f800000 -> 3e36f960 bf74791e 3e7288bc 42a5f767", + "42a934e8 42e419b8 41f0a898 45a1f504 42a934e8 42e419b8 41f0a898 45a1f504 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "be49888f 3eca875f bf598e3d 427ba0d4 c1f938f2 c2872fd2 43066bba 45b853ee 00000000 3f800000 -> be4d2248 bee144d2 3f6018db 42170e41", + "3d044cad bd1f35e2 3d16a9ea 401a7b1a 3d044cad bd1f35e2 3d16a9ea 401a7b1a 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "c24cc720 c2b0cfe8 426f35aa 4542f7a7 c24cc720 c2b0cfe8 426f35aa 4542f7a7 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 -> 00000000 00000000 00000000 7149f2ca", + "bf614380 c318e498 422c3236 45c4a5be 00000000 00000000 00000000 7149f2ca 00000000 bf800000 -> 00000000 00000000 00000000 7149f2ca", + "bcc3a73b bdb18282 bdb2f79d 4108f6aa 42a07187 41aa5280 425d0c56 451b1c6a 00000000 3f800000 -> 3f4dd78b 3e5b5722 3f0dfac4 41c64156", + "bd59f633 3d409459 3e07158a 4172f375 c33532c7 c1b59640 c1b4626a 46043e15 3f800000 00000000 -> bf7c1160 bdfd34bc bdfc7a55 4237b042", + "c032377a c096e641 3db61483 43936f4b c032377a c096e641 3db61483 43936f4b 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "3cfa2cea bd0caf13 bd45d9db 40aae823 bf1d8c76 be528e4b 3ef252b5 41db8230 3f800000 00000000 -> bf431168 be4ee2b4 3f1d828a 41d08891", + "be15af58 3f4bf108 3e3905d7 4263f23b c2c77b88 41a14bb0 c02e1940 45145819 3f800000 00000000 -> bf7b30ea 3e435de5 bcea21c4 41b69460", + "3e5792c9 3df9934d bf2a5cd9 4214531f 421918b4 c2fbb0df 4307f876 460adb8f 3f800000 00000000 -> 3e4d77aa bf29fe34 3f3863f3 423a9b4b", + "3b4256bb 3bf63ad3 3c6f98a3 3f8b7273 bd801b16 bca97f44 3cbc9f6c 40d2b7d2 00000000 40000000 -> bf6985cb bec90fcb 3def8ff7 42990753", + "3bd913a3 3c27fcd9 bb7183ce 3f87dd87 bc5626b7 3c9d3158 3c33c816 3fe0e93d 00000000 3f800000 -> bf40fb72 3eaf1ab7 3f0fa04d 41d50341", + "c1b85294 422d26fe 426f4e44 44aca8e7 c1b85294 422d26fe 426f4e44 44aca8e7 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3e90fa6a bf11f55d be5a6254 4234b659 4284374b 421eaabb c09e4150 44984fae 00000000 3f800000 -> 3f5a03c8 3f05442d bd7ac5bf 4172e0f9", + "41cb561c 42be4650 41ff34d0 45268e2b 42d8bbde c2947607 42ddc4da 45e6a962 00000000 3f800000 -> 3ecfb7c5 bf540f66 3ec5c935 41b888ea", + "42d3d6b6 c14430b0 c10be850 452c637b c11cf280 429e1de2 429c64c9 453ef173 00000000 3f800000 -> bf2d1b17 3f089899 3f020bb5 3fde07b6", + "be71f08e 3e114b2b 3e11fbc1 416cdd9f be71f08e 3e114b2b 3e11fbc1 416cdd9f 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bcadf904 bd85c2ce 3d13644c 40844116 c21f4029 42a8f6b4 c10bf848 44fa12b7 3f800000 00000000 -> bed91245 3f669cb3 bdbfad5a 41aa2c6c", + "3f238a84 bf8d3499 c003cfe5 4332cfcb 4136b9f8 c31ec62d 420881f8 45c3a4a7 3f800000 00000000 -> 3d88311d bf78f5f1 3e648d60 42160c31", + "3b425b1d bbe3b50c bc73427b 3eecb1df 3e18b940 bda893df bebf12f7 420ce3e7 3f800000 00000000 -> 3ebdd26a be43baf2 bf68aa86 42b0525e", + "3e0621a1 be8473b6 be57bd37 41b58718 c0811b3f c0636c7c 3f855e21 440f60de 00000000 3f800000 -> bf436c46 bf1a9272 3e6b0f96 42c9e280", + "412602d0 c31d1246 c276c9be 45de2d32 00000000 00000000 00000000 7149f2ca 00000000 bf800000 -> 00000000 00000000 00000000 7149f2ca", + "c294636a c0e33ca0 42b0d7e2 4545df0e c294636a c0e33ca0 42b0d7e2 4545df0e 3f800000 40000000 -> 00000000 00000000 00000000 7149f2ca", + "3dcc695f b9a7acf3 3e4754bf 4154d922 3df40800 41d996ee c196d418 433148c6 40000000 00000000 -> 3a18b958 3f51b0ea bf12da38 409e06e2", + "41f93136 41bdd1b4 418bd090 43b30dd2 4325fdd4 c3219b28 429b0daf 4668ce1b 00000000 3f800000 -> 3f11b1b6 bf483f9e 3e81c3d9 42757ea9", + "41cd51d4 41af3934 421fb1f7 440d7124 c3095418 c1e2a3a8 42eb2800 4602bf81 3f800000 00000000 -> bf5ea769 be893d39 3ed42803 422687a9", + "3d66445e 3d5fa487 3d2eaf28 4104cc2b 415f5e70 c30c8bc0 426a0dee 45b054d0 3f800000 00000000 -> 3dba3b1c bf6b6542 3ec3c935 42136425", + "3c922b53 bcc1825d 3c1fa641 402bbb33 be3a4bc5 be226193 bd7a9d79 419e69f7 3f800000 00000000 -> bf4b81ea bf097a06 be9082e4 42883cf7", + "bc1408c0 bcb0bbde 3bac404e 3f79ffe9 bc1408c0 bcb0bbde 3bac404e 3f79ffe9 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bf9ec0ed 3fe5fd32 3f47b951 43247924 3f1efe69 bfb013af 3fbc743e 432e08ef 3f800000 00000000 -> 3efea184 bf58fdf7 3e3d5dbd 4023815f", + "3ddfcfe8 be0bdb2f 3b85f690 409745c6 3d0259eb 3c37f088 3d4d9427 40b72ccd 3f800000 00000000 -> bee5148e 3f5a8fc8 3e8857d7 40b846a4", + "42cb5bf2 c234bf92 c1b9c0b4 4549b8a6 4319edd1 41c086c0 c2135336 45c1e0ea 00000000 3f800000 -> 3f185216 3f49e3e8 be1ebb6c 420795f7", + "bc587d98 bc5e4c59 bd7344bb 407eea2d 3efda70a bef43072 3dbcd82e 42292301 40000000 00000000 -> 3f38cfa9 bf285d40 3e5c5685 4259732d", + "4288a9b2 4269dc5e c2705fba 45356ea3 4288a9b2 4269dc5e c2705fba 45356ea3 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3d59f4b6 bbd8dd3b bd428a0d 40ef579d c30951e6 c2cc5cf7 c1d05580 45de5650 3f800000 00000000 -> bf4b159f bf170cae be19b6ae 42242c23", + "bb11d5da 3c8e4114 3dc25524 3ed15c54 3c53e44a 3dacfd7d be2f610a 410bf62b 00000000 3f800000 -> 3d61da0f 3e79f41b bf77dacd 41f2aa1d", + "c29c4eaf c06d0220 4244326c 45024c59 c2850688 c210e1a4 4289e25b 451cf973 00000000 3f800000 -> 3e95899d bf50dada 3eff8a6d 412b56cf", + "3ce8eba7 bbe207c1 bbb8ea5f 3fffc73d bd14c0da 3ddf1c71 bd037628 4121888a 3f800000 40000000 -> bef4fdef 3f5b263d be482c07 426f5d6b", + "bfcbf5c0 41743884 c1178110 4222a24a bfcbf5c0 41743884 c1178110 4222a24a 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "3f81a66b be7f80b3 3b8add6a 4231082d c26268e0 410f3470 430b6b16 45b15443 3f800000 00000000 -> bec3306a 3d79564c 3f6c2749 4215047d", + "bce7c6e0 3d80bba1 bd846d30 4095ea89 bf4f1736 4050d579 bf80dc99 43a33e6b 40000000 3f800000 -> be695341 3f6f1eb7 be8cc8f0 42bbdad8", + "41801070 c0eb7818 40e89d08 42b59026 c1dfe728 c1062218 40a54900 434b00d7 3f800000 00000000 -> bf7fa379 bcbe9195 bd439b10 40230431", + "43106bed c1d93c90 c22a8d33 45b635dd c2bb2e5c c291633d c315fbf2 460d64d6 40000000 00000000 -> bf65e49b be2ff177 becf5e6f 41424afb", + "c0a7e7b5 406c85fb 402cf82e 440e99cc c0a7e7b5 406c85fb 402cf82e 440e99cc 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "c265fc5a 433665ed c30069e0 464eb50b 00000000 00000000 00000000 7149f2ca 00000000 bf800000 -> 00000000 00000000 00000000 7149f2ca", + "41b0e930 417a2200 412ffd40 c2bbd1b8 bf131d14 3e91a8c5 3e24e832 4222035e 40000000 00000000 -> bf452a51 bf0561ee bebc5f11 409201ed", + "bc333f39 3c2b1180 ba43494c 3fb66d45 3d408001 bd9c56bf 3cdd1cfb 40d542a9 40000000 00000000 -> 3f096084 bf4dc34a 3e83885b 42421b04", + "bca241d8 be8af3b6 befb9be6 42310988 4089723a bfe6587a c03a0922 43d0dcae 3f800000 00000000 -> 3f556ccf be972bef beeeef7a 42905004", + "430e00cc c181a998 428973f0 45c25c02 430f87ab c2b1ef57 423c642c 45e5970f 00000000 3f800000 -> 3ca4bf46 bf75568e be91dbe5 416d96a2", + "c044689e c0dc5e4a 40906f78 44128384 c044689e c0dc5e4a 40906f78 44128384 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "bc83803f bbd7c1b4 3b7d8ee3 3fc712aa 412c6ae0 c2c8e162 c0f69760 45204553 40000000 3f800000 -> 3dda2cb6 bf7dcbe8 bd9bdcdc 41ca6144", + "c2820340 4152a9c0 41b010b8 4493fb1c c3139667 c21e9e06 41da1a58 45b37851 00000000 3f800000 -> bf575969 bf09be02 3d5b3ecc 4239c48c", + "3d355775 3d259d5d 3c0b1853 40945a7e 41a005a8 c1d4f5b0 430f432e 45a8007a 00000000 3f800000 -> 3e0af5e1 be399f51 3f7959b7 42121665", + "3d35fc36 3d0c5c87 3cdca527 400d4646 c10517f0 41831910 4221a475 436a9a9e 3f800000 00000000 -> be4106b1 3ebcb9ee 3f6907a3 40a7a0a9", + "3e9e7491 be966213 3e8fcbb8 42290bd5 3e9e7491 be966213 3e8fcbb8 42290bd5 00000000 3f800000 -> 00000000 00000000 00000000 7149f2ca", + "40bd1ac0 c143b2d0 419f05c8 41bce420 be82c993 3fd77c6e 3f01a29d 42c13310 40000000 3f800000 -> be802138 3f10990c bf494dbb 403d9ea1" + ] + }, + { + "glsl": "float cultmath_gabriel_margin(vec3, vec3, vec3)", + "tolerance": "ulp-bounded", + "cases": [ + "421d55b0 c229c8d9 42288d02 41a8cb38 411db540 41e64d1c 41502dec 41944258 3e3f8f00 -> 3f5785df", + "423b7a5c c1e73c17 41194b68 42001764 c2394d8b 416d7ff0 c1e88503 42084ab8 c1a93ec4 -> 40fd18e5", + "c22e217e c1befa7a c1b06922 c1ffa78f 411c63ac 4143ada8 c1c4d519 41e9899c c105d97c -> 3f11120a", + "40bac268 c21065e2 41ebdd0c c180e5ec 420f43d2 c112d7ec c1cb0731 421608cc c00bf540 -> 3d56dff2", + "422dc136 4223d020 c042c540 c1067d9c c23852c3 421f1636 422f7294 41a49c4c c19d84a7 -> bd71adee", + "42383fdc c1aa5342 40c0de10 bfcff320 41534bb4 41ecd770 c2095dc6 beb64a80 c21ab350 -> 3fc31c42", + "423e81e6 405911a0 420746ae 42316740 4203e03e c1063244 c182854c c2064fea 4238d390 -> 40193ef8", + "414da1c0 c11c71b0 c184969c c1698260 c209f19f 41e95e30 40ee1e88 c171d740 c20f8104 -> 3ef6a0b0", + "41a0056c 4192f1ac 409a3a70 c08db1d0 c1b6fc24 40fbf2e0 40eb85f0 41dc2a34 41a5743c -> 3ec08c76", + "c22f27e5 c1c6b069 41c7d1f8 3e3ec700 c11f3f90 c22b768d c1ef87be 41d140b8 410a016c -> 3e236198", + "4144e738 40c2c6d8 41db84f8 418baa7c 40bae240 423521ac c1f1dc98 4212de5e c1891bf6 -> 40e76730", + "420823d4 c1deb032 41f63014 c10ad814 c1a5ede3 424249cc c17101cc 41fa9b8c 4189caa4 -> 3fe95b64", + "c1c73c3b 420902b0 40c54200 421ffb74 c144fd70 4173ea58 40e7c4b8 42104b46 42356f4e -> 3d844dd0", + "c2267b12 4111cbdc 41fa46e8 3fe8a5a0 c2105626 4223b65a 41f3996c 41fb63c8 421eed7c -> 3f90b933", + "c1913f7c c13e4d60 41a524c0 42129648 42083034 c0b38200 c128adcc c1723780 c1e89490 -> 3e94ef26", + "c10866c8 41b193cc c1344690 c10866c8 41b193cc c1344690 c183c30e 41e06e3c 4247b09c -> bf800000", + "c19266f6 42097f20 c1a1d6ce c13f5ba8 c1827328 42256f12 c1cc25d0 c1c89e42 c111ee34 -> 3c947661", + "c235f1c9 4206cf42 c1b4bfbe c1ff05d3 4060da80 42266048 c169ebbc 4213f53a c2118fb0 -> 3f05be9e", + "c219fad4 41117ec0 c23034bf c1c1b3ea c1dcf314 41725638 40788ff0 c15d13e4 c1ecf6cb -> 3db167b4", + "41b2d0d4 c0e8a528 41be1c1c 4113a758 42384d96 3fd3a960 42448bcc 422f372c c23659c4 -> 3fb4e5b2", + "41ea469c c1ee9406 413b95a8 c121f9dc 40b82a58 c22a2e00 42026304 c1d52d90 c1fa8783 -> be2c8882", + "c0371ec0 41bc6bf0 c05d6c20 4219ab70 41b4d9a8 41e367c4 c1587130 416cee98 c2095d60 -> 3f975d8c", + "419461bc c14867b4 42193210 419461bc c14867b4 42193210 41943810 413c8b70 c2203ecd -> bf800000", + "c212591e 41e8d1c0 c1dfa0fe c212591e 41e8d1c0 c1dfa0fe 4229d47c c106c86c 42024f00 -> bf800000", + "c17acbf8 42254f2e 423d7a46 405af5b0 41a04180 c20c4b8a 4202328a c19bc073 c2020138 -> 3f334dae", + "41b9ed0c 42433272 4238c21e 41b9ed0c 42433272 4238c21e c1c36463 42127d00 c201664b -> bf800000", + "c20b4669 c17abf68 41e12918 c1030b10 c190f828 40e5c928 41c51f70 41e0bd5c c085df48 -> 4040572c", + "42302b1e c23a05dc c242c649 4095ccc8 c1902fd9 415f6900 c19f0c6a 423c5c42 41c9e51c -> 3fc3ffba", + "c2096b9e 4204345a 42331ae6 c2096b9e 4204345a 42331ae6 420ffe52 c22c39b3 41a66694 -> bf800000", + "c1959484 419dd32c 417982f8 c1959484 419dd32c 417982f8 42175914 4229ebe0 c2366a34 -> bf800000", + "4212b6c6 41021158 4156e560 422a0fc8 41172d0c c11cfb78 42188fc6 41caa15c c1ce46ad -> 3fd7829a", + "c1e8ed4e 41e870d0 c1a633e2 c1e8ed4e 41e870d0 c1a633e2 c1fb8623 418694bc c18e3044 -> bf800000", + "41e99af0 c1ac1ce7 c21a758e 41e99af0 c1ac1ce7 c21a758e c18ef588 c1272b00 41db4cc4 -> bf800000", + "be08f300 c1722444 4131428c c23459dd c2160211 c099aed0 c22f2df7 c21bf1ba 423ba3ec -> 3f688e20", + "c19ed5c8 423a3544 41945d74 c14657ec c145bc04 c16f3a4c c1b3f6ca c2291c53 41a47c78 -> 3f5611d4", + "41eec9a0 c22c3a16 41ddc07c c2150731 c23c60c8 c1850e3e c1e4a70d 41159e20 41f8c2d8 -> 3f1da8ee", + "c23e6f87 40918c50 c1fb61d7 423b6294 40f4c6c0 42417aa0 c20ec245 4204e9a4 414d4af4 -> be8d98a2", + "41e82508 c20d48b0 41905444 41a43b94 c1dff0a9 42411ba4 c20c18c2 c1067234 4223608e -> 40407b59", + "41d2b20c 41c40170 c1ccbce1 423e4192 c0e276f0 40e4b590 4223d042 c2137568 c23ff915 -> 3fb1d97c", + "41e90a20 c1d1c4a6 c04957e0 42321372 41ccc724 41dfcc5c 42021bc6 c1ecc3e5 41efa258 -> 3dd34a00", + "c12ba684 c1ea189c c0b72840 42262bb8 4172b600 c13190dc c0930f38 42466298 4222f124 -> 3fa0bd01", + "c2357c6c c1fcdcb9 41ee920c c234f799 c1b0e07e c19ee00d bed3f800 4219d162 407b1700 -> 4008940b", + "c245fdd9 c22a55a2 c2434cdd 4206cdb0 40a7a6b0 418e999c c13e0adc c1434534 4233ba38 -> 3d2e6db3", + "c0bef418 c2090022 42324930 3fc94600 40b32a98 c19e347f 41ec2140 41db9698 c18cd7da -> 3f16bc88", + "c237eaa6 c2190768 42256daa 423d8356 412bcdb0 c0c15ad0 41e2c710 c1c6b71b 41850764 -> bef7ff47", + "c0916338 c1ace3c4 42304a64 41eb9e0c c19127fe c1f37ee2 4150e0f8 41330d04 c15b2478 -> bdbb6d11", + "423d60b2 c244e17f c229909a 423d60b2 c244e17f c229909a c0530590 421b83b4 c1d16f1a -> bf800000", + "c1fe9281 c2044336 bf573b40 3f1fd640 41b11988 40c1ea78 bdc7d400 421b098e c207c34c -> 3f5876fc", + "41e63360 42075f62 c1d84b79 41e63360 42075f62 c1d84b79 421de944 c214272a 41a95604 -> bf800000", + "bf065840 c2096ca0 c1e2950a 4200c342 c1f243a3 c15f6cec 41895b04 c1fd6540 c10dae58 -> be9f865b", + "c16f3280 c23b0927 c23776cd 41cd9398 c226005e c1515420 c1c1c431 41369af8 41d002c0 -> 400c9b71", + "4197b364 42335440 40c80ad8 c205af78 4222c576 c208d0b4 c1136480 41e9b1bc c13c5c10 -> bf14e7ea", + "c1c7d29d c2288893 421745ac 40a60e00 c1978771 41899c74 4236ebe2 c1603208 423cde9c -> 3fea80d4", + "c21381b2 c19c0704 c18d9c0e c1e7ec22 c055ac30 420a805c c1a5112a c23bb01e 41cabf7c -> 3efa48e0", + "42102f4a 420e0248 c1af7af3 c23f2eaf 409492f8 41164810 4206a866 c219f3f6 4225fdca -> 3f4d4212", + "c238511e 4234fde4 4217d4a4 c2078247 c1b6881a c20a4ed2 418d89a0 c193f8ed c0ab93d0 -> 3e9acc6f", + "c10b3a60 c10d03a4 421f2a6a 414e0c44 c1388b34 4148891c c1c5edff c203fcda 419f5698 -> 3f869cbe", + "c22fbae5 4211b7e2 c144a408 c22fbae5 4211b7e2 c144a408 400b9b10 c127ae60 41ee69cc -> bf800000", + "3f5b8d80 c17c33b4 c245d09f 420625d4 4208dfd6 c0b05270 422d2fba c2007f96 c0eec138 -> 3ed9c892", + "400cd950 c20c8560 422f4dfc c2044473 423f73e0 41070970 c17f46a0 c0a47e60 4236d7e0 -> bf07f123", + "415de98c 41c0a8c8 415bd078 c17ddbec 41854a84 c1067d00 420db8b0 c2020900 40f13730 -> 401a01fb", + "42085b86 c1b0aa9c 41d4d2a0 41690be0 c1845c88 c19857b0 41b7c688 40f85ca8 40defa08 -> 3dbe2d94", + "c0965a48 41a730d0 c09feac8 c21eab4f c21e71a0 c1d695ac c1352310 421c898e 421a4402 -> 3f81d154", + "41ea2948 419e958c c22ab683 c208457d 41d633a0 41a3fdec c22640b7 c1477b0c c2047f6e -> 3e8f7002", + "c0ec0748 4110f408 41ce7174 41073148 c1cdba38 c13bbac0 c0639100 4185622c 4205e9d2 -> 3ebc1735", + "41873f74 420ddf16 41d24588 3ed19500 422be1fa c1a75c85 418e7d88 41fe36d0 c1d20ab8 -> 3e71b85f", + "c0d07f40 c23c567c 42392f20 41e22484 c20eef3f c1eb3d97 c189a66e c19466ee 42172928 -> 3dde84d5", + "414f4b18 c1dbd642 c168f7e4 c20e9fd6 4210f7b4 42345fb0 420aa924 c1485be0 421031cc -> 3d86de13", + "41b0fa20 41d5dc78 41b00c48 41b0fa20 41d5dc78 41b00c48 c1e2b771 422f358e 422e2802 -> bf800000", + "c1f48eed 422d995e c1d84eee c23d3fce c1bab83d c210d967 41bb20f4 c124a9b8 414c3784 -> 3fa3fc9e", + "c047a460 42004740 c0ba2378 c047a460 42004740 c0ba2378 c2321b7a c20c059a 41e70fe0 -> bf800000", + "c1ebd1ea c0b3a930 3ce87800 41bc6194 4162add8 423f824a c0b2bb30 c19d5488 4236e99a -> bdfd7428", + "3fcfb240 418603bc c198b941 c22af148 4209dcb6 c1ea2e83 c2435755 c129b254 c2260c00 -> 3f8169fa", + "c11e7bac 41244a54 423770fe 418bf514 41c5152c c1d42c5b bfe4c120 c23d9e1e 422d2d76 -> 3f5c8e63", + "4201701e 41853114 413bcf54 420c88b2 41da32d8 c0c73c10 4102410c c083c200 c1a6242f -> 40483b62", + "c1c75382 c23ae087 41b2d4ec 4142a418 c22d7164 c224cdcd 41b0fcf8 c12623fc 423e6a8a -> 3f786366", + "c1d45a5a c23de6fc 4180a238 c1d45a5a c23de6fc 4180a238 c133649c 412411dc bfbcc460 -> bf800000", + "c1acfcbc 418f3a70 4243a634 beabd600 c102e520 c14f5ee8 c2128684 420be50a c233f1f6 -> 3f8e3c3c", + "c1436b5c c231f94e c1a0156a 414961f0 40a90758 c21f5a7d 42059dc2 c152f990 4217a820 -> 3fc8b2dd", + "416edad8 4117c9a0 412dafb8 3fad6ac0 c2259d0a c23408a8 419eb544 41eeae34 c245b891 -> 3efbe913", + "40a76b70 408abaf0 c1c8f787 c20a6924 4220f30c c041e740 421a2c44 41cb5bd8 41376304 -> 3f84f485", + "c16af740 c201bf34 41d987f8 c16af740 c201bf34 41d987f8 41a81a14 4184ef94 c2217e4a -> bf800000", + "40dd3290 412de95c c0307e70 c1d72eb6 c2401ac3 41b2b8b0 42066326 41971e74 c22bceb7 -> 3f93d76f", + "c1876460 421d564e c10eea8c 41899b44 c183bb3a 42099d9a be5f6400 4205cdcc 41f504ec -> be8db709", + "c2430a46 c1c5a546 41b2cae0 c2430a46 c1c5a546 41b2cae0 c1e30d85 c228102a 41cad1b8 -> bf800000", + "40265ef0 c028a150 42012e6a 42334b58 420af38c 4243e140 bff5df40 c2241fb4 c18b41fe -> 3ff39131", + "c0ab2150 c18ef66c 40172210 c09b1ca8 c05f85f0 4204c1c2 c2106c44 4244d5f8 c17a5dc8 -> 405b3486", + "c1caed3d 4190e91c 42081e6a 3febfee0 42163f3e 420ff556 c2267404 c1930e16 421a14e8 -> 4012a4f3", + "c1311d18 c17b3694 c20b8730 c1f21330 c15c4b10 421260d0 c00ba110 c13bf624 c2359d3f -> 3eb244f3", + "c0fcdf18 421afe5a 4103b55c c0fcdf18 421afe5a 4103b55c c123f8f0 c201642e c19748aa -> bf800000", + "c1af4ae1 40c2ca78 41e64b78 4231aba2 c1dcb976 41bd0e90 3f37de40 4209f162 41555e04 -> 3e95e4bb", + "421e0808 c22a749c c22af3e6 42225544 c20627f0 c1ec6936 422ea648 c21e9685 c203f406 -> bebda006", + "c1c21482 c1899d06 c22450d1 c16a10b0 41cd2288 42327338 42290472 c161d3e4 c22078c9 -> 3f18573b", + "42045b08 40424a00 c17cef6c 40fcd630 40132ad0 403533a0 42457138 c0af9748 c21870ea -> 3fe3fc2e", + "c10839dc 41cf39d0 c16bebe8 423c58c8 c11915d4 c1981346 c2309b75 3fc1db20 41b24c94 -> 3fa1ef13", + "c143783c c22ae2e5 c1a4cf6e c143783c c22ae2e5 c1a4cf6e c2329a14 42352914 c0355e00 -> bf800000", + "c1f9022c 40727da0 c1f9cb43 41fb05ac c20cab8e 41c4d454 41f1f8f4 c1587260 41b98e7c -> be059a60", + "3f4a21c0 c112723c c13b75a8 c1e74ba8 bf59b400 4241da64 41cc34e0 be272900 423e2c78 -> 3eec3b42", + "c15f9a2c 414d3820 4233c148 421b0eac c11429a4 415992f8 41b0ca8c 41ce7bd8 c1d2e754 -> 3f61e77d", + "c1839768 3f8fb500 4149c6c8 c1839768 3f8fb500 4149c6c8 c1805762 c08db508 c1c21a8f -> bf800000", + "42085f08 4121bac8 413121d8 422a9940 4129d584 4189e698 41f19bac 41700468 c21313bc -> 410cec63", + "c2255e8e c205383b 41020fac c1c71533 40b068a8 423efc9c c21b6f54 40c18710 410d9a44 -> bccec56c", + "41c0feec c12f7a78 c115cb04 c23dfb1b c2364173 c214a8ee c125b438 4246aade 41e1e37c -> 3f9bd76f", + "c186cbee c1a29eef 41cc219c c20e84a4 c20a5441 421b1060 c151b990 c0d3fe58 c23f2759 -> 40a5eb6d", + "c1b26408 41673448 c1d1e4dc 409e1a60 40acec08 c20145fe 422ace70 c226411a 42367092 -> 40c3bb94", + "416dd460 422ff7e2 41df46d8 3fce6840 c09e12d0 c1f43d18 c220a73e 410257d8 4218dab2 -> 3f245c0e", + "c00e1b10 c1b33f4b 41f445f0 41f0a474 41e7e1d4 c10d2420 c1748a34 c205bd78 c2213658 -> 3f6b5736", + "4185f968 412dabfc 418e20ec c196ced6 c2214d9b c20aec30 c2137c15 42392c68 c03989b0 -> 3f3ded34", + "4213048a c1eeeebf c19657e7 4213048a c1eeeebf c19657e7 c212835a c12d7760 3fe1a380 -> bf800000", + "421b2dfe 41ae6668 419a7b6c 41e76f3c 41e5f748 40a52c18 408dd2c0 c247925e 4207aa1a -> 40ffae3c", + "c1500728 c0248e70 41cfa4c8 4203dc8e 41d117d0 4242f53e c1a91845 c237f5e8 c1be312b -> 40033fb1", + "c1cf699d 40b251d0 c100fc8c c22ea278 c211d3a6 c21bd16e c24229d9 c1b2d4a4 42398c4e -> 3fcc8edb", + "41d3d158 41bb256c c1113fb8 40188f90 414ea8fc c02fb2e0 c21100a2 42174516 42006f5a -> 407a3295", + "c215950c 42459de2 c197aa19 41e22b38 417b3348 c1ed4bf4 c188fe4a c238d803 c0c01a48 -> 3f98e1ee", + "c18c4262 41c98cdc c2228d72 c1b27c2b c1863874 c1a11b50 c127b07c 421e6cc2 41762d10 -> 3fbfa883", + "418d9a28 406cf5c0 c1b9b6ad 418d9a28 406cf5c0 c1b9b6ad c22a3e92 4159adf8 c22df8f9 -> bf800000", + "bfa22d60 413d7640 c1ef9b60 420bf5e0 c10f44e0 c1e0ca85 c2118389 c1caa563 c1cbc175 -> 3fed48ec", + "c207476e 3fc28740 c115bd28 41e15b6c 423eae2a 420698f6 415eb5fc c242ddc3 41608098 -> 3f3377a5", + "c1b01556 424621e4 c1f6b59b c2290f10 c1cedaca c1dc8c5e c20e5dba 410e6e60 41b4f274 -> 3ea9c6ba", + "c1b56cc0 c1fd7246 c20d55e4 41acd6e0 41a84698 4206f5ae c20b8a61 c0217110 c17da164 -> be6a4084", + "4215d7d0 42453e46 c23beb64 4215d7d0 42453e46 c23beb64 c211463a 4217ffa6 bf847e80 -> bf800000", + "41b171e4 421e1f5e 40c10988 c12330b0 c22f60cf 42464b58 41e42364 bf4cd340 c0ea3d18 -> be2480cd", + "4213fa68 c1e6d3b1 412d8d14 c22a0788 409706f0 40034140 423cd5a6 423f71b4 c1525784 -> 3f5ad1ce", + "41fb95d4 c1e3323a c22b7595 419446b0 c2063b70 4189152c 41d490ac c1aa91e3 423a0d46 -> 3f744372", + "c21e1f4e c1f503c0 c1f21d6c 3e806f80 c1c8fa30 c23c8598 c1a424f2 421615cc c2175854 -> 4000348c", + "c20ba13b 41f56834 c1dcc284 423afb44 422fdf78 421285ac c209dd50 41efbeb0 c0ad14c0 -> be4628ef", + "3f782200 c21a1126 c208b7ee 418c2240 3f148380 420194f4 c0fcba60 41c4d0b4 c1d52178 -> 3eb4f789", + "c12fad94 c1d7f9ff be255d00 c18e50aa 418cf894 c2425b23 420eacb4 4192e82c 42027590 -> 3fb29069", + "3feccee0 c1db72e4 c2214026 c1e1e94d c244e92f 4244c824 41e63efc c20342c6 41c487c0 -> bd059fe7", + "c1a18236 3fccfcc0 423a68fe c08e9a08 4243f1d8 c239c9f2 4194b784 c2295a92 4246aed2 -> 3f315f85", + "c0f09058 412c46d0 409c2968 41b92620 42285bc4 c1994d13 419dbea4 42389342 c1a7020c -> 3d950d34", + "422a3a9a c244270b c0351670 422af6f2 c1accc0e c240d0ff c19f03ee c1a4eba3 4185f4a0 -> 3ff3333f", + "3fb13d40 c2398a8a c1c8a90b 3fb13d40 c2398a8a c1c8a90b 422e305e 4215acb4 c1bccbfa -> bf800000", + "417c03f8 c22b6d53 c1863458 c1896dca 41e00e90 41958a8c c11de194 422454c4 418d82c0 -> 3e5beaaf", + "c08f3570 c215c908 c1a2a0d5 c1a42e5a 42028c3a 42183e40 42000946 c1a93420 c23646b2 -> 3f1245b9", + "4244ff36 422562b4 c2036d3a 41bb7008 c12cb9b4 c1115388 bfdb6320 c1321e04 c162671c -> 3efac07a", + "409b0590 41a4ec54 420ee65c 417161e8 41493298 414eb5c0 4170e2f8 411bc5fc c1d85ca3 -> 403dcf3e", + "41e3d2a8 40e71178 c2415dd1 40c8ad80 c201b8ee 4246da9a 423b3cf6 c1e0bdd1 c1e82d89 -> be32e665", + "c1524b14 c1ffc996 416b29b8 c1b6ca64 41c33c94 421fffe8 c15f7410 42228e38 422e7788 -> 3f049fb3", + "c14e8f60 c1ecbf43 c242f0e4 c2149f50 41c74650 c1b95ecb 415fb750 c2349b1f 4187385c -> 3fb54e1a", + "c1f2426a c1d7f4ff c1ddd073 c1f2426a c1d7f4ff c1ddd073 c1c0600c c0ff17c8 421ec086 -> bf800000", + "40cdd170 c1114b60 40bb87a0 c0bc8eb8 c1bcf861 c20070bd 4243f8fe c152ea10 c2305445 -> 3fdc5ad6", + "c23d0d09 c1376430 4222ba30 c1b8eb19 41c35510 4180f3ec 420f7584 410123d0 40be9890 -> 3fff9f18", + "c064c5b0 c0088180 41fae50c c1644cec 4227d814 40a02750 c242f58f c2109846 4237036e -> 3fe971ef", + "410cd8b0 40e11b68 420c7dc8 c183748e 423475d4 c1738af4 40840470 422bedfe 42301c8e -> 3e12b7e5", + "42057fda 40c7ac58 41d03668 c1cf44b8 c1c4723f c20f554e 42314f70 422b5456 bfb4a0e0 -> 3ee6e755", + "40c4ee80 c1efc287 418f0e0c c0d79900 c225bdba 4118ea88 4171e9f8 c238f5cb 40096150 -> 3fa58c4c", + "41aafdcc c2057b2d 420c9144 c038a720 c08983b0 405a92d0 c2302394 c12fe3f0 c191d6c1 -> 3fd41934", + "c125cae8 c2180698 422b8786 41b4a674 4220be18 41aeb968 c21684e7 418531a4 c21eda1b -> 3f761efc", + "41de5ac4 412ad5e8 c22649e7 c1266988 c133a240 421c9c66 424433d4 c108bc70 c1c7f91a -> 3d0dc75d", + "c1671338 419d4588 3ebb2d00 c1dac4ae 4185f60c 41a8c890 c1709b6c c1e0fc41 41e31c34 -> 4043d254", + "41b03b68 c22731ba 40aa4358 c224324d c0badcc8 c1b6d193 c238a561 c2120946 4044ec60 -> 3d29a3fa", + "c15469b4 c0340770 4241e1ac 41c2d168 c21d3695 c2273146 c1f0f6fd c2422390 c226a1e2 -> 3e60c3f7", + "40d19920 408baac8 41682e20 4238d96e 419fd500 413a0c38 4002f9b0 c109c50c c230a7cc -> 400475a8", + "c1f74c5e c151f1c4 4221f93a c13bdf3c 419cbe38 c23292f0 c02899f0 40c9f880 4235c136 -> 3dc80ae8", + "c2197fc7 420d41c8 420e3d1a 42191de0 42197baa 41a98234 40dc9050 4183de70 c2182bc2 -> 3f49f847", + "4108b130 3f9bf8e0 c1840696 c1e14a12 c20157a5 c0c9ea08 c10aec9c 416d9928 c1307338 -> 3e4bb74a", + "4202215a 41c8cf38 41472f88 4202215a 41c8cf38 41472f88 c1801614 42476202 40d63278 -> bf800000", + "c21f290c 40a6e0f0 c234f66a c21f290c 40a6e0f0 c234f66a 412d6160 415915c8 c22fe4c6 -> bf800000", + "423adde6 41a9e2b8 41967080 c1c2349d c228a23c 42432966 c2350efb 420e4064 c1a48b03 -> 3f526fda", + "c02d4170 418ef414 c23a7926 41835f80 c1eb4053 c1c0c743 4160a0d8 42021016 c202a423 -> 3ecd2c44", + "c2146023 c1579d88 c1d91435 408c6938 4219bbde c192954b 412fa894 c2414a15 413b9688 -> 3f9e96a2", + "c22d881d 423ed3f2 42169a56 c204ba24 3f1a6680 bf91fca0 418c72a8 c209a0d8 40e04438 -> 3fd20a2e", + "c11d18d4 41de60a8 421e2738 4125ca74 4180f5d8 4239db2a 41ede1ac c0c6c670 c1760ee0 -> 409b5bd3", + "41e6da70 c10b2f70 41e29084 422c7b5c 41231520 bfd09120 422399ac c1e2077b c14b58b0 -> 3f877ff5", + "41d150d4 c14302fc c23bc4e6 c1d97ac9 bed40580 41f1bf6c 41cf4abc 41223e78 c208b9da -> be141409", + "41addf78 41058c24 bfc6de00 41d94424 c16e41dc c040e9a0 421f6482 c201d40a 4219123c -> 4057ebed", + "4227e0b4 3ff890a0 c2033d0c 42037868 41750f00 c1f4e89e c1093d00 c17a6784 40d404a0 -> 40dd4ac7", + "c23f11dc 40feb378 c0861770 41f6c038 c23e8576 41c5ea74 417b31d8 c21f3138 c21ce559 -> 3e297dc2", + "420f9b36 c1eb9468 c1f33d90 414e3234 c1ebeba2 422b6b14 40340b20 41988f08 41002f50 -> 3ec4c3dc", + "c2132c1f 41085bd8 41badb6c c095b6f8 c1ce3835 c1eb0764 c15ffa24 c110769c 40eff6e0 -> bf2575fc", + "c19e6777 c1334428 c1070304 c19e6777 c1334428 c1070304 c211a7fe c210e6b3 c215da09 -> bf800000", + "41a1277c c0aac460 41c64f10 41fa49e4 41ed2b74 c22ceeb1 c23e88fc 41ab55cc c18d3968 -> 3f6ce0f1", + "421ce1e6 c23752eb 4145b8ec 41849600 41b2d27c 41d2b498 c0d29a68 c0c94680 420a68b8 -> 3d278567", + "c216acf6 c188279c 40d3e1c0 c13430f4 c1ca2bc7 402cfec0 41f49cc8 c0393be0 41e7ed18 -> 406011ef", + "c207add2 c20e76f6 bf633000 c207add2 c20e76f6 bf633000 c1da5155 c22766c2 42311ffc -> bf800000", + "423e9184 c190a221 41e70278 c19719f7 41bf3c70 42278098 c194cb33 c191573c 41e4e840 -> bb75d61b", + "420c2630 415a0518 41838b70 41218958 419f01a4 c1a69ed7 c2472d13 c14d61d0 42182b3c -> 40388bd9", + "422c294c c1e2f2e8 40d1d6a8 c1be7a27 40a85608 4229b45a c206eee2 41c6b1b8 40a1cea8 -> 3ee27006", + "408c5010 be7ea900 4106c708 41e59190 c21a023c 416d57d0 c1ffe75b 41f9c00c 411137e0 -> 400428e2", + "416bee80 3eb1eb00 c22c60a0 418d537c c20432e2 41f54d10 c210ee66 40bf7ec0 c0afbe40 -> 3ed0731e", + "c1f07aa9 c228eeb5 420e2fca c2430951 41d015f4 41cae838 3ff76da0 c1199a18 41ced084 -> 3e2876d8", + "41fbd3bc 41ccdef4 40d20c50 c1ce2bc7 c16b6ca0 c233307c 42197c78 42121c2c bfb36da0 -> 3e24dd1c", + "c233d522 c21b5bbe c1f81a32 c1d5a0c4 c0e9d448 c20d18d4 c21e3b29 41147044 c2230a31 -> 3f52c753", + "41c4c870 41e54580 4124851c c16e235c c0587480 41634630 c13af100 41d6a524 c23d4231 -> 3fbe5c23", + "c15dd95c c2146579 41dce5b0 c15dd95c c2146579 41dce5b0 41dcc834 421c8c24 422f224c -> bf800000", + "c19ef65b c1e0e83c c18cf634 c19ef65b c1e0e83c c18cf634 42292a12 c1b61526 c22a74bc -> bf800000", + "c1288a98 c224e196 421b1e64 c1288a98 c224e196 421b1e64 423b3e64 4108c4dc 41348f30 -> bf800000", + "416ebd10 422a9f5e c196b8ab 416ebd10 422a9f5e c196b8ab c23cb8e3 c20ab1cc c1be1e37 -> bf800000", + "c1057270 41dce2c8 41a8a694 c219d61c 42075e5e c2162515 42289056 c1839d2e c21184dc -> 3fcabc19", + "c2460a88 c17d7218 bf8b9aa0 421a38f4 c1b8d1aa 423df836 42013a28 3fb5aa80 40396020 -> bd5c12e7", + "4223734a c1bd4e82 40fad2a8 c107ea90 c1fdbd49 c10997f8 41a9b4c8 c1ee09aa c0630d20 -> bf42ce83", + "c2378c46 41c639f8 41be7be0 4219e16e c0b72c18 4134c66c c0a47160 41f6005c c0d34780 -> be941687", + "4233b05a c02b2fc0 41c9da00 c22c1f41 414a6ba8 c22171f3 41d582e8 41d2ec9c 417c20c8 -> be86fcae", + "c182a916 c1f86c3a 3fb33900 c16a099c c20ab55b c1f1d1e1 c20ea80a c1c4f32d 422d0888 -> 40378cd0", + "c0f1dd20 c10bfdec 41af2a54 c221f896 c1c24f09 41259628 41fae388 423880ea c0b70c40 -> 40619117", + "41799640 40286610 c241c607 41799640 40286610 c241c607 40ff2d48 c0cecdd0 3f8d77e0 -> bf800000", + "4202b714 be656a00 41e6d4e4 4202b714 be656a00 41e6d4e4 416b6238 42336418 408f97c0 -> bf800000", + "c214dc47 420ca9d6 c1d4f998 c214dc47 420ca9d6 c1d4f998 c18e9862 41b92d94 c1cbf925 -> bf800000", + "c04265c0 c1f4292a 4215f7a4 c04265c0 c1f4292a 4215f7a4 406afd40 41cb6fb4 42188ac4 -> bf800000", + "417a6f50 41fa1088 c23ecaa1 41f48110 c18f5054 c2475d5f 41f84a24 c2027016 c0d3e3d8 -> 3fa1800b", + "c2362d78 42275754 41637b98 4168f580 c05e4090 420a753a 41ddd798 c0663920 c2025dce -> 3f6cef7f", + "41c27d04 c1cd44d9 c23eaab8 bf508300 c1d82bbf c1f1c9eb c1fae828 c186ca12 c20fbdac -> 3ff1f598", + "c22bbc70 c236ca2b 4190dcdc c203e4c1 419424a4 41d46a28 41f2ee08 42089806 414c3104 -> 3fc7bd9e", + "408a82c0 c19202b4 418e33d8 c22c4ccb c11a8e0c c224481c 4215a372 42019c44 41b79ee4 -> 3f90dba6", + "c23c7d95 c1d63230 c22aec9a c210b3bd c10b06f8 41e765f8 40555910 41e8bcac 40f2b340 -> 3f47ec5e", + "c216c334 41fc2d68 c0075e30 c216c334 41fc2d68 c0075e30 c15b002c c247634c c1d22e37 -> bf800000", + "c2430215 c1ef7688 42382b0e c23701ca 422e53c6 4206902c 4151476c c0ee0118 40d21d38 -> 3f62d05b", + "c1dd54cf c0fe9b48 c2249e88 c18d10d0 c15c4160 41232e0c c21b4017 42075ca8 423c226e -> 3ffddf3c", + "c21fa738 bf5ad240 41cdb9fc c1d640fd c242e752 c1bb7cc7 3ee7ba80 41b67348 42077488 -> 3f6a7ff9", + "41673158 c0ca0230 c22ce97e c2294607 418abd6c 42117136 c23c1771 42428436 c1a2d9bf -> 3e070533", + "c1d2f98e 4233c3cc 41aa18cc 40d2eb20 c21ad706 41a1f9bc c0cede98 41ef8a68 c096c798 -> be31e75a", + "4216be9a 42288dae 401e34c0 4216be9a 42288dae 401e34c0 c2116fe3 40069340 c0b4c208 -> bf800000", + "c22e3447 c04f89d0 c23c1a79 c1867e90 42211838 410b2d4c 42287750 41e52bbc c16ba7a8 -> 3f6f6580", + "4228ede0 c22e87be 41706388 40e717a0 c215c44c 40864c38 41bb3e6c c20b6b05 41df10a4 -> 3d03e5f5", + "4223e262 c187fc1c c2184979 42041d70 41a41484 c1b3dad6 4238b5f0 41b27d54 4224dc6c -> 4027cd8b", + "c23963c3 c23c1c85 40b28630 41ef4af8 40c70960 42369eae 414a03d8 4221c282 c235546c -> 3f641eeb", + "c215beee 422a834c 41df8f0c 41e01dfc c14d5058 c20c53af 4235a89c c19c48b6 41eca3f0 -> 3e9a3e94", + "424119c6 c1a249e1 4241fb22 405855d0 41bb9390 c172bc90 41af9370 4207f4ba 414ad9d4 -> be871b5a", + "414c1688 41485594 c1f18eb3 c1930c4e 421d0a64 3f49df40 c0fef0a8 419fb1e8 c243fe38 -> 3ebc9a71", + "c20462fa 42264892 4203dcb4 c20462fa 42264892 4203dcb4 41751d00 42415f16 40a1d358 -> bf800000", + "c1617174 4040cd20 c08473d8 c18f2c0c 417b6928 422aecb0 422bc2a8 41bf825c c23617a7 -> 40296022", + "41fadfc8 419ce334 c22e244a c1d25613 41e51878 c1b1e7e6 c1016838 3d2eb400 41b69548 -> 3f7bd7ae", + "42220e16 c0b337a0 421b049a 41b714cc c1c460b3 c1a44c46 414ad3cc c22d2ecc c0501a40 -> 3df48cd5", + "421811ba c224665e 40a13240 4243ad3a c1f88635 c13df328 c22ba77d c19ac8af 423b3b1a -> 410033cd", + "c1b76813 4231f6c8 40f5c560 419b6f34 41b360a8 4157f4fc 41ece2f0 422cc80e c21443aa -> 3fb3ee46", + "40a68530 419486e8 c20ae46e 4168b160 42260a98 416420e0 4117b460 4202d38c c22d65ac -> 3e57ba70", + "c15bfe48 c19f9087 4210f174 c2062962 41b3ac84 c20db4af 42184c5a c1dc39d1 c234e7ef -> 3f6a648e", + "c117dbec c1ea98ec c21af5b6 c0880a90 4238174c 4212e060 c2381d72 c204332c c24625ee -> 3ecdddc1", + "413f499c be179b00 419bd9cc 42262db6 c1f46375 422e7e12 c1a3dc54 40763050 c22a5d5e -> 402bf646", + "4095a570 41e52c38 c1ccf611 4128eab4 423c143a c226faab c19c144c 419296dc 423be158 -> 40be3805", + "40fb2818 41cb61c8 40e47300 41b366a4 c1778b90 40e9c960 4140abf4 41ee2b88 41942a14 -> 3e86d2bf", + "c234d5c9 412496ac c0eefde0 c0a9c0a0 42119808 41292b60 4229dc96 c165ab90 423c0858 -> 4021928b", + "41e6b060 420c397a c17c5aa8 3dc6c800 413dcba4 42392e92 421508f4 422ab5e8 bfa2b160 -> bd654736", + "421711f8 40c75430 c165a380 c0ec5780 42122182 422ada04 41f879cc c1e53ce7 40e084d0 -> 3eb0381d", + "41425468 c19359d8 be81f680 c23d8795 42318f02 c15e28a0 c0fba408 41ea72d0 41c14548 -> be294466", + "c158da74 c208d742 423360be c1feedaf 41b6570c c10ce1c4 c0fd90a8 c13acd98 c21dbf98 -> 3ef78339", + "c13c45d8 41a0606c 419aea2c 41f60628 bfb809e0 c1cae2eb c1db966e c125ee5c 410299a4 -> 3ea6cf65", + "422ebe04 41ec1be0 41a8f614 c1723308 c02fae40 c16b0a5c bf8c94a0 c21637f5 40b6a308 -> 3ecd400b", + "c1c205e0 40851898 c2283073 c216deee 41afd274 41362720 41655030 c2409dad 419e9310 -> 3ff2d6eb", + "c0953060 3f2306c0 c0e87d90 c0953060 3f2306c0 c0e87d90 c1f9bbe1 422864e4 414377f8 -> bf800000", + "c1fa5e7a c235b518 4081c5d0 c211bef0 c23df8ea c1e6da03 41f3c944 40dddb98 c0aa9260 -> 4080e6a1", + "c20723c4 c158c0a4 41a70818 42292c34 c1a2f441 42027838 420b4358 42084b76 414182a4 -> 3f15dfcf", + "3f587500 c1f9eb85 c224e626 4124e9f8 c1ea5b13 419e75c0 c214b38a c0de70b8 c1538978 -> 3f14075e", + "4125679c 411d89c8 c0e78d30 c205935a c0b57c68 41063d44 420fd3e8 c2174400 3fd37fc0 -> 3fc45730", + "42133c8e c13f457c 40ab2cf0 c09a93a0 c1b0f795 c1984373 c18d492c 4042dc00 c1e7f389 -> 3f536160", + "4121e054 c1c04467 c174a59c c21a83d7 4247c686 4237310e 418705a4 c2223a06 422b6e98 -> 3e850355", + "c18a6796 c226b977 c149351c 420953ce 40cbce48 422ec17c 420f5cee c1e8fd0e c00243f0 -> be71bd77", + "41a9ed1c 423aa450 41b50eb0 41ca4838 c214ccce 41569278 41fbbcac c0ffbd18 c18c936e -> bdac480a", + "421ef430 c1488228 411c7adc 41d54b18 c17a0f98 c1c6e84b c214f5e2 41bd55ec c20559e0 -> 4061464d", + "bfbc1340 42260c80 41d41bdc c1f8606f 41e3ec08 c2458418 c16ce0c4 c0e0c248 421b33c4 -> 3f169fe0", + "c17cf51c c09bf538 c21a260f c17cf51c c09bf538 c21a260f be705300 41574f10 40556740 -> bf800000", + "c23ed8e0 409700f8 424248f6 c20ead47 c1c90b18 41d81f60 c23b8598 4234ecc0 bfbb05c0 -> 40211a16", + "c20a78f4 c0d03de8 bd213000 41f76ebc c2174e09 c23724a7 4245bc5a 41edd41c c1eed33d -> 3f3512ce", + "40539f00 c2122050 423b2e18 40539f00 c2122050 423b2e18 c1ae4660 c138258c 404d49a0 -> bf800000", + "4240f392 c0ac6948 c1bff4f6 41b23800 c2132e37 41f84b4c c1d9368d 4100a7fc 41c8c400 -> 3f8dd440" + ] + }, + { + "glsl": "vec3 cultmath_lattice_site(vec2, float, float)", + "tolerance": "ulp-bounded", + "cases": [ + "4516a000 c49e2000 4345fe3e 00000000 -> 4516a28e c49e0e0e 3f70a10c", + "c5037000 c4c88000 4326cf8c 3ee87eb0 -> c5036d39 c4c8761a 3f050f3b", + "43820000 c4aa8000 00000000 00000000 -> 43823d7a c4aa6000 3f1c709a", + "44c84000 c4060000 00000000 3ef36bc0 -> 44c84606 c405ffd9 3f56bbdf", + "4535f000 c5507000 42ad4bb4 3f02ac68 -> 4535f84d c55064d3 3f5ed3da", + "44c04000 455b3000 c29db30c c01fce33 -> 44c05ddd 455b303e 3f564a69", + "c5079000 c4814000 4273beb8 00000000 -> c5078e60 c4813926 3f2c059c", + "c512d000 c4810000 4286bfc8 bf4f2938 -> c512c061 c480e00f 3f4d7138", + "c3b50000 45643000 c3195c8b bd688a80 -> c3b48b8d 4564304b 3f0338a7", + "c56ed000 44c6e000 c27f8adc 00000000 -> c56ec069 44c6e94d 3f2146df", + "45418000 44da0000 4333ec32 3eec80c0 -> 45418024 44da034f 3f3b13a4", + "43b38000 c48b0000 4236a448 bd487d80 -> 43b3f77e c48ae327 3f2f60d0", + "c4c46000 45655000 c219682c bfd1f5ea -> c4c4499c 45655ea3 3f5d3646", + "44814000 45755000 42173cf8 bf96cc78 -> 448155f5 45755d80 3f706cc6", + "45021000 c4a20000 3ff02700 bf0c5478 -> 45021895 c4a1f49e 3f1678c8", + "444fc000 453d9000 c2d9d52e 3e0bae00 -> 444fd4e8 453da000 3f724e70", + "c557b000 c51f8000 42eb3708 bf93fbea -> c557a18e c51f7eea 3f6b9a18", + "452e0000 44fae000 c162dda0 00000000 -> 452e01e7 44fae6b2 3f3e55f7", + "c52b2000 c4902000 00000000 be29f8a0 -> c52b18eb c49009b5 3f693a0c", + "c51fa000 c4968000 00000000 c03ff8fc -> c51f9fdb c4966074 3f276407", + "c4dc2000 c51b4000 c31c98ae 00000000 -> c4dc0010 c51b3aca 3f5c8c77", + "454ea000 c573b000 00000000 3fbeaf6c -> 454ea59c c573aff1 3f00d8e4", + "c5540000 c3490000 c283b24e bfd167dc -> c553f38b c348dedd 3f75543b", + "4527a000 448a2000 42c52d40 c01d8305 -> 4527aca2 448a26f9 3f5fc117", + "c4cc6000 c51a1000 c30c7f28 402f0130 -> c4cc5a05 c51a0e7d 3f4549ec", + "c5384000 44c64000 c3111069 3e0b3dd0 -> c5383508 44c6405a 3f0620e7", + "45106000 4575b000 00000000 bf903333 -> 45106fb0 4575bed5 3f4d7f0c", + "c4540000 4527a000 430cd3a0 c0251d1e -> c453d052 4527a0b4 3f712106", + "44b6c000 c5628000 c32e3909 bf6d37b8 -> 44b6dbe7 c5627aaa 3f470c97", + "44d34000 c2d20000 c33acc51 401742b8 -> 44d36000 c2d0e0bb 3f09a977", + "44b12000 4514f000 41a5e158 00000000 -> 44b12085 4514f086 3f130f68", + "453d5000 44a36000 432f78fa 3fdbd4b0 -> 453d5f3a 44a3600f 3f14b309", + "43ba0000 c44e4000 00000000 00000000 -> 43ba1bf3 c44e251a 3f433df9", + "c4ae2000 c5115000 c2daf32e 3ef3f1e0 -> c4ae1e64 c5114000 3f1a58ef", + "c53d1000 447f8000 00000000 4016422e -> c53d0c2a 447fbdac 3f13ddf9", + "45414000 c4934000 4270bc80 bd7e2880 -> 45414cd2 c4932139 3f7fa642", + "44454000 c5494000 431b0cee 400367e6 -> 44455187 c5493c16 3f49516a", + "450b3000 45350000 c25cd74c 00000000 -> 450b3f17 45350cce 3f4d916d", + "c44a0000 c4ef4000 4285f7bc 00000000 -> c449f186 c4ef2d05 3f63a4ce", + "c5182000 c4658000 4257dd40 402db7fa -> c5181bd3 c4654c46 3f010c4e", + "c4b9a000 43dd0000 42e7d3a4 c0006246 -> c4b993de 43dd0b04 3f456178", + "45760000 c4bd6000 c2a96c4a bf9c3a0e -> 45760221 c4bd5e35 3f4c9684", + "455ff000 c4c8a000 c2be4e1a bf4be8b8 -> 455fffb8 c4c89f04 3f731d86", + "c537b000 c487e000 00000000 403c65be -> c537a28b c487c0ab 3f2fd3b2", + "c507b000 452a7000 c2dceddc c003ba9e -> c507a71f 452a7029 3f460e8e", + "c4cac000 c47e0000 00000000 3f60a72c -> c4cabfcf c47dc004 3f58c19e", + "450d8000 4546c000 42518368 3f2d2104 -> 450d8cd6 4546cfd9 3f77afbe", + "45390000 453cf000 43093ed6 4032420c -> 4539000d 453cf9fd 3f7619dc", + "c4f38000 c4840000 432d7aaa 401d82ae -> c4f36c0f c483fedb 3f734ca2", + "41880000 c3e60000 c3212ca2 402982a8 -> 41892de9 c3e5fe3d 3f0088fa", + "45606000 438d8000 c2c5731e 00000000 -> 45606fb0 438dad7b 3f00561c", + "c47b8000 454f9000 4235c81c 3dc8f740 -> c47b73b8 454f9850 3f49392a", + "44f6c000 43b20000 c1567f80 bd10b180 -> 44f6daa9 43b24cc4 3f1ef926", + "c5247000 43580000 00000000 4010a91c -> c5246bf8 43589d0d 3f5526fe", + "c52f5000 4531e000 c2dd64c8 be644570 -> c52f4038 4531e036 3f137c2c", + "42800000 c501d000 4294ccf8 3fd407b8 -> 4281394c c501c099 3f62ba02", + "44b60000 c486c000 423b06d0 bf8d4844 -> 44b602db c486ad4b 3f0da434", + "4555f000 c537f000 4335ee6e 3fc4f888 -> 4555f9f0 c537e01f 3f092784", + "c45e0000 c5132000 4340db6c 3fb247b0 -> c45de425 c5131ff8 3f4079b4", + "440bc000 c425c000 c32b25f6 c01ef6eb -> 440bd54f c4259a5e 3f225f0c", + "c5713000 45573000 c1987f28 00000000 -> c5712d8a 4557396e 3f31cd03", + "c47dc000 43ea8000 c209aff8 3f0da2f8 -> c47d8ed2 43eaf5fb 3f4ddd9a", + "c5477000 452e9000 c1a9fd60 bfd75c5d -> c5476068 452e9fbf 3f111f00", + "c4a42000 43500000 c3465ad3 400051b4 -> c4a4012d 435008f7 3f455f0c", + "445ec000 c5707000 c2a65667 00000000 -> 445ed54b c57060e7 3f6b2eec", + "c5400000 454fd000 422ff274 3f0256b4 -> c53ffec4 454fd002 3f6c0833", + "44464000 4512e000 c11c4dc0 00000000 -> 4446400b 4512e74c 3f7be588", + "456eb000 c44fc000 00000000 3f393210 -> 456eb513 c44fbd7a 3f247f74", + "44630000 c49da000 00000000 00000000 -> 44632f12 c49d9fc9 3f43de8b", + "c4d6c000 c48d2000 c3110d0d bfecf93c -> c4d6a078 c48d003d 3f530442", + "c5511000 439a0000 00000000 becd37f0 -> c5510438 439a249a 3f43e7ad", + "443c4000 c5518000 42ab772c be529760 -> 443c5459 c5517925 3f7c9f1a", + "45711000 c53d1000 c2b19c54 be932470 -> 45711ee6 c53d0dc5 3f1dd7fe", + "44f40000 c4b04000 42eec970 c00b9278 -> 44f415cc c4b02b37 3f3b746b", + "c50f4000 4578e000 c22b40b4 3fad404c -> c50f3bd5 4578edd2 3f232010", + "45008000 44da2000 00000000 00000000 -> 45008740 44da360d 3f48a34e", + "450fe000 41b80000 00000000 3ff098ac -> 450fe56f 41be7a28 3f6326c9", + "c564d000 c4248000 430b4f0c 4004391a -> c564cfa5 c4246077 3f0c305e", + "c52ca000 44834000 43137c1e 3f4b0d84 -> c52c904d 44835d66 3f1548a7", + "454b6000 c3ba0000 4346efb2 c019ee96 -> 454b6e10 c3b9e0c2 3f1e6b9a", + "c4440000 453f5000 42cd3a10 400a4d06 -> c443ffe1 453f5ff8 3f6afd40", + "45212000 45649000 c29fc325 bf7ea380 -> 452124c8 45649f40 3f59c676", + "4502a000 c50d6000 425e1ef8 401be5a2 -> 4502a4ee c50d5fc1 3f542ed4", + "44984000 45611000 c2a63d71 00000000 -> 44984f0d 45611622 3f73b29f", + "c4858000 c3af8000 c1e74308 00000000 -> c48579ee c3af55df 3f425274", + "452f2000 c4eb8000 c32d5a65 bf13c1f8 -> 452f2c33 c4eb74c6 3f18acae", + "449e8000 451d6000 c2ab528d c0321702 -> 449e8151 451d6752 3f309a6a", + "c56d0000 c4964000 00000000 3fa39ef0 -> c56cff30 c4963da2 3f3f81d1", + "45412000 c5446000 428d5588 3fc17e4c -> 4541245d c54450f3 3f0896e0", + "454bc000 c49b0000 c1f54480 00000000 -> 454bc0a0 c49af622 3f33a73a", + "4521f000 44228000 428d96d8 3fafc708 -> 4521fb2e 44228197 3f3e5d29", + "c5449000 42f60000 430caaec bf5acfb0 -> c5448a4e 42f60310 3f47c393", + "43eb0000 c533b000 c206c198 3f324510 -> 43eb30cc c533a65f 3f48772c", + "45541000 c4ae0000 c2eca3e9 3ed6c250 -> 455418ea c4adfffe 3f0908d4", + "c4264000 452ff000 42039b48 beaaf830 -> c426197f 452ffd99 3f13a4e6", + "44dd8000 45620000 419bd4b8 bfa5c5d6 -> 44dd83c3 45620f4a 3f0eef84", + "4572b000 439e8000 c2a24c7e 3e963610 -> 4572b30b 439efffc 3f4fa950", + "454b1000 4534b000 42c7daec 00000000 -> 454b1f53 4534b7d4 3f7d91e1", + "438f8000 c22c0000 c2e17394 3de3c840 -> 438ff9b2 c228004d 3f70a0b9", + "c5496000 453ef000 432b22e8 bfb83f2c -> c5495cdf 453effa1 3f1c38c4", + "44210000 c4bbe000 c346e648 c00e09ed -> 44213fb5 c4bbda43 3f6b6e8e", + "4573a000 c4760000 00000000 00000000 -> 4573af0f c475c337 3f7156aa", + "c2ae0000 c40b8000 00000000 00000000 -> c2ac3700 c40b6e23 3f628da4", + "447e0000 c5506000 c2a18ed8 3f3cfd68 -> 447e3e1a c5505f72 3f60d346", + "44a70000 45276000 c324f3e1 bfd24f18 -> 44a70883 452767a3 3f07bcce", + "45764000 c4050000 42855fdc bf5cb590 -> 45764003 c404f7b7 3f6cff51", + "c4f50000 c4dc8000 00000000 3fa77534 -> c4f4e7cb c4dc6136 3f6a82af", + "43b88000 c4440000 4337d146 c03d5484 -> 43b8ae60 c443e95c 3f3bd79a", + "c463c000 c5775000 c32c9e6a 4016519a -> c46389f5 c577462c 3f0ef61c", + "c5730000 c5149000 c311b2c6 00000000 -> c572f888 c51489d4 3f344d30", + "443a0000 44f5a000 c1c93e80 bfaa937f -> 443a3d86 44f5b3ba 3f7aa052", + "c5354000 43d70000 c27a9b38 c00cf66a -> c5353b0e 43d77b7b 3f6852a4", + "c5227000 45391000 42635f88 c00cfc99 -> c52266aa 453912fa 3f501530", + "4545f000 c55ba000 c2a48576 bd063c00 -> 4545fab2 c55b9d96 3f2e7034", + "c550f000 c4e58000 00000000 3e814740 -> c550eb6f c4e566f4 3f1d7ed7", + "45388000 c3918000 00000000 c0074f24 -> 453886d9 c39155b8 3f1cb110", + "44ba8000 c4de8000 c2af40f4 c0104f11 -> 44ba824e c4de6786 3f6bdb17", + "443b4000 c43c8000 4282dd88 400f0ae4 -> 443b6e18 c43c7fce 3f5b73dc", + "44e6a000 c516e000 c2c885c1 c025110a -> 44e6bfc1 c516de51 3f666d73", + "c414c000 c5549000 c2a10f69 4027c27e -> c4148078 c5548f2d 3f6ef1fa", + "c4912000 43de8000 00000000 c03b8174 -> c4911deb 43def7e0 3f67bee6", + "4479c000 453dd000 4324f128 00000000 -> 4479cf21 453dd9de 3f53a750", + "c51e3000 44d36000 00000000 00000000 -> c51e230b 44d36f89 3f40d3ba", + "c42e4000 4507e000 c2c1ceef c000e619 -> c42e1574 4507ee28 3f6677a7", + "45417000 c5113000 4337c7c6 bf9f2dca -> 45417131 c5112000 3f6ed406", + "c50bf000 c4550000 c30dc0ec bf2c47dc -> c50bed2b c454fdfb 3f33fe2e", + "c48c4000 44694000 c3064cd2 00000000 -> c48c2d3d 44697274 3f5c027e", + "44e80000 c4540000 42e3276c 4030b2bc -> 44e80247 c453da5b 3f011354", + "44cb0000 c572c000 00000000 00000000 -> 44cb0327 c572b01b 3f007bd7", + "44010000 449d2000 422c916c 401319da -> 4401004e 449d2794 3f2760a2", + "44fd6000 c5611000 00000000 00000000 -> 44fd68c4 c5610fb3 3f5e0eeb", + "c529b000 c4ba8000 c21860ac c01786df -> c529a5eb c4ba6321 3f5b2c20", + "45055000 c4b02000 c26d89ec c0033b58 -> 45055145 c4b003d7 3f75cbe4", + "c4fb6000 4505e000 43117980 00000000 -> c4fb5fa3 4505ef82 3f15ef4c", + "c46f4000 c575c000 4306c934 3e431580 -> c46f0f18 c575be73 3f01a312", + "c5381000 449b8000 433be9ec 3dd7a1c0 -> c5380266 449b875a 3f4db8ef", + "42180000 4454c000 42e0a5b0 00000000 -> 421a0b60 4454c19d 3f748012", + "452ba000 c4234000 430b9ee6 3fd1b1d0 -> 452ba1e1 c42329c0 3f1c1783", + "c5195000 c4720000 4283d944 bf0fd9a0 -> c5194508 c471ded5 3f759668", + "c4374000 45411000 c28e02e8 bf42ffb0 -> c43705a5 4541172e 3f24907f", + "c5655000 4545d000 c2e35010 3f05ae78 -> c5654cce 4545d871 3f0b0a44", + "44f92000 44f9a000 00000000 3feb4604 -> 44f92e6d 44f9b89e 3f1ec66c", + "c4d10000 44f50000 c24417f4 00000000 -> c4d0ee33 44f50fd7 3f3a3acd", + "45543000 c4b76000 c295d081 00000000 -> 455434fd c4b74342 3f44ae16", + "c5045000 c55df000 42b4ebe0 beaf1de0 -> c50443e0 c55deb30 3f1bc5ec", + "c4fae000 c4ac2000 00000000 bfea312e -> c4fac006 c4ac00ba 3f033aa2", + "450db000 c5056000 431a0e26 3f43b3e8 -> 450db05b c5055e5c 3f307ca5", + "44888000 c54e0000 00000000 3f5315d8 -> 44888b06 c54dff5b 3f0135aa", + "45683000 44118000 4327e04c c034e66a -> 45683019 4411800c 3f14ff45", + "c4bfc000 4566d000 c3127243 bfa0d991 -> c4bfb438 4566dfd1 3f261d38", + "4518f000 4529c000 c083bf20 c008b0a6 -> 4518f252 4529c04d 3f7b8998", + "bf800000 c41cc000 00000000 3f2aee68 -> be91ef5c c41c9485 3f40a5db", + "42700000 42bc0000 c0450880 00000000 -> 4271f42a 42bce3e5 3f536bd4", + "c4cb0000 44b40000 00000000 3e524b20 -> c4caea9b 44b400b1 3f2cdb31", + "44440000 c54c3000 42eece7c 3f7473e8 -> 44442331 c54c2cf0 3f5ff7b6", + "c50be000 c5704000 00000000 00000000 -> c50bd03a c5703bae 3f46be6e", + "c55b7000 c47a4000 42af8bec 00000000 -> c55b6f06 c47a05c1 3f0b166e", + "c4fb0000 c5353000 43319b44 c00f668f -> c4fafa6b c5352983 3f0922ba", + "442ac000 c4474000 c1ffe680 bf134720 -> 442ada0d c4470001 3f65caf5", + "43920000 c520f000 431672bc 00000000 -> 4392035d c520e10d 3f4ead97", + "c5183000 45002000 42c64644 3f92d744 -> c5182cc4 45002031 3f027816", + "4569d000 c2f20000 c21c9aa4 be898a90 -> 4569d01c c2f1811a 3f245cba", + "43c80000 c537b000 42803cfc 40125dfe -> 43c84d37 c537a73f 3f476f40", + "c52a6000 45653000 00000000 bf0dd300 -> c52a5da3 456538f7 3f3856d0", + "c573b000 44bf4000 c2426fc8 bfbc227b -> c573a03e 44bf40d7 3f7b0a8d", + "44b7a000 452ab000 c2d5dd5e 00000000 -> 44b7bfea 452ab4f1 3f017376", + "c5207000 c51cd000 c2a1cbb7 bea456c0 -> c5206912 c51cc3a3 3f38f540", + "44fe0000 c3a38000 42b38cfc 402af3f2 -> 44fe1c72 c3a30150 3f135124", + "c4314000 c4d4c000 42c30df8 00000000 -> c4313fdf c4d4aab5 3f74104a", + "c4cb2000 42280000 4316b896 bf6872ec -> c4cb06ab 42283faa 3f552676", + "c5187000 c55dc000 c295d289 bfcf78c4 -> c5186003 c55db81b 3f4e2bb4", + "443fc000 43f28000 c2ddf40e 402e22b4 -> 443fea05 43f2813d 3f662b9a", + "c46b4000 c52fb000 00000000 3fa37c00 -> c46b1edd c52fa84b 3f3c1f51", + "c513e000 44c56000 42929520 3fbcff28 -> c513de45 44c566ae 3f5cbee8", + "42c20000 c54c7000 408f8c80 3e888c60 -> 42c26081 c54c6011 3f639a1a", + "4561f000 c4b92000 00000000 4001b836 -> 4561fe10 c4b91a46 3f0f4396", + "c4b7c000 c5017000 c3127cb2 bfcfead6 -> c4b7a2c9 c50161f1 3f2eeb78", + "44e04000 c5283000 42b21af4 bf7f3440 -> 44e04023 c5282261 3f6e3d92", + "c3ae0000 443e0000 4303a168 3fa3dd5c -> c3adbbee 443e1196 3f33110b", + "c5205000 c4d22000 43071d36 bf1986c4 -> c5204def c4d20c2b 3f707a68", + "c50b4000 44e40000 c34726fa 00000000 -> c50b3bde 44e40d1c 3f2c9abe", + "43270000 454bd000 c264ddc4 3fff4a40 -> 432704b4 454bdbce 3f7ad96e", + "454be000 45696000 43177bd8 3ed240f8 -> 454be0cb 4569679b 3f245c04", + "431b0000 c5227000 00000000 3fc59a78 -> 431bdcef c5226572 3f087a59", + "c5002000 45501000 42ac4c68 00000000 -> c500140f 455014c9 3f4a8c48", + "444b0000 456bd000 c3030cf6 4025653c -> 444b059f 456bdf4e 3f33e254", + "c5479000 454e1000 40881f20 c0075bba -> c54781eb 454e1033 3f0295d0", + "44a14000 451d8000 433ec1d6 3fc9ba40 -> 44a1400b 451d8ed3 3f1807bf", + "c5697000 45351000 4305dcc8 3faa203c -> c5696630 4535169a 3f46b075", + "c5311000 44a2a000 42dd999c bdc15d80 -> c53106c1 44a2b1b0 3f170a62", + "45174000 c496c000 c25dc250 bf1a3ea0 -> 45174e03 c496ab5e 3f22d35b", + "c560d000 c47f8000 433ed0fa 3f8029f0 -> c560ce1f c47f4bd4 3f1394fa", + "c4db0000 4564b000 c24cd640 bfdfe869 -> c4daffe8 4564b6c0 3f6b6c71", + "c5457000 450c3000 c30a9c4c 40079db2 -> c5456fb9 450c35f3 3f6abbba", + "455f2000 45057000 420810dc 00000000 -> 455f2001 450572b9 3f2d3ed6", + "451df000 448fa000 c1a6a018 00000000 -> 451df2ed 448fbb4c 3f720bbe", + "44d02000 c47e4000 c2a0127c c0129019 -> 44d0385c c47e3f5e 3f7adbf2", + "45553000 439e0000 c3318a53 3e8e9db8 -> 455534b0 439e1c29 3f7c94ca", + "43d60000 44fdc000 42db2f08 00000000 -> 43d67294 44fdc4bc 3f10f3bc", + "c552c000 44abc000 c30b0c9b 3fb04f84 -> c552bda3 44abdb91 3f1a84ef", + "c3d18000 c429c000 c3105118 bf6cc1ec -> c3d17d6b c429b1cb 3f2bc02d", + "43978000 c4a6c000 c2e0d6f3 bfc07db8 -> 4397ff3f c4a6bb7d 3f580309", + "c3560000 434a0000 429f9ba0 4007e6b6 -> c3551fca 434a6fa9 3f6bd89a", + "45122000 44f4a000 430ebcac bfdc282e -> 45122a31 44f4a174 3f196366", + "42500000 44d1c000 4285b240 3f69aba8 -> 4253fdc3 44d1d4ed 3f523e46", + "45040000 45667000 00000000 bf1b3d58 -> 45040eca 456670b5 3f3d4cdc", + "45406000 456ae000 c178bb80 400e691c -> 45406fb3 456ae198 3f27e16b", + "44dec000 c3b68000 c236a370 bf16a1d8 -> 44ded1ac c3b66165 3f3d21de", + "c4fb6000 45596000 429408b0 bf56e39c -> c4fb470b 4559658e 3f3a4558", + "454a2000 c5270000 c341e287 3f4bb068 -> 454a2032 c526f2a8 3f38f4ee", + "44ff8000 c54b5000 42d68fc4 be8a8f30 -> 44ff8879 c54b412a 3f3727c5", + "c512b000 c51ae000 c3156fb2 3fb06c60 -> c512a20b c51ad63f 3f4e79b8", + "c5763000 c4568000 431585ca bf15e4ac -> c57622e9 c456538a 3f2e3d1c", + "c555e000 4523b000 00000000 c03e8a85 -> c555dff9 4523b0e0 3f724efc", + "44e84000 c51d0000 432da2ae c004938c -> 44e85cbc c51cfc0a 3f62d922", + "c3360000 451a0000 42665d68 3f9ddeb0 -> c335f95f 451a0765 3f6b3d66", + "c547e000 c57a0000 41ceec90 bff670a8 -> c547d1f6 c579fdc2 3f03246c", + "c4b9e000 440fc000 00000000 3f656108 -> c4b9de8b 440ffb70 3f2cd786", + "44b14000 c3fb8000 c33bc76f bfef45d8 -> 44b14260 c3fb0b32 3f56f000", + "455d7000 c1600000 c1a74710 00000000 -> 455d7e5a c1537ef2 3f6b4a46", + "c534c000 44240000 41052ad0 c0325de0 -> c534b6d5 44240eee 3f27552b", + "c4936000 c4b5c000 c325b43f 3f8fc7cc -> c4934a96 c4b5bfa2 3f7873a3", + "c1700000 453ae000 4307198c 3f63e62c -> c16fd192 453aefe8 3f054eb2", + "44bc0000 44ebe000 c31561b2 bfa17a47 -> 44bc1a8d 44ebf832 3f5267ad", + "c1c80000 4529a000 00000000 00000000 -> c1c68378 4529aed9 3f240486", + "446f4000 45554000 00000000 bfb9fbca -> 446f4a91 45554cb2 3f04aeea", + "c574b000 4534b000 42632d18 3ee111e0 -> c574a1c7 4534bef0 3f343b12", + "c4dd6000 c50c6000 c30d94b0 c039cc04 -> c4dd4348 c50c5d63 3f6cfa76", + "44f9e000 c4ecc000 00000000 bf655430 -> 44f9ee56 c4eca106 3f150851", + "44f32000 452ef000 42a9795c c03b6228 -> 44f328a7 452ef5e2 3f7f1562", + "c5636000 4484e000 00000000 401df118 -> c5635fff 4484ecff 3f4593d8", + "c515b000 44c6a000 4330092a bed8f1a8 -> c515a5a2 44c6b241 3f18d291", + "c2c80000 c573e000 c2f36372 c02328b0 -> c2c604c5 c573db1b 3f64665c", + "c4358000 43040000 00000000 4035b0e8 -> c43577a8 43042920 3f686870", + "c4e28000 44f6e000 433af74c bfb1768e -> c4e27efd 44f6fca1 3f1fd684", + "c51e5000 c4cc6000 41932c20 40062fdc -> c51e4370 c4cc5ffc 3f4a40b4", + "c4ad0000 c5758000 42f5635c c038d3fe -> c4acf6c4 c5757f53 3f397842", + "c5457000 4461c000 c32b94f6 3fd3da60 -> c5456655 4461d013 3f5c713e", + "c531d000 4554c000 00000000 3fd31580 -> c531cd26 4554c02d 3f2a7b60", + "43840000 c5186000 00000000 00000000 -> 43847f3a c518526e 3f41ff98", + "c555f000 c48cc000 c2f78b77 bd954520 -> c555e876 c48ca3fc 3f3c10d4", + "c40c8000 c4966000 c3036da5 3f8df9b8 -> c40c606d c496564a 3f77a9b6", + "c528a000 c51cc000 41010820 c02fddd8 -> c5289b81 c51cbd88 3f2c778e", + "c1880000 456c3000 c2709050 bee25730 -> c1804908 456c3eb8 3f1a77be", + "45160000 45217000 c31a66e1 3e001330 -> 45160236 45217fd5 3f1b38cc", + "c501b000 c4956000 42fe5630 3f65f130 -> c501aacf c4955e9b 3f193a69", + "c560a000 44684000 414546d0 bfb5c683 -> c560979a 446866db 3f2caa65", + "456f8000 4547c000 c3239b00 3fb79da0 -> 456f829c 4547cfe8 3f17c063", + "456a1000 c47a4000 c065cdc0 c003600c -> 456a167c c47a001f 3f3b8012", + "44a3e000 44de8000 00000000 bf284170 -> 44a40000 44de88c4 3f1451d2", + "c53d9000 44c8a000 c32f7aa7 00000000 -> c53d80a5 44c8a06c 3f23070a", + "45576000 43828000 00000000 4025bb54 -> 455769f2 4382ff24 3f181520", + "43940000 c3760000 423db004 bf9bd3b0 -> 43944d97 c375616f 3f56082d", + "c545f000 c4818000 4343a524 400310b8 -> c545e00e c4816966 3f67bff8", + "c561f000 c5312000 c34240ae 3f6b7d28 -> c561ef83 c531107c 3f60b3e0", + "42e60000 c52d1000 c035ce40 bfd2a816 -> 42e77ec9 c52d0004 3f37e044" + ] + }, + { + "glsl": "float cultmath_lattice_weight(float, float, float, float)", + "tolerance": "ulp-bounded", + "cases": [ + "3f6d830b 4151776a 40800000 41422924 -> 40058bf4", + "3f3731b2 4111d3b4 404eb7a9 421b04d1 -> 4039c43a", + "3f47a619 42bda93c 405c5bdd 4210ec46 -> 3f486063", + "3f5385b6 4211ea84 3f8f2ce3 4161d14a -> 3f53d1bc", + "3f17308b 00000000 00000000 40daf0ca -> 3f17308b", + "3f05a592 420406a7 40800000 420cb8ff -> 3fb1aaf8", + "3f77ffae 4126729d 00000000 412cce21 -> 3f77ffae", + "3f50bbd4 420b9574 00000000 42105fca -> 3f50bbd4", + "3f147e0e 7149f2ca 3cfde4d3 410399e1 -> 3f147e0e", + "3f51cb79 42899ee3 3f38a396 420c5e59 -> 3f5507f7", + "3f1844d2 414486e2 00000000 41594261 -> 3f1844d2", + "3f4a43ae 40a73afe 00000000 400d8ac3 -> 3f4a43ae", + "3f4738b5 418b9d5f 3fdb0520 418ed724 -> 3fa52d41", + "3f6373e6 423b7795 40051022 41be11b4 -> 3f6d1c04", + "3f11f09c 00000000 3fe92eed 40049491 -> 3fcde70c", + "3f4c6494 7149f2ca 405836c9 4217dd19 -> 3f4c6494", + "3f7ac799 4118dd0c 3f961c6d 410cbf1b -> 3faa97f5", + "3f067826 428a0413 3e736113 41ef6cf8 -> 3f06a051", + "3f5dbcc6 41eeb285 40800000 41f2f5cc -> 400be4eb", + "3f2befd5 7149f2ca 406fc7ae 414dcfd1 -> 3f2befd5", + "3f5df917 4099d9b4 40440a34 409a0ad5 -> 3fec5d52", + "3f5e2849 4254325b 00000000 42123fe3 -> 3f5e2849", + "3f45d7d0 00000000 4034c322 4207d933 -> 403d2880", + "3f7c965a 40b1e9c7 3e8c350f 41290ee5 -> 3f98838f", + "3f4a2c8e 00000000 40800000 41e5bb17 -> 407cb7b2", + "3f0e9ff6 4056d16f 40207aa6 40a52c40 -> 3fbc773b", + "3f31b598 41b54785 40800000 41d364a7 -> 40019b6c", + "3f779272 00000000 00000000 415d888e -> 3f779272", + "3f747dac 00000000 3fa13f77 421b69d8 -> 400a1f3e", + "3f075c24 7149f2ca 3f3f27b0 41cdef3d -> 3f075c24", + "3f12ad0f 41ce0351 40800000 41de9c41 -> 3fc5ea74", + "3f4d9862 420aa65b 00000000 420716c1 -> 3f4d9862", + "3f1826d4 40baf7a2 401f10a5 40baf440 -> 3f919fbe", + "3f757de8 414baab5 00000000 41494335 -> 3f757de8", + "3f748c92 00000000 3ec6fd1b 418d4819 -> 3fa9cbea", + "3f0d4bb9 420db7a8 40484f6b 41e8b88d -> 3f71a18c", + "3f4ce9e2 405fedf5 400870b0 3fa03f85 -> 3f4d1737", + "3f342963 40c2bfca 3ce9f2da 40b48098 -> 3f35c49b", + "3f58c78b 7149f2ca 400c7a4e 41fc9e33 -> 3f58c78b", + "3f03c2be 7149f2ca 3fa7d20c 41e6f5a4 -> 3f03c2be", + "3f203f68 7149f2ca 40800000 40b40ec2 -> 3f203f68", + "3f677fc3 7149f2ca 00000000 40e4afcc -> 3f677fc3", + "3f467520 7149f2ca 3e28690b 41112632 -> 3f467520", + "3f4731b5 41a7e932 40367549 41b807fb -> 3fdf1a57", + "3f378263 7149f2ca 40800000 42020f48 -> 3f378263", + "3f16ce49 00000000 3fb23980 41f16dc1 -> 3fb46473", + "3f635736 42906cb2 00000000 421ea5a9 -> 3f635736", + "3f23f8f0 3e22a1f5 00000000 3da01ef0 -> 3f23f8f0", + "3f3e6cef 41a5d989 00000000 4187ac07 -> 3f3e6cef", + "3f04eb61 41fe6fbb 407ce5a8 41f2690e -> 3f99baf8", + "3f41eff6 00000000 3ebebf35 41ca3f93 -> 3f851838", + "3f3c5164 42971914 3f29ced1 41f57278 -> 3f3c9bc8", + "3f5866a0 42ae03d9 40249c4a 420dfc69 -> 3f59c4f1", + "3f2ff58c 413403d2 40655dd0 412a32e4 -> 3fbefe6b", + "3f5bbc1c 4161e001 00000000 4139d4ca -> 3f5bbc1c", + "3f6edbea 00000000 40800000 41d896e7 -> 40954972", + "3f4f37b4 00000000 40800000 41670cc4 -> 408182d0", + "3f1df2e2 00000000 40800000 421e6cc7 -> 40456f9a", + "3f79dbcc 42574ad2 00000000 42082f9f -> 3f79dbcc", + "3f725216 3f35023f 3ee9ebbc 3f3dc6b8 -> 3f8f72b4", + "3f1a459f 7149f2ca 00000000 419ac727 -> 3f1a459f", + "3f4b89ab 41e7399f 3ee13a04 41eb7fa8 -> 3f6daea3", + "3f4d757a 00000000 4053e8ec 410c7d70 -> 405d7022", + "3f534887 41e7882d 40272241 41a8d8d7 -> 3f93b95e", + "3f2f3b99 7149f2ca 407a13ad 3e59064c -> 3f2f3b99", + "3f742bcc 7149f2ca 406fcc70 4126a7f9 -> 3f742bcc", + "3f14921a 41eb954b 4013550e 41f69125 -> 3f8eec19", + "3f13539f 42d01f07 4019356d 421587f6 -> 3f137a90", + "3f24caa0 425c2cec 00000000 41ce2b83 -> 3f24caa0", + "3f3b0d9b 41660c95 3dc53971 415e855e -> 3f413d41", + "3f1d3bc8 412a9636 40800000 411bcaed -> 3fad6edf", + "3f575de0 418114e3 3f316b43 416b20e6 -> 3f82098b", + "3f2ee476 4186cfbd 3df2bcad 418fad93 -> 3f377cb4", + "3f6d3134 42ce72db 3e55ba0b 420a654f -> 3f6d32ef", + "3f27c6f5 7149f2ca 40800000 41d7265b -> 3f27c6f5", + "3f0c3ec4 4186733c 40800000 421b883a -> 40176864", + "3f30220c 00000000 00000000 41eedf5d -> 3f30220c", + "3f3f888b 424bc4d1 40800000 41c0638c -> 3f48276a", + "3f109d83 429e066d 3f3c8d74 41d77fe5 -> 3f10a283", + "3f0fdc01 7149f2ca 40800000 420ab716 -> 3f0fdc01", + "3f501e0e 4036d952 3f42ddf2 4200bc4a -> 3fb6a577", + "3f3ad083 420c7855 00000000 41426492 -> 3f3ad083", + "3f3d9aa6 42d934da 4033bfc5 421fe15e -> 3f3def6e", + "3f4997f4 40c70029 3f22833e 40c9dee1 -> 3f7a0559", + "3f700afe 7149f2ca 40800000 419f9a38 -> 3f700afe", + "3f38d38b 00000000 00000000 41e38608 -> 3f38d38b", + "3f5bb886 3fcbd455 3eee842d 41d27dfe -> 3fa0da1c", + "3f788146 4262d4b6 40800000 41c99841 -> 3f7ec958", + "3f563e4d 7149f2ca 00000000 41edbdee -> 3f563e4d", + "3f3db1cc 00000000 40800000 40a575b9 -> 406d1e3f", + "3f52a49c 425fa61f 4027f996 41cfab26 -> 3f57fc6f", + "3f4bcdcc 417147dd 40402622 41819962 -> 3fe68604", + "3f524bbc 4275b12c 3fa6de03 4205d85b -> 3f5bba4b", + "3f6c5d20 419b989e 3f9fd4d2 418dd2af -> 3fa27796", + "3f3b0ab3 40a650ed 40800000 40a927b8 -> 3febcbdc", + "3f51c566 00000000 3fac294c 41cdf7c8 -> 3ff5f52a", + "3f68a5aa 425bb0d1 3fba6110 419be8e9 -> 3f68c47e", + "3f7ff0ec 00000000 406a42b5 41e405be -> 40951891", + "3f1e0be2 00000000 40170d87 41e1eb68 -> 4004c455", + "3f65fc58 4164ef70 3ffe29c2 415f278e -> 3fc2b2b5", + "3f1d6270 4210ee84 00000000 417f2f9f -> 3f1d6270", + "3f79402e 00000000 404bf3c7 3fa61f16 -> 408271a5", + "3f7064a9 00000000 40800000 412469bf -> 40963eea", + "3f6675ba 4203f5df 40421a46 420a10b6 -> 3fff6868", + "3f35e971 7149f2ca 3fd9d2b3 417186dd -> 3f35e971", + "3f52e092 415a8919 40800000 41a0c990 -> 4039997a", + "3f08b4c4 40cfc3fb 3fabf26f 40dfc4b4 -> 3f564137", + "3f0eb571 7149f2ca 402e546d 3f944f72 -> 3f0eb571", + "3f398ea2 00000000 00000000 421a3f04 -> 3f398ea2", + "3f674a92 42176571 40800000 42113d1f -> 4007da3c", + "3f5914b7 00000000 00000000 4104aed5 -> 3f5914b7", + "3f2a793c 00000000 00000000 4186aea3 -> 3f2a793c", + "3f131952 41a8fc81 3f5d0060 41e2e35e -> 3f5c04f7", + "3f65b962 40a39e26 400ad01b 41f79b11 -> 4032a484", + "3f09e2ed 00000000 00000000 41a46707 -> 3f09e2ed", + "3f41bc54 41d1c9c8 4079cc16 41db80e7 -> 3ff88876", + "3f3877b6 00000000 3ffa0c86 4214b79f -> 400834e4", + "3f2adf98 7149f2ca 3f8a1059 40d9e9b3 -> 3f2adf98", + "3f22b812 40352a97 3fdd8c08 3fe5d401 -> 3f3a2cff", + "3f75d178 41c851c4 405a4162 41ef8403 -> 4025947b", + "3f7bdb24 40d194ef 00000000 40da9897 -> 3f7bdb24", + "3f5c70a1 00000000 00000000 403265ab -> 3f5c70a1", + "3f662fd0 7149f2ca 00000000 411385ab -> 3f662fd0", + "3f44c1dc 417909cf 401ab205 40e43b28 -> 3f48d207", + "3f6021a7 7149f2ca 40800000 41c2e787 -> 3f6021a7", + "3f550c69 41f4ab81 3fd420d8 4202cac9 -> 3fb4205d", + "3f735c23 4140acea 3d1277b6 4146a49e -> 3f76c1a7", + "3f19cd66 00000000 40800000 413203ad -> 404040c0", + "3f2b80f0 410579f7 40506c4f 410c24e7 -> 3fc67c83", + "3f241bc8 00000000 40800000 4153ffad -> 404d22ba", + "3f1f3a83 7149f2ca 3eb5e3ad 3f60c6e0 -> 3f1f3a83", + "3f653d35 4255a64c 40247178 41ac6251 -> 3f6680c2", + "3f00cd3d 4183a4bf 4036aa9e 4187e884 -> 3f885474", + "3f36d8b2 418daf29 40086af8 41ab1956 -> 3fbd95c3", + "3f0f6361 7149f2ca 00000000 41811a30 -> 3f0f6361", + "3f0eb0bc 420856d0 00000000 41be6940 -> 3f0eb0bc", + "3f6bb615 00000000 3e463691 417982be -> 3f8cab2d", + "3f5be679 4126a383 3fe6e81d 41279df6 -> 3fb7c588", + "3f199c94 41d80d39 406b442e 41cc0d9a -> 3fa8d497", + "3f7d5d1c 7149f2ca 3f8b894a 408238d9 -> 3f7d5d1c", + "3f6283b8 41c2c908 40800000 41b6a293 -> 4001414a", + "3f3a0d94 403509f5 407fce51 4039f36c -> 3fed2217", + "3f2ea0ae 00000000 40330b1e 41d88058 -> 4025ca1b", + "3f2b2a56 41440f0a 40800000 420b8d96 -> 4042179c", + "3f2a8eca 41c6e565 40067127 41279303 -> 3f2bd647", + "3f323db3 7149f2ca 3f1330d5 41016a09 -> 3f323db3", + "3f1b9ddd 42087618 00000000 4206ca18 -> 3f1b9ddd", + "3f491271 41b0d5e0 00000000 41b678d5 -> 3f491271", + "3f3025ca 41463f0b 404254e5 41b3e3f3 -> 400ebcbc", + "3f7a1b2c 40c19d70 402de243 410d2e7a -> 4028aef2", + "3f23cf27 7149f2ca 3e296a9f 41cda394 -> 3f23cf27", + "3f6d810e 40cc3789 3e5991b2 411d1271 -> 3f874984", + "3f1302d2 40955756 400b2407 401f3ecf -> 3f1c7db9", + "3f6217e5 7149f2ca 3f880504 4142117a -> 3f6217e5", + "3f620e21 00000000 3f83decf 41dfe58e -> 3fe5790b", + "3f5b4c92 428038eb 400e2fd9 4219057c -> 3f78ac8c", + "3f251c5b 41d78d14 3f32943d 420e25c6 -> 3f65ee39", + "3f6e7e42 41c6ec2b 40022c8b 411e968f -> 3f6f63cc", + "3f57f914 3ffe8050 402d1508 409e6298 -> 4032409b", + "3f701ae2 7149f2ca 403033d6 42143527 -> 3f701ae2", + "3f3d3d03 41c0c360 00000000 41c359ea -> 3f3d3d03", + "3f266922 7149f2ca 3fe40e14 41fa8a22 -> 3f266922", + "3f7cb04a 420f80e8 3e7824d0 415f1625 -> 3f7cc52e", + "3f36f7e7 00000000 00000000 3f0bf14a -> 3f36f7e7", + "3f3e1330 00000000 40800000 40d99ad0 -> 406d97fc", + "3f6f87f0 41a59150 40800000 4164fde7 -> 3fb2f48d", + "3f722328 7149f2ca 3f4cca9a 41da3474 -> 3f722328", + "3f625bda 4264a877 40800000 41cdd262 -> 3f68db74", + "3f481521 41906815 00000000 4203db9f -> 3f481521", + "3f5b48ca 41cd8cfc 401d92bb 41f80d94 -> 3ff57e37", + "3f5a7a3e 7149f2ca 3f848810 42123895 -> 3f5a7a3e", + "3f6c52a8 7149f2ca 402a4ad1 41865e5d -> 3f6c52a8", + "3f45668a 419d5407 3ea1ddfd 4140f8fc -> 3f49c56c", + "3f1de32f 3f11db52 00000000 41eeb5c7 -> 3f1de32f", + "3f6a0656 7149f2ca 40800000 41ee684d -> 3f6a0656", + "3f337734 00000000 4035c78e 421dd526 -> 402c4cfa", + "3f62449a 41ec4ae2 00000000 41645000 -> 3f62449a", + "3f1c9df7 00000000 3f3d4757 420f067d -> 3f88351e", + "3f55f406 4222cea6 4005f377 41b423a5 -> 3f6704b1", + "3f1ac95a 7149f2ca 3f6e46fb 41cca012 -> 3f1ac95a", + "3f0b5737 4189b6e4 3f2d2092 4147198d -> 3f193e36", + "3f56453e 418672ad 40800000 4180c570 -> 3ffb33aa", + "3f1eacab 7149f2ca 4024d1bb 41196435 -> 3f1eacab", + "3f63fc90 41095794 404df45d 41771d52 -> 403fac1f", + "3f28839c 41f7a83f 00000000 41fa94bc -> 3f28839c", + "3f6a0f51 00000000 40800000 4202e3b0 -> 40924993", + "3f6b4322 40e050f7 00000000 40ef000c -> 3f6b4322", + "3f415ba0 41841259 4029420b 411313d5 -> 3f55add2", + "3f3745c1 424654a8 3fadc526 4194d472 -> 3f377a23", + "3f26409f 4205cc3a 40800000 420cbb42 -> 3fd9c9b1", + "3f6f3f28 41f290f5 00000000 41f129d1 -> 3f6f3f28", + "3f230960 00000000 401575f5 3fc8bbcd -> 4007f1ec", + "3f38e9e0 416ea6ba 3e9005b6 416f362f -> 3f4c237a", + "3f30a69c 00000000 3fcb8d06 4200f91c -> 3fe4c8bc", + "3f6ce281 7149f2ca 40800000 4202f2d8 -> 3f6ce281", + "3f5ccaf4 4287a277 40703ba5 41e145f7 -> 3f5f4d2f", + "3f422077 4082e32d 4049bd5d 4072f9c2 -> 3fc0e88b", + "3f043c6b 7149f2ca 40125eda 420059dc -> 3f043c6b", + "3f3c1189 7149f2ca 00000000 4048ecb3 -> 3f3c1189", + "3f35e577 414f17b2 3e96b21c 418046af -> 3f51ccf7", + "3f1b2ec7 427166a2 3ee309ca 41af29ef -> 3f1b379e", + "3f1caf6c 00000000 00000000 40ee9633 -> 3f1caf6c", + "3f77f5d2 4269c952 40800000 420e00f5 -> 3f9cf676", + "3f76c96a 00000000 40800000 41c09e38 -> 409a3de2", + "3f5ed4c9 3d277e95 3fb1a8c4 3e527386 -> 400206e3", + "3f26d8f2 7149f2ca 40800000 4014fa90 -> 3f26d8f2", + "3f4602c2 408746ed 3f9b95f3 407aa0cc -> 3f8887d2", + "3f4eebb8 426b128f 3f9bc6c1 41c6a46a -> 3f4fd9b4", + "3f3748e3 40f247f0 00000000 40f9e51f -> 3f3748e3", + "3f7e4f42 422fd886 4041265f 41dc5185 -> 3f9d2cae", + "3f0a2f7e 00000000 3ff603ae 401a740d -> 3fc9e35f", + "3f7e58be 00000000 00000000 41b72368 -> 3f7e58be", + "3f63ea78 40a2b431 407d678e 4200ade4 -> 408a8255", + "3f4d739b 41159661 3f7e4fe7 411d574f -> 3f900e2c", + "3f3d33d4 7149f2ca 401344da 41c7c1d5 -> 3f3d33d4", + "3f34debb 7149f2ca 40800000 41017536 -> 3f34debb", + "3f65c71e 4203a0bb 40569f05 4207ea47 -> 4004da05", + "3f4c1e46 00000000 3fcaea62 41ab0774 -> 4003ecf4", + "3f381c84 7149f2ca 3faa17bf 41c79ef9 -> 3f381c84", + "3f0a3d14 00000000 3fe2eb9a 41d2766c -> 3fbfa7af", + "3f37babe 00000000 3fc36e9a 410a5949 -> 3fe81ffe", + "3f2f6c4c 7149f2ca 4019f755 41da7bdb -> 3f2f6c4c", + "3f5aee7d 4273f904 3fb6e244 420dabc4 -> 3f6b0ca4", + "3f553864 00000000 40360549 40b902a0 -> 404ce897", + "3f273ec7 7149f2ca 407b53af 41f87923 -> 3f273ec7", + "3f691280 00000000 00000000 41b8178c -> 3f691280", + "3f5129f0 40a5bb24 40800000 3feeb587 -> 3f5189bb", + "3f1c410e 40d7e67b 3ee6f631 4159cb50 -> 3f5362fb", + "3f5f1eee 3f00c1b9 40703bd9 40cfb902 -> 4083f409", + "3f553b13 4295e85e 3c8e9eca 420948c8 -> 3f554323", + "3f3331cf 41e78bd9 405a3af7 41ea6811 -> 3fccbfac", + "3f625896 00000000 00000000 40a63c80 -> 3f625896", + "3f612e44 7149f2ca 40800000 41f9dd64 -> 3f612e44", + "3f6fe7d4 7149f2ca 00000000 411ad53f -> 3f6fe7d4", + "3f6b203d 42cce4c5 40012a16 421c8649 -> 3f6ba06a", + "3f1326a8 3f8d399e 40378733 4107cbca -> 400c8375", + "3f7ef268 7149f2ca 00000000 4183183b -> 3f7ef268", + "3f61f409 4091bd89 407bd25c 40f8ff7a -> 40564826", + "3f324ac3 00000000 00000000 413010aa -> 3f324ac3", + "3f404692 4113c651 00000000 40cc836b -> 3f404692", + "3f65871d 425c6115 3f82fc7c 41ac18a9 -> 3f65dc50", + "3f2da5e4 418c5d34 40687d0e 411b6c9a -> 3f45ce4b", + "3f2e00b4 7149f2ca 00000000 41b512cf -> 3f2e00b4", + "3f4868f4 7149f2ca 40800000 4197b8f8 -> 3f4868f4", + "3f1b434d 00000000 4063fd4b 414eb3cc -> 40311720", + "3f56cf28 41d0de41 00000000 4197fe91 -> 3f56cf28", + "3f16ffe4 41af7196 00000000 41a388a3 -> 3f16ffe4", + "3f79cea6 410272c5 3f4b5a55 40f77546 -> 3f9d8ce5", + "3f344e25 3eddfb7f 00000000 3ed5b081 -> 3f344e25", + "3f57b643 42a91549 00000000 41e2f585 -> 3f57b643", + "3f34b289 7149f2ca 3f38596e 41859a3e -> 3f34b289", + "3f6454ec 4159b8bc 406cf8d2 4160ff05 -> 400bf206", + "3f4082d8 419e64cb 3ffc2685 41ff7219 -> 3fe158bb", + "3f04c657 41a3aafd 3fff5af5 4107aecc -> 3f058f88", + "3f6853fe 7149f2ca 40699a7b 41c4a949 -> 3f6853fe", + "3f7f18e4 41c37602 3ea00387 4200bc76 -> 3f95f32e" + ] + }, + { + "glsl": "float cultmath_lattice_distance(vec2, vec2, float, vec2, float)", + "tolerance": "ulp-bounded", + "cases": [ + "4218840c 41d66378 4208a0fc 41135e88 40214e09 3f54f18d 3f0e185d 40000000 -> 4291dbe9", + "c1e70e48 41875468 bfa1e3c0 414fed70 4093ed14 3f7fedee 3cc05c6d 3f800000 -> 4300f228", + "c1d88701 42415288 42273716 c1e92f44 409fe9f3 3e8f2ed4 3f75c92b 3f800000 -> 44018240", + "3fe8f420 c24192f5 418a18b4 c190b71e 406f5393 3f2bd051 bf3dc768 3f92f390 -> 4301b897", + "c1ce8a88 41445368 c0b64bd0 c245ff41 3fba260a 3f800000 00000000 40000000 -> 42d66cc2", + "c21f4ce1 421154cc c0ef7c08 c1fbe9c2 408fe6b8 bc98ca13 3f7ff49a 3fb92095 -> 43e9302c", + "420b8432 c24424bf c201c11a c244b314 3fd0b933 bf6db1c3 bebe2159 40000000 -> 43500122", + "422c4f6c 424311ae 41207898 420b77f2 402d7e53 3f7efbae 3db65bfd 3fb8d690 -> 4308ed96", + "41037f94 42382a3e c20f4df4 c24116ce 40725652 bd97387b bf7f4d1a 3fd65071 -> 441e2646", + "c241a5e0 c242c597 42392e04 414ffe88 4023300a bf62a529 3eee0f01 3fe1f6fc -> 43b0ba3f", + "422ef81c c1df9090 42443a20 412d9f04 403fa01d 3f800000 00000000 3ff5ec9e -> 42f03d17", + "3f3ba9c0 c2065cd8 411c377c 4130b954 3f880d5a bf4d8570 bf18a234 40000000 -> 429ddaeb", + "423f58a4 421bad6e c2017fe6 42049b00 3fe0e102 3f730bed 3ea0cd6d 40000000 -> 438a1045", + "421528b0 c12f9154 bff1f060 c19f606d 40394317 3c84c589 bf7ff764 3f9fda01 -> 42eb70b5", + "c0c9f1d0 c1ff8201 41930284 423d7824 4014f92e 3e2ea92e bf7c3fa3 3fe891f4 -> 43a26e90", + "c1aff82e 42362f0e c20a0a82 421c50da 409a8f72 bf77edad be7f1b90 3ff535ca -> 42ffe7e4", + "4201f232 c2382b1d 41632ae8 c1fc2016 405d0cdc 3edce7c0 3f66f244 3ff78771 -> 42abffd1", + "c1aa7760 c23f6f3a 423e117a c1351940 407805ea be86d037 3f76f75e 3f9b0f0a -> 4398afd5", + "4040b5e0 c2461f7f bfd92320 4159e2e0 4047b047 3f7f8506 bd7acf20 3fcd3a0d -> 434865d8", + "41c22940 c2226c3b 4240d7d8 c0e640f8 3fee023b 3f309945 bf3955a5 40000000 -> 42a0a558", + "4101000c c20202a0 c1c65c5f 401ad230 4010b5de 3f800000 00000000 3f82e782 -> 42db292c", + "4238f014 c1353b20 4230369e 421d4a3a 3fb64c6a bf41167c bf281629 40000000 -> 42d48aed", + "40f22198 421a67a6 c0304a50 c09d7d38 3facaeed 3f02ccdb 3f5c0fe2 40000000 -> 42e9280d", + "c14c405c 409f0e80 c1bb6a8f 419f6660 4080cd72 bf76da65 3e87a3cd 40000000 -> 42f79358", + "41b5e980 c1109a54 c212bc33 c15cf3e0 3f5b2c4b 3f800000 00000000 3fc58ca2 -> 429d3f4a", + "413fda1c bfc75060 421e896e c12ea118 403abfae 3f24b7d1 3f43f825 3fa75c45 -> 42b224aa", + "41b5255c 42477520 410417e0 c12bb888 408818b7 3f672665 bedc0d3d 3f800000 -> 43847131", + "4208a900 c172c448 c23dc7ae 40910a10 409cc383 3f36f1ce 3f3312cc 3f936fc1 -> 43d6e3c8", + "c00cde90 41cc0544 c0a1a100 42428bec 402effa2 3f800000 00000000 40000000 -> 42824bea", + "4206f7c0 c1aae2ee c09acc30 4240982e 3f0e43f2 3f800000 00000000 3ff0ca9a -> 425f6237", + "c210c121 c181eba2 c20bba65 421d5ac6 3fe4ec59 bf044c04 3f5b2a5f 3fa112cd -> 42ec9d99", + "c2370814 41ba2628 41d1be2c 4163cf88 3fc70be7 be06ab36 bf7dc6ca 3fa6078a -> 42e19c5a", + "c2024aee 4233fc4a c222a2fc c1d81281 3fd0cc88 3f800000 00000000 3f800000 -> 42ec649e", + "c218e52f c0982488 c203daf4 4203b4f6 3f0da256 bf7fff2e bba3ca8f 3fa497ad -> 41a98562", + "41923894 c1f0a5b6 41075d44 c04850c0 406f7fbf be1b63d9 bf7d090a 3f8e5164 -> 42e95b37", + "4237f1e0 c21865f2 c1f3f845 c23339bb 4045ca36 bf7be4e7 be36a97a 3f850926 -> 437687f7", + "c1704510 413044b4 c23c9bff 421ab0d6 40887ff0 3f6e5155 bebafbb0 3f800000 -> 4334d9df", + "4131fe8c c245da51 41cd8bfc c04dd670 3f233c27 bf73be82 3e9c859d 3f800000 -> 41f756c2", + "c1f572a9 4208b7d6 c021ba10 41a47440 3fc42e5e 3f7fc1dc 3d325474 3f8fb141 -> 425231b8", + "41c03618 420586cc c223a9e1 c22dab74 408e4236 bf6b07f5 becaf139 3fbb10ec -> 441a841f", + "c1d6bc39 419887c8 c1dbe4fa 420a6392 40779b87 3e01392d 3f7df412 3fb01e43 -> 42a465c8", + "401451d0 41f9d5cc 4240ecf0 c2447f6a 409938d6 bf1e200d bf4953a0 3f800000 -> 43dd908a", + "c22084a3 c00ac070 c08ae178 c217dc22 3f343036 3ea29245 3f72c091 3fb0f4c0 -> 421ae60f", + "41a83b48 c21d4cde 4223d794 409158c0 3f8a0eb5 3f800000 00000000 40000000 -> 427fb9a8", + "41519cd8 41971440 c1d5efca 421efc68 4003ffac bf7c4e36 be2d5721 3f800000 -> 42b98417", + "c217e6ec c23752e6 420b5af6 41ff2320 40226088 3f55623d 3f0d6eec 40000000 -> 4404629d", + "bf113bc0 c2138984 c1235d6c c12b1750 3fd335ce 3e6e01a0 bf78fd34 3f917862 -> 4251071e", + "c03c0440 c238a930 406ea410 40bbad60 404260fa 3ec78eeb 3f6bc11f 3f800000 -> 431f50f0", + "42032294 c18e763a 3f78fa40 c238503c 3f24b82b bf49e33d 3f1d6887 40000000 -> 41e59517", + "c247f536 c2468e24 3ff86600 c1babe75 4094dca2 3f800000 00000000 3f9c1195 -> 439f7866", + "c111b46c 4156cacc c126895c c1f50553 4081734d 3f629618 beee4857 3f800000 -> 4332486c", + "4216a35e c232136e c1a5468e 418eee64 4040406f bf358359 3f348634 3fe10064 -> 43e15e9b", + "c05d5f00 c215cb28 41dfdcf4 c21e27c1 402436b6 bf1a3cd8 bf4c51f8 3fcffb6e -> 42c594d2", + "c1c3a030 c1fdddde 41f2c518 42153a68 403dd0c8 3f3452e1 3f35b657 3f800000 -> 4382b69c", + "41d04948 421bb918 c1f26cc3 c2380143 40984b56 3f800000 00000000 3f93d323 -> 43fe97dc", + "c208899e 42344b68 c1693ef0 4081fdf8 401fc755 3f800000 00000000 40000000 -> 430d7c2d", + "c087daf8 c17669d8 c1976a4c c19c8ab3 3fa4e5d4 bf1ed5a2 3f48c47d 3fa61e06 -> 41a4fabd", + "c19013bc c21d802f 4219e6d2 c18919aa 409746b9 be02487e 3f7deb68 3f8f5b13 -> 43909404", + "418b1638 c1d6fe07 4107cbf0 3ff23600 3f842cfd 3e0f7bc0 3f7d7974 3ff1805b -> 425ac726", + "c2020ce8 c1265274 41550de4 41f96f00 4086f6e8 bf160d61 bf4f69d5 40000000 -> 44006332", + "417c8df0 41afd4ac c2090e83 420c3926 404888c0 3f800000 00000000 40000000 -> 439e2725", + "4195cd28 c23eb26a c1312064 42040338 3f0d09cc bf3bb5b2 bf2e126d 3fe9cb72 -> 425bbc84", + "c0415020 c1ae183d 412b54b8 41aa55a8 40972961 3f3331f5 3f36d348 3f800000 -> 43557766", + "c221d3f0 c23509b3 42405d24 c19975c9 402e340b 3e0f72de 3f7d79c4 3feff7d2 -> 43964ac5", + "c1aebe10 3f48a100 c232b6a1 40a32b88 3fedb01a bd682a8d 3f7f96a4 3f800000 -> 422c9e65", + "4199ebd8 c0dc7390 414b4e00 c0bbf300 402778c3 3f70f1bd 3eacfece 3f800000 -> 418a6ad5", + "41d7bb5c c165d81c 40cf7d70 c0e78790 403abb31 3f044ef2 3f5b289a 40000000 -> 42866b82", + "41a859a4 4016de10 41a4e344 c0aff828 403548a3 be44c7ae bf7b3a8b 3fb03ae3 -> 41f46024", + "41b7cbfc 413e039c c1b288f6 bf62e780 3fa0e9f7 3eb1fed9 3f700837 3fe033fa -> 429b09be", + "41ed37b4 c23aa9bb c23b0081 c1190524 4096309d 3f800000 00000000 3f9f842b -> 43efce6b", + "419b5928 c0f863c8 4083c9f0 40c78360 3f121017 3e32ec2c bf7c0fd5 3f9196c9 -> 414e1108", + "41d94ed4 41ab27c4 c20260bd c1d1e7b4 408c3f80 bf702b02 beb142b7 3fc4010e -> 43f9135f", + "c23d7cef c1b12d67 c1f98657 c1822612 3febd393 3f50fa7a bf13dd68 3fd349f1 -> 421e7d9c", + "c1791de4 c19b23c9 4112b7d0 422b434e 407cf4f4 3f7e9767 bdd68b74 3fbb5781 -> 4389b4f0", + "c2193e36 c1e7ada3 c2050a70 4124ed44 406f85d4 3f800000 00000000 3f800000 -> 43142bf3", + "42080218 c22b223e 40bc7da8 c203cbe6 3f8b2afc bed10fa1 3f69afbd 3fadc930 -> 421922e1", + "41726df0 c1c003bd 4233ba5e c165018c 3f8776a0 bec9aed6 bf6b4d4b 3f800000 -> 42049217", + "c222efce 4203f4e4 c1abfa2c 422fd558 408975f6 3f800000 00000000 40000000 -> 432bdb60", + "41ea3ad4 41e41508 3f5707c0 c1baded6 3f36da2a 3f71cb9d bea82db1 3f800000 -> 42290190", + "42303e36 c20eb086 c11ea8f4 c2114ea2 3fe8d339 beaf9880 3f70793c 3fd20e93 -> 42d5df2e", + "41f0b814 c219b90e 41afe234 c21d4c29 406d64fb 3e66e4bd 3f796846 3f800000 -> 41f1f377", + "c1ad9265 414ca6b4 bfa5bda0 c1a64d97 4079eb1a 3f7fbd66 bd389d4d 3f800000 -> 43196db9", + "c143a540 c1775d58 c20122b4 c1d6ad9c 3f5bbfe0 bf7efa6c bdb6cc50 3fb04d5d -> 41d112fb", + "41aca424 c1fd3b3c c1089f38 4196ce48 3fa99673 bf10f5e8 3f5300de 40000000 -> 431b93e4", + "c236f7ed 42046a80 c0241130 c22a15e6 3f5bb68e 3e9cddfc bf73b04e 3fec480e -> 4307e250", + "41d3a9e8 418e3f0c c022fbf0 c190f0fd 408f5ad8 3e866a80 bf77053a 3f800000 -> 434ec062", + "422626aa 42135cae c0b544d8 4210cafa 406fb8b4 bf651957 3ee4785d 3fe13313 -> 43900f90", + "41f77da0 c1d1ad5f c130b9f0 c2201c58 40874837 3dff44db bf7e00ed 3fffa9f1 -> 4344dac5", + "c22f19db c11a44c8 c19df0ae c1a1832e 403f4c53 3f305e7b bf398d98 3fbc5ee3 -> 42dd66af", + "41866588 42018b8c c2402dd9 42048e9c 407a09d4 3f800000 00000000 40000000 -> 43fd5765", + "41c625c0 c1df1259 42419630 c18ef0e8 3f46721c 3f800000 00000000 3ff12cdc -> 420d7e7d", + "42412a84 413cc52c 41ef0cd0 4183e294 408a527e 3f71fc3c 3ea7150f 3f800000 -> 42a43cbe", + "c1f9cea2 c21846c6 c08a4078 413ba0fc 3ff59ae4 bf4bae02 bf1b151d 3ffa34d5 -> 43468aef", + "411c270c 41c71010 c2059b8c c23315f5 3f546b60 3f38501e 3f31aa27 3f8d0ad9 -> 429509a1", + "c115af5c 422ab2bc c20bdf06 c2478fb3 4004fe9c 3e26fc88 3f7c92bd 3f8fc792 -> 435fec8b", + "c1cc6a44 41705518 41fed420 c1dfc45f 3ffd1f26 3f7fed05 bcc526c3 3fda0591 -> 435549ca", + "423adb98 c1ba781f c0d853c0 c2205de1 3f9f3342 3f204edb bf4797ca 3f85ed68 -> 428c49d1", + "422680c2 422c407a 408f0ac0 40efa000 409e6d39 3f5c7560 bf022183 3fc75eb0 -> 4385d05e", + "c2353830 41f38840 c1faaf3c 41d6e814 4024a91b 3f53ff6f bf0f809d 40000000 -> 428debe2", + "41ccc960 c1ad5054 c1445034 c0fe6cd0 3ff19278 bf506bcf 3f14a63d 3fc97fa0 -> 42ea18fa", + "41a6e90c 418dcd60 4198b440 c19a1bec 407b4d74 3f800000 00000000 3f800000 -> 43116875", + "c1a04f1c 415f515c c2088ff2 4187adbc 405e6813 3f800000 00000000 3fb823cb -> 428e88c7", + "41f89884 42472b8a 41e83098 c1b1dc4e 4031e086 3f5ae5b0 bf04bd89 3f800000 -> 43484335", + "c208571b 418cb83c c228cc17 c2112a82 404f1896 3f29eb0f bf3f7a5b 3fcba835 -> 43610786", + "c1afa6b0 c1d99140 41e787e8 423ef652 3fe47057 bed80118 bf681a39 40000000 -> 43a019f4", + "c21f4966 c21dcbd1 c1bfd97f 4221d7f8 3f6d4440 3f800000 00000000 3f82d208 -> 42972251", + "be7be000 c1c66254 c19b120e 421ffaac 3fb46bda bf2f612f 3f3a7d13 40000000 -> 432f5a6a", + "c2299581 c1567f08 41fde2d4 c19ecb48 40673155 3f800000 00000000 3f95cf8d -> 439d24ab", + "c13ee238 4194293c 42343bca c22d890d 4037466a 3f7781c3 be82c99a 40000000 -> 43d52b8d", + "41d2fc94 4102e34c c0ffa380 41952b5c 3f4a12ce bf66bcba 3eddc717 3fbe0389 -> 42274cf2", + "c0e445e8 c20f24e6 be899780 c228ac77 4017e54b beafcdf0 3f706f79 3f8e22a4 -> 41c1bcc8", + "bf2e70c0 41df1794 c231a2b2 41b06bfc 40161ef2 3e64b343 bf798899 3f800000 -> 42cef48c", + "4193ee74 419560d4 c19763a5 423ce970 40868ee4 3f1ad621 3f4bdde7 3fdb6953 -> 4345ea6a", + "c0fa5db0 c1ea70ae bfcda2a0 c2434dd0 3f454cb7 bf082dec bf58c645 3f8624f6 -> 4180e060", + "40da1710 41dc0520 c19e182d c1b8e1ea 3f9ee34b bf36e4fc 3f331fe4 3fc3de64 -> 429593a7", + "c17268b0 41d32a1c c16a40f8 c0cf68f0 408d4fb5 be5a3bd2 bf7a1e65 3feeebad -> 4384f971", + "c0a1ee88 c210bd30 41288cec bfedf340 3f020a16 3f714db3 3eaafb18 3fe08255 -> 41d8aab7", + "c20ea490 4151d83c bfed7e80 41aef7a0 4063a008 bf24050d 3f448ddc 40000000 -> 431a9250", + "420ee606 c10d2b18 c1065f48 400cb770 404b5813 3edc6250 3f671221 3ffda9b9 -> 4318a1a4", + "42357904 419b8780 4242a168 c1829d44 401bc432 bf6cc129 bec2c3ae 3f92d278 -> 42b136b4", + "c0b637f0 4229f3be c2254d84 41da9a94 40979af7 bf0700b3 bf59825c 3f8bc50f -> 4342e7e3", + "c092fbd0 c20cdb54 41876478 4107a440 40371a08 3f4fab7b bf15b278 3fe3b6ee -> 430f7138", + "422f59f0 c1ec1e44 c1d66859 420dc7dc 4045e6b5 3ed67732 bf687578 3f800000 -> 43945fe6", + "418b1ca4 c143fb68 41f55428 c1eedf89 40860f17 be4f6c01 bf7ab16c 3fb41876 -> 42dcb882", + "c136992c 41993670 421dffe6 c2266742 4027610a 3f800000 00000000 3f800000 -> 434f4d1d", + "41e27824 c0d40888 416a1630 c00e0860 400a3eb1 bf7ecc92 bdc62375 3f800000 -> 41f8552e", + "41b2922c c1d473e5 c12ee5a0 c1d2001c 408cd97e 3ef75a98 3f602491 3f9dcc68 -> 431ab6db", + "c1daa2af c0f5f5f8 41d49cb0 40f85b58 4056a751 3e8796b6 3f76dc32 3fc47149 -> 435be0cd", + "c215174e 42456404 c21ad1ae c04acd60 40668e51 3f2d66a7 bf3c546c 3f91c3a1 -> 434b2ea3", + "c2379f5c c144efa4 c238c386 3ed3ce00 3fb8ccf2 bf7f6d46 bd88f7bb 3fa45378 -> 419312ab", + "c2360129 4184b528 420be43c 3ff17960 402b7110 bf2131e6 3f46e09a 3f800000 -> 435b23cb", + "c1a17063 c1c298dd c1eb9eb0 41ef9ee4 4080035b 3f800000 00000000 3fa4f4a8 -> 435e54c7", + "c237cb34 c090b478 c2180f8e c1c41429 403cf60b 3f29773d bf3fe0e4 3f800000 -> 427df89f", + "42296b20 c1625158 40852cf8 bead3b00 4070198f 3f3aa840 bf2f333b 3f800000 -> 43185b84", + "420160f0 4232b67a 416c8288 413fde30 4059367a 3e695352 3f79440d 3fc4cf38 -> 433dd145", + "c1e60a16 40f09310 410bf974 bfc95320 3fd787fa bf7ffaaf 3c50ad30 3fb34a99 -> 42b3cb9f", + "4221732e 420b8104 4208b206 bac68000 40812978 bf7f4cbf bd975eed 3f95a898 -> 43109149", + "4146259c c0c40640 40d3ac00 c22615cb 408a5006 bf7067e7 3eaff754 3f9187a8 -> 431bcf07", + "c1dd2b16 c10e50b4 c1242294 4236b906 3fa346ca bf52649d bf11d854 3ff58cc8 -> 42ef549b", + "bfabeea0 c0c25230 c221cf35 c23c100c 3ffe036c 3f800000 00000000 3fea4a1e -> 4323a735", + "419cab10 c18d3b06 c207a045 c1ed1339 3fa4dc26 3f800000 00000000 3fe14fa9 -> 42f47e80", + "c22250d0 4205d39c c214ef40 41b4a114 409eb4ad 3f5e63fb 3efd9a03 40000000 -> 42715813", + "c22f2796 41d96f00 4232ba26 418d1fb8 3f84ffc7 3e31330c 3f7c234e 3ff8ba8a -> 42ba0c2a", + "c217759a c23768dd 411665d0 c21c74f0 3ff671f3 3f800000 00000000 3ffaa7ca -> 4332aca2", + "4151895c 41cdf06c c2400bee c1d33dab 3ff5680f 3f77b92e 3e812345 3fc87684 -> 43633533", + "407f81f0 c21e28ec bee38e80 c1e26f95 40814d78 bf5304dc bf10f018 3fa7a503 -> 4246b622", + "c1b61186 40b62330 c22676ed 40f35828 409b5bc2 bf6bd912 3ec71d97 3f800000 -> 42b80b74", + "423872ea c1905d4b 41b7b8dc 42422420 403521f2 3f76da40 3e87a4e1 40000000 -> 4348d08d", + "4179eca0 418e2768 42066584 422952dc 4086f7bb 3f5aa02d 3f052fe7 3f800000 -> 430061f3", + "c2359c7f 40faadf8 3f6ae340 c06ec8a0 40923bab bf76a61c 3e891e36 3fbefb94 -> 43a2baf9", + "41d68874 41e6fdc8 41c9e960 42440758 405efff0 3f800000 00000000 3f909203 -> 428cda17", + "c169e380 c1b301a6 c2186129 4163d0d0 408208aa be60f356 bf79bf1d 3f800000 -> 4330be03", + "40c26868 c21c58f5 4120b2d8 c06a5a30 400800fd bf74d7e5 3e958099 40000000 -> 429efcc2", + "c226672c 4228b7d0 c0643e40 c227b7cc 40793355 3ecd0113 bf6a9553 40000000 -> 4433b414", + "c1329d70 c190dddf 41123968 c11c2b30 405fd881 3f800000 00000000 3fa1b017 -> 42bca94f", + "c21ec9a9 c22a158f 41a6eb80 420bddfc 3fd25826 3f800000 00000000 3fe74e34 -> 435c5c38", + "c17a2b70 c20dcaa8 40b6d428 c1c0f90b 407d478a 3f3473f3 3f35957f 3f800000 -> 42bf48ec", + "41c11e6c c1c7ab81 c1711f94 c1bc0ffe 3feb2042 3f74bb33 be963c18 3ff3fa68 -> 43060788", + "c11a57a0 c2126e3a c212c484 422f59ca 4090d354 3e763cf2 3f787d00 40000000 -> 4429ff94", + "41aa06e0 c2138faa 4097f5e8 c1d48a4f 40604e08 3f54107b 3f0f676a 3fc6eb20 -> 42977bd7", + "4227bfa0 c242054f c2463d32 41400e04 40097fa5 bf0797a2 3f592466 3fdb4644 -> 43be097d", + "421454ea c20e658e 4086e318 41f4bfe4 408c55d8 3f7fa1bc 3d5b9cc1 3fa2f4f4 -> 43a9c268", + "417298f8 c1fd2aa3 c0a320d8 c233a504 3f59c92f 3f06e19b 3f5995a6 3ffeebe3 -> 4218c5ff", + "c09a61b8 42338178 41896758 c22a87d6 40934438 be7698b9 3f787750 40000000 -> 444fa07a", + "404cef00 c148538c 41e2cd30 41d61650 3f87bcb0 3f71c78e 3ea84505 3fa55f8c -> 426b36b9", + "42026d5e c2433da1 4222a380 c1b9dfcc 400f1cc4 3f800000 00000000 3fcddeec -> 4280367b", + "41670100 c0a42260 c1bcc09e 421364a2 4096ede7 3db21061 bf7f07d2 40000000 -> 43e3a2bd", + "40b5b390 4236f388 c224ae5f c1f07560 409a2207 be5b039b bf7a137b 3f800000 -> 43d697fb", + "40e4ad20 414f74b8 c221bb0c c22d2feb 3fc100f2 3f578868 3f0a22da 40000000 -> 4356dc28", + "c1d883cd c042bac0 c06f1b30 c1ee17fd 40000a36 3f800000 00000000 40000000 -> 42d7213c", + "40cdc808 c111ba80 c1fcd428 c19009c1 4019f77c 3ecdff89 3f6a5d91 3fa0d46a -> 42ce9c1f", + "41622e30 40d8d680 c22a0ebd c2357daf 40532a92 bf53b8cf bf0fe8bc 40000000 -> 43fc0050", + "4193bcbc 419cf4ec 41cceae0 41868ba8 40780bba bf17a13c bf4e434f 3f800000 -> 41ee073f", + "4233d7be 415e9a28 c05069b0 c1c58e54 3fb5242b 3f800000 00000000 40000000 -> 43130037", + "c1ffae86 42312d84 c1281498 41916ee4 4070f2d8 3e87f443 bf76cf54 40000000 -> 436e2bd1", + "c0caf828 41976d38 410429c4 4237ba2c 3f581272 3f800000 00000000 3f800000 -> 41cf49c0", + "c220039a 416e1498 bf9ad900 41f572d0 3fca13c7 bde96e8e 3f7e54e7 3fdd179a -> 428d7278", + "421aa01c c14f7278 41e37ed4 c214f82e 4014f0fb bf7fcc48 bd22b1e2 40000000 -> 4298247e", + "41905928 42125994 418f541c c1c4ac27 3f3db512 3eea3910 3f63a45e 3f800000 -> 423552da", + "c1d6b650 c22fa654 40823cf8 c208cee8 3fbf4444 bf372b6d 3f32d7db 3fdc5a12 -> 42685b04", + "c21ea349 c20e690d 4219e98c 410c2d14 4097753e 3f800000 00000000 3fc34c81 -> 441684f3", + "420794bc 404a6a00 c15a3ee8 4222d426 3f232a6c bf6bf7f6 3ec68afb 40000000 -> 42963f09", + "c11c4fc4 422b3c7a 40d42d00 418af954 40703dfb bf7ee0d3 bdbf83cf 3fb2b0a8 -> 42f91245", + "c244c1c7 c0ae9148 42201f54 c2128afb 405fb26d 3f2a9ee2 bf3eda30 3f800000 -> 43a52bd3", + "c22b9c5d 41a3b104 c197c2ff c222deb0 40953a5e bebfb5a0 bf6d6087 3ff0acd2 -> 43ea5723", + "c1c72483 c1fc4b00 41fb8aa8 c1ef21ff 403d3d56 3d3fee95 3f7fb803 3fc4db88 -> 43274db0", + "c21e7c78 c227bbc8 420cd268 c13f73b0 3fe00e01 3eb286db bf6feef5 3fa3ba41 -> 430d1ed6", + "c2328b6b c1c2c75e c202aa31 42091558 404fff58 3f70ecad bead1b03 3ffedec6 -> 43483e38", + "c0936308 c19d7289 c0127d90 419470dc 3fd9448e 3f800000 00000000 3f83c35a -> 42820e6a", + "c1b74ac9 41f59e70 421fca6e c2228d4f 4075178e 3f7f763d 3d84b8e0 3fe0a51a -> 43f2aec0", + "c23cb659 4198811c c0ea6d50 c157b264 404a1262 3f0a1893 bf578efe 3fb33134 -> 435df931", + "c115023c c1589f1c c1129e60 40eb4d10 400fbb8d 3f7fb997 bd3dd1e8 40000000 -> 423c1da4", + "400b2690 41f19bc8 c102d398 41fba938 408935a9 3f800000 00000000 3ff84b50 -> 42ac85f0", + "c1d6de8c c215c7c6 c2235243 423801e4 4034c9a2 3eacbd63 3f70fd79 3f800000 -> 436f00af", + "c2172fe0 41caa420 41244090 c2247fc8 406d3f44 befe1ca9 3f5e3eaf 3f836541 -> 439bffcf", + "412585e0 42003362 c1eaaabf c1fecb61 408f2420 bf7ec905 3dc746dc 3f800000 -> 43a83a55", + "41f01568 c190d93e 412c7568 c1d79e75 404895a0 3d1f4d3a bf7fce6b 40000000 -> 429f2342", + "c1616b00 4212d43e c20821db c1aac0e7 40903205 3ec6f1ac 3f6be256 3f966a52 -> 43a2695a", + "422b8518 c1720518 c20225fc 420c6b22 408481e0 3f7adb79 3e4c383e 3fae436f -> 43dfe530", + "c1486fa4 c08c3bf0 c2449328 c1726ae8 400a6000 bed2c21d 3f694e17 3f9e8002 -> 42a5e061", + "42020cbe 41b98870 c0bc45c8 422e37fa 3fd48cee be8c8d55 3f762a47 3f81c17d -> 42914b64", + "413bddd4 c1b46330 41ba5d40 41aa9098 40818cfc 3f077b78 bf5935f9 40000000 -> 438e933e", + "c0a428b8 c20f517b 42339f90 3f7c6e40 3fe73158 3df12d10 3f7e37fe 3fe9e7f8 -> 43224e0c", + "c199d29d c2056099 c243c005 be69fe00 408c9e7f 3cb7d8b5 3f7fef7f 3f8f723d -> 4350611c", + "c20bde70 4217b06e 42281b74 42454d1e 3f68a509 bf1f97e9 bf482a30 3f800000 -> 428d7744", + "41a7a04c c22f2830 40207bb0 4109e39c 3fc1941d bf03845e 3f5ba267 3fd99d0a -> 430cf8d9", + "3e4ad500 41d5f800 3ec57600 405f1980 402bd215 bf6cf054 3ec1ddb9 3fec3b42 -> 42919535", + "4046a3e0 41c5a920 c17b51e8 c2181e8e 4015d280 bf155861 bf4fec4e 3f800000 -> 43195396", + "4198ea7c 4121f510 4205a7c8 c1636b58 40840a48 3f5813b4 3f094890 3f8a5a7b -> 42e8f5c8", + "41b68dc8 c0f5fcd8 405cc180 c226e57f 4071c4a4 3f800000 00000000 3fc4b8fc -> 432ad1e4", + "c20fa4a2 c115f99c 3fb81440 4138bfe8 40116544 3ecf6296 3f6a0f3c 3f800000 -> 42c281bf", + "c1f7bacb c21af560 4100a52c c19fa86e 409bf8bd 3f800000 00000000 3fe704c0 -> 43b1920f", + "41c5a3e4 c1db616d 41a64314 bf9d7f20 40687d7b 3f7ef3ca bdb918a9 3f800000 -> 42c06a7d", + "422911ae 40cd7ba0 41245f90 c0a58210 3f158f0f 3d15a8fc bf7fd43d 3ff96b80 -> 41b2acdc", + "4233ad10 c212b6e7 c1c341fe c05d5380 3feb4eef 3f800000 00000000 40000000 -> 43830d79", + "420085cc 4230b0f4 c24418e1 c1d2d36d 4079c6b0 befbc5d5 3f5ee8d1 3f8020d5 -> 43d1d0d8", + "42372424 c1c9a9b4 404dcd40 c0b0d038 405b5451 bf6c888a 3ec3d61e 3ffd9b9c -> 439f2057", + "c0ba9170 c16e9880 c165839c c20359bc 409946ab 3f6b0972 3ecaea55 3fac61aa -> 42e5b5c6", + "420cf3f0 40bfd218 418eed50 c0a12700 4090baba bf5d874b 3f004d09 3f800000 -> 42ba24aa", + "3f479940 422dfa0c 41a9b348 c20565d5 3f88f7d0 3f800000 00000000 3ff79e05 -> 42b8efcb", + "c1eed817 4226699c 420ed6ae 3ee38b80 402b0946 3f3f14b8 bf2a5d53 3f800000 -> 434ee1f6", + "c1358d3c c232a67a 41671e08 416f7e20 409e5532 3eb94547 3f6ea6df 3ffe176a -> 441f7298", + "c2088772 c1bffb2d 404ab280 c22e70c4 400a139b bf55406e bf0da1e1 3fcae637 -> 42d3235e", + "41bca97c 41ba69b4 c1ffd1ec c193fc8d 40266db2 bf72d2a0 3ea22644 3fc74dba -> 435a61cb", + "c2325e68 3feb6740 c1509ca8 c151cdd0 408f4c29 3f800000 00000000 3fc00dbc -> 435e54a6", + "c233b8ba c1ac2370 3ff7fee0 c17d6228 400f6860 bf5190be bf130823 3f83d950 -> 42d889b9", + "3f12b9c0 c210fb47 4098abf0 c1129614 4079650c bf69c355 3ed0b7f0 3f9ff201 -> 42d9b50e", + "c2184c88 41f3e444 c22b6508 410a92e0 4082d6b6 3dd81b12 bf7e921f 3f800000 -> 42b6b258", + "c1b7072b c1e40c12 c1e392d3 41e7d808 400c4ab2 bf7ecaf7 bdc6a755 3f800000 -> 42fd34e3", + "419f1fd8 c0dc70c0 c238ed13 c1294ae0 4003b370 3f800000 00000000 3fb5961c -> 43412e5e", + "414d9538 4136e764 4235156e 41691c78 407be6e0 bc97c2c1 bf7ff4c1 3fcc7718 -> 430182f1", + "c21e6667 c0fb0508 c0b4ece8 c1c56fa1 407d93bb bf4c6fd0 bf1a1547 3fbd32fd -> 43270815", + "c1e169f9 c18b33d8 422e4082 42156c84 4044927a be51a124 3f7a9409 3f800000 -> 438a98cc", + "c1836df8 411a1f98 4183b3ec 41da7480 3f4299d1 3f7e74c4 bde0954d 3f8728f4 -> 41ebc350", + "421aca04 41439804 c20fedc3 4148d534 4022004c be982aa9 3f746ec3 40000000 -> 43553ddb", + "c2339618 c0942cc0 423e12b6 c0adc220 405e9552 3f800000 00000000 3fba642a -> 43ea045f", + "403870d0 c0a80830 41f48f90 41b30f4c 3f41bb26 3f800000 00000000 40000000 -> 423b56b6", + "c1ba5631 c210962f c207c687 41a40a2c 3f353506 bf2d1e64 bf3c96da 3fda92fe -> 425404e3", + "4218f4f0 41807434 c21c9271 bf7d8540 407cd98d 3f36af04 3f3356ef 3f800000 -> 439c8676", + "c219e678 422c9750 c1e0fd63 c2422d52 404fbf8a be6a50ea bf79352f 40000000 -> 440f42c5", + "40399060 420c36f0 c2382b58 c017cb90 408781f9 beeb6748 bf635661 3fc570b8 -> 43be5580", + "c176f0f0 42269078 c12f94a0 41c8e7dc 3f059596 3f7f89e2 bd75ce7c 3fdf3440 -> 411cfbf7", + "41df7c04 c2224749 c2394013 41c0602c 407b7334 bef71fd2 3f6034c6 40000000 -> 443896a6", + "41a042a4 c22f6797 41623c30 c2210ce8 404ad116 bdca8b58 bf7ebeb6 3ff88d32 -> 41d7a18a", + "3fdc1000 c1b59af3 40bb8a58 40f5cfe0 3f3c7436 be953fc5 3f74e1c9 3f800000 -> 41b494df", + "c153d970 4239b5bc 422cfd5a c159699c 40956f4b bef64eb5 bf606e45 3f82f38c -> 43c0de04", + "421dd80e 41c5b8bc bfe26ea0 41f1a054 407ce680 3f43ce39 bf24e9a4 40000000 -> 43917510", + "421b3e08 c1a7e7e5 41eec038 c18976f0 405a2a61 3f800000 00000000 3f800000 -> 4204d15f", + "bf9e0380 c2312195 41feb6ec 41fca0f8 40715746 3c832697 bf7ff79a 3fcb56c0 -> 43eaaf97", + "41bf232c c155604c 42384bd4 c048de70 4046600d bf637ed9 3eeacab4 40000000 -> 42dd4a6a", + "4217e552 419ecd90 409fc2f8 c2085f8a 4007d3ff 3e17e45b bf7d2b04 3f800000 -> 4306302f", + "c2064058 c13ffd4c c09f5890 c1f61c63 400c799a 3f800000 00000000 3fc0352c -> 42cda31a", + "41dc6d00 c0c347b0 420491f0 41ff54ec 4013bb7c bf3ffabd bf2959f5 3f800000 -> 42b16807", + "c23cc33a 41c7bae4 c20a78be 412a86e8 3ff2cc6b 3efd06e5 3f5e8ddc 3fca820e -> 421bb120", + "41d555c0 c23261db c22c3ca2 410fb588 3fc35e64 bf7ea36c bdd2f2f9 40000000 -> 4357a004", + "c194ab57 40c80550 c23654b1 c1819416 3f1fc4ee bda0f733 bf7f3544 40000000 -> 42097fae" + ] + }, + { + "glsl": "float cultmath_lattice_smooth_step(float, float, float, float)", + "tolerance": "ulp-bounded", + "cases": [ + "4043f529 406662e2 40366a88 3f1ea0cd -> 4044374e", + "40c17e48 40cbce9f 40a9d8d7 3f3d2b88 -> 40c17e48", + "40960ea4 40b20934 40823fc7 3f39909c -> 40960ea4", + "40d3b649 40db5755 40c3319d 3f5e8dc8 -> 40d46116", + "40a0626a 40c9f744 408e575d 3f6e7f9d -> 40a0626a", + "40d51fd9 40e67c59 40d51011 3bc44d35 -> 40d51fd9", + "40484b40 409ae7f5 4035cfea 3f800000 -> 40484b40", + "4091ff58 40986ff6 408fe35c 3e08c998 -> 4091ff58", + "40f9710c 41015b58 40e2bc55 3f35a5ba -> 40f9710c", + "40fb9f31 41185dde 40f0bbbd 3f800000 -> 40fb9f31", + "408390bd 40900557 40835df2 3bdb835e -> 408390bd", + "402978c9 4087a632 400f4c63 3f800000 -> 402978c9", + "40ddd2a2 4100f71c 40da33c5 3eb45994 -> 40ddd2a2", + "40acfd8a 40b536fd 40960fa6 3f376f1e -> 40acfd8a", + "40dfd6ee 40db6410 40d5f0d9 3ebbf29f -> 40db6c62", + "401af9df 40290f96 3ffd20ba 3f4f34f1 -> 401c0985", + "40bf567d 40bfca3f 40bf45af 3c14e242 -> 40bf567d", + "407458de 408d0c54 40546e0e 3f800000 -> 4076e7f4", + "3fcc6f8f 3ff8fa8d 3fc3aa24 3edfa15d -> 3fcd0b32", + "40f16811 40ff96c8 40e6ecd0 3ec54fbd -> 40f16811", + "40c0ebc0 40e7ca4d 40c07989 3e1aefe4 -> 40c0ebc0", + "4083d12f 40929512 40524a2d 3f5560c6 -> 4083d12f", + "410bbdcb 41165b91 410b87c2 3eeac2c9 -> 410bbdcb", + "411180c5 411c37d2 410b2e95 3f1a7f90 -> 411180c5", + "40c10875 40c13c00 40c06f40 3dd87aea -> 40c07ce0", + "40ff572f 4118e754 40efe260 3f800000 -> 40ff572f", + "4069f1e2 40859e42 4069cb5c 3e8e550f -> 4069f1e2", + "403699c9 40374cee 4036494c 3c01d11b -> 403699c9", + "403569f4 4061ee1e 402047de 3f0005e2 -> 403569f4", + "411f4e0c 412baec3 411f46b6 3bbe9b13 -> 411f4e0c", + "40bc26f9 40d1c4e5 409e36c0 3f6f81cb -> 40bc26f9", + "402de374 404f03d1 4020d431 3f5f0cdd -> 402ff4b1", + "411ce7e2 412ab20a 4116ae3f 3ef55f4f -> 411ce7e2", + "40326bc6 4032f6bb 4032104d 3be66dd1 -> 40326bc6", + "40ad037d 40bb2ef6 40ab9080 3e287e94 -> 40ad037d", + "40f5c2f9 411e4e9f 40f41529 3f4bf498 -> 40f5c2f9", + "3f7dba59 3f9cfe0f 3f7db21a 3bfdf6d3 -> 3f7dba59", + "400d1bb7 40773d02 3fee7a04 3f800000 -> 400d1bb7", + "401e7444 40612778 3fc1124e 3f800000 -> 401e7444", + "411b2e53 41201f88 4116f8b5 3eb69929 -> 411b35a0", + "3f099ecd 3f87f065 3e7e1d75 3ed0596c -> 3f099ecd", + "40c81663 40cd243e 40b75118 3f062a5b -> 40c81663", + "40cf4050 40db015a 40b6c38f 3f43e604 -> 40cf4050", + "40abc5c5 40cbbe2d 40a8e16b 3f069aef -> 40abc5c5", + "40df659f 410d2ffd 40da5ffa 3f800000 -> 40df659f", + "40129023 408aa761 3fde1255 3f800000 -> 40129023", + "401c736e 40505622 401c2955 3b9e180a -> 401c736e", + "4050a38c 407597f9 404f1d6d 3e99ea31 -> 4050a38c", + "40f01eed 411716ed 40d596b8 3f800000 -> 40f01eed", + "40cc2500 40e89186 40b50fae 3f4e0761 -> 40cc2500", + "411f4b0e 412faff7 41128cf4 3f691816 -> 411f4b0e", + "40abff2a 40e54906 40a54906 3f800000 -> 40abff2a", + "40e7c32b 40f9944b 40e4578a 3e2edc17 -> 40e7c32b", + "411315a8 411654f5 4111a383 3f800000 -> 41134f96", + "404347a2 4060453a 40206ef5 3f0b62b3 -> 404347a2", + "4108266f 411298e4 40fe9676 3f1e02ab -> 4108266f", + "40c1da6c 40db2367 40b2ed1a 3f800000 -> 40c26444", + "41131a8f 411d4802 41069a2b 3f480644 -> 41131a8f", + "3f9417a3 3fb99c91 3f93ea2d 3c00839c -> 3f9417a3", + "3ff7149e 4065a576 3f939788 3f7c7845 -> 3ff7149e", + "40e86afb 41055a1a 40db8d2d 3f7889b9 -> 40e86afb", + "410c76c8 411b7e10 410c6bff 3b5e32ce -> 410c76c8", + "3f3223d0 40081e7f 3ecf79e6 3f5dd3ed -> 3f3223d0", + "40ca97a8 40f917d4 40c7ead6 3f45f86a -> 40ca97a8", + "411a0cdd 411a354e 4119f37f 3c039dd2 -> 411a0cdd", + "4073f036 4088ad25 4065bec8 3f003e7d -> 4074056b", + "40a6c0b5 40de57d4 409e57d4 3f800000 -> 40a6c0b5", + "402420de 40412d25 40230003 3e71690f -> 402420de", + "401c6ff1 40513c26 4016961a 3eea9831 -> 401c6ff1", + "3fa37526 3fcaa15a 3f24eb97 3f21feb4 -> 3fa37526", + "40b92451 40d2cdf7 409aeca1 3f71bd7e -> 40b92451", + "41171d7a 4117e26c 410f0420 3f800000 -> 41167a2e", + "410ddd1e 41132859 40fd11ae 3f754473 -> 410ddd1e", + "4068e296 40963d06 4067a419 3f09abe5 -> 4068e296", + "4041ea2c 405c4a7c 401a0ea3 3f800000 -> 4044c5a8", + "40496c66 4089836c 403db027 3f2a1dce -> 40496c66", + "403046f1 403b6648 400bfa5f 3f113248 -> 403046f1", + "40a5f81f 40a532fa 40a21350 3e4ab2ae -> 40a48daf", + "4089ae55 40842af4 40715f54 3f4c03bf -> 40845b14", + "3f6e3e16 40137a80 3e90c51f 3f800000 -> 3f6e3e16", + "4107707f 411ee37a 41076623 3f3beab8 -> 4107707f", + "40ccf5d2 40eb69bc 40ccde63 3be73492 -> 40ccf5d2", + "4115ce83 411aeace 4115cccc 3ba671b5 -> 4115ce83", + "4109e0f8 4105cb03 41047684 3f25bf7c -> 41061634", + "402dc0dd 40317167 401e80d7 3ed5b92d -> 402c60f3", + "40298954 4045e9f8 3fe2f1cb 3f6041b9 -> 40298954", + "40825601 408e1c2e 4081f767 3e424c78 -> 40825601", + "4031a5d2 4043aab6 4003b2cc 3f37cc19 -> 4031a5d2", + "409fa325 409fbcdb 409f8e81 3b39696d -> 409fa325", + "4123a056 41309260 411440cf 3f75f876 -> 4123a056", + "402581fd 403646e7 40255fbc 3bae8400 -> 402581fd", + "41002bb5 4112577d 40f07b99 3f561263 -> 41002bb5", + "40345ff2 40755452 400cb504 3f66e41c -> 40345ff2", + "40017ba3 401e9df4 3fdef61f 3ec044b2 -> 40017ba3", + "40479514 40592621 40476a65 3bc2a938 -> 40479514", + "411c5754 41230df4 4113b4c8 3f0a28be -> 411c5754", + "40d8753b 40de9afb 40d1e934 3e5219a5 -> 40d876d4", + "406577f7 4096b3ac 4061c64d 3e726141 -> 406577f7", + "407315fa 4073a652 40730fa2 3b96afdf -> 407315fa", + "40d70fc5 4106fc68 40cdec0d 3f800000 -> 40d70fc5", + "3fc656eb 3fc86462 3fc549e4 3c469f88 -> 3fc656eb", + "4117f737 412bfb15 41125b11 3f4374ce -> 4117f737", + "4082286d 40ac217e 4074691a 3f800000 -> 4082286d", + "409a4b62 409f2189 409a32f8 3d9dd22e -> 409a4b62", + "40c2fc75 40ae1e63 40abfda8 3f572f53 -> 40ae96e8", + "4122a133 412721b6 4119f1e1 3f0af51c -> 4122a133", + "40d867a1 40d96528 40d82c8e 3c9c4d0c -> 40d867a1", + "40c55842 40bb8854 40b02f1a 3f3a9b74 -> 40bc573f", + "3f8114c8 3f99cfc9 3f6fedfd 3e076329 -> 3f8114c8", + "411fedb6 413721c3 411721c3 3f800000 -> 411fedb6", + "411804f5 413892b6 410ddb59 3f800000 -> 411804f5", + "4102198b 410130e7 4102175b 3a88f388 -> 410130e7", + "40bb3f1b 40bb7a2b 40bb3360 3b8d957e -> 40bb3f1b", + "4120fcee 4126675a 4115158c 3f534e76 -> 41217e78", + "40bd346c 40e01580 40bcca7d 3f0d2c0b -> 40bd346c", + "411406cd 412aea05 410bb12e 3f7772a9 -> 411406cd", + "40cc960a 40d7ed98 40af0476 3f6c8c9e -> 40cc960a", + "4077cca9 408b8547 4048ff78 3f3b34c4 -> 4077cca9", + "40ff6416 4103a530 40fbe5e5 3e3647b2 -> 40ff6416", + "40204245 40760226 4004802c 3f6303f5 -> 40204245", + "41092ed9 411dbea9 410445b4 3f494001 -> 41092ed9", + "40e22431 41020cd2 40c22685 3f800000 -> 40e22431", + "4001b675 4037f65f 4001a078 3bdd8727 -> 4001b675", + "40431ecc 40673ca3 4019e107 3f24f714 -> 40431ecc", + "408398fa 409d90f1 4083479c 3dfc5115 -> 408398fa", + "40b01c8b 40b03a21 40b01b90 3af48a62 -> 40b01c8b", + "3f96acfc 3febc639 3f38a720 3eff59ca -> 3f96acfc", + "40bb14e2 40bd4576 40baed48 3c048022 -> 40bb14e2", + "3f7480d4 3fa94dc0 3e8a72ed 3f2f475d -> 3f7480d4", + "40a9bf78 40b91793 408fd5be 3f537f93 -> 40aa45b0", + "40bea191 40cf12ee 40a85a18 3f323bcb -> 40bea191", + "3f9445fb 3fd292ea 3e6e51ff 3f76d36e -> 3f9933f7", + "40c672c7 40d91721 40b9c149 3f800000 -> 40c7bf34", + "40b9e8a1 40bf258b 40a9a9dc 3f01f62a -> 40b9e8a1", + "4117ea58 412bca7d 410cb17a 3f800000 -> 4117ea58", + "402d6551 404cecef 402d46a3 3e7d3262 -> 402d6551", + "401993d4 4031e894 3fd7d085 3f36ae44 -> 401993d4", + "40c9c7db 40feb443 40c682a6 3f6295da -> 40c9c7db", + "41184f17 411ec718 41101b23 3f033f3a -> 41184f17", + "40697819 40937941 40692d30 3b9eea23 -> 40697819", + "408ab4cd 408a4a11 408aae79 3bdf81de -> 408a4a11", + "4107af4c 4106819d 4107ad79 3b3e534b -> 4106819d", + "40921d62 40a5ef95 4081925f 3f1174d7 -> 40921d62", + "40cc7663 40cc2357 40cc3143 3c1bd992 -> 40cc2357", + "41110b70 4111dd8b 4111065d 3c081b1a -> 41110b70", + "410548f6 410d37cb 40ed2bca 3f6b310a -> 410548f6", + "4118fac5 4121f599 4111930e 3f03145b -> 4118fac5", + "40eb839a 41052d36 40d3878b 3f5e19ef -> 40eb839a", + "402490c9 402a4f32 402331da 3d63ab06 -> 402490c9", + "3f6e524a 3f9b8850 3eb3273d 3f14beab -> 3f6e524a", + "40ba6ceb 40c36af1 40a7cfcc 3f14e8f7 -> 40ba6ceb", + "3f5d868b 3f8848d7 3f5d25f3 3c12eaff -> 3f5d868b", + "40981314 40a9dbce 4080e18c 3f398c3c -> 40981314", + "403e0c6f 4053b382 401cb508 3f055d9b -> 403e0c6f", + "41113e48 41208c51 41113d3a 3baa143a -> 41113e48", + "3f94e77d 3fda27b9 3e5d6945 3f7274a8 -> 3f94e77d", + "406ad14e 406c4bf6 406ab230 3b621008 -> 406ad14e", + "409775e4 40b881e0 40815770 3f800000 -> 409775e4", + "41177681 411babf4 4109ddd5 3f598ac7 -> 41177681", + "4078e4d0 409e6630 405bccf2 3f4ea5ff -> 4078e4d0", + "405c34a6 4080625d 402397ed 3f6272e3 -> 405c34a6", + "411e957d 411eae61 411e919c 3b662a72 -> 411e957d", + "3f5ad660 401ef168 3f542bf0 3f53ccd9 -> 3f5ad660", + "3ff727a2 400b1a54 3fe41108 3e45328a -> 3ff727a2", + "3eacf8eb 3eae4c26 3eacc6ca 3ae7b616 -> 3eacf8eb", + "40f1f5c5 410467a3 40d2760b 3f7bfdd2 -> 40f1f5c5", + "41220917 412bbcf4 411bde13 3efdee18 -> 41220917", + "40c3002f 40d49b42 40a32958 3f7eb6b5 -> 40c3002f", + "41155ef3 411d1122 41154943 3d3b34d4 -> 41155ef3", + "3f6f42af 3fc6d18a 3f3918e7 3ed0a4ca -> 3f6f42af", + "4112b13a 412058be 4112af16 3b54a3b2 -> 4112b13a", + "4100dba7 4109850c 4100d5a6 3b064cec -> 4100dba7", + "3f9e06bd 3fd41bb9 3f07f090 3f341cea -> 3f9e06bd", + "3f79c586 3faf9476 3e993ae9 3f2d2812 -> 3f79c586", + "4110b725 41187d87 4107e8e6 3f0ce3f6 -> 4110b725", + "408fe86d 4098ae0c 407925ba 3f1aac82 -> 408fe86d", + "411fcdcc 413ad91e 411b77b4 3f036e85 -> 411fcdcc", + "40ea5350 40f4aa4e 40d3ab35 3f3540dc -> 40ea5350", + "411f24a6 4123ac62 41131ded 3f406b94 -> 411f24a6", + "40e3c40a 40f94109 40df3b89 3ed02bfd -> 40e3c40a", + "409c98e5 40a3d169 409c90a3 3bde172f -> 409c98e5", + "41047c0e 410fa820 40ef54f7 3f4d1928 -> 41047c0e", + "40a9c4e5 40b8050a 40998f29 3f01addd -> 40a9c4e5", + "3fbcc938 3fe910f4 3f30bf9e 3f48d2d2 -> 3fbcc938", + "409c145c 409fa156 40999d3f 3dc082ee -> 409c145c", + "4126dc2c 411edbef 411ba956 3f800000 -> 411f94ed", + "3f284bf6 3fc48821 3f272a10 3c163c9f -> 3f284bf6", + "3fc3a086 4041bff0 3fb46e95 3ec552da -> 3fc3a086", + "40a48468 40adff09 408cacb1 3f3ebdb7 -> 40a48468", + "40941a12 40944e36 40940a31 3b828bbb -> 40941a12", + "410e9c05 41224081 410cb762 3f2c48fb -> 410e9c05", + "3f9fba1e 3fd7443b 3ef5c403 3f44923b -> 3f9fba1e", + "40876ebb 40c3b051 4084a9e7 3f800000 -> 40876ebb", + "40ede6c1 4100f278 40e13a68 3f014b6b -> 40ede6c1", + "4109bf65 4117d3fd 4101a4d3 3f317951 -> 4109bf65", + "411f7cd8 4134207d 4113d7fe 3f800000 -> 411f7cd8", + "40d126e5 41055374 40d00f28 3f6a5f01 -> 40d126e5", + "4031e8bd 4075720f 4008c090 3f5e1835 -> 4031e8bd", + "411b79c9 41284e41 411b7874 3ac5e3f0 -> 411b79c9", + "4126b37c 412e4dbb 41189370 3f6200b8 -> 4126b37c", + "4100f60f 41073bb7 4100d1cf 3c1623ec -> 4100f60f", + "411f08e7 412b79e3 4115a9c1 3f325960 -> 411f08e7", + "40e36775 4108282b 40e04d04 3f7e42c5 -> 40e36775", + "40dc8e97 410c8616 40da1c20 3f800000 -> 40dc8e97", + "408ded4c 409cfdea 406883ce 3f4d5b28 -> 408ded4c", + "402d8fcf 402eca7b 401dc025 3f05bea5 -> 402ae57c", + "404dc3f2 406f3a7f 401ea496 3f3c7d70 -> 404dc3f2", + "40ca3a85 40d911f5 40b97765 3f061903 -> 40ca3a85", + "40a5ebcd 40dececb 409ececb 3f800000 -> 40a5ebcd", + "4046351b 4063ed1a 403f9ddf 3ee9d194 -> 4046351b", + "410595d8 4105adf6 41058e62 3b7c9c0c -> 410595d8", + "409ad8fd 40acb0b8 4084b2de 3f3130fb -> 409ad8fd", + "40aae3c5 40c42753 40a67bc9 3f0a7cf7 -> 40aae3c5", + "3f8658b4 3fd63ee2 3f8292ec 3cff5ad9 -> 3f8658b4", + "41153c59 411d3178 4114b6a2 3e19319f -> 41153c59", + "3fee6a52 3ff671d6 3fbe8550 3f67d949 -> 3fea4ced", + "40199dc5 40875ebd 3ff9f3c4 3f55765b -> 40199dc5", + "40fa333e 410130c9 40e0a64b 3f4c6796 -> 40fa333e", + "410fa018 412cde5a 410da648 3f800000 -> 410fa018", + "4006dfab 402535d4 3fffe954 3ec17ef3 -> 4006dfab", + "40e52c68 4103e814 40c7d028 3f800000 -> 40e52c68", + "4039ea32 406f49ba 40398fb8 3bee54ff -> 4039ea32", + "41265aef 4131e6c4 411719f0 3f740fea -> 41265aef", + "409264b9 40a6f898 408c7988 3f601d51 -> 409307d2", + "40fa1320 40f80836 40f9fd53 3b5e8bdc -> 40f80836", + "409a9dd1 40ae4f24 40767c58 3f7afd27 -> 409a9dd1", + "40976d3b 409f4698 40901ab3 3e72be4b -> 40976d3b", + "406371bc 4063a312 40636125 3b03d9b3 -> 406371bc", + "41159d5e 411e52af 410be175 3f1bbe92 -> 41159d5e", + "41186774 41268957 410ece6a 3f410c4e -> 41186774", + "410eaed8 411d04de 410810c1 3f27a0ea -> 410eaed8", + "40828f6a 409a1424 406f7342 3f5e3057 -> 4082d395", + "4115be3f 4120deab 41116cb9 3ef71f23 -> 4115be3f", + "406b6a82 408bd5ec 40300634 3f6d913a -> 406b6a82", + "40aaefac 40b38fff 4091e7a0 3f48405c -> 40aaefac", + "409e906a 40ab871a 409da159 3e5e5c0f -> 409e906a", + "409ba26f 40bd329a 4095f4c9 3f1cf745 -> 409ba26f", + "400f19f3 4057d6ac 3ff4d59d 3f3ad7bb -> 400f19f3", + "3ede1db2 3f789854 3d2e866e 3eedafed -> 3ede1db2", + "4116a22d 411cb325 41165124 3e4c4011 -> 4116a22d", + "40b275bf 40b2e530 40b253ff 3bcd5e11 -> 40b275bf", + "40ca1a46 40db2367 40ca0718 3e87e630 -> 40ca1a46", + "40bca173 40f119db 40ba564e 3f5b0e34 -> 40bca173", + "412142c2 413bf83d 411b7dc2 3f3e2241 -> 412142c2", + "411996d5 412f673a 4116e1e8 3ea9d110 -> 411996d5", + "3fed60f0 404c2b7b 3fbd0da7 3f3504cb -> 3fed60f0", + "40d48552 40edeb28 40b53af5 3f7a52ec -> 40d48552", + "3f1020c4 3fdaa14b 3ef93a2c 3e002863 -> 3f1020c4", + "40f98c05 4108d4dd 40eabb1a 3efbb972 -> 40f98c05", + "3fe99b2a 4014edf8 3fdd9842 3e98875c -> 3fe99b2a", + "3f34d106 3ed71de9 3de5dc54 3f574138 -> 3ee539eb", + "406dd12b 408085c4 40699828 3f0de8fc -> 406ed757", + "40814882 40b70758 406c490a 3f800000 -> 40814882", + "412268da 413e2f40 411e2f40 3f800000 -> 412268da", + "400f2f74 4081e894 4003d127 3f800000 -> 400f2f74", + "41078b27 410b6b41 40fde4e9 3f098b2e -> 41078b27" + ] + }, + { + "glsl": "vec4 cultmath_power_border(vec3, vec4[128], int)", + "tolerance": "ulp-bounded", + "cases": [ + "42b1bee0 c4a0e73d c27182f0 446cceec c4941705 c3269176 43804e23 c42c5013 44a7f184 c22dd11c 42f2118a c48dedc6 44a963ec c24cb154 43196132 c46805a8 441b0874 c306e1c6 43921437 c3524ec8 446b91ec 43406b9a 4372f7eb 440a44ac 446cc4c8 42c5ba80 434fc7b9 c4b27531 3fd94800 422dc448 42a02348 c410f4f3 c41d2d31 43435ce6 438ac009 c49e26f4 4332fd18 c27664bc 42ad2de6 c4474a9f 449350e4 c328d7ba 42f3ef12 43affe00 439eaa50 4320ce7c 42c92a8e 449a22e4 439071a4 c341de87 42dca09f c4b5efce c42c62ce 426775c0 43930095 c42c4633 c444ee8a 403525c0 41203ec1 c3d519c0 c393a1b0 430281de 43693553 c3f121f0 c483583c c32989fb 437b0443 44adbcd2 c3170b08 c206283c 4340fb88 c3d0f0a4 44958286 42bef1bc 4325bef2 44312668 438e6fdc c2fb30e3 4203275c 449b20ce c34395b8 42d8c6c0 4306111c c2312200 c431fa97 c2da9322 41a4d8ee 43daa73c c4b81834 427361c8 437dd7b5 c4a7c7aa c3e712b8 432277bc 437b7b95 c4a288dc c40fd7c8 c33542c6 4311992e 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000018 -> 3f62dceb bed037f5 3e63591a 42d8c4f4", + "c3ad789c 44b5f376 c3198b05 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c440a7d1 440381e0 c3336f4f 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "449eac48 43c3e9a8 c2227a38 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "449099be c39dbedc 42831244 449e9cbc c4aca848 c2fbbdd6 438f5c9c 445f2768 4361f210 41fad708 4164770e 44b8b246 44983e34 c13cecf0 43061e04 43105480 4423d2b4 419ca930 437e65cc c49b5806 c40ece37 c2c9dcae 421d0738 c426e183 c49202a4 40029240 43261116 44477768 44b2c9fa 42e789f4 433efc8e c43451e2 44b523fa c2ee53d6 434bc16f c4b29698 44b05c98 418ec440 43181cdc 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000009 -> be686093 3f7822fe 3dc23169 435ed26a", + "4431d5c0 4419b048 41c704b0 44b06af0 c48d249a 4248c8e8 4342c454 446c5a00 c48bc9a0 c2859d3c 4384887a c4404791 447d089c c28f2ff4 4256e760 c46d54c6 44604b24 42f9dc88 4324ffcb 43dcbe30 c469cd5c 43004ea4 436de896 44aa5c68 443f62ec c3443505 435620d7 4462c4a8 c38fa940 41f8ffd0 4271a072 c4a56864 44ab6e4e 4298bb14 434544bb 43d643e0 c419cf1c c29a5d38 43941e33 448e5a8e 44966340 433453f4 43802ed6 c302ad10 44376a24 c3419f1a 4250f82c 448ee72e 42501fa0 4308151c 426ea35e 442e3740 44aad624 c2d13f92 428bcfe5 4480a6d8 446f3400 430caaec 4290da9c c490b2e6 449e1996 4305e86a 430129ec 43144330 c47fa01c 4300401e 42ba284c c4849363 44037264 404b2780 4385da36 c1bfaf00 4473fad4 4277cac0 4362608c c444eac6 44b0b620 c2887098 428da6ab 44336d40 44886e9e 43012058 42b94ee0 43400f28 c38c242c c1bb1bf0 421fe26b 44240830 c23be8e0 42f22550 4378eec8 c32a3e50 c499152d 43152752 438fe956 c4a2a6a4 42ef7640 c29fe81a 42c06b6e 449ef8f4 442c19dc 4347adee 428b5f05 c4b7f8d7 44a956a0 428f619c 43888326 c4157ac1 c1b88600 433ba6c6 43836abc c1fc4e80 43d4e390 c11968e0 42a52f25 c49674bc 43154460 430ac184 424db441 44233a70 4422f548 41d8dc50 434a0413 448bb7b6 440a05b4 c1aec4a8 42fc22b6 44a9a88c 4413a518 428fe420 435448e4 440055d6 c4af6f34 c2ab58c5 414d526c 4488bb8e 43af8154 c2b383e1 433b9c57 442a8264 42cf4820 42f21fac 42974f8e 42368bc0 44a190c4 c284770a 43726276 43ad9fe0 43b7d984 430fb0c0 431fc997 4410c3f0 c480863e 41fed710 428bdb43 c47db9c7 c3f4634e c2856a14 42d0b828 41946ac0 c425c15f 4335d2da 43391ca5 446a55ec c42b4dbe c2ef6b18 430e9edd c3d7d604 c2ca6d70 c236e274 4315b764 c4296344 c4472bb4 c207322c 427c62a3 449b7bca c3edf188 c30d3c3f 438d8d5a c3e19564 43d81684 42e39658 42d35101 447d39b0 c47c7bbe c34631de 431f03e2 c30e6340 c49dcfed 430b3a3a 4322fcfe c4222be4 44a8d5e0 c31d7e4b 430c05ba 436ff6b0 c461e274 c209adf4 42a14c44 442c95f0 448d6a3a c1af4e48 425567d3 c4455916 c3b7d4ec c2ce1ceb 430efd17 44355308 c39b2e0c c2a66103 4377e528 c46860b1 c3a2c2a8 433e4e92 43820218 c183ca40 43bb0e04 42d4f5d4 43463c97 c42eb03d 440c2948 c346170e 42b4a056 43b14a50 44864e8a c2f197b9 42cfdfe9 c48b6f74 44af2e5c 4224f6f4 43599529 44a04862 44973c48 c2e6b340 431306bb c461de63 43ca7eac c322ce2e 430f7460 449ddfb0 4309cb68 42d9a9e8 41d1e5fb 44575b18 c4b118e8 c282180a 4386615f 44b1ec36 c43fe4e1 433589a6 438f842b c34a23a8 4446a4cc 433e9d30 41b44cae 448b9fd6 c478cb34 41484830 42efa809 c4706c38 449ce9f4 c287ac36 436aa382 445c1538 4364ac10 431d29b6 42ba623b c4701949 411c9d80 4282a07c 4381a118 42be4cc0 c4117dae 42b679ec 435b2238 449b8d00 44a84b48 c0828cc0 43353b39 427939e0 c411b3af c270dcb0 43852f3c c4b682b1 43ddba30 c2ad7452 42649289 44a008ea c478b4b3 422046d0 4196ea34 c4949c90 4420b394 c2af6604 412be084 c4555bb3 44ba8c7c c2bdf66a 428e54f8 c488f002 c4a88ea5 42a9ed94 4312a5b9 437292a0 c4982020 c1f49508 423add8d c4adb6c2 c4377630 c314a0b7 438aea15 4405db0c 44a550c0 430f2dfc 4383aff3 434eed60 c320ddb0 42d10c7c 4250ecff c41b37ef 442cc238 c25fd360 41553fcb 449728a2 43c71348 42cca5d4 43770f57 c4b20706 442926d8 401014c0 438a039d 440bad94 c425d655 c18e0460 43125fb5 438bfb30 448dd94c c29d760f 438a404a c44ecff9 c480c8e8 c315ae22 434cb2e3 c4ac83ae 44047816 c26ca6e4 4264eb4d 44859eae c38b6e30 c1d48808 43690d48 c445e2bd c48fa792 4327266a 42fe9a6e 440ecdcc 4416b34c 41d9f1f0 438e7afb c3f2376e 439f2e18 c31f75f8 42c88307 443b5134 c458ae5e c2d226e6 42fbc333 c23157a0 c3a8755c c2afb136 43524e7b c485cc5f 4480606c 43288cda 42464d91 439cd170 440d8ce4 433c9b14 42975974 c424881e 438b6c2c 4338738e 433d4832 c41c0945 44315ce4 4290f2f4 432f1a09 c3d07cb0 c4a85364 42dfe12c 43866567 c40e621e c3d97360 4200b8b4 433d41fa c4a6ca4f 446beddc 4328a5c6 437a5f4d c3360dd0 44a9b032 428e1ca4 4311e6bb c48c007b 4436275c 424980fc 42f8699c c464573e 44530e24 42eff450 4127c15a 442c1088 c3ed88f8 42860358 43623769 43d97cc4 c24a6400 c3404a2e 415d9594 42b36ef0 43fbfda4 c3389136 4307e2da 43a1c470 c3a800d8 c23f1bfc 436e91dc c43295bd c41390df c32780ce 436f179d 44485610 c486021f 42e5b828 42d24f9b 449bbd9e c1b3ebc0 c05843c0 43293bb4 c4920bca c41f78a8 c249f78c 433215a0 c43a9bd2 4450a230 c306d022 43916f2d 440ca330 447b2864 433d4162 432fe819 445d78f0 44992142 c2a0d41d 4369aee9 449b3854 c4405673 43104fe6 43603668 c3ce870c 447d5384 c3133a95 4386622f 44161fa8 c4b7c2ea c2d45ad7 43342a2b 43237b80 c3f0e8ba 43041b2e 4258e2ea 44b857de c2b2d3a0 4321176a 42a0ab73 c41a5524 c2f61e40 c2fdadbb 437a9a76 c44e3a2d c383eef8 c31fbcec 4305d535 c3fed6ee 41db9b80 4345dee6 4381857e 4480e14e c4b5908c c20946c8 434ccf5f 43c595ac 443daa90 c2fa9685 42b235b6 c4813569 c25e5ae0 4317c654 429fe82a 4302dd70 436493e0 c2099228 42dde93f c4b9c54a 44707cd8 4200d0d4 42d08f00 c4b964b2 c4a656b1 c1129220 430deebc c4a4c1ca c4afd51d 40ae8260 438eca0c 00000080 -> bf5b80ce bf03bc48 3aba7ab0 43054d4c", + "c4800f5d 42792ea0 c2d10b89 c3ba5174 44365228 41777730 438b271e 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c4a4ff0c c1e18d80 c2865a6a c49ad753 446a9088 41fe8a10 438d8b45 c4207753 43df41b0 434735e2 43643c02 c368ce28 41e2f600 432b74ca 434c2d4b 44846e7a 44577000 4177de20 439017d2 43a6aa88 4396ea1c c2d098a0 429d2ab0 42d5f930 c3146c68 4327b5fc 4351a478 c44d8e3e c4791fec 43053d3c 4383ed0e c3673510 4481ca12 c2a0178c 42da40de c4abdfa1 c3ba80c8 433bbc68 434aa904 448cc60c c48ee35a 42c40dfc 43826538 44a99778 44b5b7c4 c2adfbec 41ca5948 c432382f c3e76c8c 4110e090 438f98f3 44bb79f8 44aeb938 4197aab8 438a6c2c 44bb4a22 c4a9e622 c322489d 43429a93 44938da6 4492aba2 42ac9b10 42312012 446cce08 c48d7f3e c288519c 43312005 c459d23e 43823c88 424ca5f0 43147893 446e6ebc 448c64d8 c326741e 4318b8e5 448553fa c3bc4fc0 c2ac999d 4329d048 c478feec 448973e8 c1eca548 4384a157 43d9cb88 448d7854 43162a72 430e87cc c416f7df c3b467e0 c27c3244 43953c8b c423f83d c3fad660 42d8b230 4393b84b c3913020 43be4904 c33460aa 437a9346 43e87810 441aab80 43094414 434de8d0 44235bf0 c4aa9183 c310d381 4239a456 448f4612 c4a6c7fa c32e2784 433f3e82 444503c0 4301a0e8 c1493880 418e7d26 c2d18fe0 447ba954 c12cb4a0 438d149d c43d8e11 448bb998 c2b1eebc 437aa77b c43faa2c 43c7c190 c2f31c2e 4316b06c c494aead c4962745 c3246cc8 4298a318 c402f2a0 c307f5c0 431e70d8 430fea7a c4b2bbec 443bdfb4 c3070a9e 43380365 44337d38 443b6554 41efcd70 42a134c2 c40aa9d7 44230c48 c2d65c85 43601150 448894b8 4436f38c 40f5c980 432e9f09 c481cf2b c4920951 4203b21c 436ce3d7 c35612c0 c4b68104 c1dc78a8 420a2f21 4482e3b4 43e53300 c33f2f25 436ceabf 44aede02 447bf274 c2a056a6 42c6a4c0 43dca944 c4b8f519 c346938e 43593a03 4401dd3c 448bdd08 c2f0aa7f 431a3ee6 c417c0f5 c4aeb3f2 40bc8080 4322d82b c39450fc c2fc4fa0 42417884 42e48e3d 43712aa0 427f56e0 c32a101d 42909a76 448ba38a c490daa0 c33abecb 414ea571 c4077403 c49e5788 42c8ce48 420c5cca 442addb8 445b5978 c2b24877 4314f6c4 c37689e8 449f040a c32393ca 43815402 44344838 44647880 431dcd88 42b6e804 449a469a c49ba88f c0c39d20 42f8d1d6 c086c800 44978518 4292d0b0 42f6d51a c4af8b7d 43f3b104 c2ee554d 430b0f59 4443d0ac c49bb89f c1cdf700 4324ae7d 44b19dc6 44b91092 c227b6cc 4336aa4d c48dc3a8 c49141c7 42d7a978 431c81bb 4440bc0c c4ae2c16 c31c4eee 43145a72 c3c7a9b4 44459cdc 423eb95c 436af884 43be2818 445c7a30 c29d4146 436e5cfb 43c181ec 43cfee1c 4092a660 4302730b c39ea56c c3d21ff4 c33224f6 41e7a2e8 438792dc 44791578 42ae7ab4 42d52f42 c20b2060 432d0408 43198450 436297a4 c387d3a0 c416aaea c3086f82 4371a37f c40a8000 44b3d21a 425c0f48 43104939 445d1e2c c45c2bc8 c33e5206 42afab8a c4ab4730 c35d0880 42fe9c50 43913b63 4452fbf4 43de43d8 4321c080 42d65045 c25769c0 44b3f042 c2ef1221 4366fe3a c4a5bf20 441929ac 4325ece2 438b1b16 c408eb34 444f1d40 4343783e 4374ac74 448e6264 448b9fe8 c255e678 42d20b25 43ca9684 41608280 c13264e0 434659a0 c4bb180d c4a9596e 4240d488 4280ec22 c3f66c60 4456ae88 c33f28c0 42664f53 c4b64e89 443c3c8c 41a5a590 437daaa2 43e5f02c 43124e68 c2bc249e 43069676 c496c4f6 c39ab37c 42c0988c 433b3947 c4a33bf8 441f8098 c30dc12a 4176a2c4 c453ad3d c455c3ee c2321260 426e4634 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000051 -> 3d3a35b2 bf7188c0 3ea811a8 432f3ac2", + "c3e24b28 442b3468 c304479c c437d3d2 c3f916d2 c1d45440 42e46768 c4b67d09 c35d0498 c2b6962d 434fd037 443c1094 449a21d2 41d4abc0 42962516 c483d54c c48106f9 c2874302 433a2da1 44a3c326 c44ab71e c2d17223 43678a58 448760ee 437e52b8 c2a94500 4387e77f 4398c560 44b04328 c317b468 42fa9254 4483b0e4 c4947b2c 4114c730 43037ce0 c428a71c 43f644a0 c2229144 429099b0 4478616c c4a1239c c3262a96 4391ba65 c2ba2190 44a0e020 c294d5e3 43727a8d 436d7640 445cb67c c32c45ad 41d90043 c4a5d4e6 433e3ea0 c316ad02 42ab50ce c4984ce1 42186e60 c293f795 434c55e3 c4aa6d5d 42b92770 42cdf9d0 41b4875f c411cee4 448c5608 43046028 43458b35 c3a85768 c4842c85 4333b406 43166fea 44412624 c48ff6ea 42dd11d4 4382a0e8 c48513a2 c42e426a c2a4095f 438c2426 c42be2cd c21eda20 c28d17b6 43743184 4496447a c4a45e23 c2803232 42bae6c4 44b44706 c4323b59 c28bf434 43671a96 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000016 -> be0dcfb1 bf747c3d be864105 42e3e7f7", + "c48460b6 c3f0587c c1f5c7d0 c4ac07bd 43f76c98 42179910 4219c098 43fae11c c3812eb4 c1dad2c8 437f0eb7 437f2908 c414dc22 4330acd2 436e40a8 c43651e8 c4901705 43027c16 42924b46 c3af7364 c3970b68 41bc0c70 428c30bc 44a8b700 c48604aa c2cce0a9 4324ff64 430188a0 43f8f1c0 c315d586 437884d1 c46ae074 c488d3aa c33c4be0 438e48fe c28fde20 4320bbc0 c31e7316 4338c8ca 44162778 447a75a0 4225b490 41f9173d 44930196 44ad73a0 c29378de 436672b8 c398e630 40033200 42b31104 42520d8c c05d9a00 43060948 433a7122 42d2cd5f 43a5cda8 c4989755 c25b5414 43874d51 c36cdc50 c4a4e5af 41afa150 4125fc57 c41ea6ff 43a3b564 427d1c98 430c7a6e c42acdde 44b995cc c29727c7 4355f724 c4b70b21 c44f5ea1 40e08c20 43293c36 445dcda8 c2296d00 c293d559 43942b1d 447537fc c24327a0 c3116fe4 41b29668 44a5cc76 44b38e7a c28d1800 43443962 c4783b72 4416379c c282fe48 42f219b4 c46801aa c45d11a2 c2feac6b 43439483 c425b430 439969e8 42e3894c 42b811a6 c412be24 4489268c c09ad180 42fdd734 c468c784 c4b3cf9b c3121d5d 42b3b24a c4b152f2 c378f240 4154ae90 4238995b 4450695c c3baac4c c32b5457 438ce8ed 449ef336 4214ad60 c33055fe 42c79841 c420decd c4b57bea c2af4770 432fdf2a 43edf3f8 44a08be8 40a23040 4373ed25 c4abce7e 448d9ab0 c2b7facf 4284353d 44171878 c4af603f 42926b9c 4390609c 44b9efe6 442eece4 430d2596 438aa2bf 44810a02 c4a963c4 423806a4 436414e9 c479b4d9 c4584c06 42281458 43766185 c48969c0 c43fbd0a 42acda08 436855b5 430158c0 c2975ab0 4346f2d2 42bb36da 437e8048 449bf99a 42c3a16c 42abac0a 41bbfec0 c400f270 c2d53551 425572d9 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000028 -> 3f055da9 bf585ef7 3df46192 42e39904", + "4368dff0 43edee60 c1691d50 c4921483 44a58dcc c2f77e5e 434942f7 c487ecb0 c2cebfb0 c2d23af5 42fc9864 42ad5f50 c38ea140 c1a97ff8 42cf6214 44142c58 4401cee2 42ee0010 426364e7 4120f900 43e18504 c2daa69c 41a11b2d c39de99c c3b96a60 c3280a59 43945c62 43890ba0 c3814fa4 40cd3ae0 43764b15 c2cf0cf0 439d8518 4302ea58 436ea398 4486cfda c48d883e c33ec152 42c3aa62 42989710 c49351b2 c21711fc 414ad6ab 44431e8c 44913a52 c3319fea 431e321f c417dead 44a46934 42f8370c 4347f2b0 c3400828 44b6fde2 4265d288 4351eec6 c4639ea4 441df198 c2a1c25f 435ee0dd 44879780 c45f8c09 c32cbc82 435be299 44a890cc c368c6e8 432e36c2 438af681 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bf6cf2c1 bdddddc1 beb9b6ac 428a680e", + "c4a7e2f1 c471706b c252d180 c180e9c0 43cc2c2c c2261298 42a1f6c1 c453e8d3 c428e652 403ebdc0 42cddc9e 434ea318 440f643c 4274b1f0 4339059b 448763e2 c3b5c700 c10fe9c0 43906637 c487ccee 4389dae8 c30c6ff2 43792fa8 c41e36a3 c3301e90 c28d345c 41aa74e4 4408611e c4a51a7b c281cc80 438f0091 c489fa9c 44a285ec 425e37c0 4313b51b c4468939 c4b99d57 43308b56 42e0149d c43d6c99 c32606c8 433f9f08 43086124 4459c338 c38194fc c2a5d73a 431e1df9 c37e5370 c48e6b10 c3249ce4 41b5227e c2fbdf70 44ad70c0 c1c0c4f0 41eac8c9 c40aff88 443ba71c c25e888c 41cbbcca c40c88d5 c3d62d94 41c95d10 425ef777 44a3e4b4 43272268 c2f948ab 43424a56 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bd841513 3f79c99b be564656 432e083e", + "4470fe0c c0717a00 c2d44a03 c48c618b 44207478 429a90e4 433bba03 441fd62c c4ae96be 43162cba 42545e9b 446a8f34 43b9a5d8 41c53008 4391d509 c41a617d c196c380 c3042e40 4319277e 43588190 c47edca4 c0bef480 4344cacf 44918276 c4acc8bd 431c1680 4384d9e2 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3eebcb13 3f632e6e 3ca00990 43ed6863", + "44ac6dea c49853ff 433d90de c2f95330 c4452472 42c9956c 429ad2f1 439f3510 c3fb71b2 c2c92548 43628007 c30a6620 43985498 42ac9e7c 4316ca07 4497c71c bec03000 42bac270 41260e2c c46b2513 43d655c8 c32f33e3 41777309 c4864e88 c26e6480 c340d759 43850ec8 c45812e3 43144948 c3256fca 4378e0fc 44699b58 445aa538 c2e4805e 4371f07f 43e15474 c1cee500 c2691ebc 42f43d99 44683b2c 443319d4 42966aa4 426329c7 449dde1c 44395000 c318ade8 432c00bc 4449fb18 c4800368 43415060 43266aa3 c480b60d 448ea8f6 4257c268 4381193c c4758419 c45c38f7 40c4b0c0 4392daf0 c45290ab 448a4efa c33fc752 41d390e0 c43e873d c36174e0 432e07d2 434a141b c3a93abc 449bfe58 43061aa0 4301dff2 c484e8d0 c3e5c22c c2f6ab50 430bd333 44aa9374 44963dfe c320da79 42f8f6c0 c3cf406c c2f466c0 c31a75da 41cb9663 43466e70 430d1f58 42858f54 438c008b c480bef3 c3d437f4 424b6ef0 430ab76c 44b2813c c3ba0494 c3050cc7 438d6b32 4423af8c 43c4f788 43262774 4319e0e1 446a0154 c3041d40 c3036b80 4380bb6c c40478bb 4351c558 c229ee90 4374e224 440d9284 c46a9dfc 432064a6 42b1c280 c492cfaa c48e464a 423a5e10 436664ec 443f3af0 44af3b2c c0718500 4354afee 44416c68 c4b9fd62 4010f380 41927d69 c41e5f51 c3a2e28c c1c87c30 43692e21 c4706920 c43addd0 42b78a30 42cfa9e7 44b5f900 439899d4 420469cc 438859e8 c41f2347 c4339b61 42b7eb5c 439573b1 c482082b 4485e0b2 c2ce2bd7 439193dc c2fec590 c3d947dc c283b90c 438108e2 4442a19c c38ae844 c2fb52e9 4363c79c c486b86c c454a6f1 42be9674 4374506a 44a8dcc6 c485f416 41ce5ca8 438c2266 c489c8c7 43ba4efc 4250c8c0 4308ff11 c2fd7c50 43684650 c2aa9bd0 431cf692 42e30e90 441df4fc c13226c0 431963f0 c444f64e c187b540 41922778 4387a110 44444e58 42d8f860 41e396a8 438c629a c4a679e6 4375cf58 c343f7f8 4369e58a c4a3200c 44b36c2e c2fdc003 4368f375 44884fee 444e157c 43363a6e 42503ac5 441306e4 445f741c 4311753c 43236c1e c44d1cb6 44644690 40966020 43849dcd c4a1d8ed 44766ec4 c291f1e4 41c17220 44a33634 440f8bf4 40add560 434574be 440017d0 447d020c c3358130 4302199c 43570210 43c43238 43165bec 4329af68 43ab30e0 4486698c c24b5468 4314fea7 c39e14d4 42574fc0 42653b80 436749e3 443f4770 c401a56f 42eebb1c 43097074 43c40d08 c4b54375 428b7fb4 438fd1b8 c4b2584a 440f4194 43121d0c 4297f139 c430b964 44acf138 4306bafe 42ecb0b7 c2d2b930 42da7960 c320cc32 418cae2e 442b67b8 42f89870 41eabd60 41e75a73 449e43e0 c40c3ec8 4325f752 42e97d2a c34da780 c4af543d c0b99720 4329a27a c46c051f 43238398 c2a4e96a 433a58d1 44935e44 c49fb30b c341b85f 4347b4d7 c47cc5ae c49a2d00 c23070e4 4384b224 444722a4 43de9dd0 c2aafbbc 43475ada c4b365c2 44bb3e3c c3423c21 43817063 c3703098 43afac20 c33a30be 428fe440 443e5630 442ee1a0 40deca00 42cc433f c4955b52 c4114878 4125ec00 4394d579 c45cde91 c40ae2b3 c33720c4 4357dc3c 43fafa8c c44b7339 c0f809c0 42f6a1bc 42788de0 c3287658 43114624 43438185 c4829c04 44108570 c2a0385f 42b2b480 c4b17964 c4328646 c275a2c0 43075198 c4b4bbde 43bef378 c313c9f7 432ec68f 426fc4a0 c49d679b 430db96a 42616038 432a3058 44148100 41a7d298 43813802 433cd160 c39959a0 428c1f78 430cb38e 439f58ac 43653920 43424064 436feeed 426050c0 43b980a8 c282029c 4392887d 443e7290 c39dba3c c32f3da4 41ddb8ea c347a618 c4402b06 c2a73ba5 437d86e6 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000054 -> 3efdf64e 3f181962 3f221a96 4381cff1", + "c29c1200 c4689695 420b4dd0 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c49eb950 443e74c8 c340fbc4 447a82d8 447207e0 431c8f7e 413e2d5b 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "441dccb4 443b4218 c30f39ba c3150440 c427bf01 41ab8890 438972ea c39e701c c41da3d2 c30a39a9 437622cb c48c934c c4b49dd2 42ea9428 435ca4b2 c40c48e3 c38b6e2c 42aa283c 43870bcd c2b91d50 c36471c0 c32138a5 42ae8380 c489e8b5 c3aa3644 c2224c44 430359cc c462977a 44593d7c 40bd2de0 420a3d63 443991d8 c4086a7e c299a281 41b506c1 437d42a0 436521d8 4308409e 432d6387 c38cb05c c46fbc96 41fe8730 42bb44a7 c4b04df3 43ef9700 c32e1998 432eecf4 437398e8 438db034 4106ca90 43028ab0 c470f8ae c4926322 422c245c 42d373b5 449db912 4377e1d8 4160ff70 41e4058a 448daa60 c488d14a 42ac7348 43395e80 444e4680 c4a1583f c32d440d 43740930 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bf7fd736 3d0eb309 bbb55490 431313a5", + "44b20e9c 422050c0 43380afc c4838474 c1e01b00 c2a8f67b 437ed9b7 44676a40 c44596c0 c12fe5a0 42cea132 44776420 447cf05c 42257858 42afc89a c49654a2 44983e88 425c77b4 43580d3f 44b33338 c48d64ac c347486e 41afa244 444f9f18 440b39e4 c2b7281e 4310c9e1 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> bd900f8e 3f7ee908 bd73f461 42d6faa5", + "4482f796 c4b077e3 423e5ad4 44865db4 4478a420 c197ed78 436d8027 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "441fe5c4 4491708e 41adfc88 c4917c0e c3e6e190 c32ef1af 43613018 c4a987b1 c41792ec c31b2474 42d6f465 4403efc2 c47c2d8e c1e30fd0 4217efc6 442e6648 43be16e4 c30ff14c 4353a724 445930b0 c2da1650 c2e0503f 4378f65f 448a8f56 c4199ac8 c2b2d8e8 43848bae c4a37ba0 44b0d45c c345b537 42570a23 c23eb560 c43b9873 4316a072 417753b7 c3a26750 c1bddc80 c343a2cb 43482829 44b377d8 c4ae7310 425c5810 43921b6d c3dd089c 43d008fc 4306fa48 4370f09e c47c1d35 c47e1355 c315b076 428ac7ff c40cb738 c49a1386 c33022ef 432e1272 c396f460 c17a5d80 423a0e34 4376e2be c4a162b7 c46dbd2a 428e62a0 42009828 c41bdf25 44acf7ca 430ccef6 43058d6a c41f9a62 c386aa78 42a3d018 429f750e 43adb95c c23ad680 42ad6b24 4364e346 447473f0 c43e288b c1374540 4299dda0 c2fd8080 c26ed800 42ac9f28 4387e86a 4481a9cc 4461b388 43076828 42f91648 c46856f3 c40de62f 423f218c 43870eab 448ced3a c46573e9 4209b854 4370b6e3 c3d6c52c 43380580 4290c904 42f7028c 44570070 c384e5dc 406a3440 43648d22 c30299b8 44907ffe 420e5de0 437a1aee c3bf76fc c412584e 42bfdce0 42595f96 c4b2b7ac c3abc708 c26171a0 4334f79a c2c492f0 444e6060 c2d783f0 4318755d c48d79dc c300dea0 c2d3563a 439293c6 445a130c 4466dd48 c25893d4 43044ef3 44956218 449df3cc c2234148 42ad774f 43446c00 c49d831e c1b2c568 41bb872a 44b09afc 44ad4e98 c1abb108 4390435d c4580877 c4b78973 c33ef3a0 43855fd6 4354eaf8 c2c8b510 43156926 43183191 447b3958 44ba332c c289562a 4332adc9 c3fde5da c468b0de c2b9113f 42d32ecb c4735217 42c485e0 433924ca 43461b94 427854a0 c4799497 432bd666 430cd56b 44989726 c2949bd0 420be504 438dccf5 44a58160 c40c7021 423dc034 431c798f c4006221 c42c5f4c c2b09370 422a1bbf c344bb70 c3e04464 c2175314 42d00bc1 44a2dc12 448c5e5c 420adc40 4387c3a3 438b50c0 446d3c5c 432d8b76 42edec2a 446979ec c4908f2e 43144f72 43091384 44bb3c1a 445f4638 c1c0d3f0 41b7c5f0 c49d2273 43566928 433f5f80 42170f2a 448e2b02 44a14722 419cb878 43217151 c3b71784 44726ec8 c2c5bca1 41dc826a 4499ecac c480cfac 431e14c6 4379463a c48bc029 43cff69c 42ab7be4 43457319 437150b0 c4b115ec 430f4f36 421116a0 42f83840 c4583886 c31323c1 4379c889 c32e1458 c46fb323 40144cc0 43240695 4477d260 c4471659 c33b865b 438220ca c3bfea80 c40ebd2a c1afac18 4133927a c402fe82 c4a3491f 4118da80 43693195 433e74c8 448bfc90 c15e50e0 4347e43a c4528551 c4aa5d92 c2974f68 42e52d63 c49c3ef6 445c05c4 c16488e0 41cb6e3d 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000003e -> 3f75999d be8d8323 bd67f7a3 4236a3ee", + "44afcddc c4a41f68 c206a54c 44269a1c c49d68b7 c2f1f821 42cc1f12 44264784 c44a6603 428cbb6c 42395daf c4af67f2 c30cea98 42fe1ec4 428440ca 441d9a44 c40638f0 40cb1800 431c20aa c49a428a 42a2a5f0 4286753c 436277e4 c287e290 43a14ce0 c225f314 43831541 c4851254 c31ca9b8 c3392c79 43696004 44b33e92 c4835776 c0ca0660 43650a43 44504520 c45c476a 422520cc 4393ba4c c4023dc6 c30f73a8 4308b63a 4344845b 445902d0 42b0e5a0 c2fa5b20 4335df62 c1a2e940 c479aabe c24ade3c 4312f986 44a828c6 4313f198 42474a54 42e5395d 4490dca2 449ddcca c28f8b14 422cf05f 4409f884 c400ffee c30313a4 42b2e0a8 c46632a0 44981f00 c30d115e 4384f636 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f748416 3e84de27 3e121f59 43a4db21", + "44a70b8a c44ceca7 c2ebd5c4 42bd39c0 c471d7ae 425a5500 4350bec8 c4b2289c 44ab6912 433325da 4303f052 4463b68c c3b982d0 433f3672 41fd018d 434237a0 44716024 c1e44128 43224ec9 c48d3160 448a6130 430eb0d2 43856e11 c208c500 c415b953 4347567c 42b653c4 434b8ef0 c315b8f8 43197a08 42f1a5fe c4129476 43b9c790 c1dd3540 4363dddc 448a8312 443edf04 c204fb08 42eba098 44b70980 44038d52 43108e20 4390c2ef c3bef2b4 441197d4 43182330 438efe27 c4654aea c4617bcb 424d5430 42093bd4 4423feb4 c3d60e68 430a2150 42842138 43315bf0 43b12d6c c2d89dde 429a140c c47099d7 c3d72024 c319027f 4330b27a c49ff957 434526d0 c319a1f6 427886d5 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f74ce1a 3e5b578c 3e4bf172 43bc16e8", + "c4201286 44926d10 42f59658 c4a629ac 42de99d0 c1a62270 4143608c 4493520c 421c4540 42eb9530 4303ce9e c4a9ffa8 c49b6697 c2526768 43784f9c 4460e6f8 43f53d20 4332e7de 436bc5e5 c444d74c c466e43c c2c70099 432253ba c46bb636 c4669215 42526cf8 432bcc81 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> bf7b654e be2b1141 bdb42a90 438026f6", + "43f5d1d4 c3976a00 c2e137b1 c4b92ace 44af50e0 4345a8dc 43773eb9 4406280a 43f2a41c 4300140a 42fa668e c46bb911 43f965c4 c31df632 430813e5 44695bd8 c489cd44 c2b73648 43633422 443dcab8 c429d9a5 4320e3d0 426ba382 c3942518 441bee60 c33a26a0 438f52f7 c421441f c45293f8 4311bb0e 43884f49 44924ef6 4425ca68 c3470bc0 4356c04c c454cba6 44249580 c337d1fa 4230fbb3 c3bc7a2c c4ba1f22 c3179a2c 4128091a c48bd969 c3b21278 c3334353 4322814e c484b179 c4998e90 c248af0c 41db4d54 c3d13410 4467b634 41567de0 433ce959 4497c8e6 c387ac24 c2a086aa 42c10575 44a25514 c4ac6dc6 4153e3c0 430f4c1c 445f1354 449b7ab4 40356a80 4310bf83 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3e401c4a bf7b5ad0 3ce29935 432076ce", + "c3f208a2 43ac7bd8 434542ae c48229fc c3bc0e40 42c7810c 4258f1e5 44962f52 c4abe7cd c34004f7 43484250 41d1d680 4466db18 c2f46ddd 437ef350 44643648 430728c0 c327846a 4280c5eb c3abd398 4461f598 42f56074 4303d470 44359a48 c46c1915 c284ac4e 431276f7 43f205dc c45dc6d1 c2e608c8 4383c241 4382ca7c 4487bffc 42c5acdc 43837203 c422d864 44af7ca2 c2e9e455 4307f3e0 445519c4 c2d59d40 c3464b1e 42e96ba3 c42574ef 43d55ed4 c1f2be08 429ac817 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000000b -> bf093c1a bf4dc7fe be8402c2 4346ecb6", + "c337bc70 c486bba8 c3200b45 c4272b20 c4262d48 421c71f4 430168d9 4400b298 c3e11638 433b13ca 41ade479 c425e410 c1d36fc0 429cf4c0 437a727c c484d7bb c4a1ac52 426aca18 41dcdb1e c4052e14 433959e8 430686f0 42d7b3d2 43dc54c4 c390e438 43286baa 43712238 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> bf7a0288 be35488c bdfa10cc 436c7e83", + "c48a0751 c4aa1d80 c2e7152b 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "44b1603c 42b94f40 c2c7f54e c40e6fa2 437ab500 c30c460f 430f7b2c 43a6ea0c 43b108c0 c2d00bea 42f86ea2 417f7500 44b173ea c2998afc 43264356 c48962bd 435c2038 42ddeb74 426f229f c4b56b1f c4a78c47 c3094442 419a90e6 44513e84 448c237e c2643160 437238d5 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> bf0c3a9d bf55c6cf bd517933 426d940a", + "44930e34 44b7abbc 433ba800 c4846ab7 c32581f8 c0bf6160 439400d8 4414134c 44421700 c32ebaf1 43892717 4487ce1a 44a8f0ba c2e15d2f 42191282 c4393889 44954808 43332338 4317cb00 4495f800 c4b8d8eb 4129b1a0 4393a176 44a14a64 c4901c32 434542f6 41ce01b6 44691190 43fdfd78 c1cb93b8 429730a0 c3e32cb0 c218ac00 c327d7f1 42e96c46 c4af0269 c3068988 c2628194 43233ab0 44724468 431dd338 c1cc2570 43763b12 4420ab40 c433cc16 c30a5f2b 421f2128 44a473b0 44a2ffc8 41261a00 439276fe c387b258 c40d21be c32ac403 4321e7be 4427a738 c44fc514 c34490ca 419857aa c310f830 c34fcb60 c301cfb8 4191355e c4053262 447cbd14 41c91cc0 42ed6ca1 448acb2c 44835f24 c32e5535 437162f5 42ede670 c3719930 4284bc10 42dd7055 43549bc0 441ef1c4 c2b873c2 434c40c4 44ad1d06 44926bc8 c319b0a9 4384089a c485bc28 c2eb6c70 42fd52c0 41a53452 c380b674 4329bd70 426717c0 4374ff3f c3204b98 c4018fb4 c32951ef 42f786e3 c3b84b74 c389daac c0481340 4384332a 4414112c 4451669c c2d5ef51 420e5408 448aefaa 442b0d30 c1cce5d8 43948f56 43dadbe4 44295548 43352d3c 4155e0d1 44aa13b8 c3f1e0b6 c32c2e72 432cc108 c40ac79b c4167778 4319e4bc 4381f022 c4b3e03e 429cbad0 4338456c 42c9d9e2 c45c94db c438a005 c26de4cc 428f30ec c3ebd954 c429c6ef 433c118e 4264d0d8 c45231ab c3a1b55c 433cf750 427b9fc5 43eccfd8 c4b12a2a c345c2d7 43027036 c4b233d8 4474f070 c22eb018 4351a3dc 439b751c 43c73b68 430eb7e6 42251240 c435b89e 4239bfc0 c32911ad 42023356 428c2e50 43c3d084 430ec38a 426eb599 446ee470 449d2454 4318edd6 433cd515 c3b8df1c c44f525f 426bae78 42ebeb73 443fb460 4459a08c 42e97f0c 432cca35 c3c88020 44912abc 432156a4 42bab117 c41aaa23 c2b76ce0 4306bd44 42845f48 c488c30e c42acd51 42a7eb24 433030b7 c39a71ac c44060b3 4335e098 4379e9e2 c463c5ca 44932796 425f0dd4 4334de15 42d3b560 4461d5e0 c259bddc 436042b5 c4850922 c3a69958 c338943e 43725abf c4708955 c4b48bb6 432d1f88 4375e7ec 447fb698 c4196950 42c1308c 42eaf1b1 43a83310 44597224 42e32ed0 41cd20ac 445c4564 43f4bf24 c33999a3 43286a47 c45a23c9 c40f0f7f c2e04c9d 424293b0 c42d577d 44700270 c3019c72 438229c0 c482f6f8 c45efef7 c33d937f 432de9dd 428b33d0 c47b9cd0 c30f22ac 438833e7 c34f5e98 c4ae23e9 c3423740 422f701d c3f0d0de 4494a938 42b9b1f8 421dd6ee 40c0e500 437c4cd8 c2e3e031 42ffb29f c492d65c 43803630 42ec6720 4383751b 4446d5f4 446e3d40 413df7f0 437c6f91 c47804da 4497fc72 414f0170 42e460b5 448076f6 c4a1650b 42822a9c 434319d4 c42cf4c3 c472cc8c 430af508 430bcf09 43dda648 448e2cac 4244e458 4365d707 43df0e54 449d3750 c2ea8ebd 42c9604f 43676698 c48f3c27 4251fea0 435095e4 439d493c 444a3298 42cbced8 432deeda c38b3f4c c481c5d4 42f01574 43569be2 43ca4048 c4115e3c 42bc6e48 43226b18 411d8080 43e8c85c c2b4a70c 42b08222 c447b580 c4984f5a 4304e0aa 42d0ee12 443187c4 4448a77c 42cee320 4298feb9 44ad6806 c4ad7644 c2dd4455 437f4d80 43a64624 c45446b7 c2c0eb1e 41c6f112 c4297675 44825670 42cb881c 41f94db8 c40adc01 c496f783 c2d71c96 422decce c3b9c154 c4864ee4 42fa39d0 42da1f5c c485a704 c496f235 c2c42b85 43950f4c 43d99674 44a3dc44 c32866c9 431627b6 c4209d8a c411defb 43333a6a 437cd285 c4b7612c 4298bff0 42249748 42ea7212 44a17234 44aa5666 c3221eda 43032e98 c4a9c0e8 440a33f0 c2c6c67e 4348283b 44964a48 c46017f0 4335fec0 42461b86 4488060c 44228e58 4333d4cc 43368292 44aa88a4 c378f1d0 c325b77c 43826a92 4453fc44 c44a930e c2ef597c 434d6d76 c487c2ff 444eab38 42d45668 4391705e 4495cfaa 449c693e c32f3470 436eecc0 c182bdc0 44878428 c2fc0e67 43045c14 c4a9d1f7 c39da14c c2a49630 430f3425 4481bad6 43949c18 c322e73e 430ab768 44b4bd70 44a602e0 4240e6f4 432f0a57 c3d81bf4 c3dc3004 43190652 43364048 c334bff0 44327270 420b56a8 43552e30 443e10b0 c36d9188 c2b0146f 42b19fbc 449d1178 c422c29c 42ccf968 4393a21c c4874ace c47ace5b 4262cba0 41264726 42beded0 42a5e390 4198b0f8 432c5ac5 c48d77d3 43bd93e8 c340670a 427cf228 c48810bd 4440b8f0 4299882c 42854202 c4816085 c463c320 42343000 43286c71 c4ae8caf c2bfe360 c2709114 43656bb3 c429484c c23c4f60 4286cecc 433fa329 c4905ebf c4b30fe2 418184a0 432d4223 4480921c c49299d5 c29c4bfa 4376c028 c41549b1 43b2d0fc c3391530 437a3370 44651e80 c404f615 c1383550 4375e036 442433a4 c390bb34 41cb1510 43957c7b 442babf4 c49bc3b4 c3194aaa 435b88bf 43ff8dc8 c4598d86 4333a83e 434ca60d 446cf5a4 44906be8 42b5a67c 41be35b2 4486ad4a 449e0484 c1b08b00 421c4a6b c49b4892 c303e5f0 c27ed99c 41912e04 c30eff48 448cd338 431dbaa4 43256095 c47fbb64 445540ec 42c0a308 43586d3c 44ba4ce8 42d9af70 c338eccd 43834344 449dd10e 44010a24 431ef9de 41967e3e 4498261e 446e7504 431d0946 43418c69 c47f0f1f 43c823e8 c347d36c 430296e2 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000079 -> 3f6c4cd5 3df6065c bebb1c15 42abdef3", + "c484700c 449e0cd2 433fdd04 c3c18cbc 442a9738 c2bdadbf 41e1ae7b 42d43600 43045e38 430d5848 4282608e 4372f620 433e85d8 431a6996 43120c79 c4450140 4402ccfe c2b04491 437fc1b0 44859b62 c48c00a6 c2fa54df 41878a94 c38054fc c4651c1e c2b9a02a 432d6609 441bd83c 448a10a8 42ff203c 4383e3a5 c2810450 43d77420 c3044e53 43766843 4485c1ae 447a7238 424955b8 43748f4b 444e16e4 4466fce8 c2373d1c 423c6620 c4aaf882 447f0f44 c28c3496 42a7928a c4b90a4b c47c27e2 432909ac 43900f0a 442593e0 434d2ab8 c339a7a9 43822759 44538a94 4487107c c169f790 4274ad99 c2f31510 441597fc c267ffa8 434b7c8f 4428e958 44b35956 42a97254 438cea7c c39e9760 c4a0eff8 4233eb40 42fdf8a0 c4a94998 c2aef810 c32af092 41c00f2e 4434e358 c4a55113 433ff1e4 433090ec 448aaa96 c4b66cdc 41b60750 4327c29b 44a71796 4486f4a0 c30a44d0 4388f738 43a1a8dc c4116ba0 c33abe38 43957e8c c3c2458c c317d648 c2710e30 41fec290 c30d0d10 4423b5e8 c21ba804 41e8b04f c48b65f6 c3a8e988 431010aa 438cae24 431a0758 42665980 43242f04 42a4f5d9 c14c9080 44b6d5e2 c31738d8 435ba410 448e9db6 4491e75e c29aaa0d 430b5398 c48608de 4469400c 42b14af4 43827931 4472f3b4 44624668 c288565a 420e45e2 c4ad5da4 43ade7bc c33ad5b4 4337c30e c48df02d 44ba7f04 42188270 418522b6 43eaa938 449b449e c1ac7f48 4315e446 c481fc7b 43b5bcb8 43451026 4305a6b1 44a8888e 4497a60c c209020c 433ddc86 c46ce10b c40e515f c31984ce 43159bca c485fb14 44974522 432d19f0 43442ccc 44ba3fd2 42e04930 c2ce7f5a 42d16949 c4a5d1e8 444bff50 431f36be 438ca246 c2249b60 c40d8a3b c314a06a 431a8a57 c3a1a2c0 c4965c01 c32d6a9d 43911b9f c32b0db0 447336a4 c2a5eee3 432135f0 446ec1c4 c4199352 43265d54 438a554f c3a90144 441d0664 43219a20 435cf5c5 bf4c7800 431a8350 c18b5308 4292812c c4a3494c 44aa003a c33d812f 42321bf8 440120a0 c48eadc0 c1f15ee8 42f1325c 442757bc c4a607d7 43300a4a 43430fb0 444ef8e0 449bfbaa c2d99ff6 420abd1e c4402979 c4834599 c338a11e 42ccb0fe 43a63474 c384fe90 430174c2 43556a52 43b63454 c4053efd 432fb24a 42de1966 4489ff28 c4770f76 c1cdd940 438c8afa 44850e9e 4499deec c1d3b1e8 43094878 c4a032e4 44a7c652 c2a4ba13 42cf9b26 c3966e3c 449a3428 42eea250 4366b763 c3d94d38 c426ac57 c30e91c0 4312b2e5 c25f3a60 446f2a04 c0d11880 42dee120 421ceea0 c487bd56 422bb16c 43477000 c48add3d c4036531 bf76c600 42dee6f3 c46fc9cb c49ef407 40ab4b80 432a3c61 43b65e78 c4b98116 42e2a8a4 43828496 c256afa0 4458cbdc c34312cd 42bfe739 448571a0 442139d8 43277cfa 4354e1cf 43a99118 c4a40b42 c275eb90 42db58a9 c470edb3 c2c0cdf0 4312d1d8 41c1ecdc 440c30fc c49b4b80 c1fa8ec0 4359de94 c413bd51 4452759c c298a172 4362eb4b c31692a0 44a698f8 c30ebabd 42cfae60 c399423c c43eaf04 c3103206 42dee3d2 c1854e00 c4268c52 4343b4ce 4352c703 4465ed44 c46a8a54 c01b1700 437173ac c4528502 4498e49e c337ecba 41ebc75f 44b3709c c481ca9a c3039280 435899cb c45a3182 c2d65700 43123f0c 43255a4e 437add20 c4a28ce9 41c867e8 43556f21 c271cc80 c430c2a7 430aa15c 43892e39 43575fe8 438eb2c8 c29e965c 42e90722 449ea3a4 44ba2f02 430bb3b4 43879eab c2806600 c473f708 c2cdf882 431ae570 4389e858 43b962ec bf80d280 42f94606 4434517c c4417364 42d797a8 42bfa221 444ce4a4 c34fb850 c31a31e6 438c5d68 c3b3ca74 439bb7f0 42d4f380 4306184c 44217b54 c41f2c66 c2e602ea 4327409d c3eef1c2 43770e18 c2daf203 433f02c1 439eec68 4401ac90 c30e5b54 43936476 c4128625 c42c5151 c2d4f276 419fb856 c450b1e5 c3c90a34 4331811a 43903453 434f2508 c4798118 43386dd4 429dea3b c1783580 4317f800 c310a3ea 424b98b7 c26890c0 c3c5ad6c 4342dc28 42cd269d c44a4644 c36bf9c8 c2fb9616 4282aeaa 44ad55da 44163718 c3086cb3 414c7b7a c39a174c 448bfda8 42e77aec 41eca8cc c496c413 44579af4 43448392 431bdad6 c4634ac6 c49d718a 42a972d4 4161baea 43f013d0 44659e78 430f8bce 4328ea23 c401fa54 44b20354 c3350821 436f1d20 c3282490 c49b8478 c30e93ec 429de2bb 440b4fc4 4473a970 42c95f70 438513d9 c49bba4e c4ab617a c32b256e 432138b0 c45bb949 44a2d0b6 41c8d318 4353c3af c3b708ac 44939482 c31011bb 4357220e 43321d40 43cb2d64 4331a292 42fc45a0 43ea9b48 44b15e78 427eadb0 4305004f 433b6db0 43ce4dc0 4311a776 439430f9 43e54ca8 c3c4a9dc 41d207a0 42c8f3a9 442c50ac 431ad950 c23d283c 42b2622f c4ae1743 c49300ce c202d860 425a97bf c4b87e73 c4683b5e 42f5b46c 435c8126 c4407304 c47ca7d0 c303ff98 43079d00 447b27e8 c3efe6e6 c2d7758a 4374771a c4868ce1 4436509c 42022094 4358b3a9 c47ab7f7 c40151cd c28f58aa 430baf66 c470dcf0 c49bc59c 43136f4a 437d0fd0 c3c530bc c43aebcf 433a64f2 4379a50d 420d3e00 4489882c 4289472c 430ce670 c45413df 445998a4 c22c1358 43112753 c47a9c3a 44a27c76 c2ff6838 42fb9f86 c2c2cf20 c34f0ab0 c30af076 42c96cb0 c487ab5f 4440d9a0 c303af72 43941114 44b05b88 43fd8498 c31d0dab 43575f90 44576184 44b0a308 433e0b44 438ae4e7 c405ac0b 44afdec0 c2644270 4394ee65 c4632516 c3ea8924 43288d38 439160b7 43fcb3a4 445178e4 42120898 42df9eff c3e00ca0 c49044df 41961e30 429acc8b 00000080 -> bf3de46f beb5cb97 3f11a6ee 42c83170", + "43a3a550 44641234 42bfdc54 43275b90 4415f264 42324008 4204c864 44b3be9a 44858722 43091a72 436638c4 44adc7ba 43f64ed0 c2cb0a96 43765af6 c2b9bb20 c4856579 c2f281d8 4331072c c469ea7f c45f57ac c31671c6 431dc93a c46c9a6d 43d87ff0 c261baf0 42686684 446fc970 43cc0cbc 430e006e 4235a2da 448c9ba0 43380d78 43124876 4394bfc6 c44c909e 44b84b56 42d4c9ac 42b00db8 443872d8 449abdd2 c2e1be2f 43176518 c49e0466 c45a726a 42a40b10 422d816e c3e86418 42d85090 4318a2b4 4391cbc1 c3e0ee68 43eaae18 43377d04 435a95a0 448569dc c4444ece 42c5f124 43892920 c3ee7bf6 c3235e58 c2bfc8da 42db1b0d c4bb1945 44257e5c 4319c5b6 42fd324c 445fdf8c c437e194 420c6f40 43148089 c3b69004 44a06d94 430402c8 42b3c57e 44b5a550 43cc7b04 c1dcd820 43927d62 44a4bace c440211b 430050de 42b88657 443ed550 448fffce 42d9a4b8 4292bb0c 4399f1f4 c48494b9 c311c22c 43946754 c43ffb64 4484f312 432b380e 42c2398f 43e48fe0 448c736e c0acd1c0 42e39e4d c403c520 c413c1b6 c292b9ac 4210afea 44a81af6 c39001b8 421457e8 430472ee 4474d1d4 4409708c 42bbe500 429347ca 446673d8 444bba14 433cde92 4218bb71 43bb2190 44b2ba2a 420e2568 422fcdbe 44a839f8 43f8e500 42ef8bd8 434717f4 c48ecac0 43942bec c2d524fe 4321e3eb 44bb6906 42b1d650 4244f30c 42276dec c4835119 c4a01dc0 42726040 43428607 44a0367c 442ce81c c283b1a8 42df42a2 c41c899b c3e14670 c22cae1c 438a4f49 c384a044 449c0eda c2fe9fa5 4312fe19 448f6268 447825fc 428c81c4 434df913 c420baac c3c3dc48 c2110698 4348ede8 412acc00 43f6d1e4 433c6916 42deb5bd c4772e2e c4a1a452 c1f812d0 42c022e2 c4a4f0b1 43bb85dc c32c262e 435eee78 c48e7184 c3f62bfc c3040540 4386a925 43d3d5c8 c44434a0 430250c6 4337a5f7 c4299be3 448e8556 c2cfa0f2 4289c754 c378d180 4443e2cc 42623df0 426beb6b 4484c092 44a7bf28 4301a9d4 436c5091 43f57f34 44b8ea5e c312e877 42ac5bd9 4442a314 44b634bc c2fffb5e 4294f34f 44a04098 c497c454 430fafe6 436e1ac3 4481f2a6 c31d9410 c26c6ba0 43287a27 43f15fa4 445310fc c33a2e8e 41bdbd82 4302e9a0 4468edc0 c238c3b4 433ed0d7 c363c0a8 4448f840 432cf9ca 4300ae58 c35956b0 c438d07b c1b71a08 422ae374 4461a480 c41e1388 c32bc466 423b5eaa c45ea220 4498b914 c3121f25 43480c7f c4a59c7c 439b30d4 42892880 4277231d c4b3af91 c30a4f50 c26589a0 4391970f c3889584 c497e6e4 404c4cc0 41f86530 449acace 444fa47c c2d297f4 4380b2d0 43a2e0f0 41dd7400 4307712a 4394c692 c4a77570 444b1550 42ebd1d4 434d63d8 43e4c2e0 4438c980 434248c4 432b9da8 c3b8a988 c44e1aaf c27ab134 43648f50 43dc16c0 c3b5316c 434392a0 438d535f c487541c c45c8882 42244384 4391ad4c c384de7c 44ad91da c347e12e 42d4ec3f 44383344 c3c2b484 c2eff498 4187ae25 c4a7d28a c453e219 40ec4040 43533d3f c4a1c104 c485d29c 42230930 42bacdb3 446783b4 44baa226 4126c720 42b32f13 c2bee220 44606ea8 42144fcc 427d2649 443cb548 443ebe94 c1ed40e8 4324bc94 4457f190 c4189073 42ab2ce0 42fd8684 449875fe 448a2842 4200379c 421115d0 444adb88 c2e31b30 432b436a 42b7bd87 430afb48 44ad2436 3ff6e980 4260e83f 441b0d8c 43e0155c 4293ffb0 431c0a41 444ffafc 44170134 c3136751 424c1078 4406ec28 c400d7b7 3f4cc300 433b8811 c3c2c368 446d69dc 42019fa0 4394bc1b 44a6a07a 43f9b8c0 c2d323c6 43653576 4128f500 c490109b 42e5e490 42882327 433d02d8 4207ae40 40db1420 42dcfdd1 c4a16d0c c440305d 42b68094 431ce0bf c41a2f43 c3481fb0 c1131ee0 421e93d0 c4a18090 449e5a18 42cd038c 420c7057 c47b2eba 43599a60 42b22fd0 4331b8e5 c3c85ed4 44af7bfa 42b058a8 438f51b6 448eece4 44a3d4dc c2819f36 438493e2 442939f8 443ab28c 42796998 43355d2c 4487c234 c236dc20 43303baa 42ae47c3 c46cd4fc 4455b72c c32b3d07 43087bab 43961f7c 44b9d250 c291cb57 438cd875 c3f0b10c c27e7c60 4328c75e 418331bb 4499d488 c48370f2 421148b8 438bfe30 c3a05c10 c45a3d6a 430586dc 43369030 445a27c8 433d9208 c15d6c10 4241decf 44982a72 44829b0e 42e0ac1c 43283138 44500e94 4490c9d2 c2cfd742 43338629 44b4a228 c1e99900 4320f1c8 42f07a96 3ff20c00 c4200fb4 433f4ee8 42eb1e98 43e14d30 4454ace4 423704b0 42fd5ba7 c4b5e60d c40a1207 433bda56 43311502 c48033c6 4428ac44 c2f1bf2a 43475f6c 43e26ac4 c3e7b1c0 c11f3060 433e198e c4075629 44a4b8b2 41426330 436405a5 c455fcbe 444c332c c30837a8 430d7f24 c4440df9 c3f3eda4 c337d95c 4303c8de c43da73c c4590002 c1dedcf0 42238cd4 c449f15c c2de78e0 4331f016 4141e723 44a84d28 c4a3da1c c318ea82 43350fe7 448dfe5c c45d7a80 c2343804 41c9d3fa 440d36d8 4382c8c4 432d72ce 43427bed c4b5d28f c424012a c32fc421 432ccc57 444028ac c44d25b1 c30983e2 43844cee 43ba2a7c c47e49a8 c3068041 434e7dbe c4285a7c 43150e38 c288c982 438e61be c41a17f6 c4994272 c1f8bf40 42810db6 c394f614 c2c11450 4289c8bc 42a8c39f 44712914 44a5305a 4315429e 414e588b c3aca520 c4936556 42d41ef0 4346e844 c3905c20 c38fa978 c2184f0c 43910a8f c4833822 448a5e4a c26f8664 4133d31f c410f7d4 c4a268a0 c23ae2ec 436e7a48 4495be22 c33389a8 c2948709 42d2cca3 448ce134 c3344ae8 42ce604c 43371fa1 c47b4ecc 443832c4 c2d3a1e4 4328b908 00000080 -> 3f6f0a33 be724d68 3e897ff3 41c9ac3b", + "42141e00 c429a739 43148578 c484aa86 c1a740c0 40dbba60 42f9902f 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c359f708 c16c7900 41af2910 445f08b8 c35f5230 42c0cf0c 430337e0 448efe28 c3f95392 c326267e 43853c0b c3d63c68 c3b1e900 4249dc60 4327d063 c4892253 44a6e014 c271a430 426b14bc c22238e0 43ed3e58 c3047e61 438155ec c3d6f174 c3e704ec c3145663 432507de 43e26de0 c47ea2c9 41ec69b0 43829306 c3a1eabc c3a98b3c c30574e8 430a7b16 c46cef72 421593e0 426409b8 42d4cc51 44857cd0 4439325c 4311b6a4 4387be41 c2dfd330 44288a74 c1a9dc30 42e3e413 c468d756 4467d9a4 c3433bf2 4328edc5 c478db1f c44c47ec c33da7c6 433c889f 4417e734 c41f74e9 c3456563 430ce750 c418b292 c45c2eef 42d5a208 435b0a52 4442ed74 c4530de2 c0449700 4391ae05 c455b94e c46da7da c25fd70c 433e55b8 c4142466 c4b549e4 c2963c1f 43607862 445c68bc c42eaef9 c2285580 43414674 4495a692 444b0af8 c277ee20 437e20aa c483c932 c4b1ce88 429e4528 4266bd1f c3d05614 43182cc8 42c06654 43870553 418eeb00 c467a6a3 c33998db 43465e31 44b3f53a c485b454 c30f4a5e 42a1942f c448b322 c28bb820 c30ea412 413dc92f c318e640 c3a4e504 c2cb8eb2 4257e396 449bc838 c42044ac 4300b3ac 430847ba 44933996 c3bc35d8 41a76f20 43227273 44878458 449f754c 41e73990 435ee039 42791480 c40114fa 422e8dc4 434aa65d c32c1f30 c2db9220 c319a4ed 42292902 44b4356a 43f3fe28 42cfbb58 43469f79 c48c81c4 c482fdc8 c220aac8 43047ba2 43befd30 c3f2104a c22b8af4 4365f715 445238b8 430aa0b0 c2c8ca8b 41fd894f 442bba50 c412363e c3465ca5 42407500 43d036a0 41f7dd40 42e68864 41ced32c 43559768 c38a6be4 42b2ad04 43882766 4489db42 c27af220 41cc2378 4393ea89 c4295d45 c4892c02 c3039238 42a6995f 429fdd90 c4768085 c297e490 43612767 44b21a90 c48ac30e 431f5766 43219949 42c29dd0 446b5160 433580f4 43924f34 c49deb8c 42cdc6a0 432e22c2 42479657 c2f42480 44b5ac40 c12fc4f0 43125dc7 448c6f9c 4419bfcc c3284f2d 435a1a51 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000002e -> bf0f4e2b 3f1981df 3f126843 42380561", + "c494216c 44b3d4e8 c2c5793c c38b43ac c23c29e0 4269bd50 42ed945d 44ba1862 431077c8 41b87280 43954350 c4325c70 c480d16e 406252c0 433b78f7 c42ff0f8 428560f0 42cdf3b4 430da5f8 443a9918 447438f0 c28557c8 4327afe1 c35d5880 429dea20 c2a8395a 4349e28b 4416a1f0 c3b69bb4 4300a87c 4212d728 438ace9c c40b1382 c100d530 4330d11d 443b9628 4439f14c c315e36f 42d312e0 c4103ef1 43951d8c c326f31f 4393fd84 c3b77354 c48600cc c2f24cee 437a1ced 44ade2c0 4486586e 422e88f0 427c031c c405a8ed c43145db 428ed68c 434c237e c450f014 439cbc10 c272382c 4384b8b5 c4650cda 44b5a7d6 428b6f5c 433d37c8 4429e20c c2cec8c0 c21c31a4 438e67a9 44047620 44a29a94 4310be56 43201253 c39a92e4 c357fe18 c30d7c28 425549fb 443640c8 c3e53a5c c305949c 42b876f3 c4001a9e c2e58900 429e61a8 437e59cd 4449e1f8 43d05074 42d840e8 42d2c35a 43cc06ac 4468d1d8 c269e5ac 4250ecfd c39708c0 c43fab58 c312109e 42cf7d3b 449f6b30 c2d433c0 c2c04be6 43894385 443435ac c43bdf32 c30b74ae 4195cc2f 44ba25fc c49926c7 42e4a794 43869947 c48f7e88 42aef6a0 432a9368 4383c39a c338ad50 c4a31ae6 41a54240 435e8732 c4202be1 4478c754 430b86c0 420da7e8 44126a0c c49ff238 c296b7c1 438298ef 436f6340 44222cc4 c318ba9c 4258e956 c41b205f 447245d0 c2dc9565 42b5748a c49aab03 c4389613 418a7f20 420470e4 c40e365a 43fbd668 430a7a2e 434e7f9a 44846590 448d3322 c2e6c1e6 4223f434 448ffeba c2750c20 42a5bf68 42d5de8b 44109924 c39306d8 c33945ba 42145b89 43adb9c8 c47600f5 c2e271b8 434b5f6e 44a4368a c4211f0e c19f1308 42b67e89 44b1882c 43c7f670 4220fdcc 42beb463 c412551d 43de1a48 42e558ac 427e15bd 4282a350 c2a84870 c1f816f0 433d60e3 44b6111e c47692dd c2d456bf 43776b47 4487b8ac c45d70c8 4340e182 421c404c c4b81b57 4454f0b0 c180ebb0 438638b3 4456a890 c48a6d8d 42820b0c 4389c179 c4ada5bb 448d2dd6 c30f48cc 418a7de7 c453cc57 43461790 42a35474 4293746a c42810b6 449c768c 42f192cc 429cd527 4410ac1c 4287c5a0 42f9fcd0 42941707 44b3d0f8 c3752e98 c31cd708 430aedc5 44a40830 c3989cc8 42f3e738 435e9d77 c413c5e2 c3e0e410 c2b71bd9 4281e8b3 c474cd8d 441d13ec 404f8ac0 4271e04e 44b61164 448b2c1a c30cf428 434522bc c3fec11c c39a1c28 c21e7d50 4303a644 c2c59050 c4b5f09f 4188dff0 438dfad9 c391d4cc 4438b684 c21449b0 43170fcf 44b0c9d4 c443d96e 4324ab42 42e96786 c4b2e3f5 c4538562 433f415e 434337be c4a0a68b c3890cb8 42b1cb48 4382cab3 c419d000 422ff820 c33589e2 432e472c c3884ef0 43bfe744 c2c7ad4b 4378503b c3bb7b04 c4799bb6 431c45bc 4332da40 c4b50075 440d507c 433f00f4 438ac69a 44854e90 44871242 c287b2ec 432b7054 44a60842 44558548 c2e18ccc 438c891f 445f52cc c486efd2 c30b922f 4368965b 44935ed0 41d668c0 41ebd480 438a9f33 44034358 42c87c90 c3162c9f 438f1968 44afc0a6 44b29c8e 41639730 436ab463 c145c180 43805318 c31b6ff0 43733b47 c3e3b85c c3ffddd6 c26f0624 42d60871 c442a72b c4a6ab86 42e28ebc 428e9de8 c49e274f c47ad506 4329e928 431df6eb c4188c7e c491b734 42d6f814 42afff12 c28ad230 c24da9e0 432b835a 438294dd 438c3cf8 44afee7a 4322e4a2 431655c9 433f9088 c4b21656 4335913c 43847b71 c4038732 43269930 c32fad87 42e32d7f 4401f728 c38146bc 420a7794 4311d1bc 44592b3c 446d664c 412d4f90 437cdb9f 44294d78 c3ce9130 43094f28 431dbe55 43a2f4cc 43ab8338 42794a90 43814d10 c45b4f76 c42f0c76 c2a19d9d 415c681d 43eb2688 c43f0119 c2e76574 42efd73c c3696e68 448982ce 42d88c40 4290e8f2 c49563ae 449780e8 431ab62e 4321970f c49437d5 434ab8d0 4306c62a 43850102 42954c40 c415b927 c103d5e0 43497eed 44aaeb08 c4993f33 c30fdcf0 429a1918 c48c4bbc c399575c 43161c54 438eaded c3c40f38 c4973fb1 428947f8 41d69fa3 c435d5f1 c4a9947a 42a0594c 43061bba c45eb442 c45b5ed2 c33589f5 438ad0a9 c4aa4e96 c40d362d 42bca674 43784d0c c292f170 c40696ac c2187764 41af4474 44500e0c 444cc414 c2861b8e 43888be7 44576698 43ce799c c3311aeb 432df92d 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000063 -> 3f3caf1e 3f232e8a be65fe11 420199bf", + "c3788358 c3979f20 c2a787d3 4470e0f4 4481c690 c3460441 429acbf0 44769054 c4301ef8 c33136c8 4382bc2a c3888964 4406cb22 c2921938 42a77208 43299d40 43abb938 42668080 42e234f0 c40809ee 443fc540 42f4436c 4394fe89 447aa8e8 c475eb89 421a0934 4367a5f5 444649c8 c42be156 423fd804 4394a133 c488defa c404c4e7 c2dd3126 438f6167 c4b35960 44a1ca90 c2dc4245 431109d2 442d2404 4385faac 426acff8 41d0793f c3e46284 c4748e4b c25282a8 4214395a c4b5e118 43e58058 c2d7783c 4185bfc6 c3823d6c c45993e6 42e518a0 4295d64f c31c8378 c4afbe1a c3091e17 43463a96 c43ba733 c442826e c14ca600 432bcc62 43d9e790 c4a2981e 42b9b3ac 420bc2df c3035b28 c3cd74f8 c2d603fb 433f4709 c3a54a88 c4713078 42477ac0 435d7ee6 c492a61e 443b76e8 42688348 43497bc0 4463c1b8 410ed780 42c773e4 4229346a c4ac704f 43911a1c 41f79a90 438b243e 42dba010 44bb5eac 4026e480 43949b01 444dad8c 4362d590 c2e3512b 43182878 c48e039b c49a3018 c20fd43c 42b72b95 c32e9af0 c4232d72 425b54c0 43471180 c36e7068 439e5a2c 42556100 429c290b 437faa48 c4a618d3 c31a081b 43546255 c3aaf380 c113e800 430a27e2 436293e9 c1cfe240 c3d70a20 40e35a60 41c099f1 c2038780 44664280 419e11e0 430e6725 4485b0e8 c4416d30 430c57d0 43761dcd 44ad75d0 c4891275 422cccac 417d4844 c3f03b3c c3cc02dc c2e13566 43212946 448935d2 c496fdd4 4298b0c0 4308085a 44adc3ca c3ec1310 c2801600 43151045 44904646 44677b78 4226f5c4 42b4d843 442caa9c c2b9cc30 43478b7a 4367c006 43553618 c3cfa46c 42e9d4bc 43421675 442ec660 c46f9c1f 42ec5c3c 4276f84b 443f0870 446f6020 c2b63db9 430cb77b c318c658 c497f194 c26326bc 41832200 c4262d92 c403e461 43185ed2 42f8827a 43f8aa74 c49c5000 c325ef62 4251d989 c2c54700 c4a14cbe 41e5dae8 41bf0cc9 43ce9f34 435c9de8 c3266935 43191f6e c488a538 4480c10c c1a317b8 4392d987 43571c80 437b1cb8 42e691e8 4350c225 c4149221 42154a00 428fe860 424f4744 c4a117d5 4491edf2 c33bd177 436f134d c3142978 4376ee18 43478e42 42ff8679 43842960 439d51dc c32072de 43177dfa c427b15d 43daccc4 c304ef20 434a516f 43a30928 4439b024 41822868 427a28b9 44306564 445100fc c293e45a 4339a975 43daacd0 c3b45d80 c19eec90 43537868 42d796a0 c46455f8 c3232b5a 4259decb c39113bc 44a55bda c3299937 43319ce1 c4acb85e 44536f9c 421b9b1c 41d09db1 435ff300 44056bc0 43222aea 4323e994 44375978 44acec76 42a17dd4 438b3f14 c37be1d8 c48c9b88 c32953a3 432ac0d5 44b0e994 c0771600 c2119530 42bd368a 435e07e0 c361d448 c30e58e9 41f462e4 c48a0283 c412e086 43140f06 42f7aea4 4219a3a0 44a71404 c32626ba 42d69008 435196a0 438688d0 4246013c 4379c3d8 c4832049 c23129a0 422a6f58 41d4efbe 448bf844 44554d4c 43108188 43508cb0 44056b4a 4292fe60 c2b10d19 43012817 c48eec94 42e287e0 c2febe75 43882999 42bfad10 44553160 c34669fd 433c4288 43ceac98 429e62a0 432962ba 42b0e1bc 4466cf94 421a5cc0 c340d40d 4371b021 448d30c4 c3c861f4 c26670dc 4379a432 40785c00 c43b91cb c2199d3c 431717fc 4493125c c3de6f24 c20268ec 436efc79 433e6048 c2f32190 c22b41f0 433a2aef c4b1f21f c2f46dd0 c2b50d00 439261c9 4445fa98 c46ff5d6 42f2ce30 436dd35c 43809644 c4b819e1 c2f8ce36 433ef0c6 43395128 c3f5f228 c2c85bac 42e50698 4447dae4 c4a41f49 42f6843c 42c8a8a2 c4789b4c c30efda8 4323d626 4382ffdc c48956a8 441247b0 c3430c87 427912b6 c3c95ae0 c4563b67 c33381fc 4276d55c c4897662 c40a0212 c2cbfe61 42de1f33 c4439e03 c4ab6b6a c33a04e1 4353f8d2 433cb6e0 43531b50 c2cf8001 4318bf24 c4a4a83c 44520b34 4329e730 432b48f5 c49530d0 c4a5b5f5 c33ebf0d 431b52fe 43e2ffa8 c49cf196 c1c35bd8 43303606 431502f8 c38ee9a8 4308837e 41efebef c4793e5a 43b8e838 c20040a0 42eb64a0 44abaffc c4b77de9 c07337c0 42a28de0 c4995d4c 44966660 c31783de 435bd77e c4b13ab5 c4919db2 42c6dc54 43377713 c4583768 c377ea58 42f67020 42e12638 444ab638 c3035518 c328c4e4 42c6712b c467952f 43165690 412c9f50 41c88628 448d63ba 4400e65a 42ef0d68 437bfdba c45fcd60 44aec1fa 413830c0 438d3f31 c4830d72 448a78bc 415c2380 41c4861c c41dd4ac 44063b1e c15f2ff0 4288a21c 44a3d5ac c41657ef c12821c0 43267f02 c3faa374 447f9898 c25db640 42417a7d 43910420 c2150f20 c2a1149d 43585240 43079518 c4916e62 c2ffe26f 43003d2a c24367e0 c3385a20 c252025c 43038e91 c49527e8 c41fee11 410cc500 41de5f97 4378bb90 4467b4f4 c1a79650 42da9f8b 448f9ca2 44415dc0 c32e5762 4211eac8 44b8292c 448d5e9a c24ec61c 43864b33 c49edb33 44b6bfb8 42af3be0 41a41619 c40e2c38 43f9c278 c2d1c7bb 435910bd 43fb0e90 446dfec8 c228e5b8 41a8f4bb 440dd5c0 c48bff15 41d4d4a8 4380657b c40e53c8 c4aa4356 c32076b3 434689d4 445028fc c3837528 4336b13e 4321f32e c3a04058 c4b46248 c2c88654 437d44a8 c365b468 c45b7e70 42b04928 434bc7d1 44351018 c41ea708 c286ee2c 4319f3ae 4424a158 c3fb3ff4 c31c8286 43085dac c4a92169 4466fb88 c2299b00 436804f2 c3803ebc c3881238 42755850 436552e0 c4678418 c45725b4 42e0dcac 438e0b3c 44509bc4 442579bc c31a58a7 434a90fa c4b00672 c464b131 4264ece0 42bd0c00 45a00000 c5700000 40e00000 43590000 0000007f -> befebd2c 3f0d4024 3f2b59f4 421d4259", + "4429ac40 c4184e39 c21ef5d4 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c48a2fbc 44b32618 432ee55e 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "43b85ff8 4448809c 42dc033c 44b016ba c4b49cf6 c2f71517 4226f9d0 44b57478 c3c98bec c031c800 4345c9a5 c4594766 c35d3550 42dc2e78 43860f2e c4b3b4d1 c47440cf 4285da2c 431113f8 42929430 440e10fc 42fdcfec 417638b4 43e11978 4250adc0 432d9632 434be5e8 440d3464 c4915d71 c2c5d8f0 43905672 c48e0df0 c49ce31e 42f2ad88 41449c7d c4905b5c c48eb13f c30e2ca0 43453d8f 447e96e0 c49b64f0 427eb7b0 438b3e9b 449f0a44 443c8808 c327e219 419e5639 c405b15a 447c1ff0 c2b315f6 42974419 c48b7db6 439c81a8 422b5114 42bb3807 c48e826e 43d8c568 43346eaa 430d21db c49bd9c5 428732b0 c1fc31f0 43835ed1 c491254a 42c0a2a0 4128ad10 423d3f0c 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bf75d3dc be186be7 3e71c0c0 4396e137", + "c4b360c8 43bd8024 c1c3cb10 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "41db86c0 43ca9e8c 42766c48 c498125e 44958258 c1c94968 43878775 c3e5b180 44840a3c 43067ca4 418d2daf 4479b1bc 424a34a0 c122ced0 431f5c7e 449177e8 c2b0cb70 c304a331 4352ca98 4337c688 c4094f74 42838a78 436e6d42 446aa8e0 c3a1ff9c c2dbfbfb 438efc8f c385b9e0 43233820 c32f8a30 42ed693b c463954a c4939cee 433f339c 426b2dff c4356fab c44b997a 41a01fc0 41c98b32 c4b5d81a c46cda1b c301bc38 432f08af c4ae42f2 c49b08d0 429f581c 414c1a8a 43e72628 c4930bc0 4317c4b2 42c4996b 442eaad8 c3f3edbe c17d70a0 42c775d2 444dca94 c441176b c3289357 4355b7b2 440240ec c22e6700 c0884ca0 436fd094 445a3790 c2e7c6c0 4303ecfa 435cb3d8 42e91450 c41145d6 c2c26fd8 4349387f 449daf92 c48ffe63 428dd768 42eeb20a c4868746 c497bf02 42c9e698 435ca0dd 44109d98 c4555d37 c2a1f96e 42c3b93b 44033d38 44408070 42632180 43819492 43daf2ac 43fce278 c229cee4 41681b7e c483429b 4482562e c2420d18 432396ae 44122260 c3af3440 42de804c 433070b7 c4366df4 44b13b80 c13bc910 42ddb8ce 448398ae c451f879 c2399f50 433ce4a7 43f01e60 c49c3f78 c304bcc2 434eec48 c1ebf380 c3dd9d88 c344237a 430edd93 c46a0c98 c46b370d c3190223 419f8bc6 446f8f74 44b07d60 c327c30f 43832fee 449aa992 c441f09b 4070ddc0 41f9333f 4431f95c c4841e26 4291c5b8 4365d665 c409164c c4712ac6 c142eb00 435adbb9 4437a458 44a8a6a0 c1997250 430def37 c3bef9c0 c4b217f4 c2f0b92d 432d2963 3fa65000 44211e6c 412260f0 43715678 447d6ee0 449db5dc c27d4f4c 431d7481 c42fb61e 4436e128 42cb9d5c 42b9f34c 4493025e 43969a48 c1ced650 433ac209 441df908 c40db573 4317d466 431e9811 c3945098 c386dafc c25d1370 42c8cce8 448f8464 c41de91e 42aaa410 429e27be 442fbfbc 43f3cca0 42814888 43705b0e 444ba85c 42579fe0 c2504838 42869cd0 44220808 441ec4f0 c2d3fbda 4376da9d 446580e0 c474b014 c0440a80 43304792 c3643930 c46d6ed6 43034542 424f911f 422c77a0 448073a0 42c373e8 41defa19 c484ef14 440c06e8 c3076619 4210ca66 c3dc80e8 c456c3d1 4326006a 43290d8c c45b8e15 c494b1a9 42db4e9c 4338ec7a c49ca96b 44ac9216 40ba9880 42ecf3d3 c44a1104 c444aef1 431d6328 4395d894 c49efcac c4a3efb2 42a51c60 4297e078 449ca868 44585658 431b1ea4 4354cb43 c2e857e0 434e8a58 42b30fa8 43864f67 449cd4d2 4395f6dc 426e1cd0 420a6a54 c3d74d28 c4256280 4309d816 431bb1cf 445e8428 440bebe0 422f2a18 4355bb39 c396938c 4491ef10 c062c000 43107bd9 43fd4470 c309a380 43258cec 42b4700f 44a866aa 44380890 43423cc2 4207e69a 44b41e28 44a2cc66 c302f78d 432db809 c4029d47 c45536d4 c325208a 434323cc c3b483f8 448f609a 4293f988 4315daea c40d7957 c352c9f8 c340f6c5 438ee880 c3a04834 c3a363e0 c2ee3346 42f5e4eb c30bec80 c4ba0ccc 43031a6e 4192588a c4180508 c363d050 c33bd276 414133c6 43e874bc c31e5f08 43311704 42707e42 43ab9304 43467118 c31e3078 43047a46 c493692c c424f409 c3016188 43327b81 439511c8 44b0a632 c28db522 43200295 c45ddbd0 c4b82b2f c30b0d66 429eaebd c33e68b8 44ad8b5e 4319637c 432bd1a2 43016288 43902e48 424ee728 439295bb c4939c62 c485816d c2ba3518 4387c246 c46c0c38 c49d7d73 43416082 438c346c 44a4db06 42118da0 43132686 43621d31 c403179c 438ee154 4309acb6 422b2d1f c4561b0f 43b5e9e0 42e81314 4315dd85 4407c038 c40e2378 4301c378 42bb4924 c42b3af5 445a80ac 41e20050 4352bbdc 433f36e0 c3ace838 424f8980 4174bcb8 44a3cff6 c48b7866 c2933a3c 43909f90 c4b6b122 c428edac c226df90 43209cc6 44b6dbb8 c3a45f2c 41f88428 4352b277 c4869f4e c38b4704 43258f1c 437df864 c48f068c 444aca98 c27a7280 438aab2b 44658544 c4845e10 c2a3a497 4370cece c407515a 44b38e72 425025e4 42f87b26 41e1a100 c41c8eab c25210f4 432aeac2 448f6834 44831af0 42f6b5d4 4286560a c42588bc 448ef9aa c31fe53b 438d4406 c44dd244 c42bf1eb c00864c0 42bc89aa 442e9d90 c489de6a c30d0890 43825be4 448d8a2c 442c02ec 41eb7a90 43701246 c4ac0738 441be4c0 c2e6364a 436f0bb3 44797984 4270eb40 42655950 419ee3e8 43d90124 c4bad5f3 c34404ed 4353f225 c4b35bd2 c4b2f598 42f7b654 42bd0215 4394240c 44229324 41c65d58 429da6ee 43ff30cc c3907090 429d065c 43253bbc 43e485a4 c4b9ad0e c32ec5ca 42809762 44788cf0 44472934 40d31de0 436c371d 4423409c 436213c0 40ae70a0 42727d8b 43ce1188 c4b488ca c258cd80 43662bd8 c4448e89 c4a2a754 c2a3ecc2 4295cdda c43368ad 445fbaf0 c2b8e6fe 4357e9c9 c404f7c4 44858238 c2bb5f72 42626175 c4797af8 c3f59db6 c316b604 4342e3cf c4b7289a 4404b5ee c311039d 437a0d8f c300f9c0 c303a678 c2edeac4 43847900 c230aa60 c44a935b 433f7a66 430b711c 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000072 -> 3eac3ff1 bf6f7389 3ddfa6db 42a86a0f", + "c2a51d70 c4292024 430d9dce 44631550 44bb4710 42263130 4225fdb0 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "43a90a28 c3b1e114 c19929c0 4488b1a0 44b24442 bdc16000 42e2603b 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "44aca96c 448eea98 416b1190 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "4421c674 43c094fc c2bc7d4d 44885eb8 c37c1550 42bed160 4197a990 446fb574 4471e408 c2ef47f5 435169a7 c45f7e53 440b32e8 42f6b958 42e7751c c3f4b9f2 42683a80 413934a0 43265681 c39253e0 c4226ea8 c3234a0a 42209f76 43896648 c44c949b c2410714 423e2ba7 43afcf20 4391ec10 4345af94 43419720 c2a76ca0 44112fe8 429f4290 43768197 3fdca400 c453ccf8 42c02c68 4352dda5 442f7808 c4404ad1 c33a3a70 4389740a c4827413 c47255b6 42dab1f8 43761ba5 430e3f28 c43ceaa1 c3362c91 438c40f3 c3e54ad4 43b9d4c4 41b98bd8 43375443 c3252480 c462562b c2f7d564 4342905e c4adc502 43a398f4 c20a1b7c 4294f39a 44763ad0 434b7c60 c2e392a1 431d718a 44b67240 44b8d32c 43119a58 42325479 44515a0c 447c3928 42f41c34 42604083 c43c4116 c471453e 4334be92 43024446 c30a6dd0 434393b0 42034454 42ea132f 431e2668 c4a476ac c2ab4134 437ffb01 c488a670 c4957ab8 c24f0fe8 42c35dec c4b13a75 c4949436 4279a450 4238e060 44777210 446a1304 c325ef24 4333721c 44ad01e0 c4304aed 43030e8c 432ad1bc c3add80c 449f7e38 c30a8a64 431e24d2 446f0ff4 c3974834 c2721798 42aea7aa c43e3b7c 444e9f18 c2fdf19b 4312b663 c4b15dc6 c4aac78a 4287b0e0 436864dc c42393c9 c3c70300 c24b7a5c 43855837 43b76b98 4338f3a8 c32341a6 434dd9b4 c46fcbdc 44072ee4 c288df22 4308b31c c498926d c3c6a6e4 c1953f98 428191f2 443229a8 c4b130b6 4341ff0c 433ff250 4498eb12 444e5174 c33c376b 435f925e 443d859c c49485ca c331999e 42a6197c 449df50a c46c8c0c c320da14 436dbf96 c4861167 c408488d c29e14be 43364498 44930b36 44a5f0aa 432ce85a 437882f3 447a1788 c2822fa0 c2878b6e 4248aa99 c4a12975 449a6c84 c3029916 43846cbd c4056600 44b91f02 42bb18f8 4395ee94 c4a526a5 c4ababab 430fa336 431cf948 c3f33330 43cc8edc c313063a 43205199 41879e00 447ef8ec 42cb4d38 43955f2f 43771f20 4302b6b8 c2a478d7 436ab50f c4a31000 4486bfec c2a28ff1 43709006 c497ca8a c47d18da 42eb2824 43068c92 c3266f58 44929b84 4284f9c0 437ddc55 44a169bc c47217fe 432be776 438b7f22 c313cdd8 c4969f64 42b497ec 421c513e c2f4d490 445db1c8 c2c3124b 42a854fc 44688d00 c3811b70 c2928ecc 43950e74 442821a8 c3f7a5d2 41b39f10 4322bb81 43b014a8 c3980578 42fae65c 4310367d 4413a4f8 44a48f8c 4321b90c 438712e0 c43cccf5 c3532850 c32f1615 430b9ada 44b04ea6 c41c5843 420ca634 42d27f1f 4499d376 4474ec54 418fcb50 43165eb3 446e5f40 c46565d1 c2937950 42b05a5b 439ac1fc c4ac1af9 4341fd82 434f9357 4481a682 44615704 42a43e58 422728d0 c3f7c47e c4872aa2 c2dd30cb 43243784 c3cc9fe8 c2c64160 c2d76fe4 431e73b5 c46579bc 447682dc 430ccd98 4194a09c 442efb30 4467ef78 c2ab86b5 43205f79 44748460 44b7229a c326af19 43872753 44597970 c4a076a5 42a7113c 4304be22 c49c6080 430426f8 430fda38 43482f18 44aa31e0 c44fbdae c333783e 430bdd9e 44283b7c 44a9bfc4 c31b29ce 437adf7e c4a1fd42 c4a67424 4339f18a 430a8a88 438fca74 c4af1ce6 c2a7ffaf 43946d2b c3ecce98 c420713c 416819e0 43703cf6 443f9858 c2c94f70 430e1be0 438151ba 4422df50 4466c51c c29046ca 42ac614b c34fd5b8 4461321c c1a3e148 4377aa1e 43a0fd54 4360b0d0 41b9c2f8 4391cc49 44500450 c38fb51c c29bc883 436c6304 4413ddd8 c3070360 c19e6758 43694552 c4b2afd8 43d21130 c29e997d 436582be 4453926c 4424c3c4 c3278d19 43711b2e c4b894a4 c4a2dc2d 43202380 431758eb c3c663e4 c4658945 42b88508 4389e8cf 43c783c8 4483034a c220333c 42af4e20 43a1010c c48500b5 43065e18 4180a2c3 c2961c00 c407c3a6 c2e690fc 438d0019 44b44d5e 443fb75c c3214ad8 42c244f8 c4b584da c49b7c32 43058c8a 42017512 418ea000 433c2998 c0f7f520 43583345 44245aac 43e3cdec 42f965f4 432711db 4402e9a0 c4a101fe 42253fc8 43332feb 440228b8 c3a704b8 c30cf241 437fdbc6 c4a6d46a c46df398 c306f986 438455e1 44641828 c42468ed c2ae7048 43104da6 41bd7600 c485cde8 42fce3b8 42a64135 44afd9fe 4395d2c4 c136afe0 42b7c5d6 c3d1e190 43e64bfc c20eec00 41f3120c c3c4e420 440da12c 419b9c90 438f8aea c3f9a1fe c41a4694 c275bd04 42fe83ca 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000064 -> 3f4c9bbc 3f0cdaa7 3e779921 42276bf4", + "c4044615 4413dcd4 4232e030 c43c439e c43efdfd 4305498a 438aceb2 44aae2e6 c42a4170 c2dbe014 42b6d898 c4b4eeb6 c45ea4e2 41f30a98 437c5ea6 4332c0f0 435a0c20 c32a2201 4337c3ec c406508d c44f81a2 c33ffe8b 4392cea3 c49e7edb c27b6a80 c255f334 4341e3c8 c45bad6c 4305cae0 407b90c0 438c7bef 448d9b20 44398f98 4317cd70 43846d11 c44f079c 43d84384 42aff70c 42e1a1dc 43cf5b00 c3d2aa0c c218fcf4 42f0b663 c46bdc8e 445923d4 c26e09e8 4316da3d 44b1411c c48e9bf5 42db31e4 435b44d1 c42b30d7 4464dbdc c2285774 42feefc6 c43fb833 43ab41a8 41441c30 436947ca 448e2602 c461a9d1 42ac9204 43013804 44455fd4 c41ce9be c21af474 42b0a845 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> be10a545 bf7c4cfd 3dbf72aa 423e6583", + "c3b3d068 44799828 c33c0643 442518e0 44acdb90 43388aec 43777e49 43d13698 445b58d4 c2a9bd60 423c4646 448eb7f8 43f222f8 c3250b78 436979a2 44582858 43f3f108 c32b02fe 42e08639 c2995760 43c9a3b4 422fa9b8 422bb2f5 44a8c248 c2932520 c1c2cfb8 4344b6fe 44b8fb2e 43b00f34 431de4e6 42f417bc c49d13ce c47d73da c2b393db 431d4b58 44867828 448a557a 41a52be0 437ed0c3 c347b5d8 43812e5c 4227d668 43784ba1 c440e329 43d52a18 43476450 4325ee30 43c07ccc 43d2be44 433dfb74 43402a39 c3fdf9f8 449c8d30 430bad3e 41e184f1 c4babf3d 44626800 432114bc 42a1e630 4282fe80 c408dd9f 43024384 4183472b 449525d0 44968c06 c3355259 435a5ee8 c3ab27c8 436e6df8 4324cebe 438a4d26 c491dee3 c44bca56 4327ade6 4385ce87 c4b06d52 44580f8c 43144966 42c69717 c28a05c0 44968950 c341cad4 42e09de8 43d5a040 c42f108f c331b9ec 4265d763 c40c58b0 c4576598 40172180 41d39125 44aed20c c410c73b c28e1ce4 422e76db 44435898 43786338 432997aa 42d9fce2 438f1ee8 c42507b5 c30b4838 41c1540d 442b5b80 c4a6a2f4 40db6f40 421ec98e 44bada28 44acd378 c33ab8bc 429013e0 44a1af32 438e2eb8 42d62044 433deaa6 c4148150 c2a2c510 c24080ec 43410858 4481aa52 448fa3ca c216f674 4270c975 c49fe8fe 44853dac 433540b0 43732c9e 44983860 446375e8 c314db08 430b8d63 44888998 42b02690 42aa0010 428647f6 443b3a08 44af0066 4246e5d8 43342aa7 443b13ec 44a9fb06 c305d8b0 42e02940 c4704b37 c41c047e c315c782 42eb696d 42ebd440 441777bc 42fb23b4 42bacd50 c45eaac4 c41b5fd3 bfe21780 435896ac 448c5dea 44b38372 433e1c34 43839bfa c4950f9a 441fd210 c2f2d06d 4285185f 4479c19c 4381b228 c27046d8 42fd0b3b 448f5ba6 4353dd08 43144e7c 42d67ca8 4482b5d0 445bad88 4318af12 43866954 44233de0 c4a761f3 434564c0 436ca9b8 442c516c 43753230 c2bc3457 428a4c86 44b78236 447f3418 c2cd1a54 432faac3 c4aed5aa c4bb73e8 c28dd1f4 43699211 44b845f6 443c5b98 c0c94040 41a450e2 44409974 44b065a6 40f31e20 43360309 44a5ce5c 4427d05c c08b5ec0 4391758a 44786490 c2806350 c1c31b60 4300f5c0 c385502c 439aa31c 4345e334 4377fe2f 44b5f4fe c465bda2 c30ea2cf 43210620 c31af380 44b8b1ca c2eb7de4 4394f266 c3ebbc80 4450ebcc c25328c8 4384e9db c43d13e8 c4960ffe c279b78c 421900ee c40f87b5 44818332 c311b8fc 4362b4d6 42cfeac0 c3957d9c 4307c75c 413bdd8b c498c473 c418f456 c24b9014 431e1e68 c39422f8 447a0fa0 c307f18e 4306e5e6 c4b978e9 40c5b800 42e49250 43715678 43a199b4 44add07e 420cca1c 4367a430 44469150 429d89e0 c2c7c22c 4265c323 c3d86904 43a06cb0 42b0a144 435e17f2 c488ff30 c3ed94ec c31f5e2e 432e11de c2c39cc0 c43d6892 c2ab30aa 43339d6c c3daa6dc c487f929 c1e5ea08 4258a7b5 43b39e40 44122924 42126444 431dbbeb 43b1a164 44a400e0 4316b3b2 43624aeb c40b6925 430aa1a0 c0840dc0 42dc2b9e c435f859 c3c0e170 434100ac 4146f586 c4833c62 4403e4de 42707248 4316d830 4361d1e8 43d41fd0 c24645ec 41da577f 442de034 438d9324 43395062 4365ce59 c454f6ef c4605f9e c1b4d9a8 4312653a 42d41eb0 c340e2e0 c30e2f9a 41f21cbd 44a3091e 4434a7d4 41908980 430354d4 442ca56c 44b21b44 c2046b50 4334a79e 4483f92c 4440581c c2994ace 421757b6 c43049d4 c426c9b8 c1d081f0 434eba71 c21a7e00 44a5ee32 41f67320 4392db95 c407e617 42bf3040 42de1320 4187c421 44b1c586 c48ef2ea 413ea720 422b68ba c494fa4b c4b43dfd 42f7d07c 437848ad c44cd777 449abc88 c32a8bce 4300a84d c48a7dae c449142b 42cc6170 433817f4 c44eddc9 4457b600 c2e9d6cb 43926df0 c420804c 4489bccc c0331f40 438d1290 44477ed8 4446d54c 43414806 4335eed4 44868226 c47a5876 42c8dc08 42fdae21 44adbaf4 427d91a0 c1b227c0 433b4dbb c3248440 c41308c8 c0b68be0 437b7256 44a78252 c21f6800 4313a494 42e05836 c45e0396 c4b1deed 41989590 42a808a6 c46abef5 44b2c284 42cb5220 43240b53 c403e09a 4462a9d8 42be6e50 4223d6ba 43bcb330 4389099c c274561c 42d7d11c c4adf183 c45453fc 4339311c 41dcc239 c47dd534 44000da8 c1ad2cc8 433ac5bf 4457ad24 c48577f2 c309ef75 438a6eb7 c41497cd c3bb4f5c c33c86b2 4371cab8 44bad280 c486be42 42bb8f54 4360b111 c453edc3 442afac0 c2169d00 4384e3b3 c383eae8 c45215a1 c32881b4 4262d535 445451ac c3f3a588 43423c9c 4380cd29 44ab3fca c483f429 42ed2390 435da3fa 428e6b70 44675398 c2f763f1 4324a3ff 436f6290 44a44bc2 c14ef640 41b393f2 44712604 447a7200 c2d88d1d 438e9c40 444d2664 44a4889c c31c92f6 4316aef3 4485d738 43a075e8 c317ecdc 42c6be4d 4469459c c49d2199 426dc980 438d8ac0 438a01b8 c421628d 43029656 430c7ff7 c48010c4 c414fb1e 43396c7c 425a5a69 436c1bf0 c416d52f c2b3903d 42820f2a 44a8b896 c4601861 c307caa4 42b5ff57 c433c462 c3cd950c c32fd065 4331a836 44b7f756 c48add24 c233f3ec 437edb7b c44b3f37 3fb71400 4346c1fa 42ded218 c4b1061b c20d0e00 4327819c 430a6600 c47f22da c43c2e1f 43307ee0 42bf15e3 c491a12f c4b4e062 4319c596 4320d99c 448ae34c c49f2a69 c24f7740 4313a58b 43f4d0e0 449d0d86 41613b10 43482754 c320a460 447fa928 c334da59 430bf1c2 c4b3ce3b c4a1110c 43346fde 431011bf 4494fbe6 44b4ccb6 c2df3421 4348d30d c412a6d1 43aacd8c c315ac69 4210ee4b 00000080 -> bf30579e bf25a21a 3ea7646d 4072c6c6", + "42f1c120 441bd1f4 432601dc 4489146e c47942e6 c2cde1b9 4314c501 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c487bee8 c451a12d 43364afe c46f27fd c40e5a43 433a1d20 42d9e435 449736de c46ab55c c1beca90 43127f69 c3694ba8 c49a0061 c2a1997a 4314e3d7 c3997930 c48aede5 42ed5574 429751fd c455380d c436a02d 4333e594 42b65406 c4980e1c 4477d048 431b8c28 437bf715 c39c65d4 4372b840 428a9560 43738385 44b0168e c26d4980 c25ba23c 41a3b14b 44183580 44b5a6da 42f0ce4c 438910db 44108c50 44adba24 42a88118 438d1ece 43e11eb0 44998a74 c20f1b94 438d636c c391c1a4 4452c6f8 c14daf80 41a875f7 c3220ee8 c439ec85 c28c5522 430cdda0 44ae7a84 c27629c0 42feb160 42df68f7 c36c0438 c48a6782 43322ed4 42cef3ce 4225e980 43cabca0 3ee40800 438d975d 4429f34c c4328e2a 42dcc9dc 4301d9e3 c4009d34 4490b35c 415792f0 42a669a8 43099b28 c4b761d2 424fac94 427eb09c c3706b30 44a818e2 c1db17b8 433c4338 c4911bb1 43caa650 c261379c 435a10be c4812264 449a4ce8 c32bae44 42959b30 c47a7896 c3151948 c086c520 432cecb3 c4b4d1c2 c3a78d4c c1f03560 41653cfc c38981bc c2bcb4c0 c2e4caf5 424b7281 c4b99b23 c4a70822 42a7b128 432c6ebd 4423d040 c4a071bc 4322282e 438f5f70 44832240 43c7eed4 432c56ae 4313309d 44158a8c c3fddc9e c2e89211 43846a52 c4280f9f 4454bc20 42e517f4 43766372 c467a76a 431d9480 c2ca3505 43845750 c39b6778 44b0f3f2 c2d44db0 425ec7ff 438111b8 43ac4fbc 42dd6620 438ef0af 442fb00c c41d06e6 422f6fc4 41d7a250 449f8e86 44605860 43479e9c 4208da20 c4b938c2 c48fcfb5 c249f840 43247f5b 42697280 c4b5595d 4310f7e4 43513f0e c470bdb7 430aa038 42bf33e8 433f286a 4408a2f2 c397af78 4333e8f0 430d3b61 44668170 44788cfc c3068394 43627f65 447d255c 4439dde4 c252cd3c 429c3171 4485b3d6 44b3d35c 42bf0e04 43008a28 4425d550 c482f0e9 43354bf0 43144504 445572c0 441827c8 42f73ee8 41fd214b c470ee82 4420de4c c261fbd0 42f065a0 c4927473 430eb180 433f6c5a 41ac6c56 448cf39c c48279a2 c2b8b24a 42d6844f c3eeb750 c480941c c2c71a31 4215231e 43cb1e28 c4399efd c2cb3a52 42a9c96c 443a30c8 c487647f 428cf7d0 43269395 c426cfdc c30b02a0 433a60cc 41916574 438b7358 c432575b 430808ac 4392ffec 4386ba8c 448cae60 c2b4fcaf 4213b4a5 c2a427e0 4454ca48 425b580c 42bc2dc6 4449f2bc c400b104 c261b034 43564c1f 441dcddc c390d54c c32cd6e1 432d8e67 4495e35e 4486af26 43088d4c 43244e8a c3014638 43186988 c28ae73c 41ac58be c4ad2502 446f2188 c31f0924 43482de1 4374db90 44a8e386 c1aa03a8 433bf60f c40d0385 c41da251 42c47198 43110e07 448fc256 c48025d9 42424f18 43807ecb 43ad1f7c 44ab002c c08cf140 4303c120 4452019c 44b0e6b2 4303ce2c 4383c010 c3ab5b84 c3931014 c3149b00 435ecdff c36d8120 c410017b 410f5b80 41aa83d2 43125628 c4478760 c3322c2e 43479a12 4407fb6e 44b47cc2 42a6ace4 43777ab4 448f13ec 4437f6d4 c22c034c 4303f82d 43ecd5b4 43994b08 429080e8 436103b7 c444b6c6 44b7a212 4326abbc 431b4353 c4a451bd 449872b6 c2c029bb 41ea6248 44b77f7a c44bcbef c2b7fa1f 42786826 447169ac 441fcbc4 c2f5bcf4 413282bf 444890f4 441ae79c 4326c55e 4346532a c4949c6e 44af5dcc c303d8e1 4341e4c1 c43d41c1 43ff2460 417521d0 41a08e8c 436dbbb8 c3889b38 c2e3000f 436d3bf6 4425ff20 c3a96a1c bfc7f600 4307081a c3a306f0 c4b370b1 433ee142 434440af 44b1cfe0 44b70248 428393c4 430d6191 441e7400 42ac1960 4346cdde 426b6fb1 431d5fe8 c3a73f04 42750f68 438ef21e 440af374 c4afc999 425c5c5c 42b0a427 446f7acc c423143b c2c5668c 42f732aa c3c5a914 c44e31e5 c0a28e20 433250cf c4b6fdf1 c2227380 c1855628 4308198a c4544662 44444348 42344750 436251c3 442c0140 c428fe0e 428c2f40 422e305e c4139ef3 442301fc 43292350 435a80a8 4401d030 c3c3443c c0e30380 4282a159 443fd32c c4305349 c320ae40 435220ae 443affa8 c44d7b7f 4232f098 42262792 44492ec0 43803808 c2b4c7d6 43633c96 400ae200 c49bf904 c1bcbef0 42966390 c4a11e52 433a8d10 43349aea 436f5319 444edf10 4498b670 c2de6449 4301124a c3d7fefc 428445a0 433ac274 421e46cb c3d26ce8 42cda650 42aee8b4 4395c4c2 44361b50 c41894c2 4301da58 4362aa55 c3a7c100 44492d7c 4294656c 4394afd1 c4834ec0 413c2b80 433f12fc 424ee0d4 c4bb415b 449fcd54 4237ee48 429313e0 c427c142 44148700 426dcc30 4228a50d c3751248 440f9e18 c208237c 4380098a c4ab6aa3 440cc7c4 c284b9ce 4297d375 c434a818 41ecff40 42c73ae4 429bb3a7 448990ee c42848ec c3457c9f 428a6a64 c4346b6c 44116bd8 4306a864 42c339df 448d4218 44acb6ac 42617c28 42b1b4f0 44a114a2 c49e319f c2101920 4306a918 4498a880 4439d984 4302411a 4349e31e 44909e8a 43a19a7c 420026b8 41c70f4b 448f1df0 44b2898c 42a362dc 435521ec c3459140 c2fabef0 42b9747c 4343977b 443f2978 4436c9a0 c2b262d1 435c4266 449d7228 c385cfe4 4337dd12 4332e7bc 448785a2 c3e63c4c c2d4a15a 430ebe9e c4a88a0e c485df82 43279804 4390e321 c426ac75 449795fa c28fd788 431e48c4 440a2dec c49abdaa c272b14c 42aa4846 4412a4ec 44aa9c90 c28dfbfa 42b8567c 44b79f94 c4886e01 43133018 43035bea c44b6fde c4bb2429 40d9eda0 427f9080 4461d964 440aae04 40801a60 4319ed11 44581b04 c44098d6 42f03af8 432659e3 c3bdb700 c48d9df8 c347b27e 436034a2 c4a614f9 44339eb4 c1f76598 4323ace9 00000080 -> bf52efd3 bf10f67d bca79e6f 41773191", + "44043d06 438b277c 42b429e8 c4b4c8a2 c4b06f5b 4339f4e8 420e6554 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c2d7ab30 c488a383 c3351503 c44b420c c4a8e5e6 42499138 435e9d49 c47c4b6e 438b4b10 c2293f20 4378ee68 44276360 c330e500 c2aa581d 4374a92e 44909810 435b8370 4335aed0 4333533a c44d5491 c43b5f8b 42aacc98 42d81251 c424a623 c4b86758 c335e906 43802d77 4459d2e4 44546aa8 4278a3b0 43281570 c389f6a0 c4919101 4270b1f8 41fe317d c4a4c639 432d5f50 431d5898 438eeac0 c4914098 c4040759 41f2d5e8 437aa64f c4889d56 c40b6acb bf89bf80 431f431f c3b35130 43815628 c31311cf 430e565a c4b77e4a 4152d880 c19fb4f8 42dab551 c4b71c43 c486d163 4161b1a0 4294065e c4b9db6f 444f5bf4 433116ac 42f09f8e 44a40c68 4482ea08 c20698f8 433b4b78 4459f354 c458029b 42c6dbdc 42d21ebe 4406dac0 c4ba5aab c1383280 4387d40f 4402b652 448fe094 c2ee1cad 43911f32 42035de0 42b729c0 c1461bf0 428a70b5 43e2581c c461b3b5 415c5d30 438806d0 43f298d0 c4101fdc c32ea61f 438a6ab7 c4b30d7f 44017978 4332b554 42d6fc3f c3b223b4 c4645fc5 431cf20e 42ba38dd 44955676 4490bb08 42b346f8 426b6c7e 447d3cf4 4464664c 42dd3944 414365f6 c4af0f5a 430f7b38 4286a770 423c84a9 44a44c10 434eb8a0 42a7d408 43136ae6 c4106cc8 4432e2b4 42b7974c 436022b5 c40afed8 4212efc0 4333da1e 43160098 c483c590 447657cc c29bc949 414148be c4a664aa c488dc64 41068de0 4314d8c1 44b83da6 449be9ee c32cc024 433f3fec 4465d2b0 c4159148 c2558274 437f7203 c3686590 42a0d150 43142ef2 422c20fc 43d14654 44a3411a 4340cbd8 430d8cad 44ad9158 c2a27f50 c33c8030 43446400 c2cbece0 c481c356 433cc452 42f3dfae 44a39e8c c44200a8 c3400e54 414aa885 c00cfc00 444a0468 433489a6 43873acd c4b172e9 c468d91e c3114f75 4183dd5d 40166800 c49bb482 4285f03c 413fd0c0 c3c0104c 448fac0c c2934f09 436e7b73 43d4adf4 447bcb60 43094cd0 428fb16c 4481ecca 4483de38 c3364505 43332d37 c493a438 448ddc98 c342e46d 437cd464 44a671e0 440899ce 4296f1d4 432de114 c424766b c3d5f4a4 c274a4d4 43476bf2 43626048 44b11ef8 c32528d7 430c7e90 445ff730 44ac5cfa 4335225e 438451a0 44651edc c4b34a6d c2b76290 43330988 447d936c c46cf6e2 42c35cc0 421cafe6 c398e15c 4465f278 c306e8c0 4345cf21 4428c5d0 c3c60900 42e97a28 42544418 c4726cd1 c41676f6 c3289956 43776880 c39bd770 c4952110 42b4e984 4163b81c 42d82ac0 43f40764 c2e6123a 434c24fd 443a77f0 c3a01888 c208922c 4385972e 44958e00 c47a4d1f 42de4c84 4209e6d5 43a14b2c c3525a68 4347b26e 436657f5 44a4396c 438421f8 c305310f 43137eb2 c46505e9 44159c28 432b4256 428c56f4 c46fa495 44a47938 c2b56dc4 431ac79a 448eecbc c4892e16 c0e6f8a0 4355eb79 c4192fc6 c436de93 c33541a0 42737b4c 44b0dd1a c49f790a c26cda10 413651f3 c3a21208 c4281407 42c70b48 432c0abd 43872790 441b9618 41831f90 436298b0 c415e584 c407fa27 4318497a 43745332 44a33cee c439fc30 42fff78c 437c994f 442fe754 c4b9a6d5 c08cf580 4374e887 c48e7aae 449bc6ac c345b874 4367bdd3 440a3b70 c49f7ca2 42e6eae0 42dfc932 c3af771c 4472ded4 42e68900 438229b3 c445e8ce c47d5794 c3272211 438a37a3 44a900ca c3c3ed20 423bce7c 43132d94 c39991f0 429dfa80 c2f0b7d4 432d1b36 c438e5ed 44027424 42d64bdc 41b574ec c33f5aa8 c459443a c1bd3180 43912c30 4380a09c 42fba240 4319e6e8 43143317 c42c5a2e 44b59136 4315c844 431f7763 449d0cf4 c468c8c4 c259d278 4314214d 42b72b50 c4b4ed95 41e61180 436a3244 c4779c50 449674fc 431a5962 42e7ca4f c3a8acec c4b583da c20c2560 43362e32 442239b0 c32a35e0 408ece60 41501f9a c410e061 4437afc4 43260e50 42705880 c3af931c 44711894 c2b20c24 43535010 c426e886 439e6cf8 426dab50 43912451 c1738380 c495421f 41ad8608 428ca3ae c47d2609 44271808 c33b3cb1 429cd8f5 c4953bfc 44b98ad8 43158d32 43252629 c403abd3 c49f1abe 41fd4e30 432f3d57 c48aed19 c41cba61 42d03328 4379cf91 c2a1dd60 44888818 c2e924e2 4271b53a c4292397 c467a354 c322a7e5 4357a120 44341038 448da498 bfdf7a00 432da0d7 c4397e56 449d4438 43141770 42b9a1b3 c2e598f0 c45db152 c1dbfa30 43950f0a c384f758 c4289726 432354f4 42c8fd72 448b2384 c3b3c918 430b4f32 42c63155 c44145c1 441bbc9c 41cee2a8 43940825 44818342 44713504 c0271680 4340f1bf 4493872c c3b37d74 432d6834 4391d75e 43c225a4 c404dea2 bfd3fe80 42961c1e c0244a00 c40ec47a c2ae2494 42feef7b c45ce16e c41acf75 c31cc6dd 438b2478 4486ea22 44480e4c c207134c 4286bacc 44aae874 4494b1be c29db86e 4386add7 c3ebafa4 44569944 c154b6a0 419b4010 c40c33ef 41dd0400 42af1834 43070255 c35e49a0 c44375d1 c22c89b8 42066ab1 c42bd4b5 c2f05f70 c25979f4 420ead8b 445183d4 440a0070 42fa5374 432ccdd6 c496d120 c32a5d00 c31f4e36 438e9062 439562f4 43d14bfc c315569e 420334ce c38cf3e4 c41940a3 428c11fc 43958c8d c49e70e9 c4accec8 424d8260 437e8e93 44858762 c2db74a0 4324817c 43948a67 438829ac 4483b888 433fa9ae 439115dc 4496888c c4b1803c 4276c3e8 42fbe766 c3920110 c401b402 c2027838 42b19dcb c49c255f 44351798 42ed36a0 43877384 440a4be8 42588e80 c1d6e5e0 434d52fd c3b02af4 43d25cf8 c33dfc7c 423f144e 4340e550 c39d16cc c346704e 429a64b8 44789ef4 42795480 c2d60c98 42cb3d2c 444c8dac 44723aa4 433c3f4c 42a30221 00000080 -> be9c08ec 3f70c1eb be1a25ff 42ed7fb8", + "c494a78b c3f4dd10 424a4088 442a1d68 4403f8be c3286991 438431eb c390ff30 449afacc c2832c2c 42a0be8d 442b95b0 c47fd25d c2819356 4196f1da c444b34c 43a11224 43343696 43799aaa 4482d7f6 c39349e0 401d6680 4184ce2f c3687420 434d04e8 4318c12a 4215c388 c4950d62 c03d3400 c2bf7d34 43698b05 4315da10 c3412ca8 419c0c88 43128498 4486f816 440d2bec 42792d10 4390d212 44a74644 c439397c c3079d60 4315c74b 43fbcda8 44b764d0 c31ee9fc 42e5e2ee 4493e72a c420fce0 41600840 42910b07 c4b3f7d6 c36ef728 423838e8 435ecefb 42f6e0c0 43167f68 41c8eb80 425fd63e 445c8e90 44b5a122 42dbbe60 43882064 43e4f5f0 434396b0 429a2b6c 42be0a0c 43a53568 4489bac8 c303bc35 43295b2f 44a95df8 44b6584e 43180ff8 4336ce4e c4425ddc c4b27140 c2682c3c 4307b478 c2ce4060 42702860 c2efd3c2 4376fb45 44ae00ea c4aa9b79 42c89a38 423e57bb 44705a28 446c3508 432bd792 42c7a7ef c48c75a4 c103c380 c303eb1a 4390730d c281dfb0 c43684b1 4303bde2 421f19b1 c418bf15 4468286c 42c96328 418ef069 c4907dff 44b61016 c2bcd7dc 419e7d6a 42f12210 c4b4475e c033c3c0 431fed8b c4648b6b c48b0114 429a48c4 42b2f4d3 445518c8 44ab902e 43301fe2 433a33ba 446bd518 433d5198 c12eb5c0 43709b5d 44a420b0 44875764 c1f2ffb0 430dc5f4 446d096c 449ce9d8 c318fd23 4393b597 c464e689 c439d5e5 c311262c 43484372 44493594 c4752f47 42a1fdfc 4392e23e 4452d36c 4422b0e0 420f112c 43725a0d c40586bc c38314d4 c31a3578 43956ff1 44644cb8 44948d94 c300f6af 43210c16 c409c07a c450ade2 c2a96a96 435ea322 c3f4bc8c 44ab33a4 c32437cd 42a730d7 43385068 44682aa4 c2e1c618 433e4ef1 4496a5f2 41d29e00 c28e3ec8 438dbe2f 44b892b6 c4adb5a7 40140f80 433b33c2 c437bdbe 44ad2d10 430298cc 4219201e 44b1a22e 44009dce c12b51e0 4322448e 4438d308 c3582b38 426ffc48 438a62f9 4434a238 43910364 42864c10 4392172e 44adff04 c3902830 c2909bf1 437567a9 c49c2354 c319dc78 c204afe0 4391dfc7 c0256a00 44af5fbe 431fcb32 4375d32b c49997c6 c4766ebc c3466e28 43689c7f c3a47698 4347a598 c2bb53d3 42e1a057 c39d18c0 c467f824 42cfa250 434af3dc c2485200 43412e60 403c0680 4242da77 c47f539e c41797fc 43185cfc 42c4ee4a 447fada0 c3e2446c 433fa03c 43349b5c 442326e4 44118828 412f6c80 4373d3a0 43063240 44851adc 421d69e0 413bf544 444c00d0 43f01024 c1d124f0 4330c0af c363f108 448f631c 413d1e70 42722eed c3fdbf72 c40bfe18 41f8dcb0 436a4077 43d88780 43e6d3c8 c28940a0 43209441 44a5835a c4225158 42f995c0 4288bb96 c49af770 438da598 433ce9fa 4360f76d c466bb2e c37d2038 c333f6db 4353ee74 c4acd2a8 c2f2bfb0 42f7d63c 4326b18b 438a7c78 443e2344 431d56fc 4378bf2a c48ad7e0 44a22034 42a79470 42b4c679 44493e70 441af588 433daff6 4322fe22 444b8a14 c45ca9b8 43319424 41e3ab9f c3c99688 c4b86f85 4311f8e6 42ab7867 c4ab6357 c39a51e4 4327b534 4275fc18 440cd160 441108b0 c23bc238 4146f3a5 44793514 4479ed04 c311efed 43835664 412a4400 c4ad7518 c2ff3bce 43862bd3 444366c8 41782780 c230d21c 4149e97e 435e4e00 42d0b1e0 c1d69910 42f07bbe 43b451bc c325d410 433bf384 43940db1 c2a9eea0 44b66a14 c2876f22 4197d81a 438deabc 4311ebd0 bf874e80 428537e6 447aaf84 4421d514 c311cc0a 43088c50 43150dd0 4416cf5c c1b03fa0 438c9692 43565d98 c494e728 c33e64fb 435ed79e c4b230d4 c4a7955a c29d81e9 4381c376 43b206e8 44857632 4295a4b0 431d5f7c 44ae1178 42eac150 41b78d80 42a0f595 4427a018 c39be32c 416afcc0 437f4b06 40f29a00 c4946dcb c2b2a79c 438f7624 42f089c0 44b62862 c3315d5c 41b7d738 c3c3819c 44a9eafa c1821600 4383968e c499cd6c c0cea700 42f6f36c 4320036a c36ddeb0 c4460baa 4338b34e 4303626c 44097df0 c2b26270 c20c5904 43603a16 44879846 44b770c2 c2d72eac 42bf2ba8 c480180b 44932d86 42aa4c3c 425a2fe5 c47bba41 4394a050 c1d7cbe0 431181ca 4474aed4 c4a195ba c2f4ebb3 41aaa4ea 44ba322c c4353b81 c06c2480 434b03f1 c39b2cec 446b8644 c202af18 43113cad 442cd3f4 c4ac7902 4300ede6 4317648c c3450720 c48f31a1 c306fe68 419ad698 440fee24 42e3cf10 c322abf7 4329c3f0 443f0c84 4444199c 431a897e 43146275 c442d186 c411b232 42a6ed34 43185336 c4a304c3 c3eddd88 4298d5b4 42dfee03 c4abb759 449e814e c1f97530 43053d77 44b3cf62 443908c4 c27c89b8 41be52fa 43548e50 44468400 41cefd68 4231473f c4a13183 c44e0449 42af6dac 41bb372a c33e4b50 c3958a94 42dc496c 42bb332e 44b26b7e 43d666ac c2ac8764 429c551b c3bffa9c c4b6679d c1eef318 42115746 c493fc0e 44a05478 c21e5198 42f5a0d3 c3e274b8 c2afadb0 c1ae7e10 431e6070 44131434 4432298c c332e4f0 438e0da0 c464258f c4aa565a 43400678 43948e72 c46369cb 4448ffe0 c214bd7c 416547b4 4381adfc 43f3aac0 c332512a 434ad7f7 434631a0 c391d92c c246b180 42fb82b4 43cf8310 c46ac234 c332d1bd 43910e70 c405f641 c43a7c4b 4330df24 43448f00 c3cc8b80 c4733f53 42d77380 4337d5bc 4451e140 c45b44cd c26fd3a0 4354b72a c3e4b014 44779f78 c32302ef 438bda50 43f44e6c c41a476f c338b0c8 43392a0d 439fd330 c3866778 3fdf2200 430a731b 448c0090 44310dfc 43012e0a 438e353b c497e940 c4aa21c2 4315522e 431da4d3 440a72cc c49aeda0 424618cc 438df20d 00000080 -> be23a4fa bf6f395a 3ea2e689 42556593", + "44b91f30 c458b6c9 43470c80 4466b47c c446ae7f c241e6d8 42c927b3 c3d937a0 c408ec30 42bcb878 42c7f8d0 c3229b90 443136c4 c279867c 42548262 c3193058 c3d2f738 43246510 4362a0e1 c0102200 444a7988 424c1a2c 42e093f5 44724a10 41594c00 42bad1e4 42d5eaae 447fbe64 c4b61795 c2bf740b 428baf58 c483fe1e 4474d2c4 c28b1c04 434baff0 c4b51080 439dfe7c 42ef2794 42735ae1 c48c6b86 c48a8708 40e85420 43036790 c49adb4f 43cbf2a0 426e91e8 42c7d139 42af88f0 c3d165b4 c2d378a8 435cf9be 441f9e24 c462e83a 4226f130 432e5e97 44bb10fe 43fc9658 c301bf30 42c3c945 40965d00 c4aad2aa c13764d0 42d9a528 c4a637b3 42b148d0 c30716db 433d9dc2 c386bdf4 44041ea6 c31360ed 437ea56f 43353d18 4430c2b8 42425118 42e9d206 c43a2367 c45a4de9 c2bb766e 428082b6 44854866 c36583c0 42f41110 43155efd 445111f4 42c716c0 c025a400 438ed4e1 c4506e47 44427dc8 42873c18 42de495c c352e920 c1468c00 428afde4 42060bd8 43eedf88 c471f66c c25cfca0 432bace9 c29ddeb0 c4b058fa 431ff170 4380b2ee c44b5d1e c3a1eb98 c3052a16 4392af8b 43640708 c4463ce0 c29404f6 436f135f c391eb98 44b73464 c1a77de0 42029004 c4437553 44b80878 41c66c60 4321d5f6 c4adfe4c c45836d8 c2245c8c 4346bf1e c4b8d4d8 44541670 c209bdf8 41e5c11b c4a445a8 42f23de0 42a78694 41fcaee1 44822442 441c20b4 42aab818 4379728f 428dd300 44a97ec4 c2c69b59 42f44a41 c3c8dc7c 4244a440 c248b6f8 43940784 c326f638 448e2c38 43326b88 4309ef08 c4a96c57 438f80b8 4308ac96 434bdcfc 43ad105c 447dbbd0 41097ef0 42abf1e8 43c6b2dc c43c3e8c 430a645a 430b5bda 44b34da0 c4950c30 432614a8 41a2acac 429da7a0 c44297ab 43312612 43536b5c c428a3ce 43b6f77c 41ae3030 42bab16b 44334290 c4738656 c3090222 4320b166 447cdeec c385b3f8 c2eacbf5 423c7797 447c8cd0 44b14900 c3417653 43113812 44150420 c4ac2854 c18304f0 41488523 c46afc30 c311b9b8 c2f56d86 42b34908 c493bf50 446541ec c2124bc0 42acdc50 4397c714 c3f19f98 c17f2530 428a349f 44a39888 c43a5fe2 c3059934 43059b17 c4ac0977 4322d9e0 432bcace 43099f36 44079fd2 c4bace21 c1f09938 42948755 c4ab8fab 44237e48 422eee28 4138f856 c49b2d42 c3193658 c282712e 4316c151 44531d7c 44a2cd58 40494ac0 4378e11f c355b658 c42525a1 c2fee260 438c5576 44480d30 4493b8f0 432760da 431a7d96 44a90630 c4ba7ca9 c2f69d00 4333b7af 44661144 43872d20 c1efe110 424f825d c491b675 c4b461d6 c289ae00 427e6836 c4b18543 44b0daf4 c2d64c87 42f50c9f c463bdb8 c3913984 c3010e98 42589de7 c4bac2d9 44b20a04 c1f896f0 4129d214 4436ba6c c3ec93c4 4346fc5c 4366d09e c3beaaa0 44ba0dce 428aac18 436e33e7 c49c38ed 449ff6b0 c2b74dd4 41ac5734 429d8bd0 c4b27688 c2f1199e 4319dcd0 c4b28a6b c46697c5 c249b658 43672073 439f5ba0 c404ba5f 42edb028 430e92b4 c4a99ef1 445c08b0 42bd97dc 42e6dc29 44226d38 4447a478 bfbed300 439283a4 43712838 c468c98f 4308a358 4310b29a 438afac8 43f5691c 42d93664 422dbc37 c3e78a04 42f5f770 c31f6de9 421c0c8b 44168ee0 c466c1ba 4310b40e 426fce59 c45d94bd 4407f5b8 c314a77c 4374bbe6 43974300 43efb6ec c2269868 4303f9f6 430783e8 42f1e540 42ab00a0 43320eda c434a2c4 c40ea897 c32bdd7c 42cbfc64 c3511c28 c419d153 c181de28 42d7406c c46e1f57 442f9cd8 43215eae 42e4f708 c36ceb00 c43504f5 c20503e8 41e75dda c450cc4b 4413cd0c 42cd1f98 438106b8 44a1db8c 43423c20 c308671c 41a1deee 43cebd04 440c2254 c247cf40 438a7bc8 445c4de4 c36d0a08 4327b8a0 41c96c1a 44a8b1fc c466ff03 430e7466 41a32d3a c2b00e60 44552840 4287cbe4 42ff624a 442eae58 4296b4a0 4343e5b4 43126b1f 4450642c 44490f5c c2328f4c 42da79e6 c440cab5 c3fe0cac c2f0cba5 437ff339 4454ef08 4486665e 426c9fd0 435360cd c482f3a2 c4ae5b66 428f8364 436199d0 449d6bea 42e90ab0 41894920 4366d6fc 446c22ac 4483a866 c20f4fb0 4298d538 c3923e68 c3b27ad4 421756cc 4308d810 c4b1410e c3e02524 c317059a 42ffc583 43610160 440d7040 c2c20d82 43831cf4 c4172a7e c4af27cd 428e1afc 43104cf1 c4508399 c4a0cce0 c2b94271 42121645 43045848 c47db3f6 431a05c8 430853a4 c4943178 449fdc44 c0b2a460 42848f2e 44b4d4b8 c44bd47d 4278e5e0 438b619d c3d58690 c47f776f 432fe0e2 4381fadf 443108f8 444435a0 43005006 4307ab4a 4430f740 c441f598 c3183cde 43100a89 445035dc 44683c08 c1affb48 438598b1 44877404 c49d938b 417d0680 4361a86d 4377fc50 c407c497 4293ed00 429fa63d c1421100 c47fc452 c285f0a2 421d313e 4488b288 44a0a440 c1f24840 42dd212c c4af1dc1 c3fe001e 409ad420 42495175 c4988aa2 446cc698 42b5a598 430f81c6 c43b2fca 447b501c c267333c 42c394f8 c4aba0ea c3677690 427ccaf8 42bf3326 c2608940 4394c1e4 c285b66e 4387d9cf 440d84c0 449a77ac c2796e44 41a9b8ef c2992d00 441530e8 c2567120 433159a0 c354e328 4424d0b0 41dc3588 43743281 446dd354 444c790c c1e299a0 430b9d62 c417d667 c4118bd6 42eaeb68 41b993ce c3dce4ac c49dd003 c02d4e40 4362cc30 44adcdb6 c3b0baf4 c2f13d3e 41f99e48 403c8a00 c4ad7951 423f9530 42ade7df 438f4708 42833470 427cef18 42347ce1 44b675d0 c29f76f0 4283ad68 42f8b1d8 c316d178 c4834106 c33b77b2 4323e483 c42f4c70 430fc4f0 c0b7fa60 42b06c11 00000080 -> 3cffde9d 3f76b048 be87e4dc 435182b0", + "c3fbdf46 c4212483 42bf47b8 c41f7c76 43150b70 422f3d60 43036b06 4390cab0 c49f4d11 c3231569 431b22ec c41b5a68 c49ef79f c22d6278 421c0440 c413678f c457f4c2 c2a3d039 422cdfca c40ff12a c2edada0 4301a6a6 4343fd35 c396fa48 438faba0 c2edcd1b 41befa6d 44ad7656 c2604980 c2071d6c 4387000d 44a0c8ba c49db47f c2a80d85 41ac4aac c326d548 c2f10130 c299777e 4391f78a c4a94a58 4417d208 c22ff298 42faf87e 4358ead8 4493afc2 c309410c 41fb73e8 43d18b74 c3500ce8 43391f88 42d6cd2a c4683475 c48151ec 429476f4 4363b114 c474e108 42cc0d40 c2161f2c 43528e45 c3e599b8 43391170 c18c6d00 422da742 43ef7758 c4643255 41e57b20 428fc703 44569d70 c3de3830 42790028 437ea6f2 449775a2 c404b6e8 c32d9ad9 4339a376 c4a11dff c35e4b28 c32c62b9 431c999d c33740e8 c48b2ebd c212fa4c 43244174 425e04a0 c49d9de4 42a4ed80 436a58e0 c39f310c 42eba330 431283b8 43890152 c4a760c5 43aee47c 42486798 43173131 c43e446d c428e3a6 42bedd70 42ee68ce c4056957 44a64bba c2a9cd0e 42baf2e7 444e44b4 c48ecebc c1d9b020 4382c3e2 c49a10c0 c49d86a4 42903ed8 4362cd45 c2d229f0 44963f06 c2c5e00c 42927d7e c481eb28 449f1346 421abf3c 43322fe5 c1fa1f80 445f938c 42ffa12c 42a330cc c22d30e0 4437ef0c 42e7f9bc 42baa1db 4414588c 436d5ae0 c2610e6c 4370b4e1 440c7d9c 441059dc c2fd47ce 4319aef4 447fd2c4 c48e6392 42cd8368 42fb9b46 43dd92fc 447e1c34 42938fcc 42ca1608 44869cc0 c48efd66 c1aeb210 42597b85 c3cc176c c38b4024 c2855842 42ced2d1 440592b4 c48003ee 431acbc0 4321f6f6 c48d07d4 c4ac2ca3 42f1d200 4195169e c4001796 c4853f26 c3042dec 431de96a 44257178 449049a2 c32fe430 436a06c1 4422f15c 4440e5a4 c244d160 419d2668 c47984a6 c462f41b 432ce550 4346b8c4 c490e1a0 41864ac0 c2335650 42e8c966 c4161f38 43cd7364 432957dc 42bc9079 c43ea68c c4ad89e5 c31905e6 43235254 44651bd4 43ef1324 c24d8898 43721106 c4087c04 442a5588 c32bf49f 431be1bb 43fde49c c47430fc 42155c5c 43924245 c4a59778 4401ad5a c1cd9da8 4339f49a c4b02ef6 c415f392 c30a1472 43156754 c44d35d0 c445d4cb c20f69e4 433d504c 43e56e60 c341cb78 42b7f420 4352c024 c4510306 448e18a4 c2bc9b61 43502cb4 44487e50 42bd7550 433acf82 41d64479 c3ab84b0 43664750 42ac2fd4 4309a839 c48bc4b8 c3546750 434099e0 438d3086 449a9786 c3816d60 c2993d25 433fcf9f c4601559 c40989f1 c2bfa3b1 438e21aa 448f6946 43cd1c44 c29e2728 432f155c c43c3cca 443de9f4 c30d1704 4384fad2 44ba7056 c3b732c0 c2ae9f23 436f32be 4499d056 4499bf04 c2ea8018 4322c907 441a6844 c3b73178 c2df210f 430d7dc0 437e7e58 4420f3dc c26a87fc 43712f34 c437f54d c2ad3af0 42a4dcc4 429ec232 c48be4c6 c494df48 c065dc00 43882e90 43b1b57c c4081eb1 42f0bea0 423f7a50 c44b0c9e c3995710 42f715f4 4341680b c3538c18 447975fc c1b65070 436354aa c4843252 c467a082 c33c5f71 412a76fa c45bde98 44533448 43286c5c 4378c595 c497ad79 4466464c c25e8dfc 426aadc3 c4228220 4175d180 c2946015 436b9671 c4a9d280 4499037e 42cc88f4 4386a751 4491114a c3b87834 c30340ec 43359518 c4929a59 c49ee423 c2a1effe 42c6b327 434f0ab8 4384faa4 c33e6d30 43642490 c42b514c 439c00a8 426f89f0 41e37492 c32dd1b0 4418ddf0 c33b0a6b 42dc4cc5 c46e89ba 43fb8154 42f75754 4375514c 44ab99ee 43c7a810 430ae7a2 435c00a1 c49c48ba c4afe300 420878f0 4321384c c49ea534 431297b0 43110722 43696e9f c4b44363 c33bc948 431d4752 423f7040 c23fab60 43a96ebc c2c487c6 431cfe4c 44545304 43a307b0 431e7ffe 434f00c2 4485474e c43ac549 c2835666 42db1fdb 448cdd42 c386838c 42a9c54c 42931f56 434b8820 c3d15c64 42567ef0 431406de c44b3a96 435c4b90 c2dc1c89 4326087a c4ba3db0 40eea200 428c3774 435b962b 443512f4 448e389a c3364bbf 41359a49 4468f838 4496b164 431086de 432f0223 c3820018 c41445df c33ca9e5 42de5f29 4431a40c c4790b3c 43137eaa 437b5bb9 44125b00 c441845c 42694bb8 434b51fe 447c7cf8 43d716ec c2ede924 434912a7 4463822c c3784640 43209be0 43890951 c3a7dbc0 44223804 3fb40780 42b6c175 44a287ec c474d8cb 432f27c6 43928ace c45bf741 c3fd3dce 41513a50 43923318 43130560 c485caf8 42f4acc0 42ae038d 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000067 -> bf0d723a 3f1b51cd 3f124dca 424f1e7b", + "c4a16bb9 448f27aa c2a78a57 c3a11d2c 448096d8 42d11aa8 438137d0 c4b841b0 4490c5e8 c320c8cc 434e3a19 c3abeae4 c4600444 c22a95cc 412182c8 44a90540 c46f5339 429da20c 4371a5ea 4439cbb0 c37d7f58 41ca9d20 42996e45 4493380c 43bc562c c259a6a0 4357b15a 440103c4 c48f64fd 429abed4 437ce3ad 44a3e6c4 c401e8f1 40e8faa0 434ea93d 447f539c c45c9300 43463394 4383a422 44359a20 c3643020 4329e81e 42babc6f 447ee318 c4165e59 43008792 423ea39a c487427a 44b18c9a 421d41d0 4390894a c492b2fc c2c778f0 4206f8e0 43831920 c4732997 44784678 42f9b058 43687087 c27cc340 c4a7f6e9 c2fc4664 43863333 c4668716 c433a201 42bfa8c8 41d7f4a3 44095510 44216e94 c3080b40 4361ff75 c46bf3ef 4472bd98 c33156fd 42cfcc60 c1de6200 c4281e8f c22fac98 4335fde6 44642ce8 c4476b78 41dfede0 435494b9 4267f2c0 442d55a0 42b6ff74 43126440 4435d264 43ded6b0 3f717c00 414b9fd0 c39f50a0 c44ba5a0 c228e0fc 43521cac c4438a0a c4aed9b0 c3220fbf 433203ac 4333cdb0 44450ab4 c1aa6518 4304fa94 446b2e4c 44848cae 42dd89d4 42b962cb c386d808 c4339311 c241bf2c 43877dde c3318280 c452b91e 43391ea2 42a20048 c2569940 c226c8c0 c24d4578 430fd709 42be7420 c42d0e6a c2930fe3 41a02844 c4575633 c483111e c26e5a04 438fc113 c35463c8 c3c81618 c3263242 430e87ce c46f4109 44692204 c33abe65 41b04e80 4457843c c484c85b 4319fe00 434b19b6 44aa5234 c32933d0 c32fea50 4315bd6b c42cc30a 43999fa0 41db6df0 4272b702 c42fbf0e c483645c c2e9a90b 43646c10 43f30a60 43c7fe60 c334f3f6 42bc979c c32059a8 c383b2cc c2e70e39 434a4b85 40e9c800 446fff88 430e60bc 41b4e886 c472f4d6 449e370a 42af288c 4340b22f c46b9420 449dfb9e c1881530 42d6ff8b 4397ae60 441a61a0 403b9600 420e3ef8 c45a3715 447abba4 42d3eb78 433b0932 4375bff8 c472cb01 429900cc 42b6285b c47ffc92 c3fd017c 42ebfacc 4328d2b0 44456b70 4435d92c 4217f044 42ed96ea 44a30650 c4509448 c306a0ef 4243a9af 43837b50 c4b53b2f c29b5b6b 42ddb10f 448fcce8 44a47832 43438b2a 42dbbe20 44101c3c 448b6532 c30b2d29 438fa598 c48c3fda 44ac4d8e c327591c 433b8ca4 43dcf3b4 4397115c c327883e 42d12c1d c48b389d 43651670 4319ec98 437ef8a8 c48be686 c47689c8 4312b43c 430a984d c4024165 c49ca14c c21da554 42eff38a 42fe7b00 c3be4bfc 3e482000 42838d19 42ab0ad0 c3788890 42b599cc 434490e9 c46a6ff0 c3e5b1ec 420be568 42ba7061 c4708c12 447e1790 c1faacd8 43731688 43f14084 44b50558 42b6484c 42d5bb5f c486ba6a 447cf3b0 c345d213 415464f6 c48a08fc c2e98ce0 c2df59aa 435888a3 c4a090c5 430848e8 c340c6e1 433ad994 c2b280f0 444c9fdc c209f710 436454c7 c2f615b0 4491fcd2 c32681d2 42997c0d 448c2440 c33a7c38 c31080cd 436cbe4d 44b7590c 4392c520 42845dd8 42bb1f6b 443b36bc c4a3df34 42e213b0 42db4a49 c3da4cbc c4a234b8 c2d132e2 43567de8 c3c67834 c201a3a0 c32fd4ab 41ec7143 c463be15 c4b5f1b4 41e4d1a0 43442d3e c4006411 44b31a58 42fd5f18 42ffbbe6 c360f280 43fd3264 c2785fe8 4369beb8 44959f0c c0dc1d00 c17e04b0 4355d64d 4414e530 c44f51a1 c33f0de4 4324e099 445db66c 44a24048 433906dc 4148e932 44451fc8 4402d730 c2c3b62f 42fd9f88 42cdfc70 441c7880 c237b6a0 43919e93 4476a864 c4b56330 c33a7aa0 43818a32 44895fe8 c11bd500 c1963410 4154860c 4452d964 c434bc1a 43114000 4205c073 4423ae8c c4b75a15 c1b13c80 43813aeb 43a0b638 42d5b080 c3455a64 424f2b88 c2c70180 429e2e20 c2b68c38 42acee47 c4a7e822 433c1110 4317a9a0 4347c38b 4426af80 c3812058 4314d7be 4359c0cd c4224932 c3bb88f4 4331101c 4384fd74 c2d89270 43981f18 43069f28 42890754 444ae294 c4b75bb7 42ca578c 43259cec 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000005a -> bf43e0c0 bf0307fd bec7fc91 42536cb9", + "c4423322 410ded80 c29dfd32 c3981950 445dbe38 43477c88 4355953e 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c2ac8640 c35737e0 c1f419c8 4465fc2c c4134477 423c27b8 43719fbd c41e321a c3c72cdc c234f040 4252366c 445ee6b8 c3eb19f0 c32ca367 432cf537 c3a0b7b0 c4b95a38 429f3fa0 4373679a c3bd9a18 c304a308 42dabfac 435f36a6 c4656730 c4771f96 c2b64efa 423bc48b c3627270 c40443da 423d36a4 4383a444 c4b61b8b c4ab8b08 4314ced4 4343a445 c487ac4e 441154fc 42ebd068 43248b4e 437c8798 44b0edc4 42b193e8 42f3b65d c4835e6e 449e8db8 c3262e9e 438e5c1a 44098650 43fbe004 c345b3a2 436f1471 c4164226 4494effe 4312fcc0 41bd6eae 42ae7770 c4b80678 41f332c8 43427b5e c4afad36 c1eaefc0 c2494d88 4390fc9b 443ab7f4 422245a0 c3130ed3 4364d936 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3eb629ef bf6c5e7b be140a55 410b9d56", + "c3a8699c 43804dc0 c2b6f1bc c47a633e c4517fe3 c21d2358 435ece76 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c403c546 43f0dc38 c2ed7de8 c327f0d8 44407360 c291ade9 437a3710 435d34b8 c48f8b88 c301f774 437934eb c491d9ab c48b25d6 c318e3b2 426000b4 4084a700 c498434f 421c32e8 43656602 43cd2118 43cc3d90 42e85d0c 42d356c9 c28f9f90 c437abb6 c2cca435 42c5dddf 436ce9e0 c4896f74 428d330c 43110c0d c40bfc1c c4867e22 c1f41048 42c4b6dd 43168fc0 441b0ae4 c3358604 433d197e 43dd4994 449dbc7e 432fea3a 41664248 436eb310 43db97c4 c2923e8a 42bef8d6 4373e870 c4a7dfb9 4283d07c 423af958 44641f90 44b2f9d4 42c8c714 438ea8d2 c2659dc0 44400c04 430b7f44 428191f6 4214d520 c4b74986 c2c883c0 4309aaa5 c331dba8 441d0d8c 409329e0 43919bc1 4419e824 446ad28c 422d7f54 43707371 c4a995ab 44b403cc c31c6434 4359acf3 4413479c 444e7bf8 42c84340 437a9a85 44a43776 44a88836 42b44a90 4322b962 c2bb92e0 43156480 42813650 42d6edd4 c3a46dcc c299df50 4301869c 43704bd0 44863e22 4485fa9c c31ded5c 4342863c 44007482 bfa9cc00 41ee2b70 43832c70 c488e9c8 c3e4c71c 420f4ff8 4368c79e c3284c90 448aca84 c3286dd4 4378ff07 448a17c6 c4ae6e76 c2c59911 43569c41 c4b95985 c4b458c5 c2c73294 432d43ec c42098f2 44270a90 433c98c4 43862ed1 c4a98ab0 c47370c8 41fddd20 4299e545 44b77b14 446bbbc4 432eabd2 42827d03 448c9254 c2a39dd0 c3360f70 4286271c c4605638 448e8fea 429bd0c8 4335397d c3d23a20 44ab6f2c c326e7f8 43379a28 c2aec780 447d0af8 c14dd810 42e2354c c450fc6a c48f26e6 42e6b65c 437d4853 439f6948 42fd3060 c26f53a8 438e8a3e 42a86540 4409a23c 4300e8da 4390201a 44491ca0 c3d3ed20 42df23a0 434094b2 44a28970 4491a950 4333b4f8 42f9665e 44b7c004 c4a66e00 3fef0a80 4239a8cc 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000029 -> bf6d4084 3da33e88 3ebbf2a5 40546bdc", + "431a6528 c4a1bd33 c250a618 c3beb454 c36fdc68 c2e799f5 4357326b c44f2632 c4b7efc4 43146882 418c22e2 c496d5d2 437cab40 c285df5c 4235e121 c4976372 43fd1fac 40de5ec0 41d64f1a 44307684 4471b5d8 c3478bff 4276c065 c30c9028 43f7cb80 4203e754 4385c722 c4a0614b c3c9b404 c305ef28 433bf120 43f43bac 422f3120 433247c0 42d8a810 c4b35bf6 c40f9390 c309eb4b 42accf53 43a7a9e0 c43a1152 418de9e0 42de8b33 4498f6b8 439b809c 43064378 42c470b6 43aee970 c42a1837 431d7b2a 42f4b6d8 44b6bc6e c4a21f0c 420e6f60 437d1ade c45f7f8a c483121e c2fa86e2 43573935 447d3474 c40537fa 425868d0 438172fa 44812072 c435edd8 c25b0ac0 43331ecb 43cfc88c 44b91942 c31fc273 436e7146 42229040 c43891ca c1ac6db0 43162db2 c4268cf9 43e3e114 c2b7bc44 43802c9a 4477273c c4265363 c2b6c9af 4371be20 c2a90770 44504b6c 424a1314 43369798 449f976e c49338dc c3112d00 43835416 c48dda8e c31d6508 c1ed4088 42bbda33 43aefb20 440b8f04 3ff99f00 4346a34c c44292a8 c439a2c8 42848c50 433eac5f c4758ba0 c493c2df 43158e7a 435eaec8 43b6573c c493e1d0 41c12760 43298628 448e8e22 c3f3f438 43174074 432c37f1 c4a86d73 447c1b80 c235b19c 41ea8a0b 43c4b26c 4448f70c 427c2750 432405f1 4485b372 c44af8e7 4284ceb0 41e925c7 44760954 c480bb4f 4312b026 4335a343 c4845bc6 43b3c86c 422e40ac 4331585b 43a8d220 43dec174 424a6918 42e832a8 44977024 44935728 433d6f1a 4377c793 430d2440 4382776c 43446ef4 436d76d7 43503790 44896e84 c2d12ade 436c591f c41645bb c3393580 c3404328 43130f06 438e5594 c4890939 42d52e34 438dc4ea c3341e10 4466e8dc 432222d4 4310ce17 c443cde6 44afb09a c21b2348 42aaf825 442b5798 c415312a 4332bb14 42fd5dd7 c459c5c3 c4b3c809 c306e3a5 436015b5 445cc6bc 447d3ff4 4341a080 42b05801 c44448f3 448f1e62 bfadc300 43906d42 449cd0ca c49b2be6 c2a639dd 43578bda 4396c448 c48863ff 4340dd74 43149cfd 448f42b4 440973f8 432a5be8 42174ee8 44b6d67e 41d1c240 42019a6c 4331c6e1 c46d0bc1 442d1800 c331a383 42afa165 449d5f20 447c2370 41e2cc10 42b5d9e9 c4286289 c42428d2 428e9924 43659840 c4830fb0 c113f780 42a3f594 432be903 c40d8b89 44a66a80 41955830 42592734 44043772 4411b1a4 427fa638 4335ba4a c407d063 c2bae5f0 41021960 4322a568 c497fe32 c4a27122 42c8864c 42b9aa1d c4368070 c38db5d8 c325c092 431d2c6f 44744f5c c44bcaa7 c3373cc7 42071bd8 42380620 c4b6904a c1d575e8 42cd3f16 c2fbbc80 c44e4b9f c28a0570 42f35d40 44b35ee0 c3c69ec8 42e3bee8 41b598b7 44ad46b4 c3572610 4320e69e 431801dd c4a0def6 c2d99150 4333c3f6 430cbbef c40a1b8a c4aacf37 c2fc815c 428d069e 42b6ca40 c3a11234 3e64e000 43620b13 c3850d98 c462e8d3 42ba0d30 4208464f 4496b37c c2d3ebd0 425bd00c 434a4e68 c43346bd c3ef6a14 c3125a0f 421502de c4867bd2 c488cb27 4199bde8 435cdbd3 c423653b 441b25e8 c28d2730 437a3afb 411d2b00 438fe8a4 c1cb4020 42e5f6ee c425da17 4388a618 42d4e830 43128a35 447698b4 c44e875c 42e723ec 41e7c906 44284918 43777d70 433d8670 436c739b 43ca887c 441743dc c30f3b2f 431a3e3c 445a2cf4 c443a79e c2d90717 435de143 c3ff929a 44854a1a c29874a6 42798aad c129bc80 c3003118 432a9c3e 4378d820 c4a19a2e 44012234 c2cea356 4376743c 4443ba34 c3c22a4c 42f34e14 42c83f30 4414e8d8 c47a1549 4305bb60 41a44d06 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000052 -> 3f062a83 3f4cbfe7 3e95d73a 41fcd7fc", + "444861f4 c498f8a0 4200b96c 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "445904b8 442106d0 c1a2af08 c4ad71f1 c430e3b7 c2547124 4356b354 c4af5a97 c365b928 c2aeaa3d 4333cb1a 44b1e2e0 c3c0b610 c2a1849c 4390f8d9 44ba22f4 c4a7ec8e c27ebab4 425fce88 c4b409d2 c430a69b 431f05ae 437b08b2 44602208 43ba8480 c2185314 42839468 c470a22a c4334ee9 c0b53240 4363a8d9 c4b4496d 442bf71c c257b120 42dcb8f2 c4350186 c440d4be 42578478 4392bed9 c31b9850 c4a6d5d2 c281776e 42f0cf2d c4b0963e c4911b08 c2f63ef9 43103690 4432acf4 438135f0 c32b1139 42cc165c c4536f7a c4ba64c9 42c5d2c4 437a01db 44092c44 442f57c4 c33d11f2 4301cf1f 4486c19e c473ddc4 412aef00 4369b9bc 44a417d4 42bab620 41d40788 42a224ec c4b92000 44a982d2 42a55528 436481c5 c3777cd0 c3cd2438 42a8415c 4390e511 449fdcb0 424a32a0 42f1a3d8 4350e136 c34b8ad8 44a5bf5a c192bca8 4335f96d c4698e9e c478a932 414fc540 416b8fed 44b4c0c2 42e17cf0 42828a70 43223638 c4555317 c450d3c7 c318b7cf 42b2821c 42aa62d0 43481938 c1b600b0 431a6a44 430c60b0 44a7ab2a c18b4b48 436dffd7 448e4d90 c407daef 431ff482 4380f3ec c41b86d5 4453dd98 43208666 42689d6d 44a1e716 c3edb380 43406494 438a044a 44258674 44a2a292 42049a58 43690c2b 44bafed4 4315ec38 c2bd8b9c 4311f025 c41e5c28 c46ea6e0 41729750 4285a53f c43f3977 c33ce9b8 c1cb8a08 42e4914e c49fda56 c412f328 c3106670 4316a917 c22dba80 43fbe8f0 42aad50c 43831c68 c42d93a7 4405367a 42b2ec50 4287b8ce 43cc6744 c109d380 42150124 4383bc2a c442905c c4605d2b 41a84998 433676d7 44b56efa 44027efc be897c00 439589e5 440a0934 44b6e4fe bf879b00 4354538d 4452b758 4418f5e0 422fb364 43810ff3 c3e6dc1c 42fa4760 c3231242 4340067d c45f19ad c1429880 c1da2158 41ca6768 c451e295 441fdc08 3e677800 42ce339f 4474bd80 c4a3ab69 4304fe44 436f99a5 43850130 43f5ce28 433624c4 41b682ea 44902a2a 4480223a c246c1e4 42fbd80d 44648dbc c4862e98 42f0ca68 431a5cf8 c4770f01 c4b58d24 c3247d58 432dbd2b c4a212ce 448a04f8 430d5eee 4215af48 c38eca24 44ae8b9a 42893390 4361f1be 4449c2a8 bf02f000 c248b7ec 42b0fe14 c474ed84 c4714810 c303cd03 433df1ee c4814962 441a3854 c31c65a5 422fd178 443a70f0 4344e190 433c7714 431c46ed c47a8c30 4410716c 43012c96 41dc0406 441237dc 44a2c2e8 4318de64 428a7cfe 43ba8e18 44a37b04 c2c569d6 438ff2ee c45968d2 4432720c c234ee7c 433ebb86 44b8a360 c458f515 c2b3dcbf 42f312d9 c2c52ac0 c4941668 c2daf57c 433fab6a 44b0e19a c46fa247 c27be3fc 4310d6c4 44989228 44b0e25c 42fcd2b4 431ba1a0 4494d556 c3e27700 432b729c 43588aee c4860e32 43a6b9a8 c33420fc 437c252d 43b07c90 c4774de8 426a1730 429dbd43 449f6594 c457d3f7 c20f6494 430304f8 c407f7e3 c22a7f80 c3161d0f 4325fb13 c41d28a8 4381d468 c3391816 41dd2411 c2ca4380 c463a235 c3248860 431f3237 43893160 c3785eb8 c2a20d71 434746e1 c48e87c1 443c4acc c32f72b9 4381dbee 4467fb24 440306b4 c0f714e0 42f11b4d c47e373c c3336f28 42d58fc4 42c03070 c2f73d80 44b74eb2 42a11c68 43663ddf 444a94e0 449f78f8 c30d7fb5 43041bc8 44821d9a c426607c c2e69f4f 42c7fea8 c40d2e57 4489eb22 c2cb422f 438e2ca5 4286e440 42d34020 c2cd2ec7 4288427a 448bcf58 44b91c44 c318f99e 4271d79f c482ee6e 4313d8b0 422ccce4 4344c31c c4b996e0 44369f98 c24516f0 438049e2 446fb36c 44344a48 422344ec 43147758 c16b3600 c40016e3 42c37d18 434b32d3 c42bc83c 448d2390 42f49024 437e1be6 42ec0120 443c486c 419de238 438d856c c355ad08 42cfffb0 430f7e9c 433f7e29 c4637fef 43478350 c1f30910 4310e5e3 448b38b8 42a45220 422dc458 42941453 c4090e1a 40d79100 c206732c 42200892 44968122 c3cfd0f8 c06d3180 432fb2a4 c42fb20a 444957c8 c19d05b8 42841868 445a22bc 4367f598 432bcbd8 43957c73 c46a0e98 c4282503 425777f8 42fbe32b 44bb7a94 43f9b654 c2e3d059 43126c9f 4490491a 443c3c80 4275c240 42a6cbd3 c409bf9a c4882bbc 4229f080 43915182 44257514 428d34b0 c271b164 4368ed27 c2ed9720 4417ab88 433029fa 427656b9 c433c4a0 44b33cd2 428ca0f8 43497df8 c49c195a 43f833f0 4305fef2 433d9c56 43cd8540 c35936c8 c2b234ef 4336ae39 44934504 c45a66af c2df4b29 4346ba48 c41fbd8a 44a713de c2e1070a 42566be9 441be474 c444c58d c2c3f88c 423d7abf c47d50ef c24963c0 c12efd10 42af0aae c44bb773 c47e6a70 4166bfb0 4316da2b c3f6e770 c301a190 c310338d 4182fc67 44b80220 4324bee0 c2354aac 4293309d 449bff3c c4aea7cd 4239bbb0 4385de08 4486dd14 c4b776db c32a009a 431e6cde c41402f5 44149e20 c0ea4160 431f4f4e c245de20 445988f0 c13fdc60 4184990e 442732a4 430cc5f0 bf456500 4338267d c4666460 434b0780 c22e72f4 43141baa 4492d3ec 445aa87c c2bff52a 43086b63 c4a18303 c461d1fd 428013b4 435e4eee 43308ae8 44bb4894 c2d480bf 434d5865 43b654f4 c3c88e38 c2b89ea4 4257b876 c389aa34 44acd14a 4339dd64 4323c39b 44064f66 c4b38d76 c3472020 432826d7 44b689b8 c48fb0cb c2a0c354 430ab111 c4a62f15 4456a178 c33d6834 42de05e7 43d6ec90 c4870e8c 4346e134 41edf938 443c0820 43d098e8 c1b7f860 4220581a c4ad3a2e 443b336c 433667d0 431662b8 43270690 445e5020 c21e3684 42e2d90a c426b9ca c3e61dcc c2f629fe 429a89fa 439a8584 448747d8 42edb940 4383334f 00000080 -> bf3a392a bf2f971f 3c9fbe01 4331d79a", + "44806e20 4284a3d0 c21f0d70 c454c049 440370e8 42da237c 4392138b 4490c55a c4b0211d c0ea2960 42ea1389 c4602665 c394d6b0 42d753ac 43205160 4487580a c1bc26c0 432bcaa4 41e7374a 42592ce0 44b7a0da c2f7b830 43598e2d 44a5e790 c47a7372 42a833f8 4336399a 445ce390 4437f9d8 42e20708 42dac331 c48bee42 c425f30d c33998e8 428224e1 c1ef3900 c45e1619 4300b108 41fc7bde c46d7e9b 4205c6a0 4287b214 43682aee 449d476e 44b6d390 c3295fad 438e24a6 c3669740 44203840 42c1ad88 42e9c7f2 4489e0dc 4464e058 c2b6fdf6 435c41fb c434e45a c4456c68 4336faac 41c49e42 44ae6016 c470e793 c300a19e 424b4672 c43d28d2 c4875ed4 c2ce341b 438abf76 c3cad948 436dc3e0 c33cad8f 43488a12 43ffa5b8 44852cb8 4318bc48 41403f6e c406f53d c3633c10 42ed09b4 438f74f6 c499f007 44465448 c303b3eb 4205d5cc c4ba4c6b c381149c c11fe200 42ce9380 c4b8b27c c40dc3d3 432c6fe8 42a6e497 c43e2c19 444b98c4 c31c4303 413518c5 c3fae91c 42ad30b0 40ea5840 436c50ca 4437f7f8 c481b006 4201ad00 437eb9c1 440afda8 c49b99c0 429e8674 415a3336 449ebfa6 c430c479 c2180c08 437c0568 c3329608 c4ba8901 43384e84 42885370 c4b87b1d c496ed2f c310fad4 437bd05c 43f5fda8 449db600 4325f854 41ccc969 43de3e48 444e47f4 c20f0c38 438759bd 44385714 448d7c08 428b6100 436f7206 44983ae8 c4b589b7 c2e85549 438c9f92 c46d74cf c401da90 c2271608 438a2151 4421d7a8 c2e12610 c222a27c 43618481 449840ea c4974c6c 42fa3be0 42a170f1 4469058c 44994b3a 4346992c 429c6a0a c3a3073c 440a59ac c3197029 43792be1 c44391aa 42a38f40 c2f36cb7 4388fd95 4402da3a 446063f4 c2ba9854 41bacebc 43872128 43aaab60 432b7186 43052044 445bbdf4 c4b1f663 c34121c3 434f8b7d 441777f4 c45270f6 c318c790 4288e17e 42854160 c4762de4 c30ce38a 4329f8a2 44ad57ea c479f3a2 c324b0c7 437cbb1f 448ecc70 c336eb78 c2203294 42947555 4495cf70 c3acb7d4 429cdfa0 43484737 c48a5252 c2308080 c2cd109c 4389e84a c46435f4 c3dd86d0 c30ac4d6 42bd7e4b c4790db0 c3a7ab98 c19d3360 436db9dc 4492dae0 c40a8523 4154ba80 426f6845 43473f68 449b950e c29dfbf4 41ec8deb c3b4c6e8 43d82434 43333656 431d3e88 441e2f68 c352bdc0 c305e744 42573aa8 c456929c 441b58b8 41208080 43005bec c3fffcda c3d0712c 41a02648 4291aaa8 44b2674e c45fe9e2 c345ae1d 426d139c c4b47e69 4485549c c23a160c 433077ef 4421e468 c413bdc7 433227ee 432dfdf2 44982ba4 c44c050e 42781a30 4393c4a7 c49c9fdb 43c0eadc c2b2ae27 43173e76 42df90c0 4430f294 c2eb72e2 43682152 c46ab1ca c4babe42 c328ab56 430fa1cb 44882d94 c4ab78f4 c18d0de0 4323dddd 4446f1e0 c4099222 c2f3126a 42e7ae5c 4499684a c489c3e4 c3347b2d 4321f0db c433b391 c3bcff78 42e98188 43004aa6 c23ba4c0 4395a0c4 c2cbc85d 4393f5b3 c4a7f9c9 42f2d260 c28b5c30 43553630 c49bdaa9 c4a3e023 428f864c 429f1764 44b9e8ea c4431ff1 434120ba 416d536e 444fea7c 449e9608 42a8b5d4 434d3426 448228bc c37f8de8 42f02f10 4334df61 c4af91e6 c41d6d76 c329ca92 438eb530 436f7188 443d896c c2daae0f 4265618a 44a68490 445f571c c2aeb7b4 433452c9 44408f54 c498d9da c212060c 42cf2634 4422b484 443f649c c1ac34a8 4355a7e0 43cdbff0 44ab215a c2514474 434c1552 c4835293 c4af7353 42c55ec4 42d7c049 43f4ab98 c48ef670 41c29868 41f159d4 4460a444 43ea1578 4335a576 4366f885 c2d24f10 c3b9dd04 c317a244 42d45eda 447c42e8 4241c140 c2a3634a 4286d2f4 44abd624 c39cc0ec c2c010ad 43509953 4229ee60 c3a7acc4 4336786c 42129ab8 44afbc6e c496c306 4334d1d8 41ff14e1 449dd550 c38c98ac 42efebf8 4328d3f2 c4b93fb7 4491ee3a 3d6f3000 437954e0 c445449c c457f566 42e63d68 421ccd12 c487a4f8 43dc2690 430f16ca 42d9b146 43c969b4 c4908ece 43125d78 4234622d 43f0df90 c47692cc 42a8d154 4364bfe5 444c28fc c4a44aab 4301561e 42b370ab c47d0eaa c2ba8920 c31fa1f8 43557359 44190148 448dfe5e 43086e8c 41d822e3 43649118 435bb2d8 c28b76b8 438e5813 c4b57ffa c2b118a0 4338660a 43626410 43a18bf4 c47f943a 4194ef70 4382c5a9 42b6f720 43acfd8c c1879990 4380d8d3 c448f54d 44784590 c2082f88 43636641 44126f70 c4aa670c 42dc600c 438de584 c4a2d283 c44e1027 4282271c 4368bd2a c491d2db c49b2860 c2254e48 42aa9626 44654404 44604848 42d3ba64 41dd9e47 4458a1b0 449d0468 c31dfdf4 428241ca c4595220 44ae5148 c30d5b04 433bc40b 423828c0 44aafaee 42c385a4 4328b4d5 c4b74494 c43de629 c1433680 438394ee c2d967f0 c4993714 c25a8218 4323df6d 445f52ac c3b1aa68 43188ea6 436f515b 4466d844 c4664d34 42580fc4 43213892 4444e878 c41fd136 c32f5147 435e1eee 44838002 c39b2040 c32de3d9 42c9bd32 442981b8 c44e6925 417c4060 435dd0ed 44959e46 c47d232a c1e3f1b0 42277008 c265d700 c49036f4 42cd6c78 43825424 43af1f4c 428e3cc0 42ecb168 435922c2 c3412af0 c44773a1 c2bd6094 43001ce7 c4ad8155 c40b4c5b c23c4fc8 41704ec5 c3ff49aa 43bbbd40 430c2d32 42987e36 4493d720 c4b6a4a9 429d46f8 433c438c c46edaf4 c480f124 c30d3667 429e9bbe 431c0930 43c78c4c 425294f4 43423b37 44a9cbb8 444ba658 c2981396 4352c936 c33f8b90 444b06f0 4321e1a4 429e86a8 c1d6f100 c3e4d51c c2a353e5 433cd08f c48982ca 43ecfbd0 c2b32e58 43016794 00000080 -> be89ebd9 3e86a669 bf6d2a87 42d0f92a", + "c4382de2 c4bb6e36 430312d8 c460c067 c4554920 c14d7880 43037604 c48638a4 44091b68 c17c33e0 42ee81fb 432aa8b0 c47d5022 42f21020 4338b5f2 43bfff40 c3088238 c2bb5ef2 41344073 440e7470 437377e0 41bd2320 435aeea7 43a767b8 44320b48 4195bf38 4359f654 c49d808e c25f3740 4116a360 43849e77 44306be8 c39b4034 c33c09b1 429ad0a9 c3d55038 c4049243 42c9f750 432b370d 448040e2 c429d963 c2a4bd73 420df4d2 c327ab58 4487c9a6 432da9c2 427ed3b7 c1a1b8c0 c4b63173 4007d680 428a067e c4b7a938 c38aefd8 c30afbd6 438d7016 44800ebc 43201990 42a059dc 4310409a 43fd3c20 443c168c c280ee3c 434998bc c47f8bbe 437162f8 42626a00 42620c7b c489defb 43526ab0 c2cc45b2 42c4c2bd 44178798 441d6784 c3070ece 4302c1ef c41fb06d c2acba60 c2b2ec62 43635b19 44636d00 c3cf9988 c2dceb9f 41e8c146 44b288e0 c406f751 4313f520 42d227a8 c44007ea c49a2457 c22e79a8 4373487a 43b832fc c41ddc77 431ad616 4211d234 44a302fa 43c81870 432b72d0 43823a9c c4518e65 444d5404 c332dbfb 438ada51 444a1e70 c4609719 3f14bb00 42c2362a c43f3c2a 443119fc 427630f0 42eac267 c4273c01 44a919d6 427f8710 42c6307b 42a19b80 c42a4122 4293ab1c 437d6036 441ded24 c40bc227 4326923c 41b4a9ae c4709c4d c3334b60 4291917c 4301a192 4472161c c4a0d37d c0ea2460 43479183 42ff8b70 c382f408 41390830 41945ae9 c40f704c c4157474 c2a2eb5c 436ae88a 446ef1d0 43509648 c326ddde 431d44d0 c342be70 c4b3bee5 412f6240 434cd728 43c2b874 436f9a50 41cdbad0 4349e4e0 44a84de6 c499fa27 c30ac4a8 43888179 448600ea c4b7f397 42c32640 42d2f808 425f0820 c49a2698 c10f7810 4271b644 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000028 -> bf701dc5 3eab8dfd bdb6dab1 43397543", + "44af2908 c43647a8 42b7baac 43c35cac 44baed90 c2db08a7 43929d00 449963c8 c4b3c31e c30f9590 4299e079 c38917d4 43a274a8 c30898ce 43895c4e c4b7b6b6 445407d4 c2cdab2b 431cfbca 447000c8 4419a78c c195c560 42aa9421 43b6f668 c475e8db c2a09243 432b7818 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f61ee9e beee73e0 bd84d993 438e0e96", + "44827e42 c2b5a460 c2f6b17f c438f403 c3434cc0 c2f59acd 434a4b1c c43b9ee5 44bb56f2 42023a94 42d81688 440acb94 c4ac95e1 c32c7ef8 4157ddaa 440415e8 c319c908 c21e2558 4333c640 c37ab970 41cbbe00 c29b055c 429c1b9e 43fa9324 c344baa0 c2a3bff5 42ed33e7 439d0e98 44610984 c1860370 4354c3c6 43fe2064 c4b7eb46 427353b0 42bcc3a1 c4a91708 c4059756 c309ea9d 427125f8 44ae9150 c43bafda 42d034c4 436d1bf5 43f24824 c4786ea8 c31205c2 434ae110 c3ad5868 c43d50fa 43325828 435bc7e7 44954c32 44b0c2a8 41a223f8 43630e7b c365afe8 4485fa9e c2ce7c24 4377807d c487279d 446ee148 c330a64b 430c7060 42f8b580 448f539c 4286ee9c 434de5f1 c3a875f4 4450572c 43392dbc 42e174e8 c41ada5b c44c2f05 423fdd54 426957a4 443a2c74 428a8840 41ea1278 431a8143 c41663dd 43c3517c 4344053a 42e32221 4484d21a 44300dcc 42f0d974 43546fba c2f6b7d0 44975a68 43130398 428340dc c49d817a c3f5a518 c33a7934 42528731 c467780e c40e2620 c2cea731 436c007e 3e8d3000 c2f36750 c2b212e8 4339eda1 c42186bb 43897020 c1e07880 434c6869 c3ded4d8 c3ae0224 c347e77e 43878cf4 c421e716 4436b364 40f98020 431db803 4476577c 4416efec 4218f628 4373f25f c49d1253 44b07a68 c2e2b208 4316626e 4499d838 444b5910 c2b49966 438fceb4 c4658bc3 c2a28cc0 433e1eb0 4308f38e c423f23a 445c5f74 434747c6 437d9d1a c3dccb14 c3aee5ac c32b0088 42ac4965 c41255f7 c48a7dc6 c2756c28 41fdbc3d 4497436c 44af31e0 43231316 42d71a3d 446d8ef0 4292a5b0 c29128b0 431822e3 44212680 c3431690 429e8a24 43238cdb c440e604 445bfe10 429d1e10 431eea52 c408f820 c2a4a370 c116d3f0 4384634e c388f538 433b6d80 423e4f68 43182fd0 44380cd4 44069574 c3095f29 430b10ca 43c121d8 c3fa7182 3f3b2100 438ed0cd 43b9ff04 c4865880 42012508 438dbe9d 44884aa4 44a43344 c30fc7de 434c2780 c4819dba c231e780 42b25128 437f774a c497a106 c2bbb210 421b979c 432c3fe4 440c40f8 4330fb28 43321358 437b5fd5 43e76294 c2bf8ee0 4284f3f4 42d9b7cf c3e3a2f0 c377d6b0 421192d8 42474472 c3c631b8 448c0fc6 43108c50 42f17608 44a26dc0 4439ca9c 432231c6 421d39f3 c4578b4e 443dff80 42701750 42f01d32 c3fbfb5c 446633a4 42b35820 438ae911 447eaf4c 444c61cc c2289224 42b479d9 c49caccf 4391a254 42ce705c 41f1d882 c3a83a0c 43fe40c8 c2a30b15 425cdf24 c292ada0 c443221d 4217b7cc 430b5b46 c3e5ac98 c4ba4820 c29eb2c7 42b6e601 43b9b4dc c3ee6652 43255106 42ddcd41 433db1b8 c136fa80 c27500a0 438c61fd 449959ee 43450bb8 3e005000 437fb91e 4436eb88 443600d8 3f067f00 4330f66a c4b2f895 c40b4640 c331f5cf 436986ca c49034e7 445ab4f4 4345979c 42ace972 c3116c08 443b2bf0 4248ce48 43920dcc c4800f52 c45e0005 c33af365 42d2aec9 417ecf00 c32a0998 c2a03a35 431a9197 4486b4f2 c4a9fbed 42aac2d4 4333f187 c43b568b 447347e4 c307ab98 43786dac c4781bc2 c3196028 c20cc054 435e8934 4432e1b4 c4b45749 c1f565e8 419b97be 44a80e52 42b91370 c305d5f8 437b562a c3e55ee0 43e0799c 431e9030 4375f6cd 448b01b4 c3bcde30 42dc223c 43566e84 42c65a60 c476566b c27cc7a4 42c25502 c32b2260 c4ba7322 42ad3638 4392866a 43974630 c2b97980 41039df0 42bcd2c0 43c42d68 c47623c6 c3223812 412c4d35 c3f3b3d0 44933b9e c2d49427 4249b912 445283dc c4bb7c28 c23f046c 43924c0d c4269135 c2c2e040 c30b6dec 428d8caf c483231a 4495eb16 42ac4318 438409de c4a90c1b c3045688 c2a8b6a8 4395a85b c4936d3a c491b40a c2a80ee2 435f5afa c4141168 c31e2a48 c1da73d0 4314ed89 c4b7a50b 448c6040 c2eedf30 427350f2 432597c0 4493a8a8 c118b860 4392d1b6 c487121a 43cba058 4329b336 43249350 445a33a8 c3c6accc c33eef66 43927022 4483c3ec 41a6b7c0 43024b24 43554f3d 443e51ec 43d8a7e8 c2ce8193 4272e195 448f83bc c49731e6 431e50ca 42971f70 439a0a60 c0896f00 4306bc74 42d5607f 434ceb50 4496950e 4339ac36 42fe12bb c42f6acb 44b28ec6 4276fe30 42a8cbad c36510e0 4431f2bc 42bd0d9c 4301e700 42bdd2c0 44401128 c2eaa331 43606689 c49a339a c40b2165 4319bbce 4370bb88 43b65114 442cfff0 42b43dc4 42e83073 43c6b3f4 c4b18ec9 c2a5f245 430eee6e 44babcec c43b73c7 c2476894 4343f5e2 44602ed4 43884330 4339e28c 4385f5e6 c390f294 43b2a1ac 42a77594 4383e82d 4484374a 434f91a8 c2b20fd8 416c8a4e 44990b9a 44764ee8 42653770 423adff2 44924a98 c480d23b c31116bc 42bb2814 43ab5a00 c4ac0bc2 42a97dc0 437cea67 c472cfd1 439381dc 42d8e278 429ef77b 4409b0b0 c4640292 c2c12396 42715a9f c3cf2880 c497d8f4 423745f0 438d6a55 445a8864 c409028b c2833eb0 43123721 439dc0bc c4b81514 433138ae 41c97696 c30c44d8 441c9ab8 c1874990 43732d3e c3af1f20 c47a8970 41da79c0 437e084d c4913493 c49acfcc c33d3251 4365bba1 448e1dda c48bd910 42aa8178 4373756f 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000075 -> 3e2152bf 3f752bac 3e769a45 41dacc69", + "4417d93c c3f72426 41e8edd8 c4948f35 43e7e6dc 42fa7020 42900ab3 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "440c3180 43c65834 c2263270 44094634 439dae54 c320bcb1 434941f6 c3ad67c8 c2c35460 c30fc0f9 439138d3 4485a12c 4253a200 424c573c 4302f466 c4a4b3a6 c428f4a6 c32cc62c 43813e20 c4a4517a 43f67504 4226b364 4323f70a 43b696dc c488b58b 42fdfc00 42ba2634 44354e5c c3e1e59c c3325171 4344f4b0 438749ec 44079734 430448e0 43955857 c4b3a402 c3245a48 c21961b8 430458f8 43ef5048 c452660f 42c22404 42a27f9d 43f69f38 448ed9a4 423568cc 434d758f c4b0abdf 449392b8 c336c810 42f053e7 4437bcb0 c3d678ac 426108f0 434c922c 44afb9d4 c41dc923 c335a99b 4328cd16 4457baec 4469c514 43271b6c 41a12fd4 c38223b0 c142de00 c24507f0 4273a5b3 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f19c8d3 befaad3f bf21cabc 428e51c9", + "44b5233e 44ac0088 c2de2bc6 43db43d8 c46305b2 4308f098 438aa2dd c3d43fa8 44896fec 42c0a24c 432165d7 c485b19e c435cf22 430b4904 42c5afb6 4402bf38 4495e27a c2d57616 41ad205f c47f2ac8 c4b16b6e 42b91244 42fba2c5 4485b472 43c95f2c 430b23c4 42c2fc84 441bc2dc 447955c0 c3049c3a 431c2ec3 c33a8810 44b6a6fe c2255d88 431a3f15 c3599990 41dedd80 c3207a44 42614518 445fb914 443afaac 42302990 4304b46c c4123628 c4b1ed40 4266a6b8 432ab0c7 c4a16ac1 442b7a98 42bf20fc 4336e970 c4859e82 c488b7f1 412dbe00 43398d17 43f72e7c c454d82c c34261ff 415759a1 c3e1d184 42f3e490 c2e4d796 43228e45 441484c4 c44576db c3264df8 425d6f9d 44875a5c c3dfc854 43178e3e 4267733b 4461aa34 c49ff408 c2ce8679 43010969 c379a958 c40fd5e9 c322458c 437afec2 44b7c8b8 c41ab126 c2d6487f 4392f614 c4986c97 4358ae08 c25f5dd4 42c3652e c2f07250 445a7934 43050ba4 428e87c7 c1645580 c49aebcc 42f83574 42a96fa5 42d42640 c49bfb78 42b41378 41ee8ab2 44a57bd8 c2130a40 429a8800 435a6f7a 448327f0 435d9a90 42ec49fc 41f2eb91 44939718 c48fbf23 c2f92507 42e2cf4b c48dcae3 c46dbb25 c33f43c7 41d13f81 c40f9f75 c446d260 c1d7f0a8 4239ed0e 448d1e90 44535ff0 429d3014 41f19286 425a6020 43fb71dc 4287d714 4359100f c4319a2e 44b592b6 43160b9c 42d4fc18 43795f50 c4b1c18c 431be41c 431bae07 4396deb8 4220d600 c3144855 4320b420 444fa620 c41d5f08 c211de88 42db15c1 439a17d4 c28fba90 c324403d 42c91618 c4a31c42 443ee9b8 4333a882 42c24367 43e34af0 4394f200 c2f66296 4260f85c 445a7248 43b947fc c2ef9060 427b423b 44978682 c49cfe37 42f59f30 4388dc25 c441d40a 44857056 42dac16c 42173f45 c41b06dd 4269ed60 c18f9530 43709435 c493e561 449ad1b4 c271b508 4333fb86 c3be7f80 c3dc25d8 c153bf40 41b1cb5c 436ac580 c3d5a060 426e5a40 431d81e7 c4ae5b44 435ffa70 4290f68c 4393a7ab 447a7954 442cb3f4 42a8dda4 4392ac70 c40c5b44 44a7b0b6 4238f5b4 4353b2e8 c24a4440 bfd22000 c31f532f 43629940 4417f358 44b90d1e c3406e93 43283544 c4166f50 c481bb9a c2f42016 43603769 c43b3a25 439ecedc 42e52a24 43090722 c480c5cc c4801a57 42262e0c 43287b13 c34adaf8 c41736dc 4315bb5a 434b66df c4740676 44593680 c2be7335 432d471f 44674f0c c2839290 c0e34e00 425fc954 c4180fc4 43e62128 c31ecc94 4383aa1f c43a56f2 4425045c c2805bc2 4333969a c3f201b6 c494b72b c2e89e81 4384beda c3b446a4 44a5f28a 42bac550 42984b49 44a66e3c c42a356b 43002e60 425b2e20 c3eb0854 c4a19503 c2bd7e9d 427e5361 43bbaf50 c343a550 41e73a70 438961f4 442da640 c3045200 42bdb4e8 437830f4 4400da5c c4add8f4 c1bb6fb0 43371d22 4109c080 449ad718 c2fad0e8 43089bf8 446f2158 c4b458c6 c2e9bdd0 42d2cb6b c49a1122 44b8ff4e c2aa549d 429a9f2e c4a6713e c4aecef4 423ebd40 432540e1 43ec6d70 c4012afa 42fc1994 429851bf c3a49170 449cd6e8 c2c9427f 4376dc71 c48416ad c35c4b88 430d4d48 43850063 c3c88fdc c3a82f38 c2e8a3f0 42db2d6b 40534400 c4884e26 42b42dc0 4197b4b2 c49b08c9 c3ae3230 c2837fee 42d00e9d 44877bf6 44a2d0da c321c1ac 4341389d c4841d00 c3efc584 430ebb62 43545461 447c82c8 c45faae1 c30681fb 42db8940 c45109e5 c4570870 c2eaacce 43338b06 43f6b90c c3c36c78 c2a8f1b3 42f7848c c47aa271 c4033597 433910d0 43555ede 4455184c 44a6610c 42b8ce14 438a58d5 c40f88cb 438474dc c1a3e638 42b2c642 44b88e7c c1daacc0 c2550c18 430e45c9 4471f8f4 43aef13c 42874068 43743514 43513720 c48129a1 c335909c 4266d67b c44ee3e4 4488f07c c3172624 42baee2c 44a132da c486c728 c255b800 4359e382 c497db40 44a641ec c308a23a 4325823d 44b0d118 c39e80f8 430b1176 428a54f2 43a3b81c 44a3f2c2 c2317e00 42a40efe 443dbf14 44923e3c c26cff2c 435dd065 4481ea9e 443be86c 42d199dc 41bf053f 44167d60 c2618020 43010370 414f9460 c425c672 445f9c94 c1125be0 438a3f9b 4471299c c32a6a08 4343e898 426ae9d4 c4509751 442df160 c300852a 41c135ca c3fb4a72 4477f4d0 c0c51b40 430634ee 4449b7e4 c2d1bc30 c2f13a49 43416fff 4447dfd0 445f4880 c20d9154 42d5d0ca 421f8940 c3a26608 c1bba020 427802a5 c3b61d24 c4081226 c34184a6 433c0392 c48e314d c483f07e c2c22ef9 427119bc 449c7324 44a0c4b4 c23c0c20 426880c3 44a7c8b4 c4513896 c33d6694 4180e2b2 441e7624 c413b0bc c22353cc 41697a0e c42f8afc c3f97260 c2b0e21e 429ca735 c422f15e c46881d1 c2ccfeed 43159068 c3aa0e98 c485e334 c216f198 4306a584 c4bad07e 4468d6d0 42e78ce8 4387fabc 4421ca18 43429348 432b30ea 427dcd12 435c0370 c40d9234 408e13a0 437dab94 c49c88ec c4af4e9a 4294185c 43282efb 444b68d8 c3a453a8 42449cc8 428decc0 44b92e22 c35f67d0 432559c0 41b82444 c4ac9f15 44527260 c2871f14 438bf862 4497a702 444f02e8 42e56318 436a870a 428a5540 44a9beda c30659d8 4246e32a c34d32b8 c48d4d96 c29bb7e3 4251d9f0 c3bb58e4 c456cb0b c1b801d8 438f6e9f 4471f3a8 c33809e8 c30ac934 42a521e6 4169d580 4414b89c 42a808c4 43957232 427101a0 c4646a92 c1cccb58 43312044 4494e744 44376978 431173bc 438c97c9 c447ae0c 44ba6e3e c2b01377 4371393b 42930730 4431a678 c292402c 423eb4c1 448a25a2 43107100 c31a74c3 4345ed12 c49b96b7 c28d3ea0 43060b9c 436c4266 00000080 -> 3f529a9b bda48992 3f101469 4309dcd1", + "c414e167 c47b68aa 4346c812 c49d2c7c c35e2078 c2eb1c5f 41e90e4b 4459ea60 c4386369 c289e95e 431fd450 4383bd24 c44313f0 4295a41c 42aa8bb6 c3c2a834 449abfb0 c2434644 438c631a 43d9c344 c35166b8 c325b4b2 4234e6df c4b2d4db c3b13ed8 4336b094 43337c76 c4a43de4 449a27fa c3368cd7 42e4fe0a 43e9b214 438be4f4 432f5c84 432174d0 c4320b50 c41053ed c30ad80a 432fa533 c49fd3d3 442d8344 42bb2918 4315fcfe 44b79750 43a9e630 c2af8c12 42c6c91a c35b9320 c3a74fac 42abe4fc 432d8034 c3008530 4481f00c c281b68c 432341cf c4884b1e c2755600 42271c78 4354b841 c2b899a0 43b683b4 c3466b7b 438485f6 c4591b56 44af3ac6 431057a4 4395362e 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bf5486a4 bed168be bec1f737 4377c012", + "44425db0 c4b241cf 43225ee0 44661270 4486f76e 432587aa 4353e986 439a86a0 c48a0a78 c2103d70 421d793a 43deb5cc c48063d7 428ad9a8 4285ce02 c2720e20 4497307c 42f76ff0 42a8226e c3871a90 c3ab6e80 42e27124 4355e782 c30a6e18 c4954417 c19939a0 435cf22b 4484ee0e c42adac9 c33f14c3 436432f0 c4207f68 c4b8f734 c2be6242 42f712b7 43e44db4 4464045c 4270a2b0 43940e37 c363e610 44792af4 41569d60 42dda535 c4650ddc 4392a51c 43004dd0 4310930d c3fe6b28 44097120 42b88e74 41e4ba8c c4a82a4d 44335e78 431c9ff0 436bee9a c45692ed c3d2add4 c29b444e 435664bf c38a4f44 c46b2e69 4308b52c 42d3e0ab c4926700 43ec28e4 42fc36b8 434418ef 44945a38 c42374fc 418cd730 434dfbd7 c4396b4a 447207b0 43048c56 433188fb 44841126 c341d5f8 405a3680 43812230 c4241a14 44b7067a c224c7c4 426e9ea3 42f8fd50 44abd23e 42a0ae40 432895bb c4904d25 c24cab60 c300f55c 42bdbd6c c0b5ce00 44a718d2 41fc25d8 429dd029 44b7eba2 c45ef7a7 c2d18b22 4325c65d 4453df40 c470b76a 41db04b0 41c0204a c48748a6 c4a6ea9b 42f910ec 4298bc0a 4498ebaa c40b9be5 432ac24a 436bc4d5 4483a240 c31687d0 c1f47480 4303b878 44590f3c 43ffd168 42e775cc 4257a0d7 44ab388a c42daed3 4129b840 4301ac0b c4945478 c43a7b58 c300eb8a 42c62a7c c4401130 438ca47c 420b9ab4 4346588a c463030f 44b0c372 c32a8fa5 421e7f4c c3712098 c3e2fa14 c33b352f 43171dd5 c4846db1 c2a802c0 425e7d6c 4372639c 432823f8 c3975d3c c1bac758 41c00445 4283e790 c47fb28a c1a5c5b0 42cd8c1b c381ec2c c49afff9 4200e7b4 431f14cd 43e4c9fc c4811505 43318cfa 4385be51 448d7238 41473300 4341fa14 42ca22a9 4429f398 c426eda8 4201e9e4 43848cc4 c3b9a93c c405e8a5 c347f590 4309cfd7 43cfd8d8 c413f672 c3462e75 43168805 43c20cc4 4428e1fc 430ea56a 43568e25 44684b60 c48af7fe 42e428ac 420a6a32 c484e9b7 c42e7e0b c2d32218 42285ac2 c3a3cb74 43329258 c1a131b8 42ad076f c38ecac4 c48576e2 422f120c 43446299 c21b53e0 c4033a4c c32a1aa9 42b59934 446e6bc4 4339eeb0 4289a54c 42884e90 c47fc61c c4b8b34e 42911354 42286021 c49cb46b c4978267 4319e1fa 438b7732 c416a030 c4441d58 c328bc72 4362daab 442436ac 449609c6 c3049d97 430f2f5a c4abfed9 c2b0ba10 c08eb620 4376d7f6 448b6f82 443131ac c339a140 4319656f 4410f918 c3cf3ddc 43470390 42c483ef 43e1a7f0 4369fdf0 431afcc4 42a3b1b1 c2ffd790 437e0228 432a594e 42483226 4380ffac c48c7829 c33c968c 42bf0024 44031ce2 4285aac0 4339def8 4268e5e9 c4a2c637 44879e06 4329809c 4334377c c480c968 43ad38c0 c2d22e90 42dd7662 c4a013d3 44854216 c2890a0e 430495f3 44b0d3de c46ad80f c20434c8 435ae1b7 c49695bc 43711c20 c2b2787f 435b238a c3df6e8c 4477cef8 c2a7ab5a 4243c45d 44b1d60c c4b01d55 43154dc4 4389cf55 c32df3e8 c4657bc1 c30f3efb 42debd3d 444baf9c 448a9cda c1e4b098 437b2dcd c339c048 c3862118 c30ce48a 41a11933 c3eee9ba 42f0b750 c30226be 433894d2 c4370609 4117d000 c305604c 42fb7dfe 441c086c c40fd05f c2f2e3ad 42158f08 c43ef9b2 c4405e41 42fc3260 429c9a9c 4355b2c0 44591b04 42345c00 423a6698 4435aa90 c405fe46 43222220 4384785e 44201a44 44b3ae74 4271ce18 421e3624 4441c154 43809464 c2ae3db0 43517ab6 c34a31d8 c441888f c23f4a44 43752b27 43e9af38 440d4e7c 4317534a 43129c02 44886cf2 c29b30a0 c2e9b0da 42432ba4 44ba9cd8 c4a9b5f9 c31e5389 43232414 c4a71ac4 c4663dff c2bfaa42 434618ba 445f6454 c4b36a2e c2a5cff9 4179ef28 43ca2dd8 c4195cbf 431b69f0 42b48df1 44840352 c4a3414c 42614138 4235e55f c4b1bb44 41ccaf40 428179f0 412fd36c 44882648 c4b9e14a 41ff2678 4385026d 449a2f6e c48660dc c2be133f 42af7d83 c490f43d 444bac98 431896a0 434b263c 448c9cc4 c48d5aa0 c334fe18 432df215 c4030630 43c86280 431c0066 430133b1 44a87534 c3d06874 c3018b43 42e4f548 4460e7d8 43983e34 423e73a4 4371c0c7 447a035c c49b6a04 c31ce9a4 4317d72d c3ab9c84 c495b5bf 42840164 41c4285c 43a9e9fc c3b79ba8 42bdf564 43484c28 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000062 -> 3f5743f5 be63a7dd 3efca58f 4262562f", + "44ba8b44 44a9852a 43331524 c4501f91 c39338f0 42b72ed0 416f8118 c49f3461 445ec46c c22c10a0 433d5f47 c43ae594 c4a72dc6 3f4d3a00 437a2c12 c4526758 c49c64d2 c2984489 43218fb4 c2dc7430 c343cad8 c33cd7b4 434a8405 c3a17398 c424ab8b 42db5ab4 430ed593 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f3a4a06 bf2e082e bdbacd3c 445ba53e", + "44a755c0 43681da8 c2f048fd 43e3d46c 449f3704 c18f9198 42c97e4c 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "4458ccdc c408addc 3ecd1000 44416c1c c41e9873 42ac3504 43833bf3 c488f458 c4aa07f9 c306cc88 4294b1f2 c39f4754 c41a0430 c1e71848 4242f1cc c41913c9 4386de30 43173696 4287a2ee c4b35eae 44a5c5fc 424c4110 42b12398 c4b41e59 c48d398a 430bba04 4319eea2 c3acebe0 4394606c c314273e 41bcbca4 42371fa0 c42a12da 400ecb00 4227a00e 43c6db7c 4407eed2 428d78b8 436069a8 44a8387c 4282b5e0 c30dbd42 435d01b5 c419b70f 444eac04 41ba5dd0 4347634a c2bdd8f0 c495e9a8 c2666ab0 42d61a7d 43674e28 c490eb8c 4329d188 43423d62 4357f450 43b2afc8 42d1dd2c 434200f8 c33654f0 c452cb4e c0b4f920 43256703 449c5cd2 c48ff334 42a54d60 4233df2c 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bf1d1e92 bf402e6b 3e7a4e61 43a6535e", + "c3e252ac 43ad78bc 432e907e c4877ed5 c43ae951 bd2b9000 4370f586 449604c4 44b274be c2ccb3f4 432de590 c463cf0a c4b103ef c2ac6935 42a0e5fb 445d3778 c2b564f0 c21d41fc 42de3d56 448ad9c2 42e438d0 c3429f02 438a3e16 c4ab9f02 c415e6c2 42b7b7c0 41a357c4 43a4ac14 4468fb54 c3006f48 41efedbe c33b04c8 44887f7c c30bc2ce 4337c6f2 44350098 c36b3be0 c1c50bf0 438219b6 c3620c18 447e2c98 42898c50 43448a41 425a80e0 c4a17fdf c2cda036 4282c505 c45ff7f8 c41b4b1e c317320b 43457231 c4125089 444beae8 432784fa 436c1eb8 c21559e0 4412cdec 43144aa0 437d2dc1 427da6c0 c2d82b80 c2fab25a 420fb664 445eba28 c4739c30 c314ffee 42d4b605 448d82b2 440af0ec 3f230000 42ec8d83 c4afbee9 42e9b6d0 43299d80 4198c6e4 448949c8 c3c2b10c c21edf20 43921618 c4a61048 42e7fdb0 4305d1c4 42cbc44e 440d7928 42c34900 42d3377c 434b12c8 44a6f2d0 c3c1b094 c31b543b 41b9c915 43189470 4395d038 c27d66d0 43904c6a 43e467a0 43779560 430a8242 42daf3ec 44a5b012 449a03e8 c2951a7c 431facc7 445a8344 443a7bbc 423808a0 436820fc 448271ce 44914936 432572ec 42301fcc c419b979 4495251a 42e11b60 43937560 43c22284 448aabd4 c21ec20c 42ad5d60 c3854064 c2e59e10 c234b26c 431ce1aa 435cbb70 c3040428 430100b4 43072044 c46300f5 44adc272 c24170d4 42b87914 428f99e0 c4a5de6b c33b87ae 4251e3b2 c44e3776 c4082dce 41232140 438d4c4d 449c928a 44bac5b2 42fe55a4 41d604cb c3003f10 44b95f94 42c87358 43476921 446ede74 c3d345cc c286fec4 436ceb51 c46eafb2 43758ce0 432cbe1a 43153ae4 428ddb90 4466597c 43310466 42d6819d 449fcd34 c46d5606 41dba050 43854064 41c7ea00 43c31284 421576c0 429da9da 4489744c 43ca640c 42cdf13c 42c8608e c3e98c7c c2eb4320 c274f7a0 4301cd03 43d7b7ec c40006d6 c3344e29 4331fb67 441a12d4 c477f996 4234c370 437d123f 43c62778 4390ede8 c31f4560 438d9a24 c48c50a3 431936d8 42448064 430331c4 c3ba2c1c c4686669 c34275db 435eda46 c353b8b0 44a288ca 419e32b8 4379e38e c394a100 421e8c80 42e546bc 427cef65 439895dc c4b3e6f4 c1c5d3a0 435b1437 c446c8b6 42610060 4306843c 4284b862 44416c08 c3cd0ee4 424fe100 436576aa 4353b978 442cd7a0 c2c6166e 438932af 42a95ab0 43e2ff44 c31b63ee 42caf97d c4b6f515 c3f0b9c6 432e0b42 425ad597 c31f2da8 43a961a0 434178d8 43580329 4451e544 c4507987 c300aa90 42837cae c3afd7cc c353c348 c2d2d663 433b6f24 c48015b9 c3b2b58c 42a5b3fc 433a0d5c 442115c8 c3569868 42800338 415a6b8c 4334a080 c43630f9 c306a3de 4354b384 4407c69e 43ce9714 c2a0d172 43636104 c39377b8 c2ad44a0 c3036b6a 42ac148e c49b9182 c421fdc4 c2b4c86c 433e63c8 42d26ba0 c48c4939 c208d328 4325666b c46c47a2 c33ae258 c24999d4 424bbf98 c18fec80 43d2d2a8 42ca9da8 4252f18e 44a69374 41557c00 42211bf8 433341d8 4406a01a 449e71de 4216556c 42821ec0 c3176fc0 c421779e c33c4242 424ce01b 449ea56a c355beb0 42e86cb4 4389306c c435876d 44b1d798 412ad280 4383cacc c4936f71 c49b96e0 c32b3289 4334c62b c4b64190 c48cf146 43030d58 42361ab3 448fa790 c4b32937 c2ec06d6 41aded59 44902be0 c482a53c 42f44dd4 43871993 448ae928 4383b550 420454bc 4264a70d 440e8a34 c49bf0ba c302feb6 42a5356a c4974b1c c42abcb5 42347d4c 43654cec 43dcc304 c2e1e640 431947ca 4320baca c490cdaa 448e10be c337ca24 43819212 c34aad40 c4b7118f 41deeae8 432b0cf9 c497eaa4 c2ab4550 c29a92bf 4305e98c c49d989b 44b7533e c2c1dbc1 4369b806 43b90ebc 44937bda c3378301 434c585e c3a2b10c c3cbe92c c2fc7fdc 41849e24 449ab7ea 44713c2c c0447940 436112da 42082b60 c4a0b783 c11de4a0 430402e7 c4875c85 440ae82c 432aa6ba 413a0ee0 c491d7ba 44a75a26 c1614850 43817faa c4b4b233 c4b13d78 c32ce72f 4292c977 44500820 4437ebec c303c0ea 4224e9ca c4b5ff58 448002b8 c312dd83 4364a061 c36c9c98 c457374f c314b66f 43637104 4411d958 c4b4cecb 43329c2c 433b215f 4269e700 44760578 c336666f 418671c2 44ba0c10 4490c542 c2a966e7 42f8d479 c4a42910 c439f448 42804954 434e5bdb c3568750 c46e0b11 42733820 42e73956 c418c31e 44aeaaa2 c2cbc1a8 426a2158 43e28bcc c3ad09b4 42b5915c 434c4bc0 44a47828 44261568 4347d6f8 438b44c9 432af8f0 c47260a5 c2971459 421428a0 44bb67be 4484c082 c280b444 42824450 44b54290 c4aae59b c2de059e 43863dd5 c3010e68 444f0fac c335d272 43672859 c46f3f50 c304c9a0 c28baf50 429e5783 43371988 44460784 c194dc48 435d51ca 444c67f8 445160ec 4337e7ca 42446d2f c4959966 c3bcfab0 c3260c0a 42b3509f 4490ebba c3ce9d7c 43070478 43856261 44a55766 43495a78 428de1b4 433099c8 4480cef8 c2e49e90 c23eb070 42a62f38 44367a88 c3db0654 42a84c48 4383de1c c3f13488 44ae2158 c08d06e0 43160699 c39bec7c 4443cf24 c258114c 436ff4bb 442782fc 43776360 c28f70e6 4293ef18 4493d734 c45dcc48 c32461a3 433ab5dc 44ac45ae 44a7ec00 c3460dc7 4215e172 44a473a6 c47ef91a 4300ae4a 433c06e1 4450ca00 443c2e7c c227f33c 421aff8f c3af2b8c c45febb7 43422738 430361be c4a1b34b c49bb1ce 42ec85ec 424698ce 44906308 43990d70 431773b8 42396fd3 44ba7cae c4aac72c c3072d0c 42e3e64e c43e2f89 c301abd8 429031e0 43435faf c3beb980 444b9ad4 c2a5e15b 4370b2e7 00000080 -> 3f2a6b78 bf3ebfda 3d2615b4 42dd64b7", + "c3c913cc c434af87 c2637a9c 448ca944 441958b8 42683a28 42e84ec2 c42fa24e c3876704 410c3930 43372733 4496cd82 c482956e 42f78ab0 43007f9d 44a99f34 44283c64 c2643a60 41f07472 448e4eee c496f71d 431d9414 4395b4dd c2dc7930 c3c6cccc c28eb672 41f3f18c 443fdbc8 4429b6f0 4232cb84 4388c643 c46898ff c4a175c5 c195ea70 425425e0 43aebd6c 44b94752 c34406a5 438725e8 c447e249 44427f28 42b92e94 43421c06 43d239ac 444406a4 c279279c 42c4e652 448b0e5e c44a0bf5 c1fe51c0 41bd685e 44a33c0c 4429c384 c1425f80 432048ca c4ab935a c46f1c87 428f833c 431d3670 c3afb87c 435f6e10 423060d0 43267717 445f7d18 43a9ae4c c21476d0 437b7bb6 4414f814 43f1891c 42e9b2a0 438ff232 4420c8dc c2f14ae0 430644f8 423362b6 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000012 -> 3f782ab2 be5480c5 be06472d 427595b6", + "c4b54579 c4611cfd 41215300 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c419dccd 44562394 41650b40 44b18fbc c2dae410 421fb278 438c9095 c493c5ec c3421310 c294406c 431bab25 4230a3e0 43ee8464 c30c5ced 42835398 447ca814 c4b15d28 c26958e4 431e5b83 439f8fa0 c459a7d5 c1c4db68 43100f66 c3fad4dc c292f470 431c4570 42deb12f c48265c1 445488d0 430157f8 4392bcf5 c23ab3c0 c3c8a29c c2489884 420aa256 c447ab5b c447f3e0 425f65b8 438dd5d6 c4485519 4445c5a4 41b045f8 42e2f3b2 43d75858 c457f1c1 4332069e 4274ed92 44b0a67a c4747ed2 c1f8ed30 42d3dc98 c3e4683c 420b54a0 c20f9f78 43948ee6 c49afa6c 4480ce84 c2d68d71 431a6ac1 435a8530 c43b3e6d 42e21ff8 42cf1592 43a7ec98 c3f43a6a c340dac0 42543baa c421b651 c4a379f1 4337446a 43390245 c3a8e3fc c3864cf4 c2b10cd4 437e606a 43e80f8c c49cdfd3 42fef86c 42340481 42b6a860 44208318 c2428ea8 4392d948 c3d03f2c c1b27c80 424fa420 43920f79 44ab00ba c3ad24ac 43475266 42f65e36 c4bae7a3 c486632b c24ea32c 43937834 44b463d4 c4489af0 42c3e434 42c5b3a0 c465579a 445e70d8 431ce94c 43888400 c4551f18 446f0c78 43315b1c 438ce72d c4484eaf 434aac40 c283b872 4137760d c4b235ef c491d5f7 433b04ca 4381878c 448b7a38 44644aa8 43388e5c 42327cf9 441b8ddc c4aa9cd1 c2f6064e 4387790b c4a2d730 434ba2a0 422306dc 42a28c52 c4aca4fe c418e55c 4310a7be 43046eb3 c3f4cb2c 4213f880 432a9908 435ed168 44714da8 c2ab9da0 42d1f180 43274e8b 43138520 44106294 42bfecf8 42f54d0c c4a90ab6 44b8f7d8 c2572bc4 43861eb7 c4746f4f 421054e0 c31bc1a9 4274ea4b c42ba5de 43bc3784 421e5cd8 42550bac 439c2d88 44b8acb4 43087f94 4345e885 c4545ec0 4414367c 431f0f20 438cd573 441a708c 449af030 42869a04 431e9b97 c46c8adb c447bb38 c3392a5e 42fc5089 c4abc3df c3732418 41e0ae80 41651976 c41227ca 446403b4 430c3c80 41f83935 c45f3ad2 441e8e90 c32b5362 43230010 c46bda3f 440abd84 c30b9508 435848dd 449b0202 444ffce4 c3141af9 437a7d28 43c33a30 c49092ec c28b85a6 438079c4 445d2638 4463577c 42920638 4245d258 c40340b5 44846770 42a4b2b0 438d5b7a c2965a20 441d8cc0 c3121f9a 4380910a c4a6c692 437c40e8 43099ed6 4372075e c4864c03 44498d44 c1ae1508 431c932d 43bce5a8 c3c2e8bc 42c900fc 4180902f 444497d0 44ab58e0 421e89cc 43001d6e c4948452 c45b23ab 42d8500c 438b7c6e c4987ddd 4423fe18 c2dffa98 431b94c2 c48df112 4420e73c 42c602d0 42de9583 c4b96c7a c48a4420 c332f114 4313e26b 4316e318 c416da96 4279b2c0 42d2f9f6 44a2798a c3ff8b46 4295eaf0 4381e7c0 43fd4e30 44702000 c2db800a 43053188 c4a80cb7 43f265a4 c249b6a0 42e97b1e c43881b7 c41710bd 4306937e 42aeef08 44a4e0da c45b995a 42cf0fe0 42d73b91 c3cbe9ac c3ecedcc 428ee368 4305ed84 c4b38ab1 c497619e bd2dc000 43197227 c408f058 c4282817 c13becd0 4310589c c4155a0d c42ca32f c1263a50 436a8d58 42750160 44995d9c c2c11aa9 42b27315 c1a73b40 445d6a7c c19f9068 430f5e4c c3ef1650 c3b4d5d0 c321e220 43570481 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000048 -> 3f6b59ea 3e941a68 be888f61 425cca6f", + "c452f5da c49afa0d 4262d898 c40768f6 44ae744e 4211f328 4346cc3d c433f47c 447f2538 41e82c08 42cdc21a 442d3ce0 c4933a89 42dcdc70 4282c1ee 449a0000 c4a24c32 4341ab74 43791ec8 c4a43439 44390854 c33bb848 438e8b59 c22c5620 4480d74e 41dc4728 438653be 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f380064 bf2fdff4 3ddab878 439d2cc8", + "c39faff8 c41fed63 c23cb0a8 c461281d 42bf60a0 42c000a4 423bf2f9 449eb5f0 44b48774 c29c50da 438501d8 c48d4416 c433bb71 c32c7ccc 4350f58b 44a9d7f2 44448944 429643cc 434d7a34 c42d4d84 c3522c98 c29635e0 4228e56d 448f66da c448745c c33879ff 431c79b7 c39e3b0c c4a71a0b c11a62b0 42f9e5b6 44157b08 c34b13f0 c302aadf 428714ac 43569640 42a40430 4147a210 4330e4ad c4adf8f8 c4a3b7c8 4342f9aa 420b85c8 4406ad46 44a5a774 432f8864 43170ad7 44ad383c c4321d07 41516ca0 42069282 448ee090 c4539c8b 4333ea7e 434877d9 c3ffaff2 4492371c 4324367c 43913968 c1a5e5c0 c446d03f 42ba6c6c 4382fb16 4184cf00 44991622 c2fd3306 4352629c c49add87 448ae328 c31a2f68 43056b10 c449dbbb c4915fa6 425cc750 428b3238 c32c7d20 c44d2b36 c1db0ba0 438d6551 c41a9416 431d5e00 418a23b8 42411df3 42820980 c39e79d4 40c4b880 43159f4d c251ca80 42468920 43138c9e 434fab97 43af34b8 43406308 c3270995 437255f6 c3fe6a6e c48f05ea 42006b24 4369b02d 4441aebc c43d1d16 c2211398 42123389 c4840212 c4935252 430c44d8 4368e9f9 436f9820 443735a0 c2e492d9 421f98a3 c2f9d880 44b033ae 428a88e0 438d6442 440fcf60 43978c4c c2748b28 4228f94b c3a0b518 44178898 c2e93a2c 432f7085 c4baf0ad c34940f8 42f70558 434b59c9 c4b046aa 447c9f1c 43160c68 42cfdc7b 43db4524 43f05088 c2fe10ff 41bad42c c48213a9 c3112718 43419b8c 430236bc 43030810 44390664 4320a2f4 436016cd c4144dc3 4447546c c2dd63d3 43459c40 44929c38 c48655a6 c31c3c4d 435d837f 444b9568 c2b98950 c2426fe4 41d2617a c4acbb47 4476a270 c323f9de 43595e48 c41739a8 c46d0a71 42befd9c 43617aff 448a6f2e 449264e4 c189daf8 4371769c 4457974c 43beaea4 42e600b0 429f46a6 43af8508 44a23c7a 41d805e8 4345630d 44615710 c2b2a210 c2b96ca5 429cb7b2 c459c2a8 c47d9dfc 42dc9ce4 4385c85a 442a902c c484d6af 41a7da38 4275706c c423b348 c48c2b08 c3455592 42d01578 c3cfaa88 c42d4877 c31988cf 42e4a4ef c4b883ae c4800ab1 4313a1ca 430171c6 c40f5c41 c360a908 430fca82 42ad06d4 c3da97e0 448a7ae4 c31b0ff0 437d419d 449696ba 442e3c80 c2c36765 432f0e0b 4335e128 4484e0a2 400a80c0 42465dbb c389bb0c 448377e4 c341c0ac 435bc8cd c3f31abc c425230c 40d22160 4349c22d 43b4af88 c2dcacc0 43176e16 42dddf88 446d5974 c45b2b11 425d1ec4 43442685 4397b8c4 4485a0d8 432abf30 436d8438 c41439af 420f1fa0 4158dd00 43816e10 c4aef7be 44203ab0 c2b392eb 432954c8 448aed6e c33b7898 42d2ecc0 431d17b6 4445a8c4 44b3dd94 43349eea 425e8f69 c485e610 c484de2f c32a6bd4 41935cb2 449942e6 c46251a8 42656948 438633c9 44b803ae 44463724 c33f0f78 4353334c c49834f6 43aac53c 433b33e8 43563e12 44a04d66 4425a72c 4305a99c 4386f4e5 c4097a1e c48071d3 4297fae4 433f0b64 c4b9e4a7 44af1fde 42e89c40 427c3813 4415ac74 c3c0f614 420737e4 437cadd9 c436d50b c2662720 bed4b600 430e1584 4453cbdc 44952fd8 4316564a 4220c8eb 448a3452 43d6407c 4312f914 42b018bf 440f77b4 437536f8 c18f07e8 42a8d7df c2b6fbc0 c4a53c53 41ff2d80 41b3018e c484f16d c4a6c343 430845da 4393e41f c304de50 c3170878 c33e198c 438d8bd7 c38ac84c c2ed6480 c2f6cfc8 433d9c3d c4702b10 c46bdb4e c1c7c620 433bdafa c4906afb 42168940 4328c176 4194c483 448162ae 442c8608 c33ceabe 434d6b91 c41d76ae c36d78a8 432d3354 430489dc 420c5960 42ccd200 42aac178 4343a7f2 445ab64c 42fb04c0 4299124c 42888940 43d23528 42221100 4347e692 42d4fd29 448be7ca 44a2cdde 429d5130 43005a1e c311f3d8 c43cef62 c32441e6 431cac0a c4856fea 448040d0 c30f4dc2 438fc248 c487f1b1 43164e30 c2f1e1e0 43027b48 c4b12731 c479e2a9 429c5368 41a0e496 4247da40 43994e4c c1dffdf0 4383a272 44393e0c 4319e068 43031788 4343009d c18b8e80 c44583eb 433d432c 43386676 42198420 4385b97c c3096040 438913ff c4aefb0b 43b36554 c2ddfd3a 41b15a12 c3fcc532 c35a4b00 c2b14bf8 434c3595 c3a167ec 44405d70 3f8acc00 42a0140b c3e9b74c c42815f3 c302aabe 43134333 446e92dc 44ae54de 42fcde3c 42b11bdb 4146d000 44727a84 4280e580 4387821d c36eee00 c311bf98 c3435e28 43889731 448a51d6 42f229d0 c1b2ac00 43290437 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000066 -> 3f62f6be bee7b111 bdc479c9 41b185f9", + "c3a64464 43bd4b7c 41ef7840 43e62b00 44188930 c3243b87 42cfd182 44433c88 c264a6e0 43443388 41c0b56e 438152bc c41ab005 c2e15c45 41e2e33e befa5000 44547620 41994f08 436a3050 4490a18e c38be33c c2e7ef94 438ffaa7 c4052857 43b66868 43180718 43028a3e c3c1b6a0 4461a048 430cd06e 42c92582 44aa644e 44827d5e c331079a 43869a7c 444700e4 42ae13f0 c306238a 42ababf2 4429fff4 44a7a508 42c30fb4 42da917c 43ffed10 4483cda8 4305a812 425ee4e0 445bf5f4 448113f0 c2519344 43658d85 44949896 444e7378 40493040 43849a6b c4760234 c3177230 4242f580 4199de76 44727be4 44025298 43352fd4 43901fea 43c15d84 4405a2e0 c322519a 43601728 c445c1c4 c403a35c c2a19e97 4391c4fd 43b1f188 c4203206 c33570d5 438d19f6 43f45f50 4489e53a c2a9b66c 431295a1 44579910 4426cd2c 4243cc70 4322ba80 c34c8ab8 c497e425 c2064b90 4277c48c c3efd460 c471f27d 42b17674 42cb2cf6 4498afb6 c489b1f8 c1c5ca00 41cabc1e 44b94832 4455427c 42aac258 4394e737 4440f450 c49789c0 4328898a 4311f39a 430ab238 c398b680 c3109ec1 433adb42 442ba708 434faf90 c2e25072 42c479a2 c47dc186 c482eca2 c2cc7fc1 421d0e36 c4a83a9f c35d0c90 413107d0 4324d8b3 c43269b4 449ba8ee c222fe3c 41d8b208 4399fb2c 44b4cef0 c32e892d 4316e2fe 448294a8 44b90f8a 4331d16a 43846476 c481a5e0 c4196eab 42aaf780 43528dd2 4461cb50 c481e8be 43402ad0 419e0452 44ab30b0 4465a960 c19f3b38 43698e80 44ac9c78 c3775130 c30a55e1 4365535c 4491a9ea c3f41416 c3476503 432ea720 c4367c6e c47060db 42b84174 437e3b68 441453ac 4487e894 43127530 432d950a c3f83414 43e4f344 42d14ecc 435f423a 43bb067c c3f23128 c30c007a 43829aa6 c33c8530 431e6eb0 c2a01e81 43872ed9 c3224da0 c18f34c0 41f7d3f0 430e3610 c2d2e210 43beddd0 c3208ce8 427eb541 4475fee4 c41079e4 421bcea4 431e2bc1 44b87e3a c3b8d5c4 42430364 439257b5 43434ff0 448b52c8 434584be 438d1a2d c41f6d37 c37af9a8 429f470c 42c43f28 c4aac83f 44212628 c30d84f8 433e4f4e c42e5366 c41f0e2c c290b115 42d6a9ba c4ad76b9 c4949cd1 c3174091 43672b4c 439912ec c4292f90 c24446fc 41f39e1e 4445d95c 4407c9da 42bcdda4 418f065c c4a6c79e c43af97b 42c2b6ec 42a3c938 44227dd4 c4739601 c29f185a 432e0870 43310b18 c3d02d80 42309cb0 419492b0 445d33bc c429d210 c20de368 43637f11 c2637c60 c28acdb0 432702d0 43269ea7 44b71610 c432af4d c12992c0 4385cd05 c437d1d2 4486b630 c24ba2e8 42bc98ec c18b2540 449eba10 c30210a5 4339d9a4 440731cc 4400f2c2 c2c91ab2 437039aa 44b0cd54 44955c48 43220a7e 42131f58 44b68c56 443e20d8 42dd4a04 434e1a36 c1a062c0 c498e209 433b1620 42d28439 44882984 43bf024c 420f2bd4 42ba6bc2 4445a494 c463fd48 c3386cf3 43701d78 444fe5b8 44852ab2 4345332c 43815396 4462de5c c4b7952f c32b6db4 43425d90 c46b378a c4b9ffbd c2711f90 4236af97 c4b22485 43b028d0 42decfec 4332ff3c 43574a70 4473e2a8 41aa7938 429c2408 c2324b20 445ef780 c2280e88 42649c39 4492d172 c4aae7f2 c1e7b998 4382b1f4 c3f950dc 449176dc 43092474 43166e5d 43c77e14 c306a460 c3415396 422efa7c 4497fc4e c4a99ee2 c2a81d99 43929214 44088e8a c486aca2 c08213c0 4317e6b6 443642bc 44814440 c29d2e54 42a27b85 4482cf1c c4b8f990 42ac22a0 438d0f4e 43d61ca0 44642870 c2995043 4393162a c2ef1e60 4477cdb4 433a5d18 4365e3ce 43789478 c45d9363 c29e6fea 42c11d37 c47e23d6 4488e510 c07fbe00 432f4073 43972248 43f33b54 428df678 4321fc17 42d3f340 4366c578 41a87aa0 42dbadc7 c4106956 44981e66 c200abb0 41bc95e8 44348b8c c46e8e1c c340c8d0 42d1b13b c47572bd 4497b138 43089a02 437a58f3 c48476ec c4adb578 4279f130 41fdbebb c49cd62a 42bdb000 c22a6adc 43147a58 447e2fa8 c46779e6 c289773a 43844dee c3d9f2e0 442f4480 4267d880 428044b2 c4000a31 c467afea c21b2bbc 41e8b248 c43a544d 44ae0816 4289f700 432acdda c385c3a4 449d2a14 c340fe8f 42fc8a9b c46b1add 44b21632 c315b48c 42a8d904 c4b2ab52 43f1d6b0 c1f62b18 432d8dd8 c4b945b2 4399d858 c1b896a0 4131376c c46d6c8a c49f5297 400930c0 422ea8f9 43687250 42f9b750 4299aec0 4140a662 42de2340 447886ec 43471c34 439356ec 408f7800 444ec3d0 41f71d70 427be7c0 c3cb84fc c4955b2d 428340c4 4264b0bc 422934e0 44b8b556 c2a7369f 4382484f c4a2e3b0 c4a0acc1 430dc3dc 43531b98 c40e0965 c49d274d c2ff6abb 435cbf76 443a9360 c39709d0 4318f3fc 4274a60e c2f7a600 43291c00 433ece50 438308de c44cbfaa c4b7922a 43119070 42e1fdc4 44b2ebc0 c48577d9 42cc1c94 42a3c294 c49bffc8 c442b413 c2f045c9 43881cca 44a46fba c42542cf c084fe40 4282b5ba 44551e08 43d40354 c333d11a 431cb99b 440c67b0 44bafc4e 429d2298 430e44ca 43e1f5f8 c42bb4c3 c2d5b14a 421e895a 44937d2c c394cbf8 42b32950 43744e40 c48cbc98 445d2578 432e43d2 431c0cfa c48b4213 44a36f48 431ac200 438a9fb0 c409b44d 439fd364 422f2818 41f2ea6d 448ef96a c4279f06 42e6936c 43120b24 4499a300 440fa0b4 c22c6050 43770a89 418de200 c2ad9a00 c2fe66db 429874eb c40b74c0 c38a485c 42a39d0c 4356c22e 449a3342 43e56dec c268b4e8 435020c7 42455360 c3a26fe0 42df9e08 424e9df3 c3ea03f8 44b63ebe c32f1b3c 43800207 443ed5e8 c48b2831 c2f85b53 42058fa9 00000080 -> bf2894ff 3f23f8f8 3eca4737 41a55992", + "4303cda0 c4a3e62a c244ce00 4445d398 c466a226 c2ee8f50 41479cf5 44987692 c414788c 4275d130 433bbb06 441b776c c468d39f 42b0aab4 429a28c6 c46f6084 c4b79f19 4282c0cc 42a627cc 449fda30 432155e8 c085aec0 431a200d 43d8e070 c48c93ea 43297c02 43407cf8 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f77d934 3e7560f3 3d945f24 43bc0e92", + "c4352e61 443f8cbc c2b5dba2 447e69ec 440ce584 430530e0 42d39f05 c44f94c6 c484368b c17d07a0 4259330d 4402ff40 43a4d024 c32421ce 423a0713 42b8a0c0 43cd0d2c 42ed234c 42da0329 43af8834 435cd9b8 c318923b 4322929c 44767f7c c2deb480 c32b0864 420aec38 448d6e98 447db0d4 425dd41c 42afe420 43599790 c2d461f0 430973fc 438b218d c3bfd09c 420a44e0 43133a66 431b7e63 44917230 44965910 43370ace 43821f40 c45ec45c c4964988 c2c6b648 438dddaf c3962bb8 c3c15a8c c31a7989 4317a4ab c48bc44b c41f1928 432ac3e4 4317e70a 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000000d -> bf48bfb3 bf1e65c8 3d416936 42ea4776", + "c4881c49 44524d94 c2b27ba5 4439c638 c30c4fe8 c2380bf4 431d8c7f c4673c3b 4370aea8 c2e7f3bc 436835dc c47b8766 443e5264 c3404ce9 4368e724 c419f5c6 c30b5de0 42acdffc 433ca4ae c4374113 c404a5ff 42b78b44 428e89be c48b4e92 440b0b48 401afe80 435c1683 c4832b16 c486710a c2ac454a 4325ee1a c3da8790 43f9ecc8 423ac210 429e87af c1c66000 4490d8d0 c30fefeb 430bd522 4359e770 c3dad134 c3437bce 4320830c c4abeb31 c471c134 c2d3cb28 433d06f5 c49809d6 4424d880 4305070a 437bf441 c458e2af 448bfd88 c346e4f6 43075b4c 4301be28 c47b33d4 c0a74ee0 41e08d65 44a7b0ca 43f0cb60 c2624944 41c47511 c4195360 44014708 c20ce9d8 431a6c60 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f065a7e 3e824611 bf4ff2ab 42a3ce95", + "c4592eb4 c477b54a 43345780 c42db41e c4ab3bd8 43209d9e 42c8deaa 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c49adece c3ade534 423ac5b4 43c2d0c0 c350bab0 c298dd15 430c9908 c401d8da c263eda0 42831500 427df91e 4412b2b0 c401ff2b c22112ac 42024e58 3fc91400 449a8a16 43463866 43905bce c44f6b5d c3c43ad4 42d495c4 435fcd2e c26c71a0 c40b6141 c1b6b9f0 4304fdb8 427b3ee0 44a5e8b8 4303f8f2 421d6bba c48e57b4 c3fac388 434622ea 4325762d 43a84270 c4a59448 c33bbd2b 438b94d6 4434f51c 448175f2 c2773374 438bfbde 447a9e84 44a9b798 c32613c9 438ec85d c4b81354 c44658d4 42d64c1c 42404667 44983ee4 c3dfdfc8 4342cb06 43722843 c46c2857 441faa68 c21285e8 42cb1da3 44b6d274 44904e12 432bc290 42f2fa9c 43e29cc0 433be218 c32e6253 42e6688f c3fd0144 44883878 c15baac0 430a3325 448f0b6e c4a2394c c2e0256d 42ef5cf3 c4b29ea6 447b1b2c 43213c2a 432309ba c44afc29 c1afdac0 c2080a24 42b98829 c47415ea 4414fea0 c2f3cf98 4369343d c3e73cdc c464e6a8 c26e7a54 4387657a 43e10c64 442133b0 43303fb0 43812feb 449bef8c 44ace516 c2b01f16 42b17cf3 4491b3c6 44268674 423e3b7c 425137ae 444a6530 c402a5bf c2c82508 437d3093 c48a6668 43a327d8 42dd7d40 42df2ec8 44685998 448ec3c4 c3257461 431981df c2b4f8c0 43d80010 c2e815bb 438f19a9 c3c6e9b8 c41a38d7 c3413a34 4246605b 4213a480 43472cb0 42e9a0f4 426928c2 c48bf502 c3ccf818 c170beb0 41e14be9 4324e130 43c555a8 425eaf48 431d1f6a 448c2aa4 c42d2d2c 40c6e7c0 43801191 c3197aa0 c3d705fc 425dfa38 435fc029 c3763048 c4bb42eb c32434ae 43691acc 43c0dbc8 c322b148 c2356648 42b1a915 443c5e8c c4016ce6 4321a7ea 43364f16 4419d398 c253a220 4255b7c4 428a030c 42ca9af0 c49c42f3 42a9717c 43689918 c4849ade 4420ace0 42ec48bc 4276c333 c441daa1 436d21a8 4241b870 42886de0 c48b53c6 c3d04868 3fb70b80 4151d5ce 43e973b8 c4251ac7 42aee01c 431e622d c28a9060 c4b2fbe4 4172d7c0 434f7e55 44b2c5f4 c4681568 c296d332 4297f73a 442a9000 c4aa9f1e 42f1c62c 42f7051a 43cb4964 c40cf26d c29403c3 42e8030a 43d94538 448b2f08 42111848 435612f1 c45d0a06 449a373c 4131e900 41c2e7fe 44738538 c46b9605 c30ea726 42f63552 4472e4b0 4493865a 432f69e2 430551ee 4445d3c4 c48dc8fc 42b5400c 431e34f3 43081348 c4aff3f5 42e8ae38 438f9879 c391da44 434b7bf0 c19d5a98 4285fb1c 444f9e9c c44ac0f7 41d0b090 4376c0cc c4aa3057 c487bc68 c2569210 436d7fa8 440de1d8 c4b5ea7b c29ae420 432e0ae5 c1744600 c20b0300 430e86fc 436f5836 c4a9ce00 449e0ba2 c21a2104 437bdd6f c4939262 c3b88924 424c3afc 431ef301 4380430c 4463f154 4300125c 433c136f c49d62a3 43ca476c c29f3fcc 4342dc84 c2ed8270 c3fd1498 c2b5d68b 43368f31 43b50134 c401c448 c279d694 4350e34c 42a50950 c481baa4 42bcda2c 43632cc4 446ca3e4 c47e5371 c3418a8b 41d41b6a c4742500 c4bb7f4b 43237528 4315947d c47be18a 43af36f0 c323fb8a 42fbe9b7 439906c8 c4a826a3 c2d74b5a 42a07fbb c4089b3d 443ce100 42a3567c 41ce07e0 442076dc 43fd6648 c31de682 4265cff4 c455370e c433091a c303ee3a 435adc60 4368cf60 44236308 c29aca85 438f19ce 43d35dcc 448e0974 429e7a68 430522fc 4457d518 44456d6c c1c15758 42052572 4429a804 446fb894 c12aea60 437ea543 c44212aa 448bd1d8 434534b2 432f07ec c49776d2 c495654a c25342b0 436af18e c3165970 44084e66 c33a0787 42520a8f c4a6a19e 44843184 43087de4 4389698a 44776014 c469ac99 43217b9c 430b6e05 c40e46aa c487e414 42cf26b4 435bbe44 c3dbc014 4465b468 c191b7e8 432ad71a c40cce87 43b9cf88 c2898206 4386ad51 c4644564 c432c46d 4328f544 42dadbf7 c42dcbe6 4397a6ec 42469528 431409a1 c3e12b6c 42b90fd0 3f81d580 4390145e 4480f084 431a8808 c251aa40 438c9ce2 449e40b0 429e5b70 c2c7a0d2 4325f459 449bf868 c4b16173 415529c0 42203097 c490c84d c42cadac c2e38ac3 42bc18e0 43dcb90c 446b0168 c16a2d70 43798af7 c3db8f6c c486c632 43346126 43704305 44a14b92 c09c9b00 4267dde0 4298aa31 4340f5e8 c358daa0 c3216e53 436c0abd 43caa1f0 4460d3c4 4317c3f8 437293b1 c33c0f38 42666d40 42542ee0 436de69b c3bde2f0 4459c178 433f5c82 426ba366 442b40b0 446f1664 c2d8d79c 4395c8aa c3abb4e8 c3f89014 4303898c 43259932 c4a2365a 44046502 4228de54 4355f049 4396d7b4 4360dc10 c345f1a3 4304daeb 448f0db6 c4b359b3 433d61ae 43179462 44a175fc 443e6388 c1497320 42ca3415 c3a47a38 c381a018 430d00f2 423c6af4 c46f7490 440528a2 c197ad80 432d5a50 c47d59d7 4453b8a4 c32dbb78 422926b5 c42cef14 43db9c78 4309480c 42996aab 43944ee4 4333a108 42a99dec 438ffdd6 c4655471 c472ddfb c2eedba1 43820ad0 4228be40 c45a449d 4321c166 42dff8f6 446daa54 c1eb40c0 c2d186e2 43924ce4 c3e09c40 449b8d20 422d0ea8 4391eea1 c25a9ce0 4416ac34 c266b01c 42f622b5 c44f0e57 c4aba74c 41835228 43774c20 41ded0c0 4493ad16 c30a502f 429c5700 c4711a7a 443691a4 431bbbc0 42eaff74 c4abd044 41ef1140 c3180880 42903824 c457e225 44b7ce4a 42363710 4391e75f 444cde00 c495a74c 42c51e60 434ce15a 43049c58 c4994e55 42d0dcac 42e1adb2 c4ad2852 448b38be 42c698e0 438734d7 c45df531 c405669d 42bbb5a8 425848e1 43cab588 c3af423c c26b13e8 433de006 c4a6f723 43fdfae0 c302bda6 41fa6e88 43974be4 4489c6ec 432d0fd6 437dafc6 445d2a2c c39f0400 42cfd50c 431892dd 00000080 -> be53bfe0 3f279cf4 bf3a1deb 42fa38ae", + "44aedbee c3d1675c c2450554 448a638a c42973e1 c2030a48 4241f62f 4460b2fc c463622c c29a2ee3 43954d09 44b84266 c47a071a 42afc238 436ad810 44af7af6 436d1870 4303990c 4342c042 44b91c0c 449c5f2a c31e772a 438b870c 4401b3c8 c4a0d2e2 428d7044 425fe4e5 449dcac4 43333200 4266cfb0 42294d5d c4368a4c 446938dc 42fffd3c 435690dd 43a7741c 44858a9e 42d4e1cc 42268da8 44a31dbe c2159980 c2c3df33 43130640 44893430 c49e24cf 422f35a8 43553998 c4574865 c4a32272 4302c68c 43765678 44a18c62 4484f5da c322a52e 431173e9 421ac1a0 c46494be 4244ad18 4371641c 4391e5c4 c4345278 c2e6714f 429f1f77 431db1e8 c46425b3 42beda40 4279423e c3e60908 c4b62352 c306864e 4229bb14 446ab26c 4424ec34 42a1ad40 431cc448 43f2bf24 43c501e8 c32f3d88 4336730c c2e63760 44b28226 43323ab0 43811775 442e983c 4476f974 c2ff766e 42fd30b1 44232e90 c3dca354 c2f5ff56 4302c24e c4481be8 44af936e 40977580 434dde25 c4284f5f c4b5c3de 4327f924 434c523d c3f06c74 c354ab18 c2696344 428738ab 44967b78 44215398 c3473048 428e523f c482535c 4382f130 42f432a8 4384d36f c48980b0 c4b0e622 c282fbfe 433e290d c40b8083 c3d7c950 403519c0 435bbf3e c4b5d356 c3f53aca c16df450 43951773 447158bc 44397560 431775a6 437ef887 c45af3ad c4b17dc5 c2d79877 43457efc 441e8dd0 c3a242e0 c2c40d32 419b7252 43b6d5ac 44392fcc 4335ceaa 417215e4 44757400 44b02a36 c2c85490 423f2045 430efb60 c40dca83 c2ad885a 428ada4e 43c5e62c 449278a8 c25dbf00 438a51c5 41c54080 c4637fdf 4277e800 412eddd5 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000026 -> 3e96663f 3f7372cd bdc635be 41331e0b", + "443c0f84 c44b3f9c 41571250 c480830d c4ba6fe2 c315b0a2 42e2f011 c47ff7ce c47762ae 42c13344 436a444f c4133017 44bb41e0 41d6a950 42fcf12b c1fecc80 44947f82 c335db3f 420cd5b2 c3fb3132 c321c6c8 408ae240 43109dbf 44024c3c c4576784 c2920550 434aee7b c40db438 c487a15b 40bca560 435fb24e c43a338b c4a2aa01 c2bece65 42eaa190 446161f0 c46f125c 4287f9b0 439134c1 c48d120c 444d1e70 c231ad90 424b51bf 42f980e0 c34d3f00 c2897412 43863abb 445cbec8 4255d6e0 c3407740 42c263d8 43a45fac 449c1aa4 425600fc 438993ac 44894120 440e5c58 c306e930 438df41d 440b0538 c2ed0970 c335b577 417e9c3b 43e91f44 c4b9c4e1 410a4140 429dc307 4432653c c4633a9c 4221c85c 42c6b978 c44d7b12 c49e17a2 43393eec 432c1fa0 c4a6142c c3c2e9d0 43290b42 42a071cc 44903aa6 c35d4a30 431461b6 43700a3d c48eb18f c456736c c3151446 42d69038 c34a91d8 c3e53f08 3fcef200 4228683b c4b48e91 442918ac c2aebcd6 434a5cbd 442ad2ac c3c52888 c0bb2a20 4325b882 4499be4c c499805e c30aa63a 43373779 449c43c2 441e0470 c32a242c 43240977 44a9efa6 c49f7c41 430ee144 4319d39f 4448673c 449db766 c3300a9c 42aa4ab1 43864f38 c439a299 43205cd0 4309fdc4 448d7e22 c46b6387 42f408f0 42f699dd 4410bd58 c1e5f5c0 c2a84ba0 431b29dc 445ea1c4 c416271a 4304835a 4351aeda 44904148 c3ab8984 c28644ec 43703eb5 c42a5add c429c22d 43169d3e 43008cde c48737cd 439035c4 c23c5598 42e381da c1f0bc40 c4b8778e c27a69e4 42199ba2 43f85920 c4b31466 c32a7d15 4313d49a c2c21250 c4aafd43 427f7260 435be96f c420c91c 44450390 4321b9a2 43059f96 c36cd2b0 435e3fb8 42bb74a0 434779f1 c4406ecb c478858e 423209d0 42f14e65 43849ed4 c42f89ed 43428166 42cb3681 c3ba12dc c1bd4d80 c29e74a1 42b714af 4463e498 c31e2eb0 432049f0 43509ed6 c4846706 c4673af9 4305ffd6 436a9297 c44d7c93 c3d7fe00 c2df462d 437dc9f8 44297da4 43a27e84 40553800 431df361 c3c3fc74 c3154180 43431810 432df288 4487aec6 442bb17c c31a42c0 42ce5f52 c39ac768 44ad392e 4073d240 42fbc727 c4adedb5 44416bb0 c32044f4 43927422 443592d4 c3b64788 4327fd9e 437d1edc 4487bc78 c4527066 c2b082f0 4299084a 4433503c 44ac7964 c1e87bd8 4385acf2 44a7e61e 444af780 4278eb68 43931cb9 444136f0 c28f7790 43329de0 438b3a17 41521e00 44317230 c20108ec 41fdd81e c3fa9d08 436e2bd8 c2a9885f 427e98f8 4408a060 c341db38 42be8ee8 4311c180 c4367db8 c43ef9ec c3209420 42dd8de3 440d43bc 43fef924 426d2378 4255ea9b c476d59e 4441c6d0 43028020 4387c623 c414d17e c44ccd5f c24a3cf0 433f9877 c4113bfd 42b0a410 42633240 432c6df3 446983ac c474c839 c1388b70 41398907 44ac2c36 44816436 400acf80 42b7e469 44a1bfba c4981d2c 41970840 42c425de c450b333 44ac359e 42512ec8 4355af9b 44010d3e c40ff30d c2a69d69 420da8c4 4475e86c 445e75dc 42cbda30 436257ae 4499e0fa 425190a0 42daaf90 4222f3fe c45ca87a 43f2d6bc 4317751c 42592a3c 445c09a4 c4716d8d 427ad578 420857ee 444da66c c4989b2f c232977c 437e8f40 c47b9482 c3c98ab0 c2e11f3d 4200c4c0 c4589f20 42874990 42901ff8 42da902f 43904968 44006d46 4335a628 4395c068 c444b7e9 432314d0 42b9c790 41646322 c3739320 4428de00 c321efa3 430a1517 c4a09e17 c396db8c c329495c 42b04626 c45535ec c39e4bd8 408417e0 41b53d09 c41428d5 430f0db0 432b4420 4331ea5b 449d61fa c31abb80 43293b20 43100c94 436a0c90 4405b7d4 415ef5a0 42f4ebe3 447cfb10 c34efaa8 407af440 4325053e 441bd3d0 448ea242 43260202 429ea225 c32262a0 43d50c80 428365a4 41c1c81a 44bab57a 44a784d0 42d94c40 4367e35f c41e5bcc 44a86f50 4310527a 4376d7f6 c4b6ea19 43ccc740 c3380a9d 41c08914 44364d88 c3bb5820 c3288f69 436ee49d 43c4ecb0 c42c82ac c1ca7d18 4360c008 c46842c8 441b85f0 4226f81c 4343cc0f 44921c0a 42fd61b0 41c55680 42d68298 c2769b20 c42b8707 421c6cd4 434985b0 448fca12 448e2baa 4201ce34 439214ab 440499a6 c4804533 c302a590 43405e55 446e1d2c 442399fc c2471794 4288751e c3a3558c c2e83900 42e92fb0 42d4f242 4462516c c48c5999 422c6254 427406f5 c45d046d 449ee5f2 430f7d70 42bc8153 c3ec7560 c48a6582 431633d6 43628570 c3a8c34c 4298a8c0 c28232ae 4360debf c4acf7b1 c3b4c9a0 c305f8fe 438245ca 445c7b48 c493e39e c31b016e 4313448d c497461f 4466e62c 43293684 4312eee7 c3fc4e08 c390a648 c2c85841 43063728 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000006b -> 3f69c138 be68bbd3 3ead5046 429173df", + "c49c6be5 c415d8dd c2243ee8 c36a5c08 c306aaa0 4337e242 417ea3d4 c41d0c5c 43c3ea0c 4192be90 42b7d0a4 c35bb9b0 c441f9d6 c2a65dc7 42f0e97a 43c9f43c c47d792d c3435883 42bfcfe7 44a05340 42e824d0 429ce718 415d77ad c4891953 c49dc4df c224169c 41233b05 c3aa3014 44ac0604 432f8482 4384cc96 c31e7808 44b9f440 c3089ab1 4394d109 44b5537e c49e7c07 423aff38 438b0862 c45cfb1b 4480d50a 3facb480 4313c172 4347e2a8 c467d3ae 4287e030 432e48f6 43c47c44 c4994322 429dba88 42a01697 c4448cc7 c489f645 43014912 435230b7 447d1b7c c3ef4bf6 413a95a0 42dab4e2 c4a5e009 44ac214a 42562b0c 42d47c7e 440fdc94 43f6b9dc 43061ae4 4306f495 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f4ce6dd 3ed11260 3ee0b567 411a9268", + "c4765ff7 44546728 4320db98 c49ac5e8 c4996c95 c326684e 41a1efca c4512b15 c32024b8 433166f2 4300bcac 44783568 c3c370e8 c2a3ceb1 42abb5b3 4413f268 43d72904 c293f081 42704a4b c2beeeb0 c4819d45 4264e878 4328fbeb c4294b1a 448982f6 c2caec73 428d9fde 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3dfb2b5b 3f78111b be5b916d 439a85e7", + "441346d8 c483007b c33781cd c2448340 c3fdd202 429b29d8 424a488b 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "42a997c0 c43e3e03 4301e9fa 43ae8d28 4493b19a 4209099c 438c4ee3 c44cf579 4385f608 c2811bca 41f31b30 44b97516 c4b39bc8 41013250 42a9c405 43ac0c18 c484cf2a 42cb6c50 4149f292 c42bd5b4 c45191bd 4309cf34 4383c56c 44886e76 c33a48f0 418e5170 43347b81 c4772500 c3e504c4 c3386ea3 43385f83 c48ddfc4 c4bb2a38 c038df40 42b2d43f c347b468 446ae358 417329b0 436345e8 44ad76f4 c3ee5380 425ff630 43488a82 448b27fa c4958d34 42e6ebb8 4384c273 447b9604 44b447bc 43139200 427e8916 44a4e0d4 c48a6d88 c1ee7520 438bdcd8 c46377e3 4488db06 42e8f0f4 4277043e c3e1efc4 44baaab0 42d22608 43848359 431729e0 4431fef0 43337440 439514a3 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f7a032d be595ffd bd0bff75 43310f98", + "c47c82e6 c4aed69e c20e6d30 c4b99a1b c4aa1313 432be88e 43325f9e c46a62cc c4ba4cb6 42d218e8 4346489e 43f50f98 443d5120 c2f837f9 4314bc0e 4484bd9e 43f26aac 434452f2 4330de8d 433c12c0 c49e931a 41db25c0 41830ebe c3d2b3d8 c3963cb8 4339eaf2 4331bea8 44436e7c c4938194 c3127f76 4258f85d 445d3e60 c3dcbf5c 420e9118 425cea91 c4a2387a 43674a30 432dd878 4209e4c4 c14de000 c3e1c430 c3444f84 4381f40f c4b0caba 42af4050 4294cd24 42a24e63 435ae088 c3947de8 429d2150 41ffa9a3 44abaf3a c3754198 433a3ad2 426c4868 c436c624 4451a140 c2c958d8 43398380 c49cdf56 c3defd18 43000256 4205c4d3 448a8aca 43a51778 430db47a 42c81cd2 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f77592b be6aa9ab bdf1bf27 43575de8", + "c418b830 c40b6b11 c2f8dbe4 44986838 c49d9cbe c2e5703d 41ed8d9c 441b0d60 44b90b74 43042116 4359037f 44249444 c4b972c4 c260b020 4300f808 c4a5bc4b c464f2d6 c24535cc 42f49c74 c37050b8 4495df74 c2a9ad01 42d2b150 c3ffe88c c4ba7b1f c30e4082 43238b93 44a0a546 44b89cf4 c20268ec 434dbbff c3bace4c c49cbc6c 417ad860 43948d9e c37165d0 c3e2ebbc c3337000 42d85b82 443d4784 c4958358 419e9ba8 436df4a3 c3760550 4492c46c c25c6cb0 42dc9abc c2ed4870 43ffe580 42f9202c 430271ca c286e310 449ebab8 42c2bd18 42438f5b c48d587e 44a8096c c223d5e0 43880966 44a33fba 4409cd40 c31030e4 43592fa4 4360e060 c4813bce c2814c4e 4342d8b3 c2ca5730 c3c3ad94 43444808 4357b3db c485c06b c4ad2d27 4257d22c 42ccc932 c3e0db28 40b1bc00 4324509e 4309063c 43d2b968 445fe010 c32c6506 42a984bf c46f5441 c4ba4fe0 c2f20ee7 430d222c c3f21440 c38e5cfc 4312c70a 4312b767 44a92b32 c4841c58 c21ada68 41ef3cbf 44ad2a7e 447b5900 c2e71fbd 42ac513b 431f0180 44289ff0 4317d656 42117318 4406ebb4 c4953790 c2b6670a 4309674d c41eb514 c36184f0 42e334bc 433e27e0 c4ad8227 44ac586c c2bd6cd1 4246b918 43ac1558 448f2646 4156a860 432fd1c0 44abbb2e 4490d286 c2a0f845 41ddf33b 40fa0000 426735c0 42ce8fe0 43955d92 43ca7824 4346c110 c2651658 431f570f c41ceec7 43de41c4 431a0158 4389c4ec 449d1718 44b34a6e 41f944a8 42036a6a 442d60d8 4441941c c3067b79 43897fc6 43b5a028 c43eb656 c1d2ccd0 4394c58d 44902eaa c42f35c6 c1937938 4204d9db c414cebb 43d0f4d4 c29c445c 434b5fe5 c35ddd40 446ece48 420d47f0 426253bb c3ea2c04 c427b871 42f37970 435b6b96 c4a1ff62 c42d37fe c2879fa8 42f5b375 c49f88d5 c3e4a590 c2e1a95f 43429e32 c4131f8e c307cc88 43083f76 4287e8fe 4426cc94 c3ac7fb8 c1bfacb0 42a8fe9c c49b9252 44480158 c31b8b75 42e9c8ae c4915faa c4276ae8 c2e54ca2 4346ebcf c3eabe10 c45358cb c0850fa0 421c9452 c3a549b8 c3783100 42bbefe0 430de43b 44aa2922 c32f08b0 430a4fee 42e02f33 449bb7ac c4aaa168 4326c81c 4325b4bd c4a9537e 446df9c8 42dcf774 437f969d 44600368 c494312b 4331c398 41af3926 c3b68a78 c3fce13c c329ce69 43316432 c47b12f5 c340c008 422faee8 436f74ea c4a6a013 4406437e c335bf04 43812c78 44863c92 c48f7758 c2ca8e38 43858d56 4424dbfc c3ab4498 c2cb2229 42b6d4ca 42eb5240 c49a7a46 c27d6004 41ad2a28 44832514 435ea998 c28fe584 42bf1eef 3fda3000 c3c83884 430d1b6c 429e6fc8 c429a789 c31a51d8 42b1c138 41d779b6 c3ed5278 c4805be1 c2a85957 43203933 4478e3d8 c4a70b24 c2a2e62c 429d0330 44bb41ac c4a4c7f6 428f2994 438c0035 43537c70 44921da4 c3152eb5 4301baf4 448686d8 43f58000 3f3acf00 42bc57c9 44b7aa32 c4ae409a 42b5fe64 433564dc c490246c c40aecea c2a7787b 4351da3b 4474b018 4466368c 42041f44 4300ba2a c39d27a4 c469b117 418f4c88 432d0283 c4976745 442b0db4 c1a38d40 43168ddf 445ac340 c493f86e c337ad6b 436ed971 449439b6 c3a65dbc 42b3a1e8 433b2b27 c44364ad c3344930 c2401628 433aefdb 44a786a4 c34c28b8 c32c8d22 42c5bee8 c35158f8 4414e99c c21c2c8c 431ff48f 4445eaac 43a0d834 c210090c 4283978c c283f4b0 c42cd6a0 41652f20 42f19be3 c3e8b54c 4342d2c8 c292b733 423f92c4 c455eae4 c4b51126 bf132a00 43853b77 44b971fa 44a46236 429c98c0 435cb1b1 43875698 4406cd40 c1a10dc0 42f4149f c35afc50 44b12b1a c16eec20 4390ad12 c48e943c c4444207 c3133ef1 42faab9e c402bd6e 44a1ed10 42b09fe0 427df768 44129364 4482a706 c29718e5 433f7561 44847ace c3ec50d4 c2bb25ea 434d9d72 c48d4346 c43c0a61 c2277050 438bca0c 44a284e0 c46ccdde c2967331 4318a3c5 c4ba72ce 4403e518 432abea4 42099e26 c4806a56 c4b2a351 42d450f0 431c9ca8 4466290c 435994a0 c2be29f5 422395a8 c348d530 449d1634 42f3fd40 42b81ff4 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000005d -> 3e96cbb4 3ef121a1 bf54df97 418791b8", + "428733d0 c4894f6a c2466954 c4a13d6b 448bf834 c2c9c8d7 4301f6ea 444e5a24 c431b70f c300e8e7 43315bc4 42c68620 c4b049b3 432e3616 438b536b 43d20948 c39da518 426fb658 4136ed1f 43ccf0f0 c4b16a19 42897114 42084b0c 44652d70 446f2100 c2af65e9 4204fca0 c47f5aec c441e413 c2ec7a9c 430ad84a c4915bd0 43c7cf80 423ed714 439552d4 c47aa1e9 4488bcca 432d1c64 4372c19a 440651be 43ffb948 c23c1fa0 436691df 43838120 44a0ac30 c2b4f72b 43275cb1 c401ecbd c46fe296 42ea6cdc 4321f559 c4815006 c42679b2 427f9830 42ba9591 424d7d80 c4a3d621 4300a9c4 42a5b072 438abfe4 c4794b36 c2c4af3d 4324c2ba c4a5820e 442f131c c161c8d0 43877b8e c3861070 44a51290 42d07310 436add07 c2e33e30 44823464 c28b5236 4391174d 43d8b540 449a34cc bfee8100 43842e50 430722e8 443297e8 42cab71c 43930255 c31aa890 44074e1e c2a8b2f0 437bf5b6 44b18c34 c3fbe89c c10b73b0 421f27e8 c4ab625e 44083112 c2e7e9e1 431e5495 c37afc48 4482c97a 42a18d60 4380dd44 c2d990c0 c3bd2178 c31332c9 42f43673 c37139d8 c4b4e281 c32f40b0 42c69d02 44a991b0 44113384 42646338 4339b693 434b4880 44a6b4a0 42a4ea14 4380e268 c380adbc c428ebf2 c325ea79 42ef60d6 c3271488 43c390c8 432a9164 4203220f c2e41a80 43ecc30c 42b9eeb8 436c5b17 43cda818 446bc5f8 419f61b8 4370c143 c45a0af3 43d3a850 c20a9b64 426e8387 439f2e44 c3c7c4f4 41bf4d48 4306ef15 43b1ced4 44b4708a 4318dd2c 42b6516f 440dfd30 448b9d1a 415fbda0 421a2cee 44b24ad0 c3d866a0 c321178f 424c37c0 4445aa98 c404393b c2101c9c 437baccc c31d8560 c4a775a8 4329d61c 4366e854 c42114d0 c4240074 4288adfc 4247defa c48593b2 4482236a c22563dc 438b5d79 42bb10b0 42d21000 c2c9656a 41bdf41c 44213df0 43e79b00 42cfc288 43104f17 443a29b4 43dbd770 c231358c 433501d1 c48d6b5a 43c8fb94 42f412b4 42b73211 4422d228 c389a3f4 c33b23b0 43856886 c4499e6d 43700698 42b2e960 432a46ea c32d4fb0 445f8618 c30dc470 42d79496 c40e4209 4437414c c311930e 437e4319 c291f800 43a27480 41d732e0 4309b9f0 c493321f c4a8cbe4 c1eaf378 42269da4 434001a8 44a78c66 c325f12a 43724531 43f64b90 c3f7a214 425e3078 4346dbcc c28e8ff0 c3a5c880 c1fdadd0 435f4f9d 446c29bc 4204aea0 429c6290 438eeb64 44698734 4412ae7c 42284344 4389f576 41d3ba40 c3688600 c30ae018 4131fd67 41fbee40 430ce228 c31a659b 431f3a4d c4a27912 c3cb0430 c3027148 434b7e4a 44b49f8c 449ea000 c28ebe02 42b8f099 c1768b00 449e83ec 431b649e 42247d3e c47fa09f c187b740 43106320 438a85c3 c40449f8 c3953ca0 c33d0a54 4390de83 449aceee 43ae1ef8 424e80ec 430173a4 c325dd38 41e6e340 42208700 424c26cd 445c7cf8 c49d064c c2a7a6f0 422ffe4e c4515286 c48ce42a 4207323c 42296ff1 c4554fd9 443e2158 42cb1d54 438652bd c468e2f5 c38558c0 c18bd2b8 4385db2e 446651d4 c0cecb00 42ce3c3c 41632c1b 43389290 c4490662 429035bc 42279620 426abe80 c4837a4d 4222cf58 430cb0dd 4430b178 44447e54 c2ddfeb0 4312e45f c404ff48 c46ff40b c075e4c0 4301f15d 43c668b8 444b6f68 431a90e0 41a0e80e 4499b15e 443b09c4 42a43564 432f54cd 43dbec60 c488ae8e 42dc1ab8 431b7fb0 c47f2b1f 44344d18 4227b200 438e4bab 443cdea4 4380c778 41fff460 432cfc2e c3947df0 c46faa42 421c4720 41f5e7b3 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000050 -> bf536bc9 be5333d6 3f0658f3 4292f0a6", + "44a0a438 c4b6c74e c19a2808 c4239c7f 434fa420 c3443b27 438a80a9 c4ab7be8 c436b503 c339a960 433b50a6 442730c0 c4944398 42f9b644 4322bea8 c4923128 c2dbc380 c2398660 42ed1276 c495fc85 c41cd681 43461368 425e54ae c428450d 4425295c 42bd7440 433805ae 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f2dd99c bf371e6a 3e28be9b 44c2359a", + "44b9da82 43105948 c33a00a2 421413a0 444f0190 c24a92ec 42a5f7a6 c4acd5b4 c3cadaa4 41d42a10 43680e2b 437309a0 c48f99a8 c0cca900 432effdc c3f6d8fe c4b0a90f c0f056a0 4368acdf c4ae4219 c41cdca6 42ada8b8 428fe74c 4413efb8 c36881f0 43092ec4 42f0ddad c418b112 c4377ad8 41c53c60 437b6516 c387fb34 44b89fb2 c33bf3d7 437352de 4487da2e 445e6538 c2e7890a 42d299a9 c337c100 c428b8ad c32b94c0 421a62da 446e4f28 43a2d4c8 40f380e0 4271a09b 420624c0 438453c0 4330150a 43527ad6 c4374df2 44792c4c 431d39f0 435b4df6 4430106c 44ac7ade c318f015 4210378e 44a264f0 44b8b872 43361a4a 436d4962 4463588c 442f6dd4 c265d204 4334b7c7 c49ae50e 440695b8 42a55a4c 43264883 446ebe58 c482462a c288b8ea 43667ab1 c45225bf 43b1b29c c2269714 420ee2b0 44974d7c 43fdb5bc 4313d992 43576040 c40aa24b 448adf56 41f5c438 43315d07 c496469f c40fb73d c32c133b 4387d659 4406275e c48e3918 c22716b0 430b62f8 c40729fa c41f8658 c2a39d81 42094136 c439db29 44a160c6 c3254094 437b33cc 448f129c c3940db4 431531aa 421f7860 41166a80 c489b3ec 3f464900 422ee4a0 43403230 c4b0a3bd c2fae7bd 42ad1196 c48d6386 c43db3c2 c1490260 438c4196 c4809617 44516f74 c0877320 436bc8eb 43a47390 44644604 431003b2 43544ccb 4440c650 448f99e4 c1be6d00 438c3684 c404c309 c40cf827 430699dc 43921aad 4376cfd8 c4ad4a50 4302aa94 43898260 44ba80c6 c29d2310 c32a684b 4391236f 4465d4f8 44aa1268 c281642c 4346795d 44a2e38a c48a20d4 c28d712a 41f8b470 446f07ec c3cdfb10 432ab1e0 4313276a c3313ae0 c40fc637 c2de525c 42018231 42f791c0 c473736b c2767754 433ddb71 441039b4 43504cc0 42eaa470 42a62c99 c466a7f7 c45712af 42915010 420aae98 c36ece60 432434a8 432e2f1a 435027a7 4419f300 4289ad40 433cd9b0 4348458c c2cb60a0 c45967ea 42d292a0 433f5bd3 43333780 c3c656a8 c31a7b60 43903e82 c3ac0b54 c3cca9cc 414e2360 42b2e702 446cd894 443b20a0 c24bd8e0 43785d03 c48b8e3a c30aa5b0 c2b4a9b5 429d7724 c47ed55a c49b294e c1882738 435b20ff c315f2e0 c44467aa 4273b620 42ad1aac c35a5760 c4406ab3 42d624ac 438a1b50 c3f5bcbe 4345f748 4231b1ac 42d40f17 c383b9c4 44257018 c32fd112 42d039a6 c30515f0 4479bfac 4312b032 437a6196 4407c52a c38a7e34 c2b89448 434c8f39 c46e652c c490ee53 41b16940 42a5dbf6 c43c6b3d 4430565c bfd29500 42f052b5 443d8148 c4abb825 c301db5e 42ce88fb 4421974c 44832ef4 4153be90 424c8e9b 438fd16c 43ab5910 432f1e28 42a4e335 c4879554 c4abf3e5 c2106274 43001b92 c3a002d8 44a89df0 42e118d0 42d1ca32 c4525cfc 43c0d3c0 c337f504 41b23e02 44afd1ae 44b488cc c327444d 42c9f27e 440d00a4 42425f40 42875ca8 43384e98 c4a13640 c4499b40 41fb14b8 42eaa89b 4307adb0 44332274 422e83b0 4339afc2 c41610a9 4428a558 c2d5951a 41eaf6de c2b4bd20 c4b432e4 414fae60 424b306d 4418d180 c483ef64 430f4320 42c17ec5 44aa278c c47880a8 c307dbfd 4237fb3f c4bac271 c4899edb c26b94e8 435ede5f 4448fdf8 c452767a c193a900 42046e17 44a6e2d6 c3f4e570 c3001e42 43888d3c c2de0530 c4aca0c7 4310d114 4347cc96 c3ef23ba c4735558 c33d1365 43197328 c39cb4b4 44b17dfa 41e7e690 438ea905 c3191368 44a56ea8 422fe934 43268d00 43ed1034 c3c2e410 426bb388 4387b564 c4a0ef63 c308fa38 c252ff64 43018ac8 c3aadf7c 448ca402 43072168 42056a46 c42bbf0d c481ff46 c3174b38 4242718e 447ed2f4 43bbcbb0 428e259c 434a96ba c42066ce c45e3e48 43376c22 436bacd0 c4867e26 43f88bb0 42b6dfc0 41927f1d 4335a108 c390eddc c2abf4bc 4379c85d 43a4286c 449b427c c1fac170 4330bcca 440e1120 c4264ce6 430690bc 414829b3 4400a62a c3168468 c2b948ac 43110117 c3f367f8 44a78aea c2dd148f 42a07827 4483d480 c3360428 c31c2760 4378e540 c43165f3 44a73120 c2c50a70 430dc42c c384b990 448a6bdc 42d0118c 42fefb93 44294fb0 c3f0cdc0 430cab22 43937dfa 4386fae8 c4b76102 c1390370 42e30c3e 442dc6cc 430c6d10 c1b419d0 432cd5b4 4458967c 43fd8ab4 434506e0 437c872f 44a33aec c1a76c00 c1be86b0 4284da18 c32ddb80 c22326e0 c3012761 42349c06 c41aad1b c2e855e0 41cac6d8 434a712f 43f07d88 44af3a24 c3069fbd 4377e300 425a2a80 c34e3010 c2adac8e 42d49972 43933c10 c420bb51 431637d4 42d18251 c291de30 44898060 40863a20 42c4bf88 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000069 -> 3ec72f03 bf4f3db1 bee11c31 4354774c", + "c4982bb0 c3701c68 c27ce4a8 c377d058 426508a0 432765a6 43064ff0 43448a50 44ada922 c2d08647 42645314 442cd794 440db44c c314842b 430bcf71 44669fa4 44137d34 42d38b38 42f25a92 43b92114 c4ab4166 c263faac 42f3f32a 43f0bfb4 c44463b8 426f57d0 433d11a2 c490dacc 442429a8 41f134b8 4392820f 448ba436 c48c65dc 42c484e0 43059f4c 44afd8f4 441dbc98 c2cda7a2 430bf958 c43f4a1a c3a28bbc 4335111c 4311c55c c4ab29f1 c477b5ea 43131480 43370edf 4439207c 448e2b52 42868d6c 426d38b0 44388ae4 449e037c c24c7f00 431c642b 44051c52 c45ac26d c2a5c6ea 4277ed84 448a8fae c4153d5b c2940bdf 437f85cb c3a86c34 c4316e0d c2a805d6 4339681a 44a63bdc 4417d1b8 c10859d0 4218bb51 c30ad690 c409d13b c310a1ab 429a6f33 c4998170 44920062 c27be888 43185382 c3c25450 c4a7af9d 431441d6 429c11d8 c4a87d77 c38df660 c2d81c81 438ee567 443e0fcc c4425c8e 42c70ad4 43669361 c37763b0 c4a39e65 41fbce68 438dded1 c49ebd5f c493bc6c c327d129 436c3d51 448e67c8 c431dcde 427589f8 41b70822 c3955da8 43550628 42ad09cc 4306a554 44543618 c486d8f8 c2095de0 436e8fc4 44892948 44627fc0 42f70a70 4376d4ca c350e340 c49d5f72 42ecbfd8 43937132 c4aee9aa c3f18dde 430c92ee 4355b511 44aa1bcc 44239124 428fb76c 42f638bb 44322a64 c4652261 c309f6da 4393c4e3 4467a8f4 433b4358 4231a6d4 4224d023 c396efc8 4474acb0 4305ac0c 43151bd1 440dcba0 44610928 c304c6bc 433bc5cc 44750774 44acbf4e 431defe0 433c818e c437d695 444485c8 40ad9aa0 439578b2 c40e6caf c496b6a2 42c54198 4326d3ca c384e0bc 44a92232 c323af5f 434fe06f 4492c2cc c4024df7 4299cea4 4334a754 44b5fe74 c35367e0 433fb494 42c3f045 c467c676 4416e718 c204588c 43393336 c43e617e c409cfb0 c2a55c51 429b70cc c476d24d c4442e40 43164b1c 4394facd 44726f64 c4a375b0 c311f024 43927374 4407b18e c47ff300 428b9c70 4358207b 446ce358 c4a12824 429cf234 430c05b4 44309580 c4828eb6 420d50f4 42e66c8b c4931449 436ecb98 424c4e98 42fa5c66 44b48604 43894010 c1f15ec0 432a911d c3e8e16c 449988c8 42c82828 43951bad 44649948 421c9fc0 c2503184 4270aad0 c49f4438 c496d0e6 430fa278 4379e769 c467abb3 44228d20 432303b0 4379b583 443f4364 c42da3a4 c0a01b80 4234085f c4b99dff 44afd964 43137a22 421566ef 442af260 44a16fec c315b54a 43357a94 43a619d0 c280a4b0 c3435f7e 429a69bf 43d14da8 43746d98 42513e8c 4369bc2a c3893148 44077fa6 432264c2 42c39f90 441646ec 428b2970 c24b1948 4342e903 c41b6e0e 4443ccf8 c3035282 42f6cfa6 44010bfa 4461d4f0 42637348 4358bece c4947f2e c4131c07 419bb498 42edf909 c4ac39b9 43e9d36c c2bb4398 4383c5fc c3a90438 4450edfc 41c73760 43370d3b c49b2760 43bf028c c2f9d30e 433acae9 c49b4419 c4887c8c c20320f8 41fc7fa0 c3ce4124 c46c7afa c1fee288 4315bada 438fcd44 c449b24e 42f13dd8 439131e5 44421a90 443001c8 4327b292 4374ca8d 447c4d60 c41702b8 c314e79e 42d6b1ff c4af3177 c437c732 42b89d48 43644511 c37fc3f0 c4af9e41 432630c8 438aa916 44acda1a 444f4000 41a45e20 434af8cb 435c0b58 433a3190 c29bec44 4325729a c3af6734 434b6930 c26f54d4 438a4d00 448fd088 c4a27040 42dff534 4374cd36 4484dfde c416b4c3 c319cd65 43474478 4486bf96 443d7904 42d042f4 436e67b8 bf98e800 448403a4 41f5cc10 437afd0e c38e1914 43f815c8 427f5f68 42d3defe c42d1673 c08b0400 4105aff0 4377aa3f 4406c7a4 c4887359 c22a60f4 42861c04 c35342d8 c3af2c7c c1eb01d0 42afc9a4 44a81686 c45aaee6 c1990968 43911173 c295e8a0 449dea4c 431f543a 422e3235 449c124c c431e0a4 c32f0354 428cd19e c4b57f63 4445d218 c305ac32 435b2e12 44b5f848 c29b6400 c313b258 435a2028 449912c8 c4b425da 427028a8 42f345ea 4309d380 44aca7a0 c31404ae 435a472e 44981458 449d085e c2dd8bec 43141285 c4027290 c1c68a00 4307bf6c 42bce252 c3963508 43a63c88 c2666ec4 43166819 44484cf8 4303c3d0 c2089b04 413da20c c33fbf28 c40c9093 42f2d294 4389cfe6 44b05e16 44012700 c2e6cf5e 438f8b59 c439a7da 441caa14 c25f5a9c 438ba6b5 432ef820 c4a24aa6 c1ffdaf0 431f3c17 445a5d60 c46fe882 c2e7e31b 4395a0db c4ac96bc 438188b4 4318e534 43220a77 449f2596 448c7d58 c28ed764 42ed2b2a c48f344a 43dbe578 43343e26 42e74766 439d79ec 43d791c0 43338c34 429b598e c480ab14 c4567e51 42c64f34 429b56a4 441b7324 c42e4ef7 c2dd13fc 433cfbc1 c48a40ec 449a0714 42ba48fc 42d4ee51 c467ea6c 44800434 429a6800 433436d0 c3f95442 c3787220 433aa638 438035ec c350f958 c4259022 43449f22 4216fb7c c3dfde28 447ccb4c 4306f144 4339b328 4441b58c 44ba0c76 c28d158c 43899e55 c48f1e17 c46afcc4 c263a6c4 43315f2e c34b4b08 44b2ccb4 c2a7dd15 4369ee3c c3cdf1d4 c430359b c22b4594 415f5745 c48654de 44b74da6 c2fd1491 42b48314 44aa189e c3cc81ec c33bcd7a 4280ec75 4404d136 c496527e 42f26a70 438441d2 c45028b0 43e45184 431908f0 43832e1a c3514d50 43b0afb8 430f8fe6 4244d32f 4382a4bc 446eaf40 c2e4922b 413300d5 c24416c0 c4900d16 c30a1dbd 42e30ca2 c48bdea2 c46529d6 c0a614e0 4267bbe4 4490dc3e 44b336ae 43358e86 42e5edbd 43e61d28 4335d568 4273a280 42f8e0c3 44ae9d18 c4888ed8 c2d1fbc9 41792561 c3ae811c c26f0260 c2687f38 436c34ef 00000080 -> 3e230c3a 3f1e045a bf453e66 43666d31", + "c464b1d5 43b4a5c8 c34691bf c435add9 c35c5578 c28d2bb8 436a9c8d c470559f 445bd070 43071726 428d3136 44022242 c4a4b4a0 c0de3260 433b837b 43ce9908 44b840c0 c2cc5bcb 4354834f 4277b220 c45466be 4313d93c 43910012 c2d64580 c477d4f6 c19bffc0 43326911 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3e5231cb bf764709 be384330 4192481c", + "44425ab4 43c0ccac 41a44ff8 c431ec28 441b49d4 430d00b8 43613669 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "447ab30c c385e32c c26a0694 c29cde60 4448a4ec 42fba2f4 427f5f1c c41be811 c49f5a38 42cbe75c 43000edb 443872ec c2071a20 c31bf1e8 4206c67d 435cb5f0 c45ea05c c1312670 436c062c 44a5b2a2 c49a6c71 433e1f3e 43616a4a 436e5898 43315df0 42e79b70 4200ccd3 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> bed9ce9b 3f5ea1b5 be803c9a 43a61f2d", + "c4499a34 449215d4 c275aad0 448df8e8 c3cdc9b0 429a9038 41edade8 44a274ea 4436350c c31f2962 42572113 c4260865 448d898e c2461888 43797ecc 4457fb9c 448c6ffc 40bde420 4346ccf5 c41b4332 440de658 3fc6fc80 42f0821e 44ad8500 446df56c 41810dc0 43310d66 4491543e c4b8826c 4325e4a6 4392cffb 44327ed4 c3dee6b4 43188d9c 435b2f44 c48cb868 42de8ef0 4312ef88 423a152d c3793320 c4b6592f 42609058 430f76dd c3c2a9d4 43c0a14c 4282971c 428e3f43 4394ac2c 449c5ca8 42e92d64 43508a60 c428fea6 c35f7458 41841aa8 435b3f47 4483315a c43b8a23 4322e9f8 41de3fee 4471dbf0 c48f907a c2ffa9c7 438b2906 44762858 c48cf866 c20b3b94 438b728c 44ba04cc 43e84bb0 42a0e14c 42a58343 c4b8d094 c3a6a5b4 c2d4b7a8 42b5f666 c4a92ea8 c4ab2031 c34403dd 42d5e4ab c481bc1e c3ffa996 433ec560 4391bbe5 c4549f65 c44a6ace 42a2aca4 42c93cd8 44689668 c47f1e8c 43149770 4383d886 43c2b658 446584b8 c29d3c82 42c1de1b 4479fccc 44215500 425337f8 42a2c3a5 c4556b6c 443102b4 c2e43925 438dea9b c45519e5 42f38690 428df830 43856fda c46770e9 c43278ec 428a27e0 4373cb03 c44302e4 435af560 4322e8de 4318f26a c486e984 c4599e57 42a6fdf0 433772ec c36dca98 c495cfec c319283c 437c8028 445489e8 4474b9e0 4241b8a8 4288a8ae c49b7510 44a2dfd4 c1ad06f0 42d5916b c3848540 4445dcdc c31874ed 43033a48 c4906f9c c4af3f13 42cbc568 434e03f9 431df218 446e2da8 c31792c2 4328f173 c21a3ec0 c4a30394 4257b3ac 41d3d3be 4495880e 4468e68c c3082f5c 433ecec2 c4b91c89 c4aec874 430229e4 422d5480 43b25c48 c3b63b68 c307a74b 42f5f269 449d5120 c28e0b80 42f0427c 42a91b4e 446d14b4 c3f190a2 c228c098 431416b5 c3099db0 c2010720 c2431130 4224c464 c3069da0 c4af30dd c335d1cc 4338eafa 44b3c9aa 434f14f0 c2717fe4 435a3eeb c4676256 4340c2f0 c29e1774 42b3731c 444e1870 4471d73c c28a1aea 42ef16fd 44a4672c c4ba07d4 42ef4ba8 435f88cd 448b6dc4 c3ca4650 42cd1f80 420088c9 c4b50855 44887eb2 42b993dc 4253e65f 44001320 c4800203 42244f78 4300c17e c34aa598 c4a801f4 c304a950 439229fe 44b72c3c c4505129 c311cc37 41c3b894 c4b074e0 c32baaf8 c2f18a13 42e20cb4 c4748b74 429877e0 c0e2bbe0 4395146b c4b7278b c4b53448 4171a9d0 430c8f8f 440e98a0 43d4a2ec c2d366d6 42105fd4 c427af42 44afec56 4209783c 422deb53 447cca9c c4605859 c335122b 419c3196 44ad15bc 449354bc 4308fc20 435b9dbd 43e72968 c3db43c4 c23126d0 4359b005 448a27a0 443aee04 42a58040 43066b62 c479b1b6 c39447fc 4320f3f4 4318a1d7 c3b17338 4432bd28 c3115c02 4347a74c 43b55424 c482517e 42af7fec 436f4d14 446d2c80 c49e1c9b 429db31c 4179b3ab 43cc7cf0 c4b3fa6c c2e5bd8c 437a497c c39cd158 c47b1321 c22a1538 42b70373 44093640 44429aa4 c2805d0a 4348c071 43bf4340 4471326c 4202e000 438d6dc9 44a3149e 44660954 43292950 4383ea32 c4a2785f c49837fe 42baff84 421a88de c4a365ea c39ffb84 c20cdeb0 4374a1c1 c474de76 c4a81633 4322a20e 4330f6df 43eb0c6c c3c313fc c3281086 438002ec 42da7db0 448ddcd2 c33a91a2 41288a79 c4b8b505 43b5fca4 42f71bd8 433e7232 c397d73c c27df500 c33d6991 4371cb49 43541010 4450dd50 430e5326 414c2816 c4813356 4471632c 433508d2 4327400a c4204466 c490b794 42d37184 4129ca19 443df540 437dde50 c31cfae9 43410ad6 44845564 4445dadc c34792e2 42a96296 44355164 442f14e8 c218d7b0 41d344af 444cda64 449de606 4313217a 430b2c18 c4211a13 c491ae1a 429ff89c 4333c6af c3c7afa0 43a8ffe4 c2d14a2e 42f91cde c464084e 4494e658 c1ff1fa8 437c1b33 c377ea20 42e19490 41c68aa0 43047997 c490c063 c4afb312 c2c9263b 43049e85 42254ca0 c471b88e 42d77880 434223e4 c2855f50 4449ae70 c330fca7 437ccd18 c3bcfb2c 44606c54 c2d2e592 429bf416 44aa4232 41abf340 c2c25d4d 4272c1d5 c380d074 c470d913 42585fc4 424b1bd7 c3e6a5c0 441f6550 c1cf48c0 438f982a c3eab36c c47a5671 43081458 428a69c2 c4767393 44b4ce04 433108ba 4361158b 44015fe4 c324fe68 432ca89e 4224b0d9 c3ecba58 c4a32038 c31cef40 4337691a 432566b0 c394494c c33f98a2 42fa19dc 43f107d0 c46b98b4 4318549c 4388fa85 c42495f7 c3a91ea4 c344b7f2 438c97e6 c39ba614 c4930494 c3295d33 43725c98 4435dc80 446b22e0 c2a6da6f 42c8b3aa 44a0c426 448483ba 4284ad88 42f7485a 4485bdfc c17df080 41c61700 431d9db4 43628dc8 c4836afa 43050b30 42de7e3e c4a0cc3d c4ad866d 4208c380 438e09d6 440fa380 c4ad1036 c2a3e413 425ee325 c420f514 44a14024 4329717c 436d66e4 44b1ba76 c4b8b3f8 c2774db4 432db7f9 c3c561b4 c48a99a8 c257fbc4 43235032 444d2c58 445e14e0 428767f4 435582c7 443078ac 43c1b6d8 418041c0 426888ac 43b9f3d0 c3c04ab8 c28441b0 423ff5be 4323eed0 43ee9dcc 4311917a 42e43388 4286d9b0 c48a3043 c31c1bc1 435627c5 425c8b20 c48955e4 c33d88be 4395d00e 44a12956 448f2378 c2035238 438021d2 c48385ac 44ba822c c30fc1ae 430b159a 44556810 c4130afd 41f1cc40 42b38e6c c3c5fc98 448fe4b6 c2e8297f 41e0b603 c097ea00 c48b10c0 4157a2f0 43897844 438efbc0 445b74cc c2d8665b 42ca9f1e c485ac5b 44b66ce2 c3372bd3 429d6922 c4b3bfa3 43f18a24 c343e287 43438a2d 444a7544 43ffd2e4 42d9991c 4380c55a c458960a 440f2b80 c3415197 433fb7b1 00000080 -> bf787a57 3e6c0dd1 3d8d5733 41a3ca71", + "43b59a28 c4ac9b81 427bc868 43853c40 44b81c0e 425e03d0 438aa580 c4a9be10 c45cd340 c2313f98 433805d9 c4914856 c390ebb8 c3112344 43472384 c494da49 441a3c9c c306e098 438f8424 44976296 c362a7d8 c3169800 42be51e3 44a369e0 41775800 429df7bc 422997cf c3d7b14c 4483af10 42f604f8 422a72d5 4498a7c6 4408ca7c 42a49bf8 430b6234 44b38cac c4497cfd 41af1608 43955948 c39107ec c40a96b6 433d53a6 430e1559 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000000a -> bf7c2a60 3e12fe3e 3dc3a697 42a4edbe", + "c48f4c2a c4a68fba 42b57ce4 c45ff524 c492f0bc 43421902 4380d0a4 44007f06 c4015f61 c15f4790 42954e7a 44ab6478 c484185c c3268823 42be3ac4 42a23f40 43447c20 c2f30aed 42fadd4b c4276d4d 4410bf94 c1df62d0 43544fa6 440f4100 44020d8a 4314af28 4257158f c47986c5 431be9f0 420d90d0 430cd3fb 43fc1558 440170ae 431e6c22 437fdbd6 c3511c30 c28abe50 c30a12f0 43617829 4471b5c4 c43514a4 c2d365d9 42e1d548 c4428364 c44f980f c33f4c95 4208fab0 c2adbcb0 441781cc 43168234 43636b38 444fd714 c4a5f7e2 c2791d14 42dd185a c44c9ee6 43509d90 433188e2 43231daf c445a9e1 447abb6c 4295475c 42327444 443344bc c4b641ca 41afa330 42b8fc94 c43a3b79 c44616b2 431147f4 41c46212 c385faec c30c6750 41f27040 4174788a c30043c0 c49f4284 c189ada0 4311a944 43e37a44 445814ac 428fe9a4 4310ef08 4403c658 447e11a0 428b3570 433b15bf c400c9b1 43140558 4240fc78 4381cf58 42c63c70 43be3e58 4027a980 43944177 4357e1d8 c48fda04 42396048 4297779d 43fc7b64 4431f824 4304c3da 429c64dc 447e1ae8 4474946c c280c48e 42cfdfda c25c2140 c4026cf9 431bc9cc 425829e8 c49149f6 c28fc340 431688a2 430c04d3 c48197ce c4510486 c1b44bf0 438789e2 c3f00b5c 44a697e6 43367884 4355ae76 43ace5ec c4ba9555 40db3600 436d5116 44a77e5c 4383aff0 c1ac04c8 42d9b153 c2f35140 c44a44e1 42ef94ac 43899505 44ab12bc c325d048 424a5efc 438030e8 bf587000 c3e0dda0 c3146841 412a21f5 43efcdf4 c2bb7e50 42c68e64 41d43d4c 443bdefc c4a5abfe 43056bb4 42df60a8 44018dc4 4421b208 431aadcc 435bfb21 4452d630 c48ae9fd 423fd5a4 437c8b8a c40f43ba 43259170 c2445d70 43869c3e 448e7212 4311dd10 4299ef3c 4384ed4e 44046c38 44ad3d9a c04911c0 4357cf61 438e3de8 438d1894 c21f1f88 43948861 446c7348 44aa3f56 c3370206 4251f4e7 c4385025 c2ef3e60 c33aa855 4385d2ef 443eae04 c497a70d 42867d28 4361b7aa c3ea957c c49f3942 c312b3d6 4379b932 44739fc8 445996f8 4181f5f8 438df4e9 44b14e7e c446a96d c3171186 42290c5a 444f3fec 44893a42 c23f4d5c 436eabb5 43463028 c48d0d42 42cca890 42034324 c40ab733 4494ce5e 432385a8 4379dd92 c49ad818 c29fb4e0 42036184 4380157b 4282ffe0 c20607e0 c3102670 436d6f96 448eb0f8 44a8363c 417752e0 4338561f 44768c64 43f84514 4319f16e 43735d8b c4a774ae c303f140 c3412cb9 43323e4d 4478bf88 44a1b640 c24fb5b0 42f5381f c49d9dc4 c43f5f68 c28e18e8 4340cf3f c3f05844 438627b4 c1e3d100 430b9203 c47a0d21 c41168b3 42bfa3dc 42dfd74c c45afec1 440fd194 c1f75fd0 43165b2f c497b0ae c3f2e632 c2d768c9 437a0d7e c401872e 44517500 4337ea58 43879465 c443bf30 44a92b04 c33de927 43818f12 448e684c c4008217 43462eec 425cc965 c494ccb9 c465a59e 42d754e8 42b4a87d c47a2924 41ddecc0 c1b1a088 42bcd295 426d1740 c4990e68 c1d166f8 43218e8e 449fbc76 42c87230 421ab910 42e5c82e c4af00ed 42c67560 c0c46560 431924a5 44165ebc 42fe7b20 c32f9843 42c23d74 c42136ce c36a8360 c22dcd64 42f56b8c 4340a408 435157a0 41d68840 437d00db c40e00ac 437b1940 c2c96691 4161e62e 449e78fe c484dcec c291f8f0 433402e9 44939744 44a4dfd6 c299977a 429c8f05 c3e8edb8 c33c76c8 433dd5a4 43569f7c c3da616c 43f54b90 430247fc 42dd128c 4480ffec 40b2ac00 c18edb60 432ca0da c489b410 c2bb7ee0 4344c792 4361f0d9 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000051 -> 3f3c5f55 bf244e9e 3e5d16b7 4326f049", + "440c98ac 448f077e c193b3e0 4390edcc c4580a3d c27c60d0 42b96456 43777f90 c336b3b0 431b0ccc 429103ab 44956768 43960834 42d0a9a8 429bf42d 44742ce0 44aae328 430b25ce 430bb34a 440b5534 c4aea8bb 432045fc 4361c856 c451b9fc 44b93a90 42f70aa8 423ce089 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> be4d58ef 3f7aaa98 3d02dd33 43cd6e51", + "429394e0 44a0969a 432d6ad4 c2bdc370 447d4dfc c2e5c182 42e3a8d1 441dfa60 443a1240 c2dbd07c 43415fa4 c36eaf98 444bef64 c2dc7496 438d0574 c48a5312 44a71884 4320bc66 435369d0 c402363c c4109501 40a70e00 424f21ea c417f6e0 c34bb618 c33f5ccc 43799755 c45c9362 c412aac1 42244810 42fdd2eb c4568f1c 43928b80 42a0ded8 4393dcb8 442f680c 43d5f248 c1dfe118 43670fcf 431011f0 448d237c c31a0732 428c6920 43b7f4b0 446c30a0 c2bbba90 42ac2697 44043088 44657ff8 c3244eda 41c02ecc 44989c60 c3468f28 c25e4694 433083ac 44a54c02 c4b7dfad c2b3936c 41a4295c 446d1bfc c3aa0e88 c30b256e 42ff9798 c484f7c4 447190c4 c2028ecc 43789852 c4a0f0c1 c4439e89 c2eca347 4317aa85 423a9ca0 c4872a72 c30d65d9 430c8115 c466c782 c411ea42 41093b60 4315e9e7 c479ee9e 444272e0 c30c07d3 42fbf109 c45596e9 4322f6c0 bfc37600 436c3b33 c445892a c48be98a c33636d2 435c04fd c3c7594c c39f5bb4 43327458 426337b9 44282d28 441c8d60 c32f2036 437228d2 c39b38e8 c32c3500 c2f6cc1c 4308c0b4 4398b218 439716dc 4151f1a0 43688c1a c41f84d4 449a2610 c23cf890 43424007 c20d44e0 445bcd48 4313cec8 41d3f6a1 c4457899 443d2d2c c2f7376d 43356b1a c4029241 43cf70c8 4209cbc0 438dde7d c464f7be c2700760 c3177055 423546af c465ef0a 44b5eaa4 42b49fa0 43163b57 c4408dde 4425ab60 c3259f7d 435c019b 434b48e0 441fa244 42ee7b50 433c3394 c4b36e50 442b9560 c0385500 42d0d288 4437c170 c3885228 c2d337ca 4330781b 42917380 4491f884 4329e030 4391f0a3 42551560 c2ad7960 c12245b0 4365e29c 4485ada0 c43d50ed c2ce1adf 42354993 c2781f40 c3857aa4 41ecbea0 42c34643 c46c0989 44956030 c22caa58 436886f2 441b5854 c484fd75 c08b4620 4321eb60 44aa4cc6 43657980 41dea828 43372ab3 c484f090 c4339335 c2f0ddb8 436dd239 c43ffc27 430e1d38 421c139c 42c46a9a c4a4d788 443e55ac 433a5204 4369ee28 c43e5072 c4013633 431312e0 42cdb4c7 c2b12460 44043a1c c311ef23 433b0bca c48173a7 c4680c61 c30fe422 437f88f2 c4b51c9d c2bc24e0 4312c310 42efc068 c395cbb4 c394c194 c340da71 438d7bc6 449690b6 448d91bc 42345e78 4336d041 c4a94088 c301aa18 43171c9c 438c220d 446b197c c42ca33c c2ce9452 430722de 44a2334a 43b3ddb0 4106f570 42f00ea4 c426be4f c4784c40 c332a581 42b52444 c33004f8 44ac275c c1b889f0 438f7597 c48e63bb c3dda1d8 42d6d810 436adc05 44075990 c4530029 43219cac 43494822 4430ef40 c4b24c97 43144436 42e9dcfb 44213d84 c42b2b10 c2b6c851 415f8ed2 445fe474 c45e971f 42eda148 43855269 44a84f56 441c9374 4325a7b8 42fa5510 44a7d550 c2160c60 c31f8473 429a1894 c3e4d4f0 443406f8 bcc92000 438da707 c34270d8 43ecc208 c11c11d0 4353f5ec 440d2ae8 c4951967 c2c6cfcf 43367df8 c3c95200 43768ce0 429c791c 4388a8ea 443aeef4 c4825dab 42838998 413b5ff7 449507c6 c4ac9e26 c1046f00 429e1b28 c47d787e 432c0ef8 c34592e3 430157b9 c339ada0 c3c0dabc 430320fa 4283ec42 c48f73e9 44019f5e c2964852 439566ef 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000049 -> 3f28686b bf0dd039 3f02a0d9 43029606", + "431a2768 447cda3c 4305f6fe 43615160 c402e4ee 429ce59c 438f0021 c45f5270 42664ee0 c2555f08 415d23ba c4b932a4 43ddd1f4 42ec2880 4378b105 c497c28c c3f9524a c299cada 42ab390c c432a1aa 44524b30 4317222a 434703a2 c4a37795 c43544bc c29290c5 42b341a6 c4a58e93 c287f440 429a5d7c 42b09f08 4415c944 c3aee5b4 43006756 4292e990 43a0e904 c459b246 c28e2740 43591f13 445463bc c42035d1 4337ebb4 41a88848 43d12248 c39879ac c1d9b3c0 435bd460 c4af4412 c3c327cc c33f2396 42d8a54c c4b9dad1 44305c4c c2bdc83c 42537fb2 c4a69bdf c38defdc 42b9a8bc 42cbbe0e c4b83e9b c36b6070 431d48fc 435c384e 4474ad4c c49745c9 c2953b0d 433e9805 44752738 43652668 c2e35c06 4385684f c4b7322d 438c5268 c10fb9b0 43927045 4470713c 447ec13c c3430f4f 434b1061 4474c164 438bdd38 c2ce6f75 4351b309 c3066f40 c3db21c0 c2bb7b0a 4390dcbf c48e4391 4401dfbe c306c214 428919d4 c28603c0 c4b96eef 42a46ca0 42e5c10e c3a03d54 c446d227 c2e675d8 43276aac c49baabd 4467ec4c 431eabf8 430e4f53 c481b6d0 c48847f4 c289f24a 430124b8 c435cbf1 c41f7fdf c28a3260 42914d1d c3a07674 c4a29fbd c0744f40 43027a26 c4704f9f c45d8de7 c2b83bd5 4312f951 447837c8 c3e2a8ac 3f57d800 425a4c6a c3821500 c4b6495a c2135a58 413baef4 449181ae c49009ce 42039f9c 4333d934 43bf9f6c c2b6cb50 42015c0c 416f63d0 44136c2c 44564940 415cf220 42ccca6c c4b19edd 44850dbc 42a5920c 437ba7dc c3e7220c 44a7a68a 42f7193c 43014902 4234a760 c41d6e56 c2fe5a2a 42816044 44ae72f8 4433b35c 42a97cb8 435f7033 c410a868 44363af8 c336d0a9 424a9fc0 442b8274 c405ccaa 41120f60 424c6132 4419cd50 44352d60 420d42d0 438ae7f8 c22e2a00 c29feb60 42af199c 42f871e3 43ff1b74 44a929e8 c1acde58 43928a98 43d4e580 43fd37f0 42f63c44 43113377 c45d3a5c 44ba3752 c068a840 433765fe 44a2b076 c39f78dc 4240c760 4385c80a 444141ac 44815224 42a7fd54 438f453f 4436107c c39e8168 420fe168 4356603b c3fc04aa 4343c4f8 c314b5a3 43394253 c3d3d474 449084bc 432a5636 41b0c308 4355a6a0 44582458 40ece6a0 416165e6 c41ac887 4430c8a0 c3225ff2 43431c2d 44a3313c 43664168 432e10c4 435e4f57 44780444 449f560e c2e9b488 42c89a4d c48e1808 44161af8 c305ac86 4343c86c 44458510 4446f6cc 4271c9f0 42b3ee25 c3d03bac 4434ecf4 4266a7c0 4200f144 42f38440 c45e6916 c31d0720 42cd6525 c4a0f980 c3186340 c33d510b 4250f3e2 448cb108 439f96a8 42173d9c 4182f4b6 443c1830 c4a09f10 c340a2ce 42688f91 c2f50130 44862eea 43159f4a 43000e78 c3d5eb04 446da1b4 c0d64a40 43490166 4424acf0 c4211773 c2b15258 4373b85b c4881928 c440ecea 4274aa98 432a314b c4992b02 c4b4fab4 c320e904 435e3366 c2b81250 43ad4688 42811854 42f142dd 44955208 c4a42aea c1cc2388 431f42a3 c493e4f4 c4858e42 431bef6a 43529691 44392810 c23297c0 42fd42bc 431bf924 4489b126 c44532eb 42af6de4 435be2c0 44252540 c319a098 4220207c 436dcd3e c476db9f c4516acf c34491a9 43416637 44aa0dae c4abb2d2 432c2a2a 435eafec 44b1bb64 c41ffcd0 429d57ec 437ea87e c463a8f9 c1b24d80 4063eec0 42bf3297 c3b30bf4 44afb686 41a9ada8 4330f527 c39cf0b4 4381ff3c c33060a5 43471112 c35d6df0 c4836a2e 42942ae8 4380e672 c4176c6b c3bd0778 c343630b 417f42fa c4b5b5f9 448cf12e c2e77f40 434e72fb c4a7625b 4463d8b4 41c3e338 41e344bb c456eb93 c480d658 42ae2f60 430f74a9 44585418 44b158fe c29a7a5a 42ed45c6 442b1f98 c363a538 c27b06d0 4363f8b9 44946992 c4b25d1f c22fc290 43336a61 c47db59a c3d71094 c2eb05e9 437322aa c3d69bbc c49f06ec c1cf0880 4337fde1 c428a31c 44041c90 430348d0 42cdf3d2 c4238b1e 44789e9c c2cec76f 4331489e c38af868 c1fae100 c25c5ba8 429e95b3 448a599a 43944bd4 4311680c 430d7241 44807f2c c40e0c7c c31578e6 4383ba48 c4afec46 c43411ec c3161826 4394b4af c22ba720 43bda7dc 40c8d4e0 435422aa 43925c7c 4440f988 42a53d70 42478385 4425d950 c48f570c c2fbf77b 422a4163 c4853b45 44b65c50 c322ef06 43870475 c46e0e55 4447b380 c27929c8 42ff9b7f 43f32170 c482cbc4 42ac34e0 432d3a7b c1a56c40 443db7f4 433880bc 41bb7a03 44a89a6a 4337f478 41dd1e18 4166bb34 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000066 -> 3f4c9fe6 befe52a3 bead24f7 41ddc055", + "c44e6d3d 4255b060 42c8f050 430585d0 44b3b98a 427015e8 436d11ac 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "4416cfa4 44a7a90c 42f30a10 c40f96f2 4485a2dc c2e1a6bc 42993213 440f8b38 c4308c0a 432640e4 435a60be c400426c c3f845d2 432478ba 438f292c c45e110a 44813b26 42ecd580 43497706 c46a1290 c47f23d0 419bb6c8 426cf727 4336b6a8 c41050c4 c30b7264 4308c6d2 43729b60 43cf2068 42e59a0c 435352dc 43b8d59c c33c0830 42557204 4390cad3 c4839cb8 4435690c c1b1e2a0 4221ad57 44764aec 4424f880 4313f87c 42c49b75 c496256d 4479a150 40509ec0 431b1fb7 44373e94 c3cd8bb8 c27f0bc0 424431a1 4484c110 c48d75d0 c339416d 42e3a2f1 c45f1d8d c43ffb41 c2f7bdf7 41247da3 4419bc34 445294cc 426e0bb8 41cbac4a c28663a0 c450f07d c321df13 43864a98 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bf6088a3 3edd4aae be56977c 43cea604", + "446d76e8 44752b8c 43174746 440f5c80 4478e010 c14d2b30 42bc2268 c43fe03f c4a12dfc 42b67394 4371d5b0 43e26efc 4410a04c c2e1ae2f 42c08b09 43e48744 447f2808 3e386800 42fc448a c4287165 44442dd4 432200f8 4329f3aa c329abc0 c3962114 c334f434 41f5249c 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3e8a9773 3f6fa561 3e65eaf0 43ad8f02", + "42f673f0 44b4b12a c1350a90 44608260 445eec80 41bd5860 4384645a 442fd55c c47cda60 c2a73fab 432efc86 c4a1f5b9 44abe15a c3027715 43100e0a c45fd8c1 c4a73da6 c324d2ee 4306f477 443fdd48 4473efec c23e122c 43368340 c1d32000 c35efbd8 c2fb950c 43875313 4499ed66 44ab492e c2a7032a 436d6c60 c39adc24 c2a064e0 c2045d6c 42835aea 44b7f464 c46dca73 430ca4de 4386dcca 43ee17fc c3733b68 432729be 434e6e27 c459dde1 4478a83c c2ea287a 4372ef65 442d6118 c49a0335 c2ce79cc 42dc9da6 44ac60ce 43d2746c c32fae13 4127a0ab c1107600 c48601dd c315e330 42ecbb10 43a79070 43f0922c 433b3cb0 436b8724 448b5c4c 41a14c00 c30322f4 433680e0 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f7fc0b6 bc3c8e61 3d2dae05 4324f05a", + "c1949dc0 4464174c c2380ad0 c466bf4e 444c1ccc c2827b96 43889088 4418e514 c3abf5a8 427f74d0 4292a788 c3b08db4 c479497a 4300781c 43594efb 44a70124 44736854 42cd2a5c 43019d98 c37d1da8 4412403c 430b28ce 41d5c7e9 c28461c0 c422146a 434756e2 430cbd9e c486ea60 446549d0 42a23b78 434938b0 43a8b1cc c432635d 42c77624 433d19b5 c44f83e2 c485b26b 42d5ded8 4382e1d9 4427ed78 c4982303 42ea8124 43659cfc c2ce45e0 c48142d2 c2d87873 4318e6c1 c48467b5 c4a3f0c2 432a835e 434fd4d9 c37ce500 c46e389e c315d22f 42ba5ea2 43b9b87c 44acd916 42b39520 4388b96a 444d59e8 4490c666 42d5b17c 43873b09 4408ed6c c4bb6582 42297364 42335f4a c37520f8 c45e4fa0 c0587a40 43728adc c4a60c4c 44919d26 4296d9f0 42ce5e7f 4496b394 c499854b 421344d0 42cf2076 c4a711bf 41860ac0 c29cdf2c 4201c8aa 448e49c0 c4b3c526 c2cd0dd7 4306b9f8 c4883ca2 c2e11aa0 43458272 42ac2ef2 c3730298 448695e8 c3224264 437cf902 c4019c6b 44941ee6 c32a1cf8 4310f33b 43143110 c49286b7 c32a35f8 438dc893 4355d838 c48cd868 4247f494 4322f20a 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000001a -> 3c8f8659 3f5a382a bf05c6d1 43125f55", + "440e49a0 c4b47c1c 428190c8 c3933b38 4484bc4e c2b96d45 4332d349 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "44b54ae2 44aaed8c c2e826a0 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c393de28 c2d2eea0 4201a754 c4624468 445c76c8 430c4a78 43952681 c4b8eb51 c4b58a22 c3155226 436a3cfb 44a6f4f8 c34ea9e0 c25f1420 431cc639 443f444c c39c89e4 42ad0704 438cc2d9 c3fb2122 c49e6f22 c17c5770 43868eba c4b51184 c4b9a665 4302743e 42a84b73 43ce33f0 448d1b02 c20b956c 435789ba c3bda0a0 c48c519a c31888af 435eb8c0 c3ecd0d4 4435276c c1eaaeb8 435eb30b 43d69edc 44687c44 c2430dbc 432004ef c4415c0d 43c0ea78 43237f4a 437cc2a0 c450d08d c46d4d18 c2bd0d5b 42ae7699 c4ac6250 c44359de 427162d8 43845a72 443aee0c c3f6831a c256d7e4 4284289e 44af6e6a 438e91f0 c2655310 423f7f37 439ab388 c3762968 c2208df0 4377a063 c40caa31 43be944c c30666de 415e9094 44afde00 44b51076 c2a56ffc 43218dcf 4415902c 44a63954 427219c0 42f55a76 c4976dba 44b762f6 c33a5c26 430d9f51 43a8e510 c484955b 4286c104 42437f6b c2964c50 c442b9a2 4341b69a 413dfe84 c3ba46c4 c4480954 42d480e4 41bf7028 c30c1328 c43d61ca 4325ab60 437907aa c44b483d c499ff3c 411dcec0 433669bb c4b4261c c43b5969 c2a2216c 41d55548 44a75f90 c48b666a c3007292 4373bba8 440a4260 44b2f18a c3212016 4392ec89 4336d6f8 44970d00 40e67480 430e70ab 443b20b0 c42fcc16 c278e0b0 41f73a04 43d62784 c4806d02 425c44d8 435f59f4 c45417ed c43f1f73 c32c488f 430d0f0d c4b09757 44754dc4 c3082aaf 413fc78f c2d5c270 c3354858 c1d25870 42e6307e 4482ea50 43a674f8 c2f9d2bc 42dd139b c4a47169 c4714502 c28e4e1e 42fb3508 c4887696 445721ec c0a54920 4329a596 442c1d64 c2ff1950 c32a1ae1 4390afae 4437aadc c30e44e0 4334b406 4382001c 43a8cca4 4338ed60 43081ae0 4355560f c4a56263 442a3738 42dd8234 43814e02 446e3318 c4999f97 40b87b20 4234cb43 c2bcca20 c4812590 422c21d8 4248b293 c49e4b43 44baa9b2 c343c30f 4310b1af 447b8f38 c443b946 421f5aa8 4306ce52 44418fd4 42616be0 42b1f3d0 432fc415 443d402c c463d3e2 c2be6ec3 4156bc49 c2123a20 435895e8 42c7e3dc 42babacd 444b0818 c2214200 c2a9d545 42d6072a 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000031 -> be2a1e61 bf709f03 be98b114 431f9ab5", + "44a4d69c c4a904b0 c1d7a338 c3c96e3c c49cc2c3 41ec6898 43803c52 44a393b2 44908d30 42c5b2a0 430a2cbc c21873a0 c4b180b5 c24a6744 43907f27 c3872780 44a6275e 41809bb0 4134f1b8 c45d0a6a c49425c9 42423108 437a3ad1 40fb2500 43c856ec 431e8934 42ff552d c406e968 c3c643c0 42121d08 4357eac9 44040c50 c4a3dc14 c24f1760 4348d208 432181f0 c480464a c22c3570 4308ad10 c483c9f9 44264784 42fce738 42c83d82 42320b20 43517198 c347cae1 43283495 c3b973ec c402ef91 c25eb388 43279c56 4439a394 c3fef968 c2f3160a 42e4bead 44ac5fba c453f6a7 42d7da10 435e530e c46bc6c9 c478e6bc 413e9cc0 432ed4a7 c41a633b c4ad99f0 42d4bbf8 430508ae 43ea2314 44219f50 c212dd18 42a62369 43181f18 c494bbe4 430e6164 43163c7c c41e645a c40e0ac1 c2952ab6 438c4198 43c78fbc c3dfcb40 c33c3f5a 43953b38 c4b8dedc c4a98fc4 43390422 42dcb50c 44899640 c4b78059 429eab90 42d724ab c3a7d200 43f05314 c2c70dd2 4393299b c4670ede c43d307d c3415b37 43148dee 4463ec30 4364cab0 431bc71e 4349a6de 449c740a c492ae7e 43451c76 4344cd23 c29b9a70 441f6d44 c32b8ff4 434639b5 449770b2 447cc288 c3205ae6 437c1994 c48777f9 42d281b0 41c46210 42a2dcb6 c49f8dd1 c3706338 41b78a50 43452c99 c4b510c3 c4a09764 43118982 43861f06 44841296 448cd1e8 c2a6adef 41af4444 c41a7fba 447bd364 c3147028 41d3b901 c2e7d7c0 c3c53b04 c3290105 43873bce c4a6da72 c4083398 4314cad6 425b05a8 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000023 -> 3edbf83e 3f56a5b6 3eaba632 41917062", + "43f4cf70 c4678ece 42cce65c c37aef28 4480215e 427af0e8 43510caf 444ab8ac c3911f94 c2398ef0 4177bb2c c43ffce2 43d7907c 430a2e52 42a21a85 c4952471 445af630 421dac88 430410fb c4b03d06 c3d96c24 c32cc555 435759f9 c4ab9fd0 c3bdcc60 42d83098 430eb3cf 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f7f2644 3d27064b bd906429 44379733", + "44809fd0 42613980 c336d852 441a6504 44af73ee 425ea104 42c96315 c3ffeb72 c3407c20 c33a76e3 4342187d c3d9f8c8 428e3cd0 c1d7f270 436203cc c4ad4c88 c453fe16 42b3d7bc 429a94f5 43e5bc28 44a9c9fe 41294630 42b29792 442f0eec 449993a2 429b62e0 42e76ef2 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f32f4ef 3f365085 3d83e95c 43333958", + "c493981b 43912708 431c2502 c4b2cf98 436d1de0 426b66e8 437c7abd 43add228 42e4f0c0 428cab14 428ba8cc 44a219ea 444cacd4 c2663928 432dc3dd 4456944c 44038258 430489c8 43424fb5 44adb610 c4b9d347 c3098cda 41b9681f c44dd51e c4b7bb2d c2d1362f 4299363f c4292892 43fe6c84 42ed0eac 42b2b649 c4290c45 c2b59220 42f87e98 42f7e959 44ad65f4 c3414b20 c286c9d2 438dfa0d 44560af0 4499474c c1f9a2c0 434ef6cf c4a92313 c4b1da11 42b0b598 4278a660 c4773efb 441c8bac 4332ec10 429bd4df 4488152e 442bbcec 4317e844 431f25d8 44910940 c4b1bf12 433d798e 415ce139 c3ef2b76 c377a5f8 41c560d0 438e3558 44356058 c392b58c 432caebe 4310225b 44ad5b12 44adaf52 4223b2f0 42df4fba c3ea40ec 4491011a 430c1102 41ce6903 43776e50 c28a5f50 4346961c 4287e67f c41e209a c4a584fa c33043e3 432e0fa5 4426bba8 433a6350 c20ecb14 43283abe 4386f470 c418c377 401e68c0 438cc6a4 c2e4b590 c408345d 42269504 42e967b1 c3e56830 c291a7a0 432ef0c8 43459081 c4983de4 c4353bd9 c2e1eddb 428c29f4 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000019 -> bf3c3026 bf25d63e be4cb81f 42dda5e3", + "c3b04598 449db3d6 4339f11a 4473f5fc 44a1ef48 c21047a4 41948a9c 444d64e4 4427f7c4 c2ae72f6 42e3b4b2 44b9fb74 c44f08d8 c3001e20 4394c23e c3aade58 448bb5f0 4284c5fc 430e8594 43f8e3a0 4491bee4 c33dd340 42b7e328 c25548a0 441b91a4 c31d4c83 43267ae8 c3e17654 c493d29a c33bad33 437de5ca 44840f2a c2f42020 c315c875 434cd00f c3445d60 43fa3398 42d3c044 42e76763 c4975d2c 449890d4 42966b1c 433662fd c4055e5f c4b7d0af c26e39a0 42a606d8 44413bf0 43e90064 42a658f8 42f3c28f 431add98 443ba7d4 c1be6f08 43575a53 4488d8bc 44113bc8 c2257424 4230b681 4473ce08 448ad6e6 428fe1a8 434bbc39 4410dc84 c3314340 40187680 4325a02d c496987e 41be8240 41b61010 435a97d7 c4930c30 c414e45b c25f069c 43662267 c460869f c34effe0 433827dc 4312fefd c3d786b8 44851e54 42e18d84 43535d1a c3993130 43d985f0 c2a879fb 421e433c c4b470ff c377b658 42f57994 4360dc72 c42c57c3 43dc3fcc 417c43d0 429726ef c44cc1e5 c4b402d8 432083ec 4384c879 4139ca80 446bda10 c30aa812 42a4d49b c49695c9 44b73e30 c2b1a9fa 42a51576 c3a59a2c 44080dd4 403f8340 4307d687 442ef10c 449f125e 42d13b6c 4391a9c2 c49a6370 44b60f74 c2b7db00 41bfab2a c482af3a c38ffe14 40e40fc0 434f7c20 4416d214 446cfee4 c1a2f418 430fb3a1 44448bb8 c489117a 414d66b0 42799154 42b24560 c49dd3db 433b696c 432722b6 441737c8 42c16640 421977ec 4300accd c3c75b58 c4acc70e 42a9e1b4 42d7b3c3 4499bb08 c3be9ee8 c344f129 42dcb0cb 44907c1a 434ffa40 c310de8b 42a0114c 443b57a0 44846eea 42b7cdc4 421bd81b c41882e2 c2a5bde0 419b9038 42b7d183 42ed6cb0 446da8ec c09887c0 42a7f751 c483821c c401e2b8 4321af56 4347b289 44aadf88 c4523ae6 c2b93a09 432b4237 c3a5a29c 44875bd4 4290d47c 422a3538 440fbd60 c46fb33f 42d8d3c8 42d2575f 44674310 c494da5c 41f26468 4283c950 44ba3f28 c41d0d28 c1dd3598 434e338e c3e1f138 448a3fba c2cbd807 4298f6ac 44b55b7e c40be553 4313dc82 43299003 43198768 c3004928 c2f983da 43331b80 c2bbc1c0 c3dbb9e0 c22f6dfc 434b061b c4155b07 43754990 430cc488 4385e17d c475e964 43b04280 c212dc18 422eda2b 441701b8 c451abbb c125c8c0 430896a6 c442269b c4197d1a c2c13c33 4381836f 44947aec c44c4217 c29c31bc 420ceaea 44b1efd2 c4accaf7 41e7d2a0 420047ee 44b83d18 c48a711a 41c36e10 429bf5ed 44b89c30 c46a123e 430fc978 430de6d4 441f86d8 4499ce36 431cc016 430251d6 c337f698 42fc3bc0 3fe34380 435e3dae c2ed4b00 c48b2572 413297f0 4367528b 447e8834 c3489360 c298bbb8 42a86151 c461e9d9 c3ffe91a 4295bee0 429fcf51 c4a93727 c4137b2a 4298e194 42abc054 c4b8017e 444edc78 431f0314 41afce71 c4a65647 c474a6d4 c3166aaa 431ee596 c3d08af8 c4b446c3 42b30c3c 42d3f889 c390ca88 4480d5d0 c1ffe3e8 42e14449 442769ac 435aacf0 424a7990 437f35fe 4207c460 4467f2a8 c2d29e0e 432bddec 44714dc8 c4121124 c339bf32 434a3dbd 400ad200 43b19fc0 c21647e4 4300b5ae c452b70c 43c35a8c c2171364 434a3b05 43d8c364 c2dd2480 428c5834 42ba424c c4b9a172 c4b61315 c21c7710 4377d533 441cffb4 44b34986 430cf12e 42e20748 4499826e c3fa16dc 40e447e0 4314005e 44049bd8 4481947a 42c842d0 42880802 42ea8530 c3f0f286 c2e05aa6 4363d863 c487b02b c2e9a750 c342ea0e 43615751 43a9c858 c40b2689 c31b3998 436a3d1a c33a0d20 4440e0b4 42a784fc 42aad7ce 44950c44 c3f028f0 43083a5a 431a15da c38b6b10 c37a2798 430b8830 437ea7c7 c30d5568 44074efe 42cad560 426a3db7 c495c82b 44a153ec 42ba0690 42eca14a 448e7752 c45cdb72 c3167d35 42c4fb3f c4404f95 449f170e c30c9ac8 4327bd28 c4bad7a8 43ef7b14 c2ea75d0 42f905ac 44894f84 c49dd4a0 4326e53a 425889da 43b9cfcc c435ae03 41fae610 42d769a2 c4b9a23c c438e3cf 42ea6648 42361129 c1e31340 c3ba1f70 c2a15bcd 430ebf9f 441ba30c 44817972 42632880 43501080 4375cd48 4432d400 431d54b6 429ad38a 43c816f0 c38f9c90 c3416792 43921df7 c4677241 c4188499 bffb4400 4362bf06 c459bb72 c30a1b88 433efdb6 42ecc96a 44456130 439807c8 418b7070 437e6b0d c3de4c30 c39c9458 c2525cd8 433faa1e c38336a8 c4bb02a7 42fbae78 4382cfd0 43bce854 440f0d1c 43069086 425d86d2 c4b4deb8 428fa9a0 42fa5870 423c28f1 c46ba814 440a95a4 40f09440 42936083 c4420bd3 439dc700 c30dcb6e 43576ab8 4441ca70 c4aa6686 43251cca 41a4da42 c39856dc 449f3306 429baa1c 422325f3 c414bb73 44605d4c c2870e7a 428010d4 c3c320f0 c42ed39f 42fff2a8 43414e2b 43867c50 c483b12a c274590c 431b31bd c2ee9ca0 c3f21814 42b7c6cc 4350ddd4 43d38c6c 44832858 c2f99de5 4202efc0 c49c8a67 c40407d5 42227aac 436284d3 c43b6cbd 43f048b4 43133778 42e8d11d c49a4da6 44508548 c144f2a0 43556873 44ba0ed2 442cafd0 430deb52 4292bef3 c4666d37 43bdead8 42ce3f78 438a3d53 4488d112 449103f6 424feefc 42133e1e c43592c2 43d943e4 c2c98495 4303bcbe c40a1769 c44cb95b c22721f8 43291e84 44316a10 43ae47d4 c33e8ef4 4392c562 c462cc34 437db010 432e7cec 4357d1fa c397b740 c30cf8e8 418b66b8 43755f62 4406b21a 43dad044 3fe73280 435db1e3 c2425460 420651c0 c033a880 4162e988 c4990568 c42d2f91 c2e52925 428597de 44118028 41da6000 c09074a0 43398645 c383deb8 c31b39e0 c33394bc 4381ea81 00000080 -> bf0348de bf58c126 3e11354a 41612fc4", + "43e6b3f4 44a1a086 c341b02c 448d666e c4b3a744 422d1f80 435236ad c4a977d8 427072c0 c20d104c 42db062c 446ebf24 c382b734 42333e1c 424ac7c3 425971c0 44a37de0 42f3bf74 435ee00f c3b25168 c301c538 c1503650 42fd87af 4475d0b0 c42233c3 4296cda8 42172f15 c3fd8e2e c417c574 43343d40 42fd2346 44088e02 c3549150 42cf3e54 434f7f04 c48ccb5e c4b2bfa1 422ac844 43182d91 44904ae6 c403fa6a c33674dd 43633957 44624910 448443b8 431644cc 4217a43a 448d4206 c2d26d10 431d9626 431e8fad c43e3a5d c48bb602 c3477451 43108046 c0faca00 44b2ff9e 43178e7e 4336114e c3fb5eaa 42143ea0 c260ea0c 4363a129 43505158 c4b7cc25 4280db90 42f5ba25 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bf758100 3e902d1a bd03195f 42ac9cfe", + "4423d060 439762d8 433e04ee c40b3027 4482fa24 c33129c1 4301bc8a 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c46db816 44a1fae4 c2b177cb c452a134 44894344 c21a1ffc 43091cba c481267f 4323e820 c1e71a90 42bf3fd7 c46d4659 c4844afc c30e38c3 415e2fe4 c4804e84 c3bf5c38 4339d718 42be2dd3 c4704b12 445ae15c c2f6b17d 431714ce c32cad80 44a72182 c1a2b8c8 42fb86b9 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3ee44ad6 3f561fd4 3ea32fa3 4362917c", + "44513a0c c3b96464 43218990 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "443b8648 c3fe0cc8 41ce1c80 c41b1ae4 c19e8800 c2752910 424019c2 4484da58 c4939619 43388fd6 42e3f4ad 44398764 448a35d4 c26f75c8 42cb2f69 c480c990 c28aecd0 c32300d9 42329684 42e8db90 4467d014 42e2bb58 438aa0bb c4835136 c429e439 c204fc10 4134d3e1 c4378adb c44f42c8 c2b2d2d8 431637a6 c43fbdb8 c38f00c8 42d8a6a4 429f8ca0 447617e0 c376edf8 c3284e85 4312a655 44a77d30 c4a9512c 432f06be 420ad411 42967eb0 c49c09f4 c2f159fc 43325ee9 c4a92ecf 4489b3a6 42dc4dc8 437261f1 4483eae4 44a1ca3c c2cfdf5e 432e85f2 c48e56da c4313853 42108a6c 417b7a9a c49ecf0d c3ec9228 43165678 4340e166 44777978 c2849f00 c31a5200 42dac529 c496d84a c492596c c09d48c0 43604639 c39994c4 43b5edb8 c302ddb0 4318317e 448b51b6 4414a9d8 c2259e28 41e8f1d4 c49f4fee 447c38d0 433641d6 42f514f2 c31b2ec8 c29517c0 4252c3d0 42c97c2d c47b9efc c45e6180 c317ee38 432dae5f 4475839c c4a52e47 c2287c80 4339430a c4758479 c410cad4 c2c3d0b8 41bd78b8 44b022ec 448559ee c0dba000 438d2bc9 c3b4c2e4 c4adcfbb c21a11c0 4299afce 4441f424 443b60cc 429ca498 430470ec 4489b4e8 42927b30 4331d1b4 429f52fa c3aa0910 c212bb80 c2fe1ec0 42e1cae6 4481d02a 4461f870 c300b822 4386aabd 44b795e8 449ebc46 43249c24 42d8184b c44d0ec7 434d7388 c291db72 432db9fe c32b09f8 c3e20bb4 c3218253 429358d9 c3dbd1a0 c4b54ce4 c3449173 430169c7 c4a0b553 c3942644 41adc2e0 430240f0 41b88640 441478e4 429dc28c 42c3b455 c49062e0 c48191ba c2e1d55d 43509cd3 c48cc700 449627f2 c2ef2f98 426b5901 44050d1c 4384e168 4333d1d4 430e4c24 c48ca21b c4a2e53f c3467029 4282452e c34b85e0 c48a49fa 433fb080 43203200 c3577100 4428bcec 431ab438 42eaaa09 c279b000 444aef68 c2ad4dc7 430b07f4 c43dc13d 4445a68c c2357e78 42bd208e c44d6dda 43a2e10c c2dd8014 41f74a2d c3dfd62c 43c7360c c1c00ff8 43275876 c483e49e 44a06f1e 4186eb58 4367cfbb c4a2619a 431d2510 c2aa9116 413b1023 c39a01a8 c3cbbb24 434100e6 42ee58a5 44240df0 c4708946 4315e6a6 42f63120 c42e355b 4482595c c2eb7514 42e153ed 43af91a0 44400fec 43289058 438982c3 c45f7c05 43eced00 c2d7eacc 431fc0f0 44806eca 44a1ec84 4307bcfa 4371cfdc 440f6fc8 c33e0aa8 c25097b0 431b1ae2 c46de23a c48dca49 c29d7f83 438b633b c2428940 c426d8c4 c334f52e 43850210 4452c4dc c4b7b5b6 41e92650 41bc9916 442f6010 4479da9c 42f38228 431bebf2 c35a9cd8 c49b432b 432a35c2 42f77a33 c4b91835 43c0712c 41c91bc0 43009e99 c4054a9f 444accbc c306a974 43110119 429500d0 c46da1d2 42942b0c 42b79c34 44683dd4 c3bc6a18 c2ea44c0 42512974 43056910 c425d980 43141706 42d8ea2e 441c5ba4 c4ad06d7 c312dcf4 42834f54 c49b973f c46d878a 42e20bf0 414b60de c48bb880 c3f5bfbc c24c71ac 43398822 42058880 44b30906 c01af140 432ad016 433123b8 4493c914 422740c4 4358e201 c490ad85 43763890 c2633b3c 433761bb c40353c7 c41ceb9e c2d246d7 42e47a24 43bcf620 43edd59c 43377bb2 4253fbdc c4553181 43810678 4292fae4 43915572 c15a4800 c3c199d0 c28cd8c2 424938ae 44b6f0c4 c481c059 c28180ea 42816d34 44693378 c49d86e3 42d8c458 437b589b 448eaa82 43e4f4b8 420ada38 43469be1 4402c024 c480afc4 c2dbbf58 423aa0d4 44077614 42d1d830 4312ce7e 43705a32 44a74d6e c366a7b0 c23a99cc 4311f7cf c3b7cf9c c44f0792 c230bc84 438b241e c41ab928 429cc550 c3305ec4 42811b20 43527578 c2ceb480 42b4702c 43903a7b c4400902 c47803bc 42e58bf8 42a214f5 426dc4e0 c38e9c60 c1066590 43922245 c4a095bd c40fc02a c126dca0 41d8a9af c3d0f2c4 432bf6d8 c2aa3c9a 439044f5 413bfa80 42b1bd50 c2f5b98c 432dc548 444af768 448a797a 42f8f73c 433438f6 440eca98 4481b164 41769080 42e18099 438c5814 c397ff1c c327e934 428d1862 c34e22c8 c430290a 4318faf0 431e4700 443a07d0 43b71260 c2b46586 4326f3b8 44a68afe c386f19c c224ab60 41f05fd5 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000005f -> 3f5faba9 beeb3a65 be23adcf 4268fd03", + "c47e624a c468d1be c2487fec c49686c4 440a25ec c337c9c3 42b22b42 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "4323bda8 44027984 43128f66 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c3d87158 c3d2f750 c31d0f72 4401d412 c44beae9 c2bbe2bb 43400263 c497a82c 44032734 42dcb8ec 428f36bf 448f335c c437a929 42729bb8 433dfa39 c3d11f98 c2a6e5c0 42c1aa0c 437cb688 c3d25e08 c423ebe5 42f1b744 422dda35 c1719b80 4420da88 c3381f72 438cbb48 c42c2668 c49f2ba6 4046bb00 4259b49f 43103e80 c4a2331d 4220dc60 434db228 446f923c c4b026bb 42b32e80 437de51a c23552a0 441842e4 c1477fd0 41deb40f c2dddf10 4490cf38 42f1dd00 436dc4e4 43b59ccc 42f141f0 43039890 4387dcf2 43ae0a28 c3cd7920 c2f423d0 42f7aa97 c4a36778 c4b80391 4319ec50 43900076 c469aff3 c40033e0 c2648ea4 417cf7d4 c479ab46 43b81010 42837c2c 43762d1f 43e7df14 44b2ce66 42f0f260 42d39616 443a27b0 44966612 c26cb7a4 43487462 446a7514 443479e0 4273ca28 433a8de8 449a8daa c43849d0 c293ff05 435dc648 c43e155b 439de370 416de020 427eac74 448bbdac c45afe1d 4230e48c 4374f036 c484f447 4447020c 42742900 425cc248 c3e73480 c3199fc0 431dc2c6 437db0d6 c450a5f9 44b6f91e c313ab08 4344d5bd 44334504 c07f9c00 c30a47f6 435956de c4b7633d 42e482a0 41ffbd20 42cfb336 c3d69bc8 c4280009 c335675a 438c7315 c4b63a66 43be5790 42dac8dc 432cefab c49b6c1d c2787c80 4330b410 430b8170 c3c89cac 44b824ee c2fc1b80 439383dd c43ca712 c463d4cd c2974c6e 42e703ab 4481d656 446a0aac c234ca74 438b02d3 c48d3490 44000f52 43447e0c 4362e31c c3131d70 4471a754 c3025c72 42d60b15 43c02320 c41fcc0e c195bee0 43831232 442423d8 4423d95c c30f4aed 435a803a 44037bc0 c3fb2b9a 42cbd164 436153e6 c4aa2fb0 440a31a8 c2b199ab 4362e9a5 c40ba5d4 c4766c8d c1566670 43764664 c44c9805 c454ecb0 c110b750 4328034d 4491df6e c48da571 42f88bb8 42db1ef4 43cb7ee8 c4b1e6f9 c31ba523 42acbc15 c4121a73 43a0cd34 42fec8a4 4204034d 42e314b0 c40a7144 c2bccae7 4323b309 c4a71428 4389dcc8 4296ce24 431ef792 c4a604d1 43d8be98 431737b8 43095dc0 c3a0e13c c4408ed3 c1d2ee98 42b6202d 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000030 -> 3d5b292f bf55ea21 bf0bf5e3 42c6e19b", + "c28494f0 4418d320 bf407d00 44991fea 44b42c50 421a85d0 4388a0e9 445fd7a0 c49c42bf 426f8c28 429490f0 c1cd8480 c33c0ef8 c1c34cb0 438289b8 c461fdc8 c459676f 43475b70 438893a2 44a3b036 444336a0 42587ad8 43230095 44ade406 c214ef00 c2cc66dd 42a1a7a6 c3c0c474 44a8f642 c22c25cc 433589b9 4478852c 4498dc8e 433255fa 431af500 c38c4448 c42cabb4 424f3914 42d64526 43fb2620 43b75268 c2c33321 431d7ebb c4acf439 c41bfd5d 41d2b558 428c2a74 c336c638 435c3e90 c2f4bec3 419cdb7d c340ed70 c3bfd8f4 c201469c 4337bb0f c2a7b470 44902618 430a5612 43040401 4430f90c c3dd7bd8 41684940 437fe372 440f2c38 c4a5ac23 c22f82e0 43334dc1 c1cc9e80 44a4ab3e c1824580 438bb0fc 4371d740 43f52aac c2d0017a 42ca496c 414da500 c48bfd26 c08f4ce0 434ccaa0 449e2748 c4ad81bc 42f42038 437170fc 44405f58 c3d314a8 c309ac16 430f2f5d c20adc80 c3e5d904 c33ce103 4321681d c3643450 c45a6c03 421e601c 42cac054 c49b47b0 c389d61c 42fe2a4c 43932f38 4496a3fe 44b4c3e0 42ac910c 431afce5 c490b408 c43020c3 c197f410 4369f392 c489f58d c4942828 c32215cb 42dc4dfd c39c9c9c c4746408 becc9200 43549bac 430d8f80 4432aa74 c3237131 42d45690 4496e532 44a1a480 c321d952 424fdbe6 449a3e30 44a3f306 3ffeab80 42ebab39 c4a353dd 449f56d2 c2d94e4c 4217902b c40f41f3 41c55540 42d7fd40 438d41bd c405cb75 c41219c4 429328bc 43187ca1 4498896e c3aea3f0 c28a47ba 42f2700a c43a03a3 4408d65e c315666a 42a4e041 441d53c8 44962044 42d6523c 42ddaa51 c40976d3 c226ee60 c328b8d5 4391bef4 4490ff9e 435501b8 420dd478 42753c1b 4443243c c49d3f82 42a63ab4 428c2db8 448d348c 44bafac2 c339746e 4385ab2c c38fc2e8 4331e5a8 c244bbc8 42a05a56 c4a725df 43961750 c1f078c8 432074c8 439bd878 441ee600 431d170a 4298bdd2 44690610 c4379bf1 4281a894 42666229 c4809fba 448ec038 42df918c 4378a427 c351eb10 44607e70 c332c8c5 4363ace6 44226aa4 41a88980 42b8ea88 43799128 4403d702 c48e8540 40325340 42a6f43b 43db2154 c443a70e 430a4036 42568bc1 428bc470 429b7ba0 c2a5423d 4359d460 c4a4894b 43322448 c2552d50 4272c40c 4405b53e c3d254d4 c25608e4 431c7344 c3743440 4302fd28 c333eb5a 43956702 c452a2ef c456e741 c18880e0 433966e0 41963b80 43bda7c0 4122c440 4328b3d3 448a57e4 4394239c 4309360e 43165893 c45d5371 43d108b0 420471c8 432fc13c c387a8b0 420b3b00 42615398 4341040c 4382dd0c c4a3f289 42d154d8 43833e67 c34a5150 448dd728 c32b11ac 42e2ee26 c486b3c4 c44d644c c214023c 42414365 c4a1589b 42050c80 c33a501d 4307760d 44535724 c44267b8 4266bcd0 43870b5c c4bb51c5 4438a1f0 430b1864 43101e4e 442243b8 448f8e02 433bf5b2 41aa4c2a 444fc040 445cfeb4 c321d2ec 438883b2 4497100e c372a978 c2122ea8 425d5c0d c3109b28 43820b4c c303173a 43402017 43225400 c478820e c215abc0 43446756 c4678d26 441e2da8 c2094464 4353348e 439db51c c483314a 42e7d32c 426bc538 4489c598 4436fa80 4250f8cc 437de8b4 c455b2cf c4169c12 c30a484e 43296d4d 449920d2 c4aef904 41ff47b8 42dcc201 c48a7c69 3fbf6400 c2d8917c 4346aeda c49514ad 448db3d4 434054a6 42852722 c4a1ce16 c4b56d84 c27b9a44 437b3abc c3f06b1a c45d4658 c2b707ba 413947ba c2bc5f50 c427ef19 c1d3e4f0 433fc933 c4b9aba2 44a00092 c3382880 426047d0 44586100 434ab630 433082a4 42590752 c34acb20 43b7c99c 42afbdc4 43210102 43855244 c4a4e122 409a75a0 4352527f c25c9f60 4445aec8 42122d10 435ce82a c478014c 438e08f4 c31fe6a5 43806c82 c3942a60 4460161c 3f09ad00 414edf3b c4b1026a c483aed3 c3278ae8 43415a87 43956f44 44a9d8fe c27dfdcc 428a5697 c2eaa2f0 c4a116ff 4310d9ae 43251d8c 44a3b95a 4476296c 42d226b4 430b56aa c4189cee 447188a8 c2cda4ee 42b60d40 4410acc4 43715668 411888f0 43567541 440a8bc4 441ae370 c187ee60 4300f46c 4474d19c c469b227 42ce1c94 43948288 c4a2aa4c 44a1b0b6 c3162546 42b8767c 42f84a10 c49ab76d 43286e9c 43426d39 44244cb4 c40ff924 c2d81a1d 43013e92 44968b50 c4a651fd 42e888c0 42d9d822 44790030 43e7610c 41aefc58 4331f62a 432782f0 c4508a94 c2923d0c 430bc88d 43bb84a0 c3b9d380 433302a6 43868011 c15c8980 44a1a662 c243d468 42b20b17 c40c68c8 448ba6a2 c1489c20 41392a15 4418af50 c27a6960 4321d868 428d462e 44965ca2 43a07c74 41c11118 42f3389f c3e023d4 c49141fe 42f2dc78 4340312f 449bf19e c48fd893 41fa3380 426fb84a 43c89568 c471275d c1d39060 437ed76e 43aaf54c 4404d48e 427dabd8 4267b548 c48709e9 c4b10266 c30fc7d7 436e8519 44a16936 44ab84de c320a3d6 4193649e 4383bca4 4455eeec 425c0cb8 42e0a9ef 443b3ac0 c3e79d90 428e9204 438e952e 43f26ad0 44a2206e c32137be 431e960f 43599e48 c4078ac9 433ee6ea 42efd127 c3dcaea0 c45ceca6 425e0694 4243d170 c3387390 43ba8f6c c22dad94 418d6aac 447070dc 443382c4 c32c5246 43839562 c2c958a0 444c4010 c191cf00 42f80cc1 c4b62865 444de554 c337d492 423f80b1 c27d71c0 c44e02b3 c1f7e500 42bb1df3 3f3ef800 c2338580 c2fddd42 434fac88 43707450 c484aede 42145ca4 4377facd c4a87ae2 44442a4c c1cf9cd0 435c3fa4 c408095a 44ae071c 4210da20 4390b34e c39f4f70 43a69668 414e98e0 414fc0c6 c427b484 4464ead8 c0e13a40 4385f1fe 00000080 -> be34c21c 3f7b76c4 3d80f22f 426443a0", + "c3e00ccc 43c91db0 433563fa 4481fe54 44960b0e c314f9ec 436d0a94 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "4425219c 430cd120 41b0b900 c3210940 4402ce98 c30d59f4 42a42cb4 4471b3d4 4419aaa0 c2823ada 435d8999 c49f8926 c4a8af81 c2fccdc9 420149ea 44319c08 4489eed8 429a6e48 43018ccc c4b71900 441244e8 c346f218 42be2ad1 c45e3399 448d24fa 426ce4a8 4370779b 42fa9980 c45df26c 4310934c 42c662c5 44a5c906 44af7e86 c28800aa 4342bf0e 42827ba0 4409fb6c c3061aed 43816430 44886054 c4b111a5 43412e68 436b7abe 431c3210 443a58f8 424eb63c 430be7b0 43ab0658 c45f970a c31c10ba 419aebfc c3446ff0 c3c202a8 c280e28e 438d299a 44a910b0 c483e20b 401bcb40 432f480f c4b19e4b c3de23b0 42a572c4 433d471b 4480cb3a c4b06184 42e5e060 4223a400 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f7ea43c 3d8dc218 3d9be2ea 42e0ffe9", + "44b780e0 c39cc9d0 4267c958 447b6010 4311b6c0 434191c0 43588040 c44e28e1 4434feb8 c18f2498 42a35ecd c460eae9 c46f79fd c280173c 42154fc1 4476dbc0 448be3ec 41e496f0 43406fb4 c3a39520 440ba96c c24a80f8 42765a5e 438e338c 4478a3e8 40969120 42ce2ef2 c3cade70 44a2c642 410f7390 43905cb1 4287a620 442ad478 c32d2b42 4345879b c4a61ffb c40017bf 421ef75c 437867d8 c3d98b60 c44cc3f4 42b4937c 43000698 c4a8717d c404f0c7 43027f1a 426e9a40 c3c79d40 428fca50 c3424719 425daaea c4551106 c2870650 c2889dac 4381ce0c c46ea830 448c9ad0 c31cafc9 4130eba3 c4adb267 43f46058 c2744a6c 42bccfe3 c452d0d3 c18c6640 42b3aa64 4312fa44 c490e470 4410ec9c c3391b40 431afb2b c429bc1a 443b0268 c2b4b420 42663337 44acaf94 44aeeb2e c3152bc2 42b1cab8 c4b98536 c3ef2b4a 4335a1fe 437dd42c 449d68e8 c3c94b2c 42c42a48 41b8a91a c3982f64 c45c3bfa c160dfb0 427b2ed8 c4514e27 438f8f94 42e43960 4352b201 448e5f78 c3440168 c2f98aa6 432b6f05 43933ef0 c3db2494 c330f6ec 434d5eda c21f39a0 422c72e0 43192b52 43114dd2 c45e77ec c47b0d36 43201750 4290e5d2 4439e7a8 447c2bdc 434758d8 4353e9ed 441ca070 419cb440 c24ded40 4380b360 443ab52c 44069a2e c32a7b91 43888db8 c44bb92c 4485313c c2b0cb08 434e9d37 44ae064e 437633f8 c2ac8e73 43227dae 4450c858 435336f8 428b1ce4 4346e608 c422c6a9 c424b505 c26981f4 42ff201e c24d6d00 c42604ee 4308b1dc 429b4d39 c41167af c43bdbab c1d29ee8 42f31ff1 43920270 c49a1d86 43414972 42ec6a9b c4a3bc93 c3f78d7a 42f62de8 438a35ee c424ea99 c483210a c1aef7c0 43412664 c4467a79 c45d4ae0 3f7ffa00 433e2de3 448edc2c c3bc679c c1c9b6f8 4275dd03 c47d3f3a c3e58294 c20abccc 43063fc3 c48252ba 44aeb714 c24fa30c 43126344 447d4cb4 447f62cc 4221d2bc 4392eec6 c36d0128 4493ddd6 c327be75 4383e17c 43944690 449a3092 c1703ea0 430a96e6 444502b0 443f65cc c24dfab8 4241dd98 447b4d0c 4426e12c c303fd46 42b53435 444f1b1c c451ad9a c26c4a4c 438c19cf 446a6b38 c436772c c2de1c91 42a5336f 4403cd74 43245100 c2df78cc 42190e4e 44ae46d8 c3f3de1c c3279d8e 43097bac 43138c98 c2c92480 c2e78eb8 42d9cf4f c48ce2e2 43bf3098 c33f0460 43919e82 449a79c4 44b91504 c20856f4 4300121c 44b2661e c42483e9 42156744 4306b0a4 445de90c c498e43f 429b5440 433d04a0 c20da5e0 43fe1d54 c3057c1e 42669255 4400f672 4477b860 c2f08eb6 41b642fc 440ee264 c3ca8014 c1087ca0 4305533c 4402ad38 44a1dff0 4205891c 42e9c880 420f6f60 4476bb3c c30a8bd3 42547867 c4628566 c3b03408 c3401505 43778304 448038ca 446c6a3c c2b44ea4 42f92707 44ad05ec 445a0560 c29ebc1c 4383814d 43d6e3e8 c2da0dc0 43348f74 43849130 c415dbd9 c4aa2658 428747ec 42be868e c35787a8 44b36462 c2b0947c 43289c7a 42328a60 44b792c0 42ba52f0 41b63aba 4413e3d4 c44e6934 4327347c 43913386 44a47ed8 430870c0 c20111b8 42229238 43e06c24 c3e513c8 c28e1c7c 438139d3 43270870 446428d8 c326ed3b 4387793d c4a3b7d8 439f566c 42e19960 428e2298 44b41974 4418c3c4 c32ca37d 43110c82 c47f182e 4486dbfc 42b06b70 42935d27 c494c767 c2a2d7f0 c29cb2a3 438098f4 c49ca1c2 c44a1618 429e52b8 435f9de6 448bc17a c3f7fc50 432d8488 42196cc2 c4aae0b6 4481a6aa c2d7df8d 438f2be4 4427ee04 446a4738 42beaa64 433ef19a 449462ca c3b4d078 c0d2fb80 4388c136 c45b5a4c 4285f690 c32e7af4 43950ebb c480db54 c30f04f8 42f59ffc 4203aca9 4473b774 c4613222 c347095c 42750952 c4ab5136 c2b43650 42db883c 42d092b7 c493a259 c3e6e3b4 c33d254c 435d55ce 440152b8 440a2a08 c3057fd0 42440dbe c29ed540 c490304c 42c16c6c 42dd8d42 c48e03e2 c4974842 c28ce1dc 435be6d9 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000005a -> bf3628c0 3eddcf90 3f0d9cbd 42c45f82", + "44194d7c 4370aed0 c1fedd08 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c1d067c0 c3602288 c2e6fdf6 c42a61b1 4481385a 430954bc 41cbe512 4499a83c c4388b32 c338d153 4301d468 42539f00 4314ddb0 c26c492c 4364e27f c445d54a 428bdd60 c2664788 438bbe83 426fab20 c4ac2b09 42a87020 430f435e 44aba6bc 442b47fc 43165630 42b597f1 c46a70af 43dd84f4 43020a0a 42905e2c c4801c1f c3932460 42d4ad48 4339f764 c4602d63 446e3fec c20dc4dc 42ce90ca c41c994d c36fa010 c2eb6788 43177912 c40ed6eb 441c10b4 41fca028 436a8a31 c3c0c88c c447130c c3084c98 42350136 c45e10ce c444e371 c2fc747f 432668cb 441d5b14 c4a1f4c5 431ecfa4 4327e3f1 44afc78e 43422760 4312655c 42ac0095 c3557818 4472a578 c2c4225d 422e3f22 4454d4fc 443827d4 41abc510 4303619d c4918806 c4ae9897 425ce8f0 421bd2b5 447b5b00 c44ff7b8 c30c01f8 42a4cc02 c48376c7 c495699c 4322da4c 438f29a1 c20adea0 4418a81c c343cb47 438a877f c453e4fa c44d1f54 431eca06 424241b9 449dbd4c 44899ab4 c26b5430 435cae24 432267c0 44a66078 c3306702 4316f20a c30c3c50 c2dcb4b0 4344331e 433f8590 4407aac6 44348598 c34424ed 426c9f4b 43951ec0 c49bc7f7 42a35c90 43174226 449ccd14 43dd111c c227f7b8 4382bdae 43ec611c 449aedd8 42daea90 435c5661 446ac29c c3f916d6 431f4d64 432b9be9 4482b684 c36de7e0 bf553a00 42a21563 44081e4a 449a582c 41924798 43864354 c47c3694 43f5f164 42ed1db4 43510082 c491d988 c4241a9a c2b66f5e 4362d79b 44116d58 447fc27c c28ed142 42422721 4285cf20 c3873000 c2e42001 42b27dba c2a873e0 c22b1cc0 c32c70e8 4343e329 c4777af4 c3f97606 428a677c 4232678e 4342e140 c34851e8 42dde534 42aae937 c440ea9a 44468034 c0997600 43517860 42e93a50 446a8cbc c28d4b54 42a76bcb 44839e5a 441c9ad8 42cce3a0 42ee4e99 43d3c834 c4b1c84c c33b70c9 4391f0aa c4b6d39f 44470628 c33a02f9 4309388f c45c9bf7 c44e81d5 42da700c 42858906 44808204 4497c546 42b1277c 437ab4ea 44b81bd6 4404cf84 c3177f9c 434e92e4 4137a200 c4b71694 3ffda000 438bbd34 c3dc7f34 43c87994 42166e34 4357c65f c49b10b0 44acc044 c1f8b620 43674de2 442c38d0 44106124 4347ebd0 424f2bb4 c414478b 4416c0e4 c31d425c 4371e1e7 c3989dd0 c3f1fc52 c33243e3 417414d6 44b85b96 c41bcdfd 430a0e66 4341e748 c4994423 c19f6200 c2bd6d0b 4271b9f4 43835440 c49e2602 431506bc 43408861 427b8500 c495304d 423e65d4 42efb60f c4767d83 c402f2bb c26c7ae0 42a2350d 4462c8d8 c4b7c6d0 c158d300 425635f6 4497d832 4367fd78 41317760 42bc2c15 4352afc8 c405c16d c2b054ff 426792c4 44ab8912 c21e0220 432f0bb6 41dceba9 445861c8 44ac7374 423d3ec8 43360241 441416c4 c43cb7e0 c301c61c 4346e4d9 446ff484 c3c26e38 42450b5c 42881360 c49cbf6b 442b079c 424d3280 41f90502 44b66db8 4467dd38 c2e36820 43935865 44749abc 4412381c 42b76288 431f0c67 44ae9c7a 44b1797e 4225e088 42ae37de 446003ac 441b8ff0 428998a8 419f2ce5 c47b9690 432ec550 42107c24 428ea81a 441b57d8 44424cb8 4198bee0 432aa93e 447ac5d4 446c1274 c287ce8a 4325042e 44aa5106 c4014d13 c2e9a4a9 437e3c21 44110ee8 c45bf382 c30087de 4253ffef c42bae84 44aaf894 c2d45170 421484b7 c44a0577 c4946177 424c0198 435c0398 43d90dc0 4499a080 430d11ae 422a8715 4414c9c8 438589c4 c339c478 4321e322 c487d94b c379afa8 c256d55c 4297e5d6 c432ef85 43f29b50 c30d119f 4154c978 c3caec84 c464fb1f 41bf4e28 43430773 4446fd58 44441ce8 41e7f1b0 4335aaab 42ac7580 428e5180 42d26dd4 428d00d9 c4044251 c11bde80 434055e4 4338d053 c48a2a03 4472a8f4 4323b874 438b1490 44ad48a6 c453b636 43067640 42e7c9c0 c41bfcb2 440a25cc 42a38fec 42b47375 447fc080 44a93944 431abe1a 433ab664 44677234 c44f94a2 42b710fc 41a36520 43059b00 44b78d5a 43378bf6 43851113 c3f4374e c433760a 42060c94 42729c61 44747dec 4475375c c2efeca4 4343e2a4 c34033d0 44453138 c321a935 4308fba8 443d53cc c45005e0 c3344912 4252850e c3d431ac c46506d8 c276609c 42061a30 c4a61d02 c4191e2c 42c8c2dc 4331781d 43cd4b80 c481de70 c21ff310 421c7f50 4448f098 44a6d5b2 c330b110 424cd306 4488c144 c4b1b80e 420c010c 435565d3 43c8e7c8 43f23c3c 417aa430 4310de39 c23ec5a0 c4a3b2fc 4308486a 42029284 448547e6 c3190c58 430ec448 4333ed94 c4748ba0 43757fd8 428ded54 42def1c5 43d72ffc 448da770 43027998 41afec7f 41ea6940 c4b92322 4171eda0 434cf804 c35b3ad8 c4962015 431539c2 431866cc 44197d34 44aa28be 41ea3788 435ca480 43cab348 c3e420b0 40a73440 435424c7 43e933d8 448edb62 421b3b88 43951108 c30697c8 4401a768 42b1a6c8 4280f854 c4186ce4 446b8dfc 432a9880 427fdc49 c42e6319 441c466c bf0c2000 43941b0d c4611418 430a77d8 c2f6b769 434003b7 c48d1ddc 44899238 c338be93 42f2f922 c4683243 c3e17fc0 c24a841c 4387bd8b 448cebf2 c48a89f2 43345480 43798c11 c4a1b60c 44b422ba 429b8c74 4367207b c4247507 44797808 4209eff0 437cb31a c421d29f c3e11e04 c24722cc 433bba06 c4751e1b 440c3bac c2dd27bb 4395761d c3069f28 438162b8 41295570 420f36c0 c480e233 449088f4 41eabef8 436eb28b 44808e0c c4578fe7 42f286a0 422257e4 c4166aac 44704e08 c2965455 4268cbae 448837c6 c495d364 c31912d0 42ba87e6 c4b646a2 44311804 42a4f82c 42e90446 44ac7abe c3d9efac c27a8f64 436a6478 00000080 -> bf0a7cb8 3f508e59 be55fa6d 403f584d", + "c3b84970 c3206790 c2a85f6e 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "44635008 44b7dada 418d1740 43fe923c c46d7dff c214cb54 4388582f 449d6294 c4a1f290 c33c367e 43156a51 42e0b480 c2d90540 c338ddd6 428d6a58 443b33c4 c4a03ba9 41deea68 438cc86d 44b4e208 44244030 431804a4 4260a889 c48b1ce9 44623370 41867c38 4371e1a3 c4180747 c3776d28 c347786f 42c1d7e5 44b3c248 449e5d06 c249ccf4 41845364 433a4b98 c4baf99d c1dd9930 438c6d10 448e8b62 c492f5bb 42fd2530 43430a74 c3f34be8 c27990c0 42fdce84 438489a4 4430f33c c42383ee 428c8c64 4248b73e 44a2a990 c468bded c2285700 435cfbe4 c387c454 c3254028 42ba40a0 4382e05a 43d3f9c8 43a11e6c 422da54c 431ba106 c4a271a8 442c4db4 3f0ddc00 433c64a0 c499c44b c4b5c52d 426b94e0 4362fa98 43d4f128 43cb886c c3317951 4383c411 4496f6a8 c441851a 43008dec 43467354 44b5a0ea 43f3af60 c32e897a 416710ce 4435611c 44880a7a c2567554 436f01d0 42a51690 43db8400 4234e7a0 422fee5e c42d8fce 433be9a8 c2a5e02c 42b22b62 bfa1e400 c40b4d92 41e404b8 433a56b3 44b32e7c c45f6ae8 42e7b118 435afd5c 43ca1c90 44a04e50 bfaec280 42c0e295 c4897d3b 42767b40 4301fc0e 426a515a 43b94bbc c49c6153 43198210 4392ef4d 430343f0 438bd1a8 42d0438c 428a57e8 c3cc56a0 441ec780 c324f24c 430aa5b8 c392add8 42b456c0 c10270c0 420403fc c3eb7340 4454b4fc c248878c 43349be4 440009ca c4570244 42899c04 436cd8fa 448bd0d4 c3eb7eb4 c23f1490 437629d6 c3c8b768 c4a20af6 427a1ba0 41405cac 44710968 c3235980 c02285c0 427f4b37 44062690 c40ba75e 42b72920 43886c4c 4321cc60 c3c72d48 c2cc916c 42ae5847 c490924c c3e6fec4 c2913f76 42216f24 c31c68a8 c3783600 4336048e 42dedb4d c484cc61 c4458248 bfa3f600 4300f5ea c38589d0 c4956c70 c31d97b4 42886f9e c4578587 44a73d6e 430723f8 42bf9d8a c4a6bab9 c49d40b7 42439118 438fb75d c4add91f c41a7c0c c21f4520 4193d52c c4a700c9 c2be2e10 c33a401d 42c40803 44afe30a c38d2668 4286349c 4322c882 c4b249ee c4281515 c2559c80 438e9822 c4912f3c c411139a 43107100 4333922c 44a8483e c49c3586 42dbb2f0 43316d02 c45b2aec 42a931d0 429afb78 433a4eeb 42b02f60 44a82688 c2e76bd5 419e7480 4427d49c c3cf55e8 c32cb02b 425a7542 c4b5328d 449fad68 c2a3ecae 434e7ea0 c45f4a12 c4660749 c1bc3b78 41378ba2 c346a8c8 436d8a18 c301864c 438cd413 436e70e0 4491d8d4 c2fd8fea 436328ad c452554e c4ad6fd6 c344d5e1 438f2df9 4268c340 44725828 430095b0 4322ac5a 444dee80 c35cc1c8 42db4f7c 417fb97c c4649e1c 43c8e8f8 42f273a8 434a354e c45b4ac5 c457833e 432cd904 42807af6 c4b732dc c46d591e c23c15dc 43651523 43d565c4 444a2974 c30e9476 43404b04 c3ddfbf4 4440bc30 c33c9bb9 4343ba2f 444703f8 c2e49a00 42fb68b0 435104db c3db33dc c4904190 42571d2c 428455be c4945eee 444979e8 43213266 436b0056 c3728730 c36e5bd8 42f7eb1c 4371f422 444f161c 4220d1a0 42b74f48 42e8c2ff 44ab4d5e 44ba012e 42bde200 41a390ea 43e89528 c439a8c9 c2977126 436374b2 4406ae84 c46659e6 c3023870 4171a47a c39918f0 c4895ce1 c2c3c76c 435ea678 446fc258 c48fb3ef c298dcc7 42130f7d 436a9c58 4432d42c c326ec7e 42a0d82f c424979d 439fdec0 c282f5cc 429498ae 44ac5e86 c3ea6f58 430cfe1c 437d3255 c4b10f11 43f27920 4292e808 43691bef 442868e0 4450ae54 c33b835b 421da2ee 446476f0 44903974 40b48c20 43892a1d 438d4774 44908618 c2434f44 42b990d2 c47b0c00 c49ec45f 43401084 4349341f c45da3ed 43cd43ec 42e6e6cc 4292a736 449afee2 c1839000 42cc6184 41c07647 449c0ed4 c49a21f6 42e82838 42d6cd54 c3ef6cb4 c3f63d7e 4343e6a2 435f85e6 c315cd28 c228c920 c34481fd 41b022a2 c49b68c9 c45b5dd6 c2a9dc5d 4353253d c44ec00a c4769775 426dd6c0 42f92f69 c44b8378 c4a86f33 c3316bd1 43850a14 c3ccad48 c4662183 42569b6c 42f6c79a 448be218 c2d06850 430e6874 42996a8d c4b2f68d 44b50742 c2fbcb83 4359891c c4981966 c47151fd 41e381a8 42a9d73d 44945dde 43d477bc 43062822 434f01ed c4a20a82 44a48578 41ebfe00 43958f76 c3e23ee4 c497dde7 43459d20 4361364b 4481b36c c3d1818c 42ffdc74 43827869 c4af4ce2 4498aff8 433ced40 4252c7e0 44174864 43942118 43114e48 4393cbce 43c2df2c 445106e8 c34087ef 421f4944 c4b32786 43581a38 421eb98c 41baefd8 43962c4c c3a48ba0 be4bd400 43343b22 c45569a5 c3b85574 42fc1c98 43053304 43b31de4 43cdbde0 c337449d 436b9eb7 c2ac9d30 c490c8b2 c2395878 434a1b3c c47cd02a c4070ad8 42927c68 428098c6 c45c8ed3 c3646310 41b53c08 42c03278 4450c914 448378c0 c3343b35 42bbbaa0 449d84ea c2ae8310 433de2a4 436b5e89 c148b200 44a7fa54 c30f33b0 430e1d36 44874f62 c44861fd 426fc7e0 43481281 c498fd70 430e79a8 413201d0 41e5c118 432ac4d0 c49b869a 40adb160 431fa438 c39e2f3c c3d7a51c 432ff782 4355ab9a 4491d8f4 c3840c98 4308117a 42747187 447a4020 c45f0abc 42f6e5f0 42e79e34 c4013bb7 429bb5b0 3ff46d80 42544186 43f3abfc c4307aa9 c2ae4150 4321c10f 44b0f7c2 44a0b8f0 42f14980 438bdd0c 43ff1eec c4b11e2b c321ea96 4348f1ec 44948582 c1bdec40 42bff998 435300f0 c3f477c8 42c88020 431ddb94 432d8196 42b9fc40 c42ab2d7 431b4894 42094497 c493160f 44aea816 424309a8 4348e1f7 c3636640 c4213f29 c289d058 432e2969 c4ab7b18 c3b5063c c21ca344 42bd7e14 00000080 -> bf4c0976 bf155f79 be1fa1c4 43288d22", + "42aecde0 43ad91e8 40d646c0 c4b7d0df c4af69d5 43107f12 42cbb83e c46eb1fd c424dc1a c27d7884 43102a8c c4902f5c c4b10fa1 42eb6af4 43411442 44a55c1c 43b03f98 c22fed28 42ee5c98 c46240c0 c37d70c0 c34588e0 42c5e1ff c485ba4a 418d6c40 c237e0d0 4354fc83 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> bf767b60 be86134b bd87e808 41ed5508", + "c46a7bc3 c396b280 41faf4b8 44924320 c3e5e328 4343baf6 43065239 c4b80e14 427e1460 c2cfdcff 418e90c6 444851f8 449fc2f0 4294737c 42b69597 c46451c6 c40f7ad9 c2c24429 4324b41a 44a309b2 c4955736 42d1745c 4157efea 449be74e 439d218c 41ef3b38 4325ffbe c47f8ed5 c38525c8 3fc94d00 4345acc6 c47e08ba 4457b7d0 41d348c8 43676648 c43a4da1 c4b5e96f c2db9ee8 434f8487 4464b5b8 c45f0a2f 432cb58a 4217bcdc c4834bfe c3e1b92c c1dc0b98 4317f3af c4068ce7 c4b19bd8 433320a2 42866022 c48b88be c47a216e 4216fc78 431f0c06 443f310c c49e46c0 414cc8d0 42b97629 444bfc88 c311ce20 c2b8732c 433767f0 c4b508cc 438b8634 431245a2 439305e9 c3d1fe60 449e4b42 c33c82da 42799477 c49c4af0 43643718 42b6cfac 435e531e c47782ce 43f83d24 4310df44 432e348a c474dc81 c49b8608 c2e22335 424223e1 c2db80b0 c410f35f 40f658e0 43953ecd c4660e88 c4a7f928 c3449716 427173db c24d2680 44a512c6 4323a538 42e10ed4 44a270e4 c3f944b4 c3285dce 432b7d35 c241f260 c310b378 c31434bb 42fb1ea4 44ba9ed4 44485c18 c31a6879 432a0865 c33a1080 4487d462 c279a604 420fbd03 c4553021 44aeaa2c c31b4bbe 43512575 c4477286 c4884a6a c3122f90 43580c35 c49fd60d 448b14ee 42e4f834 42c699e3 449b18e6 44852564 429e36f0 424de85f 43fa6ff4 c3bb8d18 42ef2eb8 437c7cd6 43819ce8 c4120249 c3270b8e 435b4edd 44aaeb68 446f2268 c311e8f8 4353eb13 c4666f7b 44af473a 41b5d058 42d4019d 441c1380 449d291c 43372aaa 431ff7d8 44765390 c45032cf c3183575 437104e7 c461892c c3c52350 c0d87720 433bc1a4 43f854e4 44712a00 c0c169e0 424d6a01 c4a17bb3 44b09bc2 4319f39c 41e23074 c4a3c984 41bb5480 3f9aad00 43890315 448fc502 c3a4fcc0 42b8bda4 43026a42 c4bb0002 c33933f8 40e348a0 4223612a c40b72fb c3068018 421fbaec 439533c1 4494ed64 c46f85c0 c294543c 430aebda c4376250 c4ba9d69 425b0188 429257fa 4471acb0 c2b76550 c3318560 4243b5f2 c3f910ca 44b8bc28 424b06dc 4294a465 c49c8d28 c194b300 c2b9c047 42882bfc c37bc738 c4a9b114 4255fe60 430924cd c1cc9300 441930b0 42ec3a44 4366b21e 44838e8c c3b8e8d8 c2a0e44a 428e0664 c450b59f c1e69880 c2cba205 4385de14 43ea8d00 c3330810 42f60510 41dd3a38 448b18f4 c4211c14 c324b8d2 43020bc1 c3f94898 439109f8 c3277e26 41486622 446987c8 c41907bc c33e7799 4377e05f 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000039 -> bf2ef96a 3f3a7943 3d425ce8 4187aa5b", + "4456eef0 44a89e04 41af8c08 448d0f8c 44a9e7b2 41a3f328 428c1a9e 448cf272 c3c779f4 c1ae61a0 426dd626 4481adba 449ab138 43096d00 4362adbb 44329ce0 434449f8 426387e8 43510565 c45bcc0c c3fff216 c313a52f 439018fb c4522770 c49444e2 431de9d2 433eaa72 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> bef31be2 bf2276cb 3f1c1891 43205287", + "44926246 c401ad8e 42d93ca4 c4b2dce3 4471a3a0 4324c988 42f9919a c3ed3954 44522768 c0a34b40 42a8a5fe 4484ac9e 44b9a684 432744be 43446141 c44072ae c20ffc00 42935810 429dde3d c432d885 c4a00a8a 42b86c90 42f157b8 c4894188 44b42824 c32bef0c 430bc923 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f44c402 3f2374f2 3d20ea3d 3efefc25", + "4492b886 44b9e84a 42f009fc c36e8190 449fd46e 42f9b9d4 42136dbe 440ff1fc 44721538 c323de82 438c14db c3def5f4 c39b8cf0 42e42df4 425bc227 c3520850 c3dc4a8c c2848f00 428f6000 c4098bf4 44b2a5a0 423a9548 428e2668 c3ac13c0 42963bc0 431691aa 43790e23 44b0b9e2 c3e90b28 c336f44c 436415f7 c2d569b0 4182d440 c3421920 41482d9e c3552980 c400f806 c1d57090 41efbe5f c493bea7 43163c28 41a4b8e8 434aea3c 438cc780 c4116b65 43241260 434e4ed5 44a6fd5a c44d0111 42a33228 433fe931 4430e5d8 c446e24c 41ec0220 42df688f c4816690 4482628c 41897e80 4386d771 c4a8d420 44b6ef94 c31776a6 42dd6d87 44521f48 c3f28a14 c15224a0 437f503c c3b1aebc 444f6c8c 42b4d088 421e4260 449d708e c42fea3b c31d51c4 43684ae5 c3614060 44a9457a 423acd10 4203d7b0 43ac4a08 c461604a 43179bec 4361efbd 43d2f6d4 c37dfe80 c341899c 42992c77 44a1e312 43f61360 430d7db0 43329034 4455ce54 42e30bd0 c3405fc8 4231183f c355c9f0 c45ddc3a 431a0644 42a8376f 447e34e4 c4a365f9 c2a3b262 426bbd26 3ff6e000 43991220 42a5f3b0 43126bc4 c48b747e 44666b80 432a50b0 428a0dcf c449cb07 c2d93f00 c2af8531 43804ad6 c492b299 c3b8e69c 42a55138 42e7999b c4056306 c444d561 4325af14 435a12ca 449e9070 c4853684 c2928068 42f18f12 c43e36a4 44b73192 c281c4ce 429405f8 c4a2a065 c3d03154 c2cfd066 4329abad 44978b7a 441db630 c2ccd3d9 41a98ab0 441bebec 43093798 c31f676e 4238633a 4432b264 43e14778 c26f80f4 42ce5800 c43611a8 c4786ba0 c3443f9c 41c8a65e c0ec3000 4272cd60 432d5ba2 433866f6 c4833a1c 4369a740 c2cb472a 42e268af c4211e8e c402eb2b c2dcc5a0 4249f0a4 c2b76000 4419cb2c c3111d7c 43831caa c44f5481 442c822c 4332780c 42fb24d7 c489b65a 43fc1394 427b1770 436b28d0 c48879ba 44594da4 433fb15e 42b22354 445cd76c 44b9d8b4 c31618ea 420206da 44b3ad36 c420a952 42b28d58 43285e24 c35891e0 43d044b8 c21f2828 42d13763 c2d5b8b0 44918876 42cabcb4 42f1d2b3 c405b8d4 44ad351c 42780e30 419d08b4 421bb060 c2692140 c320e938 4322e58f c4500cb6 43a64844 4327b1e0 437a8d3f 44883cec c480a1a2 c15df150 42e4fcdd 4393fa80 44b17814 41c48d08 42bbf55c c4607c74 c4849721 c307d04c 427d0981 44b4b354 4388acb4 c1b9d4e8 4333912f c3ffc604 43b3e7e8 432da860 42a1e9f1 449b7c70 c4292415 c190ef60 42720c27 c488fc81 44a742aa 42cfbdfc 42ca0d50 4495335a 43924a3c 430e00e8 42e99a9f c3c82db0 4493a354 42923c4c 42b11467 c474db5c c4ac6c7c 42b610f0 43186d69 c4020021 c2d8f900 c2fe95d6 427352a3 446210c4 c2abb570 c333772a 438aab5b c4ad0217 421c1920 c2f1cdae 4338c5b8 44048870 4402eb24 4325f192 4334c230 4417b4d8 c41ca49e c2db80e7 434742da c456d1f3 c43d5870 c22d416c 4338ea7c c41c6ff2 445b2328 42fdaf1c 420e45f6 44991eea c476acb1 c20e1888 42bbc874 4493220a c32af440 43273488 430cbac7 c498bbcf c4256d88 c24b963c 434a5cf7 44940262 447d5d70 c2b3cf48 42f33804 c396541c c439bda5 429941f8 4352ad50 44b390dc c49842b4 41db5da8 4384f201 446befe0 c49f6407 c2b1f494 4203c96f c4a0743b 436bd468 43198b68 414adcb4 43e76a54 44adb048 c34295f3 4382cb3f c4955176 44992c9c 42a83f38 429b8b14 444068a4 c2d79880 bfc70e00 4304a010 449ce4e6 433ae5e8 42ce58b4 42edefd6 44b11cf2 c4b8ede5 c2ed4c47 41aaa540 c495c558 c48c94ee c31c4530 4376295c 4399d2b4 42acd9f0 c121ee30 43770b85 c47ae7c4 447e2a34 c2422120 431f16d1 c39ca5d0 c3ccb810 c34461dd 438c1217 44733698 c38a75b0 c2ad9105 43187b52 42fc38c0 c2fcbd30 432e2d88 431f48e3 4392ca18 c484dc35 43399950 42a65305 c4093b37 4496ad0c c31d451c 41e76b95 c3bb26c4 44814bd6 4323735c 432374f5 4484b126 c4619c63 c2bc00e6 43302c3c c346b380 44935790 c32cb4a8 438a0f7c c49b79c3 44b4c122 c33d16c9 432ae916 431fc3e8 4474cef8 41a4b358 432dbc7f 4427dc2c 441f0bc0 bf97d700 43446496 c468bf3e 438dd300 c2e2cebb 430e7bfe 43426f20 c450304e 3e183400 42acebca 442e0bc8 c40bf2dd c31073e9 4329b9c6 c3075150 c2716840 c328edec 433f4756 c485fd00 441d8634 c330fae1 43463f06 c3a589d4 c4b4d488 c1e1fec0 433c988b c48f16d9 c3884cc4 429f38f8 43184728 c3e07fe0 42fd4d80 c27dac74 434a51d3 c3e45dd8 c42f94a9 c2806840 42aa643d 44b502b6 44671d64 c344b880 428e956c c3a13070 44646f20 c2fb85b1 4369e106 4480adcc c28d0110 c320031d 41fa3950 443a8d14 449fe388 c1f9e348 415ff1ae 43e7c450 44827752 c2c5868a 426f62d3 c47b1ecb 4396f6d0 c28144d8 425c961d 428c5240 c4b7d73b 43255450 42821c12 44b0fafc c291d180 c2ed94fb 42819efa c486da64 446ec91c 4263d8a0 42d60938 44176024 4481d318 c2c2bb8a 4333ab06 44792444 43ec11ec 42da29d0 434428d6 c40f208a 43bc7bd8 42c180c8 4304f30e c48e6286 c4013ecc c344893a 431af493 c4b6b344 c4794b90 c32259d2 42f1971b c2b59090 448431f4 42965f18 42f2038e 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000077 -> bf087f2a 3f56d82c bdda9443 42ad1cea", + "c49abcf1 c40d0a2f 42f6a660 449a1cea 44a25e24 432c2440 42b8b34d 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "43c0d2c4 c42efb9d 42ebb97c c3f074e4 41bb0800 43032cea 4353fb01 4481f15a 4495262e c2b9b258 4317ea11 c4a16c6e 43d86988 c152f680 4355ebd3 c472d922 44b14b64 42b36804 42ab0107 4488cd56 4482fe1e c308b4c8 4383b385 44115ae8 447c53b4 430eeeb8 42ff0c9c c3c55230 c398b4bc 429a23e4 4375579a c4870040 c4af2595 c341b5a9 4288339a 44993200 c3e8d8e4 43032a12 43340921 43225730 444cf0e8 c34598f5 436f2aeb c4906947 c3932808 432a7c7e 425cb2a0 44962754 4352e6a0 42bbcff4 43903a73 c45c6d8c c4b2a504 c2ddf3cb 431029e4 43e11de0 44232484 433db088 431bf1ff 43e1b148 c367f4c8 c2899314 430c0322 c45d3549 c302efd8 c2710530 41a4e6b0 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f7b5c1e 3dae97e7 be2d5729 43879d9d", + "c487c6e9 441aadbc c3236132 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "4168b000 445f9d44 4282be98 44422c7c c41c1112 4324168c 4355739e 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "449bc0fa 444c99c0 c31af598 c48fdb3c 4468c964 41a9e590 43299405 c467c087 c3c22ee0 c28c4770 438cb36d c48a3682 c32454c8 41b89a30 4333b394 43edd2d0 c4a7cccc 431bd924 4322e52f 43c8948c 444ebbc0 43215526 4376716a c4a1efdd c408f7c5 c31398b4 433d9abf c423714d 44abfc04 4291d9ac 4335fb41 44a856d2 449cb008 413f3a80 436d9e0b c2a48b90 448398de c2d59dd4 4297341d c49f3436 4422509c 4225da80 430fa86c 44702ae0 c45f7485 41ef6110 43456f62 c420c91c 44541e2c c31fdc3a 429ed6ce c4b3c66e c4744034 43147374 418437d9 44431308 449c6f48 416e77c0 4371b643 440687b6 44a2a9a0 c2b9720c 429ac69b 440d2c7c 442db574 4342c918 428fe31f 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f7ffeb2 3b6a1cf5 bbaacceb 43341dbc", + "c49b558c c4697049 4336c9b8 43f51c74 c310b178 4326eb8e 426f80ff c32cac60 44b9a95c 4312717e 4361586a c237d460 c3f970b2 be990800 43817333 c32b31d0 435951c0 42dba860 41bc5bb8 41b0eb40 c4b23452 41b15550 42c9ecfd c3461510 430c84c0 c30f5308 430bfc5a c3c11208 444c7e40 c3248e2c 4290c173 c3d0305c 442d3d00 40a41360 434c5d4b c41b749b c3708768 c2647e10 435b8b1b 44aa2f68 44837214 c291dfdf 438ab2ed 44005d3e c4a65616 c2f43ef3 4338047d 4449b48c c3bcdb0c c2cbc343 4260a3b0 c457b4ca c479d4a6 c2133eb8 4362ec72 432b8e10 c1910080 c23711d4 422f3801 c40e70b0 c2b98ef0 42f08f4c 434c3ccf 44986ea6 43e284c0 c23dd1cc 4364926e 4470aa84 4476c5e0 41d1c270 41859e5b c4559078 c4a7ff2a c322d930 43487c8a 441b593c 43c80854 42640540 42eef88a c3ddc794 42f9c5b0 428f6dd8 439597b3 42a42a90 44a10a36 c346eb16 4284b3e2 c404bd9a 44469abc c31ac8fe 4371a484 c4aea8bf c4428820 c20c06b4 4316941a c4a8d117 43ddcef4 c341c50c 417d730a 44034e2c c33102f8 42df5680 438d4973 446768e8 c4505c75 433191da 42620b56 c49fbeb6 443c576c c337a5c9 438af492 4483cac4 c4b87ba2 42d3896c 4368d9ce 44595728 4463a1d8 c30f07d4 4392abf5 43de7650 c46ab6ce c1ddcfa8 41d21c54 4421febc 4448162c 43438c34 43925203 43d149a4 43a23030 422b3ea4 41d97b35 43b0ab40 43b78f28 42a1f840 43891dea 4444d7a0 44338850 c2f915c1 42c50085 44b6117a 44805ed6 c317e120 432fd927 4427f198 c4691838 4332edcc 418cc6c7 c28ec7a0 43d80c84 429bf918 42a2dc77 4182c4c0 c4ad0d2c c24d11b0 4317870b c4b7a209 44275150 c2dcddee 41b0e4a6 c4480359 44affce8 41057da0 43111b85 c48576f9 44b49bb2 c29b28d2 4298dcb5 c411d002 448479f2 c3459a25 41c4f3e0 43ac4c74 447cef8c 43449cc4 4373bc77 c4a27859 44868c2c c2864632 4322c49c 446f984c 44ad808e bf21cf00 439558af 449aef48 c3d0ed3c 41ac3188 4331fb82 c43b1822 c4562c3c 432055e0 41ab545e 423985e0 c4846b92 c32b4189 416b3bea c405e70a 43e79ecc c1e70d18 43614495 448faf06 4423afec 42b07da4 433ea68f 43cf0e90 43d8d564 42525088 434bc73f c4a9e024 434588f0 c1fbe7d0 4257c2fe c3a399c4 4413d8fc c2de280d 42b0f923 c2aeb660 42983140 41a8bb60 436d2e05 c35890d8 442a19c4 433f69a4 4211bb04 44a9a96e 44aefc56 415faea0 4311b74e 44470a6c 44b23e66 c0c61940 43019397 c34f0258 4386c800 4265cec0 421d6764 c44174ac 448cceb8 c2641294 42afca41 442bf3a4 44909a80 414e6880 43508fd5 445bde18 443afd6c 426d7e48 437750d5 449f3734 4461e994 419110c8 4370de50 c4955e42 43d8a084 c294681a 425d5f60 4433c9d8 43c23320 428866b8 434cb56e c49265e4 c47c67a0 43212016 41f64d50 c49d0124 c4b8251e 42b06adc 43725016 c4a76ff6 c48e16f4 c33c90f4 4336aa19 c4791121 c421e7f7 c3325b2f 43273d14 c465167b c41a9f8d c2a19b9a 4289ce05 c4085a83 44227714 418aea80 4390ce08 c3520c80 440d51b8 c2977b49 436e1b9f c4287a68 c218b620 c25d9cc0 433ba6de c45d42dd 440b88b0 c3086695 432e15a2 44b50c6a c2ec9570 42256638 436d6bc2 c4b0b360 44824208 42d3dd20 4373026a 444c7960 44a8ba14 424d1970 437717a0 43877674 444c37a0 4338b8f0 430b4e4d c3fcc922 c2c3a920 c26adb7c 42f7ee6f 43b412d0 44a47da8 4262b790 42f7e12d 4414b958 44a2ba82 412495a0 432e34a5 4442b390 c37c0638 c22f5840 4315bdb3 c48c93d0 c20c63c0 41be1960 435edab0 440ed888 42255cc0 c302464d 43128b37 44a96be4 4433f2a4 c2f6c4d1 43153692 c4a4e91c c1a5e100 c2f2fbd0 431be41f 4298ced0 449bda90 c2af1b60 435fe710 c3fac0da 44478284 43324dca 41b66fcc 446f2744 c4592417 c325a2ac 42160840 c405c574 c4620c28 c33672cd 42e2d9f1 43329618 c484a120 4299f234 421e542f c4575652 c44c216e 42cc5640 437721c1 c41b3152 448f63d8 c1bc2d58 43849e00 443953d4 c47dc2ac c285dfc4 428b059f 44324118 c4b30239 c337b258 437ec1f5 c488ebf2 43e538b8 c30c62df 42e4493a 42ff3f50 423706e0 43260b28 431531e5 c35864d0 c49db406 c30c51aa 43646c9d 441309e8 447b2c90 432834e8 43898498 44617de8 c49826c4 c2a7d94b 42c0a1e7 c47edbbc c2db7a70 c1b18a48 430ca1fb c40362db c4a2e274 c2a25c10 434897e6 448daed8 448ec350 c26481d4 42c16abc c4804ee2 c46115b1 c2de969a 4388793d 44ba7b92 c3fa0594 41be4ae8 4354502a c40c765b c4286bc4 c23046bc 428fe60e 442ee0d0 440d0174 c2fcbf16 43894508 c44225de c373c740 c218b678 434496b8 442e5744 44365654 42930ad8 434cb8d8 c45ac73a 4414eebc c33a4826 43144d10 c4535944 c4359505 42237530 4328adb9 4426b4d0 448353f2 42188c28 4319e342 43a9b384 c4b652fb 4326a6e2 43118718 42d0c750 438ad60c 4341f858 438549ed c49fe713 c449d321 42add454 4342acd8 448f171e c3acbb28 c20644ac 430f2227 c28f1ec0 44205484 41d4edb8 43024576 42410220 4316ed98 429ebc24 42c14084 c416bb84 c49c89a2 c103a630 41cf327c 4401f54e 44807f56 c05d9c80 43850798 c498c020 440ced44 c2a0be62 4297da87 40caa400 44a3f4e4 c31c8e05 424a47d7 4441a4b0 44604a24 421c946c 4392b8ea 44b47bd8 c399c5f4 42188580 437bac55 44802d94 c485d848 c32b9774 4147727d c4223fd2 c46f8a3a 4340083e 41e1c0e6 c40a765a 43b0e104 c304acb0 430d2590 c49113bf 44a1497c c2e6d26c 4299f0f8 4433aaf4 447abe20 418d4410 42845460 00000080 -> bee575c0 3f56daac be9d9db9 42349822", + "4333e030 c3e9deb4 c2d05ccd c35c1220 43eace7c 42ada000 438f1ad5 4425c47c c408ef4a 43209d96 43174cba 43db1c6c c4573c81 41414320 4369c676 c24de640 4394f184 4324d220 435744b3 c445d0d8 449a7b38 4319ad36 4368fb6e 43ea9318 c4b17622 43033ca4 433465f5 c3c79b3c c4449f0f c30d36a2 4380bbf0 c39384c8 4439af68 4274e540 427fe360 42c08d30 c390fd00 430ecf4e 4321fb61 c431b689 c4921bbb 4216f9f4 42c24a17 c42eeb43 44ae5f02 c152db50 4359f411 4407f4de c2f43ba0 c2c2a0b2 429c50f4 43c623f4 c229cd60 430bcfde 42b48b02 c4a03546 444a84d0 433382d0 42fbed3d 4476558c c48af4b6 4208d420 43161faa c47728da c4a96ccd c325c3fa 43874817 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bf01109a 3f5781ee 3e455f8e 429d8edb", + "c4872848 44450ea8 422ab540 c3a8091c c325aea0 c315a723 42cc33c4 437b13d8 40cc6a00 42991d58 432c514d c491dee4 44985d46 43230dc8 43934348 449a7a18 c45110e7 4326525e 438737a1 c3b99ba0 c491001f 42d1a748 430dd2d0 c3008c28 4412b900 c3128f88 43223599 c491cf31 c48abbac c2e123e7 43848375 434dae00 c4809448 c2823fc4 42937420 c47216c3 c1add5c0 c2ccb4c5 41af4c90 4427bf20 44ac33fe c08bb340 42af6128 c435f641 447f1e50 42adf27c 42956cba 44056996 40c5fa00 c2c1300c 4379d11d c477a9e6 c4bb556d c2fd0ad1 4299d673 c2871eb0 43bb67c4 c2abe761 4352c7c6 c40d9e8a 4397830c c2eade38 430d8ec9 c4225582 4469fe0c 4344765e 438f5061 434f5948 440cea50 42f32060 4303900b 44b2ec48 448c85d0 c3023ea8 4302f206 43ba5e88 c18be4c0 c2f2419c 433ced90 44b352d6 4499eb6c 430aca66 433aa489 448b52da c3a291ec 42a7b288 432ec0f6 44b188ca c4939656 42c1d068 432a291d c45b45c3 431b5050 42b7ec20 42364766 443d9850 c4ae35e7 4341bc86 430b2a12 4482e030 4445a888 42767298 43948caa 44149d98 447e8014 430bee40 42bf21b3 44748aa0 4447fba8 422a69dc 4393946d c358ba78 43fc30dc 42ab51e4 42fc6b34 443e8604 4391f404 42036368 4386549d c4951caa c366e1a8 43402f94 43102d88 44a71b76 c43a4703 c2e6c398 43055a7c c48530de c4a8198b 4283686c 4334c115 41ebeb80 443cd6cc 42d66490 42907f7e c436aee2 4485de1c 4324622a 419ab1cf 42fac280 c3802638 42c1a618 428beed1 be64a000 44423810 c3163114 4326752e 447d374c c4001d45 c252340c 425c5ea8 c30c0998 c498d8fa c27b287c 43058772 44544f54 c4677d45 c3363fce 430b7df1 43bfaeec c3629710 c30be86c 436a8da0 c4951b1e c4b4dcba c129bc20 434e0827 44960d12 bfc0b400 c30e47bc 43871288 440bc1f4 4315c3e8 c26fc61c 43517658 4407bbde 444d4348 43391a48 42804362 c48bd57e 440106d2 420c606c 4376895e 44095550 41d272c0 c311ce25 43030d86 c388dc78 c3ecf4f8 c1daf848 41e6f94e 446a73dc c2d56460 c218f2d8 42301855 c430bf50 44af6700 c31e3dc9 4315d85e c420e3e3 c31a5a78 425eff50 42d81c87 c46c56c5 c2aa9180 c1457470 4387fe2c 4435b2e8 43e8d67c 42c3fcb4 414b98f4 c44b8e8c 448624c2 c29077e6 438f9590 447c8d08 c3f81ea8 c323840d 43362604 448f548a c4a67aae c2ba3ada 432bd9e5 c4a20715 c49dca71 c3263891 4294b506 c484ee98 c44862f1 c1f4ea48 4358d6db 43fdee48 c2699e20 432078ee 434ec857 c4af406e c43bca73 4251381c 428eb152 c4aca462 c448ef26 428c2070 4364865c 43919138 c36978e8 430697f6 438f756a c4851e12 c31a09e8 c2af876b 438bd053 448d32cc 42015fa0 42200474 429910ec c46eff72 c49d067a c2b7d7aa 42228fdc c3a95040 c43d9224 42ce4ebc 431dbd5b c4492dda c4af987b c27fd370 4362efe7 44ab3362 43d347e8 43293c88 433443f6 4418de5c 448e6074 41acc850 4346895e c3b2a788 422424e0 43386cd0 43454480 c440f1d2 c48aea34 c3293e98 435416f3 44a99602 c196dd80 4306af14 425fddf7 448eb204 4400d148 bf8e1d00 438ef3d5 44b3c7de 4296a190 4301c412 436fca73 c29ac7b0 c47ab771 410b5890 432defdc c49cb98f c49a5734 43475740 431c354b 42996040 44111990 c2db4282 43958b5c 44ab4b82 44a8b4ee 430b6930 434b9ee6 c48e6c7c 43baab80 43112aa0 42a96318 c4773cc6 c4a49dbd 41b718e8 436008a1 c464b93b c46ecc46 431303e6 42b92beb c485a390 44b0e2b4 422c54cc 42775098 c4a6c75d 44443594 c301a182 4290ceca 44b876f6 c39c5b18 41cbc948 425b018b c48a4c00 435a2af8 c3037b10 42aa1519 c42e2891 447ee394 c2ee9fda 438bf137 44726c0c 44772cd4 43047a2a 42e1e1be 43f34884 43488d68 4243404c 4301d278 43a2bd70 4454cb50 c24f93a0 4387913d c45155b6 44202e1c c25f2438 432a9f26 c49b5717 c4a9cc44 4330a3f4 42853377 444d78b4 43c8031c 428c99f0 435c1677 c4a4b6b5 441c7358 c3157530 43374fde 449225a2 c417289e c13e5870 42e2019d 44b3f4ca 44a3d692 c17615e0 42ca280a c486cfd4 c439723c 40d39820 4317a340 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000005f -> bef21c73 bf5d7ed8 3e2ab4fc 4254c81e", + "c49377c2 c41a589b 43356f6c 43f4d40c 44a28926 c203c8c4 428f1162 43b02544 c4753f5e c2df8893 43873f13 c4b90ba7 c480bf45 c2f816f2 425a6cee 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000003 -> bf7fe722 bcdae3d0 bbdb730b 4411fd38", + "428cba10 c40e78a8 c29539f2 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "444e4af4 c483bb97 c235f968 c42202dc c439fb52 c3356916 4301e04b 4479c40c 42b80c70 c195c678 41d0fa4a c4b74afa c4b181b3 c14f8b00 4354b17a c399aedc 444e610c 42a6fa04 42f38e5b c42ac75f c48c74a0 c2c8427c 430e82a9 44b18072 44522bb0 c2b6abcb 4261e327 c4aed811 44abf330 41c96ab0 41bf271d c4904f1d c443889c c2a2ad37 4386bbc1 c4b797fb 4435fa74 426f1c10 42681baf c47ab740 c45df3a3 c28003a8 435212cc c324d548 44a91b58 c30dd161 42655b74 440baec8 c38a48e0 431eaa0a 4276f666 442dd4b0 43d071c8 c2c71286 427e1ec9 c4a39400 432e7260 4332e5b2 431c16f6 44b422e0 4490d5b6 c2409d00 4383ccfe 44af6646 c38e12b8 43302acc 4369dc1f 442c7efc 435a9310 4296d204 4347ec49 c48c5a0e 430154b8 c2e03772 41ee4b7b 44561a2c 43334d08 c3433fd1 4183efd0 43ca288c c492d779 c1265fd0 433f85b7 c4a44c3c c3ad35b4 c293174b 43141a0d 44b70c62 c491797d 43045e5e 430d2860 445d8bc4 c484de25 c2fbcd5e 42b61a1a 447355f4 c2cf08f0 42b1bdbc 41ac44d1 c4b78cc8 c3bdb67c c1d59e48 422b86f6 442476b0 c441af4a c332ecd1 42816cda c3724c88 c46dcda1 c22169c8 431c2acb 430ad0f8 449f523c 43139818 43836e74 c383aab8 443e421c 42fa17a0 43332127 c49a11c3 c2d6c530 42e30a90 433d32e5 443573d4 c445ce93 430fce0e 43931b2f c3d53494 44a51758 c2ccf945 42cd95f5 447d3164 44b10a26 c3434240 42ab8607 44036226 c3d11280 4322a964 4377d59f c3fc3da4 c48bb2ad c3313553 4373820b 441fb69c c401d3cb 432265fa 43833a5f c4277977 c40c0539 4312e7d8 41f42fbd 43e55170 c48762c3 43343fc4 43286f6e 438695b8 446c7cf0 c24dae84 431613f4 c3b0a34c c4a0421c 43045208 4314e843 44a4ae08 c49dd270 428525b4 4330821c 449ae058 43a19b50 c2f296e4 41c7b862 4482223e 44b8afac c2c6e84d 4390716b c38b2954 44b379c0 4321fd86 43025c8c c3fe9b90 44b75d88 42a2ac6c 41b75f42 c4a02203 c4753d8a 4285ad68 4354997f c4b371a1 c2ceda70 42893828 4381ae06 44b77048 c3651e88 c1c6cac8 42aa553d c4187f26 4369f750 43126bea 4341ce09 43f0b1b0 c3fc4178 43370388 434bffce c48fcbe2 446cbed4 c2dd00b0 434982c6 44915a22 44b75ade c3105bdf 433b39ac 4499e0c8 44ab2748 c30ae4c8 42f8184d c3c40bbc 4456aedc c21661b0 43682dbd c383eee0 44af6e38 41a89628 430bc4d9 44a39480 c3f4a556 c32f06c3 4304c8f4 4323db70 44b89068 4284010c 437a7a8f c4914b69 c42ba01d 42cba95c 4395c5cc c4afb5c7 c4ae9b9d 432b34a4 42a93ea8 44a8798e c4b8fb69 42f8cfa0 419b7c12 c4022f0b c4a4d95a 4333cebe 419c0107 c42bdaac c4aac568 431bf4f0 431e0619 c4760463 c49607a2 c2de967e 4352de2f 44515c10 41f15440 42ba3310 436c187c 443deb80 44614338 c31db1da 4386d688 c4040b3e c40e99c4 bf120a00 43435c62 c45fa032 c4819ff5 c25d1384 42d6417b 44865616 c483bd78 42fd7e64 42ff1769 c480b31a 4271c320 c31793b8 4383fe1a c3a8eca0 c4b05f55 c30afc60 431de70d c4952538 c4818880 427b9da8 415a973f c4a8f983 c4a446d2 c2e09244 43213394 c414c719 c483dc1b 3fd18280 4254be1b 44965b54 449bd79a 42a6e044 416cd1ae 43397c80 c40e3e0b 43045f08 422f2bf2 44091658 4324e790 427383d8 418604e9 c422b5c2 446d5388 41656ba0 42aa383a c3a680cc 4485da16 c22c63cc 435bd492 43ddb8d8 438fa1b0 42ea8644 426c7622 43e4e8b0 c228a460 420fa3a0 424a49b4 44a3249a 447f5508 c33aaeb0 4357dbb9 43d8e6cc 43fbed38 3fe03100 429fe89d 4469a9f4 c4944fd8 c294d073 42015de2 c461f0d9 c4adff38 4302e3ea 4328b85a 40e49900 43c8f6b0 42b7a8c4 429b1ec5 429c7e00 44ac9b80 c3130ba0 430af5e2 44401694 44526780 3ee18c00 42c503a4 c48d9756 42eb63f0 c259ae20 42000600 44256d40 440f44bc c2fed107 437e4754 42820b80 44a5e0b6 c2421b6c 433c6131 c40cf52f c41a07fb c1a82af0 42b90204 4300de58 c40a9684 411ec470 433b6c85 44496584 c43e9dca 428595f0 417671b2 44404784 c3d6c978 42361d38 43925725 441c0ad8 4384e778 43357ed6 438249fc c479dcd6 c4619d18 c3187b10 42b1f216 443469ec c4446cd1 c265a560 431d3d33 4484f2c4 44b5d506 c33dbecf 432c6969 c43787ce c49092b5 43285d22 429a3eb9 421a10e0 44827574 4320b1ae 4309dc87 c4373386 4491fc4c 416aad40 43841a9a 448b97f6 c3e8053c c2906466 42e6fb23 c49e8c7a c45bf62d c312495a 438c4b9c 44b739ce 422f73c0 c1a597a0 422aef37 c473213d c473a786 418c9f78 42c4d10f 44ac0780 c4b517b3 42cdd27c 436d41a9 c451d806 c493659c 42d2ab88 434426b6 c3404d78 c3b07414 c173b1f0 4381b960 440c2694 421a0ba0 422d5424 42b4fb61 43f3c534 c44155db c21fe324 42f93c0d 449cf8a6 44b8c43e c1de5800 4345dd7c 448379ca c498c9bc 41e49a60 4360cb76 43f95440 446706b8 c331bf7c 42d7df62 c4130a78 43915180 c0e46500 429e6a09 c489fe60 443dc4d4 427a3160 4367f079 4375f248 440534f2 432b24fc 435380d8 443798ac c4296978 c2cb0979 4313f8ca 44985be6 c476fa1e c19ed850 438c5f82 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000076 -> 3ec5d262 bf279486 bf265770 41fbed8a", + "c4979f5a 447ac928 bfe54480 c492732e 44a263f2 c314f15d 43254bc1 c4b30014 44b26168 424c9524 42d18184 c48cebb7 4328a998 c3240127 41972dbe c3c378e0 c484ec56 4323cb9c 4333e56e 43ca24c4 446aeffc c2cf3714 41e67381 4430c24c 44972184 41f4c030 437f71e1 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f3d26c9 beb9d682 bf115717 4340b95a", + "433bf680 c48149a5 c2e78283 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c409518d c4275eea 432c35f2 c4b30b32 446ffcf0 4137db50 4299496e 4331f2e8 44177224 c2a00097 42e9802c 43b4e038 44236c20 c3098396 430b1313 42dba1d0 c4b210b9 4182cad0 42ddb32b c486e3b7 c3f6ce4e c30de2d0 4387abf6 44839578 c45c2963 c2658278 42b724aa c33482c0 c469c951 c0fdf660 42b0b5d2 c45d775b 4338abc8 c21e6b54 43848270 422eb160 442334ec c316ce04 420fd330 c4a61459 c38e9050 c2c4da67 43265350 4446a3b0 c3c6a394 c2ae0df4 43817eca 440e9c20 43e1e228 c2a1c78a 431267c0 446d99e4 444db2bc c1f872f8 4377bbbb c4a3008a 43ac685c 42f0f2e4 4376ab2f c2db6f30 c43d6a57 42e7fae8 42eb32c2 c450ac6e c4b05286 c306a490 41d8f145 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f6f3f09 be82558f 3e7e92df 428d1d42", + "44b58878 44688100 42d2dcac c311e520 c41d05b0 42bc450c 420692e8 439f58fc c4886027 c0d58d60 438afb98 c0c30800 4388b3cc 42e76484 43861fb3 c4b7d390 c30bd590 c1de9170 42497807 4373a748 446b8944 431fd904 4389e19e c410d547 43bd1d6c 42f7bd7c 433c584a 448f969a c4090956 42bc0950 428a6cd0 c44f723f 42fa13b0 c20ab53c 435ad16a c27ea620 434c9378 c2574e94 4316407c 440c4454 4432ae44 c182e4a0 4314cbc3 c4089900 449307a6 433a2f06 4348548d c4bb3981 c269bb40 c2e66c0f 4331294e 442eb588 449d6fa4 42bc8d78 43103594 c4afe8e2 4496f710 4218736c 437955a7 c2647560 c48e5df2 c2f1192b 42bb96db c3941210 c425a60e 42a07dcc 438fa971 c471a126 c4a18eda c20d3b70 430a10b3 c49a8447 44a78ebe c1990a78 437e769a c3d99248 c36cf658 421daf54 43024b74 43f0ed1c c481fd0f 4236cc00 42fd6157 c4940204 c48003cf c1381780 42c412de 44657dd8 44a8f19e 429752e0 43311982 44b15760 42f0d950 c346ef10 432e556b 42edaee0 c477636a c3291264 41a9dd4a c46766a1 c4b80fa6 c109b3f0 438c1359 c4a1b3ec 444ac6b0 c093ac60 436df9ef c2c21220 44934488 c31cdd5c 433ade9a c412fc12 c46fa54f c306215c 42d201ba 41928f80 445e2f80 c2fd179c 42a0be0e 4466ecb4 c39a710c c30be144 4297d70e c3b3f6cc 447ba4a4 c1485bb0 4328ddb5 44a68ede 449090aa c29d4f3f 427e5f41 c3ea7634 43337490 c2dd5327 4346eb6f 440328f8 440904f0 c2852156 42d64483 43ff3ef8 440ad534 43065e42 43896cc3 44808126 c49dc710 c2b64078 436fce96 c3bacc90 44034cf8 c32fc68b 43619386 44b6715c 447afeec c2d754f4 4370623a 44869388 c43a9eb2 41a4e6c8 429b4bad c414be93 44a53e50 4308c9c2 4332d2aa 438606bc 449ea356 c2bb09af 4361d190 44ab6c52 421eb9a0 42745930 4378ca49 c2e00a00 4482c24a 41e7fc30 42366f6c 43375b00 c4453b23 c23896c8 42c27177 433e0458 44043130 c3030fb3 42b01216 4473b598 4333fd68 c2f15e57 431d9e77 c4004337 c3553f60 42ea0fc4 4304dffa c48a5095 c495e162 c33ab124 435d8f30 4480ad74 c438abb0 c28cdc5e 438a592e 446acaf4 42a7e610 43061fb2 4382065b c4b31e6c c44523d2 c2af6f5a 4247e01c c432602d c492fb91 c2d55a84 433e55c3 448973fe c43aeca1 4287f188 433f5f07 44493a10 435aa628 42cdc304 41941a14 44288f20 4440e0f4 c207a660 43232e60 44257cd4 c44b3dd8 4299cd94 42e6286c 446c90b8 44809e20 c2b047e9 42c642be 449ae9bc c2d21260 c09d5940 41a20688 447fb5c4 c40e6b8d c2ca9c28 43347633 c4258842 c4a4d34b c2ca81fb 429424bb c4644afe c476f36f 41b6ed88 4384a830 c350d4c0 c38a38c8 43387c2a 42b0bfc7 c124a080 c41a129d c2f414d0 41d1a778 c49136a0 c410ad12 c30f5d2e 43701174 4306add8 449ce30c c28e13d2 43039050 44764c48 449fbc5a 42a6feac 42fce6ad 44454b9c 43c9dc34 42e393b8 430ee077 c4026410 c477f298 42c80d18 434aa420 41f75a00 c46549e6 c285eb38 432979eb 4400e27c 4469e540 432cc7d8 430031de 448f29ba c4b7fa64 42f89ee0 433d5fca c42c6ec9 c34c88f0 4329095e 4324d0e2 c4789cd6 c30bcd90 c336d66c 42e5562e 44328c00 4475c290 c22befb8 42b06540 c2e41170 c481254e c3191124 4370c965 43b91244 4110cc00 4331a508 42d1c1c6 43058470 42b7b640 4191da70 438a2e13 44b1efba 4389820c c3176731 435e9451 44b667b4 449b9028 416f7880 437782f9 c4904e1f c499abaa c3136a19 42d41e53 441efc8c c43b085a c2a841a8 43838c5a c48c1047 c3a64abc 432a7ca4 434ff62c 44624e78 c4a3e469 c324d407 431fb547 4411e564 c4887301 42e35994 42efad01 c4a3051c c244b240 c32a63c1 43607254 4490d74a c4b9f58b 41bdec50 433148f0 c3fc23d0 c40e983e c248c804 4378bc69 c41d4d8e 435c9a38 c30a372d 42eba16b c4b271d7 44569208 c3267761 42ec3311 c456ff43 c4a0bcf3 c2ef76c8 425c39cc 439c9a2c 44881b7a c3194dc5 43892c7b 4133a500 439de2d8 c338992b 43804a53 c48a81d5 c4800012 42cafaf8 43412852 c4b56e25 c3a202bc c1b00328 4357487f 440f7444 441fa04c 4182aff8 4376d21f c4b603ce c494e0fe c22c37ec 42985c4f 44992f50 44221d4c c04a9000 4388b913 c4a7e316 c384db04 c305d596 43951e20 c422cbc8 449cff3e c311f8e1 41860836 4491435e 43ddb63c c32ac25d 435cba73 c42b790f 429166b0 429a1060 4240a6fd 446fdb48 42894d30 c2670e04 43415328 c3ee5a78 c3ba0eec 4291303c 431b2549 42b726e0 c3adee18 c30fb43a 431b68d0 c2b076b0 4491b322 c346c7aa 436e66ad c4910fae c48ab946 42ee61ac 435a92be 44b8f82a 4442db9c c2722d78 421921ac c4364eb8 c36ae170 430033b0 41b4d64e 43d1997c 446ba48c 4190cff8 431836d0 c38662ac c4336ccc c2128fb4 42f3a745 c3d12840 4486f98c 41d77a00 434e237d 442c7544 43f75e2c c16a4e60 438756df 44507068 43c87c94 41a8a410 4395d4c8 43d922f8 c420ddb2 42359128 424be848 4429b144 44b182c2 c310a977 41db322d c474510a c43573c9 c247a148 438a4fce 43265e80 43cf0828 43104ec6 4359bcb5 447e1834 43e18510 c3239964 428db27a c26e6600 43b0294c c1e98298 42a6e0a7 433c3368 c48de2dd 4343b5a4 42d26fe4 c418af36 c316c250 c2905035 433ebf3c 448a6098 44714070 c22211d0 42e172bd c460777b c3901180 42d34f3c 4308be6c c48d9786 c3e36610 c2e6e882 421ee5e2 c23794c0 43ddeaf0 c317a583 4212a169 44641b64 44394a84 c32ff5d6 423bfbe1 42ffef30 c3ebaf00 40ef63a0 418f600e 44866e74 c3d1a2fc 41fb6920 433956f8 00000080 -> 3f08b62f 3f4fa796 be742591 42aa26dc", + "c423b028 c33ff188 42efcac4 443cf968 c4a89b07 42bb07a8 429ecd74 419d2840 423b7c80 c1d08478 4385801a 43e6ee78 c49ab97f c3134e96 42ff862f c4039a46 444966d8 4325ea58 41237ea4 449501b2 42912ec0 419df8b0 42f5fee6 c466f915 c49d4574 41273910 42c3b881 c3c0ea64 c14c9e80 43083002 43795cda c47f5cb6 c30d1f10 c2961122 43339949 c21d9820 c47bf7be 42ba3050 43374adc c3a95b08 44843a62 c2a1eca9 429a3ada 43bbe434 c441fa5b 431b7b06 42a82d27 c3a98ba8 43b5dc78 41594e60 4335984d 43f5aa80 439bccc4 c3254e1d 42b9c4cb c4565766 c3f7b9aa 42c522a8 434cb174 42918a20 c34f89b0 43132b88 415229ea 44035dc4 43a42cac 42b55a9c 428893b6 444e3d10 430cba48 4327af00 42622a2a c4ae133c c4091424 4235d9e0 41b7cdaf c44d0c49 c4088c71 42d3826c 438ed8fe c4671192 c42c02ce 4326661a 43638b0d 44ad2b2a c43c6da7 c3075b02 432b237f c3c8aa9c c4b1859d c24f0558 4258570e c37720f0 c4a47b81 c32aadba 438fa8f3 44b5c192 c41fe99c 41b41520 41695d44 42300b40 440cc7a8 c0f9b480 437d9e17 44178618 c3bdcc90 41b2e6f8 42dcff95 44b7d422 c4abc08c c330515c 4386f5c7 43536398 445dcf38 c1038990 42a71732 4231e220 c48f557b c3346385 4305a767 c31c7c20 c476b7f5 4305e8b4 4363077a c472c6ee 444864d0 42c24a58 43924a73 c4400e68 43ec1270 c32ff9df 438d4619 44443e9c 443a6e80 c1ccca58 431c37f4 44599ec4 c49f0616 c334c0cf 43349c8f 4410a434 446c4bf8 41d16930 42d00d61 44af46a8 c299fc70 42027ca4 433e5836 4375cc78 446fc630 c1bb5a90 4382b394 c444af03 c48acb3c 41d98358 42db4df2 448459ac 442e1620 428302b4 438c8d44 43c3e808 43747660 c31ef34f 42d50a59 44b4b9b4 c48ebaf0 c312273b 437858ed c3d262b8 44b2378e c169f4f0 430946f8 c4a160b8 c2ebb9c0 42bad47c 4341814c 439e66c8 41fd1100 42e0c770 435591a1 c46bc59d c48e216c c22c0580 4305068a c4550d8e c466229a 42a1a6c0 43413714 c46f8c4a c498dc0a 42720750 41d6aa1c c383bd6c c4910568 433715a8 42292fc5 441f542c c4488a64 c27c548c 437fecc1 c3f06bfc 4442c008 c2be4ac5 4339f07c c3d79e34 c4ba89c4 42edcc50 436b57a7 c39b7b5c 44a332e4 42be6c04 42da9605 44a92d92 44ad2cf6 42c75cb0 431dca1e c4693fd4 4405cc66 c3193d8d 436ebf21 c37808d8 41085780 42620e40 42af12da c4040452 c38de6b4 c33d5086 438face8 41100b00 43b74134 43282292 42ec5554 c478cfd8 44a25be4 c25c695c 43058810 448691a0 44565968 c32ccfbc 428fc05a c39c2448 449f6210 c2d3a7ba 42a255dc c3da7aa8 c40f5765 c31d3d11 430c9b99 c3cbe36c c31bb908 4328f25e 419ef956 c4901b7e 43208970 c1ddc6d8 437cb1d9 c48f1b55 44b98998 c2add4fd 438edfc2 44b271ba 447fa628 c2b4c43d 436a82cc c4b5ed85 c3ca7110 c302582e 41745fe0 4395569c c4049375 42713ae8 42fddb69 43a5a3d0 44975350 c22b6614 4318c460 c42e7163 c39c2e78 4325355e 41660fa0 c41720da 43650690 4213b140 41cf6346 4415da2c 4490dc88 c2c22e1d 433c4631 40d93300 42982fd0 c299edd6 43824aca 41144600 c48f94e1 c2d1fd51 432af62d 43e27834 c2e877b0 c2d7900a 43947320 c488f907 c49a3aee 430c533c 41aec122 445efe20 4265fae0 c1f46f80 428f105c c47e85cd 44a465de 41de4cf0 435b869e c49cd870 c42e4ac0 4273c6a0 42fbb72a c43c94ea c452a669 c32a403f 423d21c8 c49316a6 43323368 40cbcc40 41fc218c c4b5a23e 4457038c 43200b8e 43190f64 43f90834 447d6074 4308873c 4373c8e0 c47b0032 449ee46e 431824de 428dab8c 44292594 431a6558 c2c1ee9b 42798a42 c2dfe690 c4aa96d0 c192df88 432d858f 44aaf5f8 437f41d0 42e1dee0 429c93d4 c2d376f0 447d80b4 c29ad069 43073c47 c3a9acfc c4954179 43189e22 4330d92b 435a64b0 444f76bc c33deb9c 41515ccc 43b29408 44a15d1a 4193b470 42cf3975 c49718eb 44457c78 41b6f238 425f515e c3a91fc4 c32c3f90 428b2f30 43542824 44ad14a4 4493a686 4284b3fc 41e16402 c4940360 44a98528 c318ae32 4306dc98 c4b9deb4 43f6f3a4 c33c93fb 437a2009 42bc1ec0 c387c9e4 c2012a88 41e2f76f c4abafd1 c4123bf5 425b2a4c 438e9790 429d98d0 c43dca47 41c51320 432463e5 c04bec00 c48a4312 c1548450 4283b260 c4b10828 43ba755c 430b4a86 41837063 c47bfb89 43a415c0 c13e17b0 43190353 c33faeb8 446f2828 c13fbd10 433e040a 43ed7ab8 438df658 c3457bbd 438f63fc 4496a7d6 44239ae4 42e9286c 43516764 c3e9ef38 c1943f40 c319a785 420762e4 44653448 4428cd68 c303ab64 43593c0b c3fbc6e0 c489701e 41cbf000 43923ac3 c230e2e0 449fa4f2 c21bc59c 42f06c85 446d4e18 c4b91b3e 42833210 438aaf48 44a4b0ea 449fcbce 424b963c 42958280 447b3c34 c4b56985 c2a786f8 438c15e8 c4428245 43a0c098 425102c4 436c6e6d c3f03814 44516564 430b6a30 4324e2fe 41ca9900 44477fa8 c2e2bf36 43094be6 c3384f10 443fc5ac c30799a8 42c3831a c437a417 c13de280 c311ce60 435e7454 c4670032 43bd6024 c310cbae 4386d3f7 c4a73205 448a8e76 42c6bd18 43033270 448977ce 449336da c2ca3354 436eeaef c3449040 c443994b c126bd30 435c3e8f 41099d80 44543314 4256a0e4 4356c23f c49e8e9a 448a34da 4314a3cc 41c4f2a3 44595cc4 c44e381e c0d47bc0 427cd638 4446d7b4 c4038623 433b424a 42d8953c 448ec7f6 432df7f8 42bfb358 433c2d64 c2b90e70 44307324 42b5525c 43126845 c4aff5f2 c35026c0 42860234 433c9a35 4260fc60 c35a6a50 c34635cf 4287a14a 00000080 -> bedc7b89 bd946d11 3f664d1b 41c43342", + "c415782f c3e5a730 431425a8 c353bd88 43e92158 c28d3dc4 4364d946 c49aa62b c493eb4e 4303a450 42f3edca 4342d478 43e53224 41863a98 438b0a9e 44991e12 44993bb2 43169880 431ae084 4486d416 c43721eb 42d6149c 41d29221 c47c2b9f 44037852 426a8108 42889a63 c43733f4 42bdf550 c25bce30 4293edb7 c421f8c7 4496a62a c288b75e 4322382d c1432300 c289ca60 c19bbeb0 4387df60 c37b77e0 4486e85c c23d8328 43409e3a 44951492 c49be491 c15ab350 436b9147 c48c69d6 440f95ac 4230b268 432062dd c48b816b 4415d6f4 c1f8f048 427906db c4af729d c37c3420 429e80b4 4364b25b c4b82de7 c48d98c5 bedcea00 432b3930 44363208 43a2cea0 c31f2e6c 434a54e6 c4043b06 c4b51b04 c1e4d588 4307121b c3001fa0 44b1b850 c326a3fa 4395f829 448c59c8 c487cb37 c30881bf 42043478 c459e6ab 448a47a0 c329cf4e 432da461 449df584 448104aa c322f7ad 43336ed3 c275b5c0 c483a8b9 c0397800 4204cd8a 44512e0c 4413e700 431d7c56 42be62c2 c3d0c05c 44743588 431ab750 42bba022 44b4d6f4 4462f630 c192cbb0 4225dfd0 c431c847 c470a1d0 c32f7cd6 425ab73c 43ae94d0 c368bf18 c29b4228 4386aacb c43619c1 43b1f650 418eea78 424a86cc c4a9e66c 44a2fd44 42578cb8 43875661 423f7b20 42558ae0 c2fd0ca1 4272bfb1 4291c7f0 c3e3450c 4273cb90 43666d02 c49d6c40 445938f8 425e548c 41c0e202 c43aae25 448aa574 c32119d0 42fff90c c3801204 44af1c78 c29ef061 4361330c 44541364 44a47188 433b2542 41d47c92 44809e4a 4393bf90 43011f0e 4261e84e c4824bfa 443e3430 c2ca8818 430598a8 c467d46e 44b6f780 42da7130 4310b051 43b26410 c4257e29 4206beac 43899921 42a0b640 c4151b25 c32a74c7 4379c27a 44549898 c4360c0d 42650fb0 42f4bc67 42805c60 c487d218 42b46438 4204c3da 43c7f7c8 44933e8e c3198e39 43317534 4315cb48 c48c0820 c2868f1a 438b3d9f 429a1a00 c1bd6f40 422c1344 42d16da9 43006240 c4576da8 430f1aea 42aca533 c4973f9c 43c734c0 42e65688 4244ebce c3afe0e0 c3a9b734 c2e3c653 4315a82e 4488bf04 c48695ca c2b5158a 4333db3b 44aac036 c3420478 425e31c8 4164595e c4b0f4e3 c479d9ce 42ea4e48 42c0faf8 448b6cd6 c4644a84 4325ce14 4318c7b4 44a7d400 43eda05c c231f114 41a07435 44113bd4 443971bc c2acd467 432f80b7 c396bd04 c3b40704 c2a75b21 4385d871 c3e12a9c 4387519c 429dc718 42a2f1bc 4405070a 43c9cd9c 42aa3a44 43008f2b 448459fa 44389134 433c2f5a 4210d023 44847698 438b3994 c2a1364e 42ee09f0 c3705c38 43329000 c22dca44 4387a74e 4423b7f8 c4195126 c2f9cfd6 435c0e46 44bac6b4 c46f8c2f 42e65838 42302e53 4485edc6 4418358c c2fb0973 4330da45 c4854dd7 443bb628 4283df84 4308fdf0 c2b623b0 430b47a8 42416528 429d9d19 c24e1220 41888040 425f0d7c 4288d799 440cf768 c4172d5f c2fed876 421cf5f9 c319ad70 44990342 c30bac1a 437d98a1 44b739a6 c3a56178 c303e17c 41ce00cc c39248b4 44b155a0 c2c94a96 431a0ff8 4481fa0c 438f14a4 41a56180 4255fd83 4333a848 c39d5654 4332555c 421f6d02 44a07da0 448737d4 432283a4 4383a696 44a47e4a c481b4d6 c202d46c 428f4f70 43ea4110 44b65b2e c3397333 4354e53d 44bb2f5e 440c53ac 4286e608 438e9ef3 431c6100 c3e6acb4 420ace28 4364e298 436ff3c0 43a5cb64 c339d464 431a0ed5 c4177829 c48cf5e7 c22ef18c 4385adc9 44aa4094 c1fe0200 42628190 42bdd9df c3dd1ad8 c49e10fb c302dbd9 4334936b c4bad829 c426f9b8 43208906 437c001c 44b0d16c 44aba2a0 c222f8e8 4302b242 44a3b1a0 43123d30 bf751400 426105c3 44a00956 4399db9c 421c95a4 428fed8e 44674434 c467b500 411300b0 42cc1e51 4473dde4 c387b2f0 41f151e0 437637b9 4445978c 42b8bf10 c2c11f21 42696efd c3e8ecb4 4436a574 c274bb50 438a7f48 422afe20 c49d56a9 4332f1cc 42b35c66 c3255d10 443d33ac 42e29bf4 433e76d1 c457b59f 43b2d8f8 41c0c030 43634b9f 43bdbf70 c449a1a3 43384544 42dfd4ee 4492d4e4 c3584ed0 c0c68280 426362c2 43268fd0 4485471e 42d26df4 4335bdfd 44177718 c49af3bd c32b96b5 4309cf56 44155270 c4497544 c32b68b9 4283eef2 c45fb8e7 4366cf18 42686788 437f6fc8 43e8d0e8 c404abcf 42d70834 41d21eac c38a4e68 44964132 c31dfa0b 428b6f99 4482fcbe 447496a8 c2f99058 43245dcb 43525808 4498afbc c2b3d69c 4389f057 c434b8e9 c46bdf61 c257c2a8 4349106c c408f466 c3d94790 41e8fb28 42e3b060 4407ee3c c3ec3184 43294712 43933ea7 430f4360 c3c72188 41984a70 41c2fbf8 4380dba8 c4909f0e 429cfa8c 432ed96b 43eea938 c356c8b8 42cafeb4 4347e76f 443bc314 432b56b0 42c254f8 4383ff05 449587ee 42e861f0 43143e60 436fa90a 44ab11f6 c48180da 432d94a6 416b2b7c c45828fb 44b66772 41393690 42c20975 443bb954 c385f10c c2483f5c 41e7661a 44b30e90 c48cfa3d 427d1248 4315cba6 c4261acb c48791a2 43328e96 430e2c78 c458cb6b 441b1134 c2c1d48b 437ae217 c34cb8a0 441dbb34 432365a4 43667b41 43a85924 4413ba70 c18220a0 424d4fe4 c2a86dc0 c48a46da c33e135b 42f7fefc c3481df0 42bc57b0 43071c3a 4337da79 43801b04 c39bc2ac 42fe8490 42a412af c4a76a3d 440d5d38 428de298 433f9fb8 44959a8c c4335a9d 421bb190 43667a2a 438a81c8 c37f7c98 42019624 42a4ab80 4494dac6 c494c147 42071af8 431b6dbf c49e47d9 44497e74 429643e8 41cbb84e 44a94390 c448bfb3 421553d0 437f679a c4964818 c43031fa c3347f12 4362ab6d 00000080 -> bf606d8e be87c0c8 3ecd883f 43064796", + "440ee120 42eee360 41c8b1e0 c4b80232 444fcdc0 42c29e84 419c72ca c42358f8 4487806a c26dce8c 421b9bc4 44154d3c 43168470 c33129e9 43299413 444e88f8 c138c080 c2880540 438e4ec5 c3f58dd0 42817530 42fd6564 43576a48 44469d64 c41839fe 43007d74 42166182 4478599c 42a23dd0 4256313c 428f04f4 44835080 c2f2a5a0 c2cba5e2 4327e575 4447a878 c3d0c460 431b0dd6 42d1395d 447fe004 c2bcd780 42ec926c 43888fc1 c3f54f0a 44aa1fd8 c2c628aa 434fd3bd 42d96ee0 c4190917 c28ce7a4 4368fcc6 442416ac 446123e8 4339c396 437957e0 c4a7643a c493948a c3167bfb 43588f9c 44aaf144 43de2d5c c2ee8b90 4364ff4d c44c663d c487463b c2c86853 429eea77 c412735f 421772c0 42e33f6c 430238cc 43a2c618 c4ba1a4f c31dafd5 4382d3a9 44296560 449988b8 c24d0328 43753c1e c4aab9f0 c48759fc 41bc88e8 432533d0 c45e9f1c 4488db06 c02b1200 41c3f700 c168db00 c36fa510 c06a4e80 43495470 c44539b9 c4737baa c24f5b60 4283f7dc c42ef81a c4ac4b04 428fe1fc 42865f20 44192180 c4b6b408 c2441cac 4186cb50 420eb740 44997dd6 c307d669 43595df7 4411cd98 c49742a8 c3203744 424f4533 442ff064 c40c8627 42860a20 4376de07 c49a0cb4 43f9f4f0 41a65f98 42e642e1 43daed20 c4615ee5 42c37d30 438544e0 c4b355c5 c48ce30b c300fd64 43079dcc 43c7fc6c 449ac67e 4221b37c 4350bd5f c44ad26d c473fe6c c31d353c 419a18e5 44443978 42d3cb10 c33eaf57 42be7069 44196810 4450b1b0 c2671224 42fb22bd c40681a6 c3e606d4 432a11ae 438b09a8 41bb5b80 4320dab0 c31e7602 43380531 c2094720 c408ffdc 41a3f918 431c5a9c c42dad6f c1ac6ac0 c3474314 42f4cd91 442dd6c8 442a6f48 c3274e5c 436caf2c c1545c80 c380c610 4325d9e4 432c5fc2 c45cc256 43cb6a98 c331f087 432aa1b2 43d70678 c43566cf 427cc388 4382d0ba 4480f8ce c3e73908 41cca8b8 434dc93b c461a73b c439278a 432a2432 42047579 4467aa3c c4bb20a6 c2f299c4 43894639 43b92668 43997790 42d2ce88 42afe9ea 42c8b940 43cb8b68 41c6a400 4392b538 4413649c 435dbb88 43212c72 4388718c c34befd8 c3ca1b5c 42aefeb0 438377e6 c0932b00 4315d620 4336b01c 4299a619 43ef08f4 4409a984 42809850 438ac61e 44a0d28e c401f5a7 c2f93ae9 4314cf91 44626b68 c4babd3c 433d1d00 43196dcf c453f2df c4ba9a72 432e9744 4338f832 448b89d8 4456c030 c33fd21c 41438388 44130ac0 440782de c3038866 42b09bb5 c32b3f68 43ec2c54 c2cd8470 437bd247 42ce4d90 c4a790d8 4201fb78 42aa2f96 c4aae5c0 44aedebc c2c5b22e 438d487d 44a5967e 447fb288 c28008da 428be7c6 c31e4c58 c49c37f1 c301d6bb 43536753 4397b100 c3897908 429748cc 430697b8 c355a530 c490398f c347f678 435884ba 42b0fbe0 44a86656 415bfcb0 4392e86b 42149400 c3a3e7dc c1022b30 42b16b22 c49c24bf c3da1b54 4331b5ac 43632214 c36da160 442061ac c19f02c0 42a5a096 443b2228 44ba38f6 42816b9c 4198520d c320de08 446b493c 41c157f0 433baa4c 417d5f80 c28bf6a0 42871bf8 41a03168 44afa0f6 446b1ae8 c217de6c 43038154 c4a799c8 448a6a34 42b78e18 421670d0 c34c2890 c42958a8 c1e7fe20 4329be39 c3d018d0 c4a1cb9f c316c0e8 421375ed c4875242 c35bfed8 c2b50924 4385a80b 44abc412 c339eda0 4290184c 430755e6 c30b2010 44afd85c c2bb655c 435993b2 c3a707e8 449e267e c12a4330 41a2d820 442661d8 c324b6e8 c29d8bb4 42b0aef2 44a8914c 4297be70 429c893c 4329fcfd 44b5a63a c3d958fc 42ff4eb8 4313d6bd 434f45f0 c491e603 4287ec50 42ef247e 440ef2f0 c2c14fc0 c129a0e0 42033026 c45ec641 44533364 c32963fc 4323cae9 c4897def 44b1557c 433a24b6 42099b82 439b06e0 c4b66083 42a53fc4 431df635 44619b38 c3a24f44 4303991c 4389d85d 44471bb8 44845d5a c30ec000 433c0468 442d3fa4 44268430 432127ac 4338da52 43b25598 c45d6409 43113d7c 42dac23f c416bcd3 4491789e c33ded2b 438a867f c31b48b0 c39dd224 430518b6 438d55c8 c3c52480 444c8fb4 c31148d1 43929c3f 4333cbe8 43a749e0 4333553a 4391c1c0 43decf74 c40f4f15 428b992c 4275aa42 c4238b1b 443e4c3c 4233c448 437ce95f c40381fa 4486ddbc c273d200 43157968 448e0480 c29e80c0 4324926a 438ba380 c492542a 43b801a4 42e41a2c 43597962 44b72dd4 445645c4 c32f35d7 42ff7e31 43312828 4491c850 41985380 4394f21c 4422233c c47a1f9e c3326e90 42329684 444d4464 44a20e76 4335c29e 42c7c810 42b5e2e0 440b5a2c c32fb3ac 4328220c c42852c7 c46a54eb 4219eef0 4334b156 c4a9cf52 c3de4e78 c32f637e 4386c5fc 44877e98 c45ad0b3 4312bbb4 438ce724 4474cc64 c4485266 4340e75c 43821cc0 c43dca20 c42da4b0 423d313c 42f80cb0 c45c6759 43b37004 c3176c45 425f7588 44654ac8 c44be520 42a5ce10 438e406b 42663020 43983150 c222d5c4 4304f4cb 4339c6d0 c4431e68 c1c07348 43724448 c468e23b c29fba70 c261d7a4 428c3578 44756b30 43e4eb74 c3136f8f 431d4d41 c4163f92 c48fc0bc c2a58a58 4326d3e7 44a8b58e c4992a88 c32ecaab 42abddd4 c4a22a72 43fb55b4 c280ac7c 43483946 c4a2b4f5 c339d698 42e24c58 43778512 43d8cf28 c4906352 c246b5ac 42aab78e 44688380 c32b7638 c247767c 433419f0 445bc8a0 c46efec7 428aaf24 436a55bc 44999c32 c3858468 41d315b0 432a84f8 c20d6d40 43aa4220 430f64ea 4351d418 44a3264a c47a2598 4346ab30 430602e8 42e6a530 c4885aa0 c265b6a0 4386aefa 449641a6 4454efc0 42bbd800 4363ea7e 00000080 -> bf160bb3 3f13f5bc 3f115cb7 4287cca3", + "441ae380 4439ce28 42d6d75c 448b5526 44147070 430ebaa8 4360fbd7 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c47933f4 c30e2be8 41fe9e78 c3ddaeac 43eada9c c31f5ced 436dd61b 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c3c0e8d4 445efca8 41d128f8 c2839690 c48f23ce 433345be 435b35ec 440238c0 c49b17f8 c0f3a040 4350e72b c4b81390 c3206518 4328c4ac 42085a4f c3c34814 44829a0e 430d7b58 42b47dad 43aefdbc 449bd850 c34755be 438e6c21 c44b96ec c373cef8 c2d980fd 414bb99d c43c422b 44552218 429fe348 436fe7ba c4905c0a 43ae4768 c2ae3e6f 426f5d56 43910ba4 43e9c508 c32623fe 43364004 c40087e0 c48332ca c33e48b4 43696aee c433bb8a c4b3c202 42bee380 42cec503 c1328100 c45c3539 4340f5b4 4374680a c43d1581 41d66b00 41a36b68 4325bc95 4369b7a0 c484b96e 4278ac70 41d9aa1b 449250aa 44a488ba c1307720 4385f86f c3aa2a0c 440d2484 41e2a8e8 42f7e843 c47bbebe 443b8a80 c0ae84a0 43590cd4 4445b798 c4343226 43333bb0 43114aae 4492bc7a c4498eb2 4295e83c 428c9538 440716fc 449849f4 40a838e0 41b2d488 44625564 4492d5f0 418fa4a8 4339c564 c4a314bc 4437e110 42165620 430caeaa c4bb572a c4b20234 42a308a4 42f61f9c 44054860 c488ef7f c239d794 432feda2 c3168e68 c3e77fc4 c308edea 436267dc 4425048c c42dacc1 c3362146 43944819 43368dc8 c49bcba3 42692980 42dd0e70 c2f7e4a0 c31d7100 c2414020 4393b0ad c35f2780 c3528408 c324ee40 43198c73 c485c308 44ae4582 c289bd32 43038f02 c480f6f1 c4ae193a 42aad518 43601c52 4327d6f8 432ea4f8 42e70ce0 43655f71 4482472e c4904b1d 42ce7838 42d5fb7f 443a51fc 44482fd4 c28df08a 4324ab7f 44821522 432a37c0 c335e5cc 43932ed4 c4963531 c43d843c 4344c712 432a57bb 43db234c 4424cab0 4339b37c 42a3c58e c4a9d023 4491d1ec c1e3a220 4316ad1e c4b4cf42 4432e1b8 42103624 4350716e 4324ade0 c4113a64 c1d8f3a0 412c3bb4 c4193358 4491f9c2 be9b7a00 42db35f7 440e130c c4aab676 c2d37c5a 434905d9 c49347c1 4322fc90 426cf940 43341a67 449d4cf2 c3e51e5c c29038fc 4388c607 c4ab13db c47e8626 c3231c9c 437c814a 438cf168 42f59570 42a76f28 438ffd8d 440bc3c4 c42a40ae c292b5ff 414e051e c472698b 43cf6efc 433f616e 4326c085 c48ccc7b c4ab8489 4293df18 428de72c 443a0d84 43deb738 431163aa 4338626f c23f0ba0 c411d5c3 c30fbf85 4318ec2c c44270fc 44805d00 41d1fdd0 434c785d c373a368 44080304 4260ca10 42f8ab7d c45664bf 438ff7b4 c2121ef0 4364e480 c47004b2 42f41de0 427b61e0 4302c438 442b1db4 c44db4dc c0e77a40 4311ffda 4363a1e0 c49327ea c17308e0 438424a0 43f39f58 c4926bc3 c307b706 42f94886 c4182104 c1da86c0 c26c9188 42bb46eb c3958c70 c454a861 42ae3f74 437ec656 441b87d4 43db0970 4211cf38 4319ad10 44baac64 437c9438 c28ae4e8 4323482b 43c8eadc 44a14396 c33beb4f 428c486c 44b842de c31ee370 431544ba 42a9d887 4472ba64 4400bfe6 4326c89a 42427761 c3b395e8 440d9488 c344bb34 42c75c69 4277a300 c43f1df8 c3212943 435bbde0 c4401ff1 c48e667c c268cc60 4390b5d5 44722840 446acc1c 42a73fe4 4207455e 43c9e404 44b66e34 c13886b0 4394cb54 4452e6c8 44a28ce2 c2cdad4d 435e63b6 c49dbf29 44a9ff86 c219ace8 4380449c 43b095dc c498542c c16176e0 435d4dd8 c4166080 437df2a0 c167d7c0 41764e7a 43cec774 c4239589 433deb54 43644266 c21ad940 439ab3dc c2ac3863 431ef78a 43629be0 c4a27e71 c238c980 4276d3fe 44327b3c 445a47e0 42460480 437cc67b c460a051 449f7a5c c26cddbc 430b9315 c3226400 c4282782 c2d81447 432e84f2 447feb14 c43dc536 c31dca60 42560cfd 43e93df0 43bccca4 428337a8 429e2bf3 c3e21134 440ed898 c1b24ff0 42e091c9 c4b71e6c 4423e978 3feaed80 42768ebf 43df1d40 442beb24 c3094374 415abd18 434e7600 c44dc2aa c31b23f2 4379bce9 c2b3d3a0 43bf6c28 413412c0 42ed0c9c c4487b69 c4b52348 41e8bd10 42e5fe73 c4a80143 c38ac3c8 43248ec0 429f457a c0e54e00 c488fea2 430f4618 438eb3c1 c3920220 c484a506 43039ac8 41be3b5f c3e5dac4 c42bb56f 43023072 4315c3e5 c36df110 c47494c8 42ee73e4 4359d3bc c48ee485 c4541193 43476524 433c8409 c488f0e8 c425de80 4290030c 4190ae4a c496d9f1 c41da69a c345c911 42d4bf46 c48f59dc c49caafc c29f6cb8 43393749 44665dd0 c430a6a8 42905d48 431f13f5 448b23da c45b9f20 422fff38 43048951 c39b09c8 c4a34304 c10084e0 428767a2 44629b38 c4aa2e01 43356a2a 41d869c8 c452d337 4485883a c2cd83fa 437c1379 c3887f10 c4192216 c31de15c 4292e303 c3080078 4477ba88 430cc6b0 422aeb8c c486b885 c11eef00 432be9ca 42ad6f9a 44b06040 c4510a33 428bd5c4 425d3751 c19d8740 c421ff3d 430a3df2 43893556 43a0dd98 4363d860 c2e0db0e 41f2d671 44603110 c26381e0 c2db68e3 41c79407 c3f59b4e 44a786d0 c31aa182 42abc10b 447e55c0 c2cc27d0 c2f3d8fb 431e4958 c47fa01a c2e5e390 c3303ddc 41ae8178 c3d92750 c1097a00 c2ae9071 43877e3b c488ee32 c4557829 c2d916f4 4332732a 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000072 -> 3f5fa621 3eed47b5 3e17e0eb 4280339b", + "c3fd03a0 c44c5fbe 430538ba 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "4329a6f8 c49235a7 c2a4ad51 c37074b0 44b19c00 42274ea8 43721d8b 444f7330 c4657eac c23ac634 434bc293 c35fb4a8 41515e00 c33d906b 42659d62 44ba653e c4af97e5 c2dc5045 43736988 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000004 -> 3f3ed70e bf28a903 3dcf0b9e 43c31da9", + "c4a91e15 c412f2b1 41155f70 437aa4e8 c439b299 4267cd50 434f3e3d 42e9ad80 c3b1eff0 c30096db 42a5acde 41baf240 c444253c c25c94e0 4307fce0 c48cfaab c4abcfa3 c325b110 43087d21 43247fc8 442566e8 c324e288 431fd6c9 c2c7b760 44597500 42b36bc0 432ae244 c45b0cee 4461322c 41571cf0 4357fbc5 c45ccab2 444e1470 c3190ae7 432647f4 44416f7c c49615b1 43068520 435b2783 44ac6250 c48e6812 c2d1e086 4375a9c9 c45d720d c3791408 43270e8a 42ae3736 43f5ee00 442bc3e8 4315331a 4394899c c4876fa2 c3c4f29c c347501b 42f5f3a0 c45c39be 4462b808 c148d0d0 43702542 42a8c320 c499b5fc c131d150 436037f9 44826952 c2be9100 c335c758 435e9322 c48e1866 44726d5c 428d38a8 41885544 c45cd8df c3cb2d2c c1168b60 43080780 c24d69a0 c428a20b c2967146 41c3659a 448b9ce0 c2f9ad80 431c53d8 4314e274 44a0392c 430317a0 41e4a470 437cb428 444ccaa4 442addc4 c285f8f8 438f90b2 43c4ba2c c4ab7d50 c2f5862d 4383170c 43de0cc4 c0460000 4339f27c 435f95ca c3c0de7c c46c87de c30e1378 437dced1 c4a7d09c 4482c4e4 42e38060 436a8b26 44931582 434966e0 4322ad02 438c0683 c1e7b880 c3735a30 43288596 41f1cbf7 c461892d 44b8fd26 42f92360 42c45bc5 4494cbaa c45a8461 4337fbfc 42f816e0 c1df2780 4425adac c22afdf0 4264e5b3 c47668cc 43a05628 42e53d88 4393aadf c40e48b5 436256e8 428ea7d0 43516cff c40bd12f c4a8b637 c1eb75d0 42031c9c 44427d8c 445edf38 4331dfc8 428b6f3a 4470d960 c3940368 c15e39e0 428f1db1 c48dfa8d c48d3dee 42883d9c 4347df21 440ca8d4 43f133dc 4307e288 4264d230 c44e8059 443caa0c c26ff9e0 42d4525b c3053cc0 43b64d38 422488c8 42b97e41 44527008 449e8a7e 4241799c 4389a908 44346c20 c447c722 42ccee24 42550d91 4348a7a0 442ea898 418f2fb8 421b90d1 c43107f6 443e878c 41e6cd10 420fad88 c437478c c46f5aab c3376b47 41bf9726 44a3b8a8 c48a1133 c2a2e7ed 434659dd 4430ccfc 423a8300 c16cbc20 432cfcb9 441610b0 c497f05c 4244bb34 4247d4fd c46540e7 43ef0744 c1eeeb20 438742fb 44524d48 431722d0 c1351540 4385b9ac c3c73640 427d6840 c324dcb4 438f6d46 c48ffaa1 443410a0 431f86fc 43127b3d c4706e02 c433859a c3299d84 42b35763 43703ef8 43243438 c27202ec 43462423 43bd9cd8 44b0c9d2 c3005596 4296830b 444af6e8 c4656581 c1a2e408 4312e564 c4924794 c38b8f88 43221e68 433955f8 c4007957 440253ac c298d1f0 435685a9 441cddd4 c481dd97 4290b9d0 43027cb6 c4ab024b c3ed7354 4155f440 43955e71 43af1630 44b8a4ee c23bd7f4 430970ba c4b46cb1 c3e3a774 41b8a740 43437b76 c40e0aff 444f6e78 c2b6711a 437499b5 c3c12da0 c43dfc6d c31924bc 4270be24 c4a07e06 43adaf18 4309e614 4357a351 447b17a0 c41a5750 c30f3af6 431ca40b 44a95f9a c3c1ee2c 41d1d3e8 4305a736 448c2f6e 44a279ea 4227a890 42b92190 c339fbf8 c46d5cd3 422d4614 436bb024 4469a7bc c4b7e1df c195ccb8 4366e3e7 4482f884 c42fb909 c2a4cd6f 432a1dd5 c3934494 3cc60000 c284c5ce 43101dc6 c4adcb26 41bc79c0 c27a79ec 43062c97 c1124380 44734020 c307a824 42cf0ea7 44836c34 448d5a3a c09c53e0 4345f702 4453fe9c c48a41dd 42d49d00 42eedb5c c476288c 44b6b6f0 c24e761c 4280dd66 43cf9578 c3f1a3dc c25d93e8 41e0b4d2 c47d0c78 c49c5a98 430fefba 432f0900 c4bb6b5b 4386b284 c31e7725 430cfad6 c4adbed3 c494d64a c23041a8 42e843db 4386b9f8 c4728cdc 42e6346c 433bf6f5 c4b300c8 c420a98d 432b1c12 438c845d 42832970 4464c650 433f9cc8 435a33f9 be43a000 449c3f1e c23f75e8 43023a9a c48b1b8c c4849fba 4301a1e0 43545116 c4849f6e c42430da c2bb882b 430207ad 44ae2f52 4389a828 c28e297c 42ab2f23 444cd3d8 c4adf34b 42325c78 434f1268 44351b0c c3964fbc 42e60474 43954d6c c4616346 4440f7bc c305fbf6 42e082e2 c3854d24 c35b4268 4181a460 42e363d3 c4947d94 c48649a4 c32c5700 4208ed43 c459e77b 440df0c8 c28de9d8 43861986 c425bc1a 44102598 c2e04ac3 42c71186 449a2168 c3bd35f8 426eaf78 4306f512 44adceac 43faaaf4 c30766b6 4316dc71 c465d50b c4166537 433e963e 421c2abe c48b12fa c3ac4728 c2e3eb9e 42eb9e58 44b47c7c c2ab2610 c2aaca74 435aa22b 44346ca0 44990190 c2981a5c 43788d54 4287b9a0 c443f1f3 c33384fe 420943e8 442024a4 4425d98c c21f23a8 41c25373 c46fe1c6 c27e9a60 c3265487 43796e49 c492f542 442f9d34 c23168a8 4361c418 c42ff007 c4a6f49f c3066532 437351f8 c47aecfc 44afe0a0 4335c4ce 43790cff c29b12b0 44a911ce 43239e50 43743025 c38d7938 3f20b000 41da2740 412de98a c4a38122 4474f054 43234e7c 435c2d2a 43adddac c49e61d4 42d9c354 431300c3 449599c0 44a0321e 4327fe9e 43469a2d c4154516 c3a5c934 c2bd15ad 42a35807 c49c9dd9 42fef1f0 c1932ba8 4350e05a 443700dc 417f4f00 427b7528 432a8c55 c421c2f5 c44cd574 422f8300 43672cc7 446a10b4 438b7d40 4265c020 434f2f5b 4499fa92 c49d0f16 42d14ee8 42b7491c 44746a10 43f68f4c c314c188 4280e7ee c423105b 440fb0d8 43223f3a 429e2e69 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000078 -> 3e890414 3f33b251 bf28f909 4288deaf", + "4403b086 43854d70 c214b56c 43f2da24 4428e458 43114704 41bb2f18 448f65ac c434c12e 41bbbde0 426c882c c3da059c c332b700 c2319074 4311b4d0 c4b7ecf7 43f0816c c29b3f13 42b87c23 c442f8a7 4433ce8c c2e02983 434012e6 44b4cb42 c36c3930 c2033a58 43022ba1 c42f51dd c391338c c3330887 4337e9d6 c3733f70 415c8800 43401976 43560776 42961940 c49f3370 c30bed00 4382d4de 44524ce8 43c89f54 c33cb681 43786ed1 c45ec685 c4917622 c1381ad0 4295e352 443350d8 4424dcb4 c2b58f63 4198806a 4395835c 44aa7e4c 42f72f74 432da7a0 c41357e7 c3017ca8 42a41290 429f929b c410984e c3198fd8 42dff7c0 4314f750 c45c1131 44ac1ce8 42c867c4 43804224 c2eeebe0 440b1ae8 43312cae 438c7095 41f3a280 c33995a0 3fa38980 4339d2f8 441ea4c0 c39993d8 c1f066a8 438326f0 44a8c26c c46578be 428c3c04 43287686 c48ab1ac c4b3900f c347fd55 4310a34a 4412b5a0 c37c3c18 c21ffd48 41ee2cb4 c3c2708c 44999422 41c1e8e0 42d4522b 4484abb4 431312c8 4238f7e8 42a184de c3cf9b18 43b5c390 42d30314 41cc628e 444fa8f0 c3f186c2 410708f0 42636201 c311a2b0 c45efb31 430d1ef0 43885c04 c4af838e 447b4e9c c2a78193 422b46a6 444d23c4 c447d92c c2718790 427f13ad 44ac1a68 c4205243 c30a38d4 41b6adba c420e65a 448c88bc 41cbd208 43382d2c 448d9402 c4764b9c 42ca004c 42648015 445381e0 c46f57ba 405782c0 42d2bb8c c3512e80 43b684ac 42d7a2ac 436f703a 3e4d4000 447dddec c342dfe3 4318f274 433d5be8 c18e1800 c3398383 43253c7c 43b26378 c31db768 41b9d178 433ddf95 c46103c4 c3516ae8 c2abf469 41fed48e c2c79d50 4424a158 42d68490 4387cec7 444e7764 449daf1e c2accdc9 42b64fee c3156de8 440eb9f4 c3166edb 43806855 c40201ba 44ad29ba 42925120 425822a5 c2d80d60 432da1b8 42944684 4233b997 c429ee79 43f2493c c0f16da0 436f809c 447de80c c4b0d9f2 4340ac50 4306bba8 43aa4e94 c489e826 4339020a 42e00d95 44946eb4 c348d180 4310d8ee 43581f42 44849308 4489c886 c341a611 433213b9 43237b60 442eb944 c336e860 43838efe c3c2c1cc c46c2734 c2e91693 43489364 44466614 c38ca8ac c3097ecd 434435bd 4437a32c c47b8c07 42f18bf0 4373828e c444393b 44b2c8f2 c32e9161 43629946 44a48d94 4484b49a 42850c6c 42cc6800 442ad624 444c138c 43361b50 43869254 c49621a4 44b10c84 c2a15a43 4337014c 42fbfe70 c493d63f 41d31140 4326bbb9 43b230a8 43a27b1c c1fc1418 43477d5d 446fd144 c4039b35 4284773c 428c3d78 44b27eba c406affb 422b2530 435e0d77 43c4b0dc c4a6287e c130a860 438421c4 4463e1a0 c42d42ab 42613a88 43552d7c c4a28131 44289778 c30dfc54 43376ffd c44a9a6a c40ab7d3 41b806b0 436fcbe1 c49307dc 433313d8 c31ff556 4343556b 4393f7dc c432e512 c2fade83 4340b6c3 43269a60 c386bfa8 432adaae 433c2460 c469c694 c2f5ffd0 c27cdf34 430022ca c47b25e0 c44ef63a c2be0629 41b326f5 bf4d0000 c36b6320 42ea2e90 42b258f4 c2d1ff80 44890134 c127a540 4386a172 c2dc4aa0 44725fbc c1f4a398 431c5df8 4448433c 448bf15c c3203e38 4302b9af c451c3f9 44af74e2 c312f8cb 42ea662c 448aefd0 44806186 c28f0298 42f854c2 c3ed3960 c4b19175 409d9d40 433a383d c3afbfd0 443240c4 c1d6a490 413af72c c4a7c906 42313de0 c2a5dd8b 43510ce5 44483950 44755188 c3025e14 435ea829 4457c04c c41bb174 c3054b72 435e6313 44b67b40 c368bc48 430ae812 42cac4c1 c3d296a4 449f9f72 c2fa5ba4 428667f6 c49931df 44934e5e c3031aa1 4348a42d c495e32d c3976ba0 432c7704 43092b64 c3dc739c 44894e86 408efbc0 435c6d97 c3a4a360 c376c898 c19925d0 42a64d95 437189a8 c3827b70 426eed30 42f81183 445c5a28 c3971800 42032d38 4331a553 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000058 -> bf70d5f7 be17931e 3e9c2e86 42a60e4a", + "c4631a7b c43cf718 c1890be0 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "43811ed8 c3c621c4 431e5f20 449b5fc8 c47f2ec6 c27bf3a4 43423b84 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "434ea2a0 44b05ae6 4218080c 449e11a0 4452edcc c1bc52a8 42da6f24 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "44aef0ac 44051eac c0a2f220 c427c04b 445c5f94 c21a7b4c 4352bda5 c40de07a 438d39fc 4340b818 431e50b5 44b87f9e c4b7199c c2c08ffc 425cc551 43b1284c c4a7403b c302006a 425b4cce 41239300 c41bb617 4323e2f6 438e0edf 447532dc c423eff2 bf8aa080 41d71c3a c4b45fa8 43f0b3e8 42ed7afc 429bf933 c43df1d4 447da24c 4333a8d8 43336aed c2e07620 c414e980 c2ff53b9 436577de 44792adc c45068b4 430b91fa 436307ad 43e63adc c49f81c3 c24688c4 43853559 c28e6330 c44ead5c c29d4538 435ce65d c42f629a c46a54b4 c32dcfce 434e96f0 440afa38 44590878 c3182261 4395433d c4189890 c3e82eac 428a909c 43469ae7 445ef9b4 44398548 c2bc3f30 425a6d9b c4a407e7 440352d4 429a9900 42cba8d8 448bef04 c3755f80 c28e1f98 42b72568 c3299f28 c47dff40 c2a69b53 43642983 44981016 43a9a524 42032644 43706d1d c3d66a4c c4a1657a 433b5044 41d94d2a 444c87ec c42b8f4b 431f8eea 434d3b49 c46ea90b c46b8e25 c17e6940 43173bbc 4312bef0 c46213de 43346e76 43886364 446877b8 c4506d0c 4300a502 437256ea 42bb1990 44b688bc 430da240 437fe75f 4488f476 44552360 c2d4738c 4321f33d c0e2f500 c3c6edb0 c3243c02 435032bc 44456ebc 448dfcc4 c2a55af7 435d07c6 44514ec8 c45cde1d c23e3998 436f7c63 444f26dc c4b3fcaa c3120d80 43514bf5 44abbc3a 447b802c 42b9e59c 42a20a31 c4594e5d c3ab9388 4330ee3a 43502fc6 445a9d2c 44529928 c2bd49c2 42eac5fb c4555b2d c48e5f65 c2f4d33e 43945600 c4adb17b c3bb9b00 c301c4f8 43762d71 c4974ed0 444f9acc 42b303b4 434c61c2 4497f8b4 c44f758c c3152e35 43394a25 447fbdf4 c4b0250d c33e033f 431e3bac 4483f562 c479dbf4 431bfe4e 419551a8 c4a811f2 44b793cc c29508b6 4229f17b c360d610 c38cfb74 431cc85e 43937462 43acdd58 449ea0aa 409bb8e0 434908a9 c4b72c09 c3a11f18 42cb9c38 42fcbcf9 44812bfe c406a71d 421125fc 427a23a2 c491a9a7 c4a43778 c28049f6 439418a5 c4351321 c3f32e50 4308f712 4366bfd4 443fdf40 443d2e54 40eba400 41c0ea82 c44a3b9d c47beec8 432eaf2c 41bdaf8a c4a48aab c4a3aa96 c23109fc 43523ec2 4490518e 4434fde8 c331fbfd 43936d22 441e6aa0 c2be21b0 4214a634 430c097c c4282c8e 43b98b1c 42855a2c 43241d1b 43646900 441c9f2c 4327533a 43948290 43e0d9dc c401df5a 430d6198 420d1f8e 433ecc10 c48a77cd c2dab4fc 438222a0 c38f1a8c c2db0790 c1e52e28 437fc2cf c3045ff8 441b6d04 c27feb50 436c7627 44a1aac8 449614da c2a2f4c0 42eabdc8 c4b8db3b c3d5ead0 c2b37b22 436f2c94 4437baf0 c39efc7c c0ba6940 42414673 c49b6b1c 44b69e5c c12fc840 43213e2e c43eaad5 44a79eb2 c2243220 435ef8c7 c4596c28 c4145e53 c3153d4b 4364b032 42307960 c466f8d4 41f87d38 42a3ae7d c4ac86b3 44381730 434502ec 432edfee c4224424 4490abb0 422080b4 434e0442 c38336c4 43103508 434111e0 42bda836 c4a84df6 c4a3cd0c c27c7a3c 426cb969 43d9f91c c49811ae 42ddf5f4 43031bb6 44b81c44 449891fc 4222adf4 431d93e4 c40e9b7d 439e7f58 41e28e28 43406447 444cfca0 42fd3eb0 430e370a 43765a84 4451cd3c c4b1077f 42c842a4 4395ee2a c393c774 449c56b4 430b653e 4287dcbc c3a9ff38 445e7600 c31c6613 435455d4 44ae1df2 c4942cec 42928edc 4252692f 44ac7d7c 44ab7dea c31c7cb8 4303dd68 c3801ecc c47ef8aa c2c2965d 42425e54 c485952c c2445200 c2c10f04 434e9d3f c40ac1ee 44b0c438 43210a9c 43833226 44106610 c47940dc 40a38a40 4185fa28 c40c5892 c3ebfa18 42d67cc8 435d3d54 c43e8130 436910b0 c33b9f23 4284b890 445f6358 44977cd2 418ea540 428ae520 449e6ce0 c3645280 42872ba4 4376a427 c347b948 c3420f00 c21f5194 433db657 444b5df8 43afdfac 430e4bc8 438a163e 43ed56f4 c4771e5b 4319e8b6 43026f3c 4493c10e c443fc2d c345edf4 43710746 438a221c 43efe5b8 43059d12 433d03bd c469192a c3b37204 c3024edd 437cb350 c48b1724 c4a417be c283d1d2 429f1760 44a4a612 c4a75e37 42cc6900 43863589 c414307a c49b0674 c1c9f2c0 42a92fb2 44486d60 4493679a c2c64fe2 4353bb0b c21cb220 448359ca c32becf8 41ff2032 4410afd8 43ad7b58 c29fbb49 432c2859 44958be6 4439f1fc 4234a4e4 42ac4552 4386c9b8 c4a81f8d 424ae218 41cb16d0 c4332fe1 433e9560 c0708200 4357889d c4237b75 43ade424 433f82cc 43395123 c37f0330 44b920d2 c31ad960 4374263b 446258b8 4439f808 c33c3c12 4354b67b c38a4480 c487988a c313dc30 42d894dc c40e5cb0 c4967884 c30e6838 431ee59e 44449018 444f0bc4 c27e5d60 4282dbea c331a6e0 c1a88e00 c29f0250 42a56e4c c2f13710 c3ae3f28 4346741a 428a26a4 c39249fc 43021ea0 c20a3dc4 43834c10 448b4f2a c2ce21d0 42806438 4354c7a1 41055000 c1a9d300 42cde520 4256f71a 4423e29c 449b35b8 430de2bc 430ceb79 449dfede c41f1947 42c24c24 4264504c c3715d00 44b2f012 4332a942 431cbaa6 c428d229 4457bb18 c3067f22 438ab158 441053cc 4487cce6 c273d148 43033558 443cde58 44744754 c2a2c57c 43825853 44289be0 c4347fa6 c1505e80 437eea99 c3393c00 c325c680 c343bc60 42b01cda c4b47d85 c4685b89 c12f3710 4322cc4c 43cf64d8 44832bf0 c2887688 426f7011 43d37218 447a5888 42e35490 430556c2 4391149c 4498dd22 4219c650 42094426 c41495db 4432da54 c3454740 4343c955 c485023e c3f0e2fe c2219694 4386750f 43b00928 44b7d986 42b54f04 4349f9df 447051cc 44955fea 42b34470 439258ba 00000080 -> 3e0f360d bf5e4d47 3ef39b49 41e368e2", + "c40ac689 c3a40b90 c31f1545 43cd4d98 c4222ec8 43090ee4 43247c9f c4733c7d 444fbf44 4327364c 41b06094 448b3600 c42e3436 42fdbd70 434a55e6 c3ae9ca4 42ffeb20 429fd3f0 43090078 c3c2f94c c48d0e6a 428f6d4c 436f7164 436f7110 44999322 426ccb80 4236dc31 43fb26f8 c3debed4 42c21ae4 42274391 446804e8 c2f733f0 4327b0de 4303e80c 4208b960 44499fb0 42840394 430dddf9 c47be181 c49306bc 433bd99a 432d1986 c2644660 4483b99c 42c4e704 435b8934 44998c3e 44bb0900 c1ca21a0 42e24b47 c4b26344 42dd3350 421a6220 432a8e79 4466fd58 c41ad9ad 42bc29e4 435ced6f 43cba3a8 44249e18 43121c7e 43790344 c4ae9cfa 44673d70 c2d640eb 43019ac7 c3e33fb0 c39ac9bc c30b445e 433c47d0 448d9d04 c43f326b c2b4fa2b 42ac02c4 c481aa6a c48fac64 c297d5ee 435d4756 c47c7250 449f8c12 c2e50b60 434bea63 449b803c c3a99278 c325d5eb 42b20ba3 4487ddc0 c3c99fb8 4233cf2c 42925bf6 c4aee3cb 44a4216a 42ff29e4 430af434 c44102e5 c484f577 413381b0 434d1210 43b2a030 c3f973d4 c2498a78 431eab58 44821918 44718e20 c10c8520 436bf9ee c431af0e c3f865a6 c220ee40 43526c66 44b53f70 c4b900e2 41cc94a8 4357fcb4 418b1880 c4638c10 4323ce1e 4345bfef 44272e88 44ac6252 41a06210 439385df 44555204 44a2bd48 4201d02c 438d4b1a c35da6c0 4476d514 c34039c1 4148bf5c 43853c04 43ce5290 c31c36f5 437a9d64 431a4430 4416c800 4300b2d4 4213692a 44995730 c4115cfb c3443d0a 432317e3 44aecfe8 449df97e c2d45f99 418e91d4 c3bd6008 c492c135 432f8c9a 41bad4ae c4460d66 448ebcf6 4333e634 43493955 4454af18 c3a351e0 42b6949c 438960f2 c4424b77 42e48980 c26b0528 4307da90 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000028 -> 3f4551cb 3f102b84 be988696 428dbfa4", + "43930044 c367eb60 c2c26bae 442fab3c c47fd75c 42f3cda0 42ed6ad7 446db024 4432e0e8 c2053cc0 438ecaa7 c4b32bad c4b537e5 431143c2 4354d64e 43227da0 43469ce8 c29207c2 43861596 44b18546 444ca380 42a68ce4 4351764b c315c9f8 c4aa33c0 c307e114 43920eee 44994bd4 4483dee8 c24eb0b0 438f31f5 436246c0 c4574b23 41f1b170 43778093 4491c864 c48ad58e 425f3d50 438eb7ad c4893493 44006488 c2019454 424cdf05 42c620e0 441cd458 42d117f0 42ed2250 4488e624 c456dc89 42956be0 4391ec61 c4ae2193 430339b0 c27d79c4 433d285b c39ed7f0 43ecf7e4 c1a93428 43518c5e 44baf754 4478f418 c1592ad0 4390f688 c3c6788c c2da0f50 c24838b8 4374b02f c3305588 c4aaede9 42f88c28 43051293 44a0013e c3c6786c 42cce4e8 42c3465c c3db3df4 43462c40 c30a16a4 4360e132 c4216df3 44567320 c31ce631 4353a0fb c47b5753 c3979990 4326f7c8 41998190 448b42f8 44aba770 c1f06b68 4299d980 4408fd20 44a94900 43347ad0 42c343d4 c45d2874 c30abf68 42db8e2c 41f0ed18 c3f8a21e 44a98956 432d4242 43780dcd c391bfdc c4323564 c335eaf3 434bb5a4 4457b7d0 c4acbb8b c2bcd7cb 437a2231 41199980 441a9ea0 c21aa930 428f554c 442823b8 444b18c8 42f04e90 43917819 430ab600 c3eb3bb4 432f2984 43163565 43b2fab4 436fba48 42c163a0 43926960 c37a89f8 c30a3090 c3212b7c 43878343 445ab5c4 c49b783d c2153f8c 42d4f1de 44844b72 c41fd7b6 c2a60cab 4387dc6d c3db6884 c43be87c c2ccc098 437b4688 44115930 43913bb8 42b60f64 43929764 43104540 4432eac0 41f99578 4307f46e 43e60cfc 446544c8 41140480 4394b465 c4b62d97 c316fe10 c2eec155 4378a5ea 4277d380 c4a14482 c2c6d189 42d589e4 44a5dd3a c3cc3660 c3396d3a 4303286c c4166b9a c4a0ff58 c2603a60 4308d1dc c281dab0 449535ca 42380a30 42c02211 c49654a6 c493c797 42e7be7c 418431a2 44842010 4446eee4 c1e91498 434e999a 448cfa6c 43f41f68 c2ca9f98 4393f56b 433adbf8 c37d0a50 c29138ff 42fdcec6 c49b813c c2b6eb10 c23d0f40 42b896e2 44babdfa 4499e3be 431bdf3e 42d35d67 43352aa8 c40ea871 428da460 4314736a c3b5f3c8 c486be34 43366340 4365165a c467fffe c44d3d75 431cc784 4388b303 43effbd4 c470b4be 433c3c78 4365117c 43d62fa0 435ca338 c18736e8 42b62478 c48f92c8 c4a88ee6 430e3324 43852626 443d26c0 44ab471c c26cd148 4149093e 4240abe0 c3fd1ff8 c2a0f54c 42817900 c454d1c2 c2f18e50 c1728170 43275683 c49a6d9b 44a8a796 c2a09d2b 435f3971 441b159c c1d21140 42ec3440 42d6d859 428e3ab0 c386b2e0 42c2808c 43886871 c04ec200 43bda50c 42619318 430515e9 c30e1e90 43a52fa8 c2e5c236 431ddd4c c3092150 445bf320 42b42c04 43045e24 445885b4 44a7ac06 c2d07747 43819d8c 44a05442 441866dc 42999fc0 428824e4 4422b66c c357dcc0 4285c5e8 4352fba8 c42943da 4426dde4 41e8e2b0 433f821c c4378ec9 426ab700 c25fdea0 42da5c4c c456ca48 c322d180 407df980 4385feec 440eb310 448c6372 42bce530 4339c61b c43dcbb8 44a99630 c324b2b9 42bf0e83 c44e9a14 448d7a64 43329fc2 43664cb5 c43a20b6 44a37080 c2129130 4377f219 4423a0d0 4300a330 c2f88cf6 41f46f66 44ac347e 44a7fa28 c30bf3bc 435dbd70 c4ad7ea7 43825dec c2c44d9b 438c8931 c3487210 c3af2dd8 c2e95307 42daec0e c33c6308 c3e15014 c30456f8 41cb5dc7 44af2800 c49b4853 433552e4 4367c4bd c3f0502a c3bf9040 c1498280 42fa4844 444ef258 446ad794 c24980b0 42cd4329 c491d041 42ed7960 424620cc 434c8349 c436b03a c336de78 432c2a42 43614657 44282fe4 c4b941cd 41dc0fd8 43496876 44143524 c481edad 4310b23a 437dfb5d 43fd653c 439b62f4 c28e0a56 4387cba8 44480410 c3d92b60 430d5e1e 43415ace 43865ac4 c36238d0 42b8de68 4334351f c276e640 443dcfa0 4335af02 42960cdd c4575cb9 44a33384 43016d32 438692a5 444289b4 42e1a9f0 c32560e8 4395bbba c371dd18 c35b8740 c288dc02 43905c1c 424dba40 c41b09e7 c32d280a 428008ee 41fd3640 43becbbc 42b67c8c 426fe971 c1dfd780 c2a7dd30 41a8bc70 43653942 440b9eb8 44b856f4 c32788c8 437b3a85 441bf7e0 c3eac3bc c2bdadb9 4391d1c2 c4a815de c3e92ed0 c1a90858 43671915 c3ff1034 44af8cf2 c3273a0f 424054ad 424c72a0 c403c88c c0ddf5c0 42d91eff c4b1a3b6 44931e6e c319f45d 42bfd8d5 c3d5c640 430674f0 c3297384 438092b3 c4b22293 44536744 42bad74c 4360d70d c3b04a48 c4a22437 c2ea0b1a 4368aa52 c302a930 c437f3ac c2a7d66b 420007da c47c0ef2 c3d55d10 4323bb62 42703710 4481ca06 c412792f 430e8610 43274cf2 4307cae8 43912ecc 42787b10 42690189 44b782e0 c45759b6 42b7b81c 437036e7 448d2c0c 4455a844 c1243ae0 42653daf c42ea946 c385fd3c 43327a5c 42b08ae8 43a67d7c 441ac320 c2401b34 42ac2783 4443844c c40b68a7 428be608 42ac2344 c4aeb7c4 c38bd7fc c3019f90 434be030 44b51ec4 44a5f162 c19f69b0 41ca7408 440d61e0 42cbbcb0 c29a6dd8 43062c6e c48c0936 43498018 42c92bec 426cbe8a c3f30a10 c3819884 431c8a82 434cc15d 44524b3c c48bd9d4 42f70420 43647127 c384a7e4 43d124b0 41c52370 424a1d9c 449f49c8 438cf614 42e161a0 429a100d 449e37de c3a08250 c313149d 4332f3a9 c4ada744 c4a49540 42f8af44 438c6c04 c3f7f5f0 c36b53d8 c1225fd0 435e9df6 c4949bd1 42581f60 c30eaafa 41b5ad86 44aa94fa c4594152 4329be98 42dd4f5c c367b160 c4ba42e6 c0e77e00 438884a3 00000080 -> bee11a6b be1382f3 bf62f43f 41a63913", + "c49f112d 419676c0 42badc84 c40e2db6 c48b7ec0 c3222f8f 43642585 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c489be72 c4275a88 42246530 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "4493950c c13b4580 40e392a0 c3d3bfa0 43e4a728 c329c1bf 43465db4 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "4463e404 c3496ff0 c19365a8 43fe6b58 c3441410 42f6b2e4 438a32e2 449a279c c44e0ac4 4341d632 433c207f 44641a74 c2c43710 41a9b6e0 41884b07 c41ad776 c3b3dc20 43405f82 4190b3ec c4b718e1 c3875ea0 422e556c 436df19e c49e6237 43dd3fc8 42c378a8 4310f464 43f9a390 c48d5849 c2c454c1 43217e70 444cdddc c3ccde18 430afbe2 4382275f c48c6a59 c381a4c8 c1f03f58 42cc339d c42e6a11 43837c60 4300ffbc 428d900c c46cca31 425d6cc0 c12e90f0 42451f1a c38f70fc c40c8a50 c32de252 42b1f552 c497ff2d 43b67930 4318b986 420c28ff 44994ec6 c397b718 425ae0ac 41834da2 440eb9dc c3eb7b28 c2c64044 436e850b 44b08258 c2e2ce70 43086e1c 4309cec4 43b3c1ac 440e6df8 431f7b6e 4384989e 44aab064 43f503fc 42d05a70 4304fbf8 4382e25c c396f2d0 4222c5cc 432c2a61 c473eb21 43a35598 c32f9ac8 42e13626 c4a5d41c 44b4d774 c1e74dd0 4257bf67 c25cae60 4443d60c 4335b940 435cbe62 444f944c c391c944 424ba904 438b0b06 c3f6cb26 c4ae9026 c2d0e155 435b6751 44050856 c4af7f3e 40c7d500 435931fa c381237c c46c0348 c292435c 4307160e 448773e6 c2fda1b0 beba9e00 431dbdc7 445ed7bc c49e65bb 430aef6c 4206700c c4237b5c 449563d4 42b82ab0 43945325 c4ae91c8 440e2d30 4337a47c 438183ca 4430b2a8 c475ff6c c31eb832 432a2f52 c4adfa9e 447c0148 c3248e10 432a4cbb c47ea626 448e5e8e 4318b9d6 424d9c3b c4988557 c3e63778 432ff650 4383823e 43f79c1c 44ba250c c2a7c2b4 418767e7 c4327b00 c3256e70 432bd4de 4354c20a 432669d0 4309a0a8 4263db70 4308c223 c412c852 c43b290b 42961474 43943b6f c4a02971 43eb5564 433f8c34 42a04dfe c49cb4f5 44469b70 c2278f2c 418a7727 c3c453b0 44a75fca c2719fc8 438a088f c46427e8 44196d8c 434340ee 438ca5d5 44abecea 4486267c c28d4d14 41a861ab c3971890 44a3358c 421ab700 42bca136 c4412e8c c38ff240 4346c196 431826fb c465cd94 43e345bc c2c939d2 4388f3c2 c466f611 4493c0a6 c32c0dbe 43088d7e c3c6853c 44148028 42e84994 438789ca 4397aa6c c4302d0d 4277a058 42cb1a62 c4978c5b c4b6f5bf 3facb600 4380616d 432d39b0 441b2e7c c108c4d0 430b804e 44a0279c 43e041b4 420da970 4247b4a4 c4a4ed8b 440d18a0 4347caca 434ea49a 4448f074 4497e924 4304a452 435a1aa9 441465c8 c3371728 42b45610 42c30919 43ca0ea8 431b3c78 41d91dd8 42ab1226 c4a23c01 c366ab90 c1c9a5e0 4243a354 c424a813 c4243fa4 c2f41ab4 42999589 44963f9a c484c0f6 432cf9b4 431723a8 c4755612 44626f14 43412ca0 432756b7 c411e622 44a21218 c24615f4 434f0feb 4414e3f0 c491651f c3130fe9 4353d82c c3478498 44a3eff0 423c87c4 4348805e c41ffc2e c45fcf22 c2e30b20 413bd2b8 c4875a42 c45360bd c2414f88 431c26af c4579c47 c308e568 430ee342 436bf718 c1a1cac0 4449df48 42ddeef0 433e5c03 44b13f0c c3e89fac 418f16e0 4386e9b9 c303e5d8 c46dd868 434686e6 4355bacf c4735698 44919f1e 41c63ab0 438f7d20 c41ced0e 4434ba34 42a08a94 42db1bfe 43f4c170 42e3cf10 433173ce 4354bb4e 44a12c40 449fea72 c273cbd8 438f6f4a c367ce98 c27c6720 c287fa48 438068d6 c49f62f4 43918250 c2fafcb2 438bc1c1 c3f7b47e 41f9f940 42b2afd4 420ebfae c3a152fc 442668ec c2ef4e5b 42206c82 c45d0c12 42242720 43042dd0 42a56d3b 43ea5304 c363be08 c2e56fd3 4312bfd8 443e44b8 422720c0 c319978e 438f8462 44742624 c49e1f2b 4299b530 41bb37c4 44ba7bda 4386fd68 c12b6360 4392acc0 4484511e c4850b24 424c1344 4331c707 44178b24 43c6e230 42405ee0 436c4d2b c4b4e553 43a82678 4334562a 438d7cb5 c3f45950 447edce4 c01e9c80 4302ac60 c4978081 c4972a66 c2a131f9 4395cdb4 c42fad9c 44866dea c3210957 432cb3c0 c2642ae0 c449c4af c31e7844 42a8c84a 446eb5ec 4404dba2 c3237c47 4372b66f c43c816c c44f2673 c2c7399b 41db52cc 4490ccb4 c43a125a 419bc4c0 4186d0a8 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000005c -> 3e3286dd bf56de23 3f03d14d 42be0d63", + "c483f2c4 c4952db4 423f3e90 c473f3f3 43b148dc 43424934 43338415 c427fc32 44a8d51a 432028ce 42bd1006 c2988c10 441e7a98 4345bf24 41beea69 c4a28f81 c496ea8a c13912a0 43235768 c3cc6f40 44ad469e c27f409c 43210938 c483db22 44107934 c31aadfa 4334c41c c346bf38 42b3e540 4309a2da 4328fb69 c428d745 c464e829 430529ce 42fea215 44aaee80 44babbc6 c29afea5 433bb538 c48f3560 4400fcda 41873c38 435cced9 c467d587 4203a440 42db445c 431e9f99 c4368c68 c4b6e882 42ffb3a4 425b0b0d c49e66db c1768b80 c1bf8a10 4312871a c490f2c5 43b52a78 c2087a1c 4315cef8 416aa900 c39ab354 c30baf71 436259ce c493b391 c3ddb92c c3415b4c 42b6466e 448de61c 4386bd80 c3233425 41ef08bf 445a79a4 44865c78 c20ef49c 435299ca c3709388 43aa5094 c2880f2a 4342d99c 449cf490 439735a8 c28633ee 43043ca1 441dc43c 440e4e9c c13c0a40 436c3452 443efc30 c3ced0cc c2a72521 42d652cd 4379c318 44731e70 c31cd758 435b292e 427e5cc0 445e2af8 42414578 437d3958 c1875180 c188d280 42568e60 434b5d66 449d9860 443c4ef8 c25b1fd8 42933179 c49bebc2 443a501c c3339beb 431afaa8 c41cdc8c 444ff748 41cb5cb0 4388178a c4a3447c 442bf5d8 c339ba2e 4302c08e 448f164e c4458e17 4120e1d0 431fb82f c416ee72 4440b678 c0bc38e0 43913c4e 443bccb4 440e0e6c c303c9be 433ed6e2 44b8c7dc c1d2a8c0 c30ec775 43050834 44af040c 43f834ec 3f003e00 43901860 c401fa78 c43a828c 429ca4b8 413ce7c4 c40da40d 445a5b04 c3365309 4373baec c4338b4d c45e2394 427a9958 436fa7e0 44436810 c45db1b0 4336dae6 42a98176 44afef7c c48f50f0 c2532c2c 42656ea4 c42fa9b2 c39c244c c1470b90 42f8fc41 4369a988 c359d1f8 4037cb80 4371e471 43c95a8c c48742fc 432ef30c 42fb819d c44bfa9d c49ed92d c3241f9e 4340c56f 42f4bbf0 4262e600 c2ebe5b0 431d3584 441f9228 44067f2c 42a53a28 43288275 c4af34b9 c3b61478 43113784 436e9e69 42cc8240 44907b3e c18fb898 438016a0 c417e8d6 c3f313b0 429acbb0 438bf6ed 4453d0d0 c4153fa1 c1e54e10 438524e3 c4220774 c43f946b c3034ed0 4234b6e9 c42f2b4a c435e4b0 41cc7158 4350665f c4907b34 c401d4ba 42ad9564 430c92c9 449ac2ba 44872662 c19e43b0 43341254 440e0754 449e5e2e c25cc554 42879435 43410da0 44242110 c2bb9097 43633233 440a294c c49a5122 c31f5274 43860fbf c3afa2a0 c47fd2f4 430b2142 429f1394 c49989a9 c405f7c6 c2dd1334 4311c73d 41b65e80 437faf68 c2afe296 436ad6e8 446c0b34 c470d24f 428ae634 428c2bfa c478c595 c4b9afed 432e79e2 4308bee8 44914702 c4935c15 c2cedd7f 4381b727 44a49e70 c44b32ea c2907aa2 432de2ae 44b3a190 c367aa48 c1c94f70 42766cee c481150c 44025b56 c29f0492 438f97de c27b3160 c288d870 c2608034 43357b84 43cd1d84 44b4e0c8 c328753e 4220ce58 43d54190 43821084 c238b8b8 42f38f17 c4aa8b60 c4a59e48 42010954 434f053e c4826366 43f6f600 c346ee4a 42b40109 449c8e5a 44b6e4f4 c29f5b7a 4381eacd c4bac267 43edcd08 c08a6fe0 420a6446 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000048 -> bf724d28 3dfdd8f3 3e989134 42057aa0", + "c4ba44a4 c4a98675 428a4240 44235b44 442b1818 4298e3b4 434517b9 c3e8b168 44613ba8 432206a4 41916415 c4880591 c4538c56 c26c5c90 437ee91a 44a2bba8 426ee3c0 4328441a 437e37c5 44414840 c4b1e11d c062cfc0 434ca125 c4b1fd92 c4ad2013 c05d7740 42749c83 c0add800 43860410 433f48aa 431903f7 44b94354 44ab0082 417fdf80 43913dcb c4404673 41ba7800 c28a1338 42d387ed 44921372 c4aea98e 42f5f0f8 438253ee c496e5a0 c43d3ccf 42e02a7c 43693ca8 44a832d0 c4b5220a c32ccabb 4248ce84 434d8f00 c440fb8a c22f5098 4200c7fc c48b5aca c2b55220 430ced64 434f0c4f c4456aea 4230ac20 c30d3780 43651a5b 4471936c c3842350 c33a56ed 427a45f4 44057778 c3ac5ca0 42216aec 430597fe c4669fc0 4387a8ac 433509b0 435bced8 c4535421 43be3724 41eb4a20 436b869f c43567fa 44262cc0 c2d9b64e 43158d0e 427fe260 447eaff4 4329dadc 4363e3d4 4344bb28 c2db5500 4307848a 436a6add 43e92d40 43dde520 c3229ecb 42ed6445 44913a7a c4a809ae c3371bc4 4350da5f c456d9d4 439467f4 c32344eb 432d6593 c37bb8d0 43d4c0a0 43327338 4392d257 c41d6db4 43fa6dbc 430f52a4 431b751b 4494982e c49f8247 c1fbad48 431f6932 c41fda54 43f89f18 c2d4a314 43937711 c218c060 c422e52b 42391bd8 42906a95 430ae4c0 4475464c 42d89658 4327ecf9 c1107b80 43695818 43067ae2 4268f127 437dbe88 44916f7c 41cd4218 43492a19 43c29bf4 43f6a250 c32df3f4 4384869f 44938bf6 44a7757a c17800f0 43874cf2 439db4dc c3f42cb4 43170a62 43326f34 c44d10d2 436ab7b8 c324d1e3 42947c80 446e4588 c4a51bc2 c2f141ad 438bf48a 44b53776 448d7e58 c34124ef 4334d3ce 448b29b0 c393ab4c c0f20b40 43589230 44781078 440ffbb8 4326cc62 41471635 41fbfe40 44449f58 431a3032 433e81f6 4396f1ec c3d9ed70 c3246041 4326ce95 44712af4 4422cd20 422eff4c 428d4456 44a8896a c4688e3f c2919b32 438a3807 c1f40e00 43ac01fc c2722f94 43223664 440e0c8c 43c82050 428cc134 436433ea 43dcecd0 c28fa740 c344a517 4318a6f4 c2cf3310 443ab39c c32cd9e4 4389687f c36f5650 448a710a c32be069 4310ae3a 44109390 c2cef070 42416fe0 431043ab 44b07e7a 43ec92cc c31c5520 42ae61cf c42e0afe 44670b34 425f67d4 434f8a71 c49c2a13 433b04c8 c2de0381 429153a6 c3eafbf4 c3a1cfd4 c290c7a3 43842d4c c49b2ae4 c4899b77 433e1010 423880f7 c3e6825c 4391bbe8 c329e6b7 41f87b66 43dfcb5c 441328f8 42e71684 42051832 c48ea4bd 44849756 c2db36db 41886cad 44b92a46 44909eba 41ad80d0 4199812e 42917e20 c3875954 c0c6a5e0 437d6010 447c526c c401972a c212a700 4387f415 429eb730 4483ebfc 41df6950 41912e80 431674f8 c466148f c242e2f8 432c51b7 c1e78540 c1305b00 c31956b5 42eca082 437767f0 c4adcb79 423b2ae4 432fcd30 c4b44cf4 43321fa8 41c4fc30 42996438 c3f576c4 c46260e7 c2de278b 430ebaf0 447d6de4 c41f7e4d c26b7764 434e2bd7 43ded994 c488868b c2a97c56 4178b0f4 c46963c5 c475e903 4193bda0 43713f53 c48c19db 444392c4 4140a660 438b53a3 c293b780 43f96424 41596490 431a4286 4449c008 c46f74d1 c1a283a0 43176ef8 445b9738 449ac81e 430002b8 42b4b116 44473dc0 c4713b74 41d5a9d0 42d26897 43c23a14 c49173f1 c2f7d91e 42ac6e0c 447f4b68 44174eb8 43247640 42e1907f c45adcdb c496ec48 c2fc414f 4301004e c1e6ec80 446fae68 c1aef000 42a9e447 c4b085ca 43cac008 42cbaf0c 434c53f9 43f64aa0 4428a4f8 4296f3c4 4348951a 447d988c 4488eca8 4319774a 435f62f0 c40a122f c4b7578a c2c53b7b 415084e2 439e0664 c453975a c304d4fb 41623884 4353b948 c42e880a c32599c6 436a5ad4 443f545c c4705723 c2a89696 434cb94b 44ba0434 c4aceced 4346edec 43921da7 c2c37c20 4338c718 c2c9c64e 423f5dc5 c364be48 4494c0a0 428346e8 43882bb3 c365b1a8 42c60e00 c1f10450 439269af 446e8f0c c4737ed8 c33897f2 428650a6 4481079a c47454ea 42f3ffcc 42b20cc4 43e37b7c c34ed1b0 42964998 4366f983 43138158 44b45ce2 4325ff08 43168c48 c3413770 c4b50a08 4280e8d8 4371c940 4489ed9c 4499eb6c c2b94877 4364c02d 44457ad8 c48d62be 420aba24 4357842a 432158b0 c431876d 42115690 41a726e8 44807a7c c491f934 4336393a 433221e1 c4869d1f c498efb3 4302f3f0 437853e0 c44799a9 44289e24 c28ec0fc 41a45a45 448c2664 c22a6600 42021c90 430a6856 44b4a188 c47069fb c14633a0 42ff998a 448b73ba 43bc212c c31d04de 43889b15 44989a8c c421d8f1 c1d3e078 435b1f0b 438347a8 c4976110 42aef960 42f53fbb 447f2b00 43e170dc 4327bfbc 4309251e c4b1f8c3 c3f72a08 c27a35fc 42db2fb1 c4689d72 447e7cf8 41d14480 424ddcc0 4385578c c448f8d7 43183b56 42b4f421 42f9e8f0 c48587b4 42b59864 42ed1d22 445cb2a0 c46c8711 c305b900 4291f84b 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000071 -> bf5afb85 becbd7e1 bea9a478 431891a8", + "c3344cd8 44b5859a c27189f4 c493a5a7 c4474681 c310fb7c 413c5503 44a272f4 c463e618 c2dd3fa0 432e439a c485eaae c377df48 426a5580 437c6402 c48c65cb c454bae8 c33afa68 41db4133 44ae2ce6 c407f391 428becbc 42fe1a16 c480e4e8 c470686f c1b47ab8 42ea35d8 c3e96cbc 438d2518 4278f358 431688be 4417a31c c3428fe8 433efd8a 434a189a c21e8020 440ac850 c3269236 4339748b c35871a0 c4882ba6 42791d98 41a34b22 43ebb5d0 441e4f10 c221fab8 435cb29c c49d4c9b 42e706a0 4286ed08 4391662f c48992ae c4809013 c338791c 435d77e8 44bab816 c30c6468 3f56f400 438b637f 445a0640 44492974 428160c8 42d8adb2 42f33eb0 44332110 4311b2ae 43573ed2 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3ed57aef 3ed5aa1a 3f4eb602 435f814e", + "c35963f8 43c641dc 4303091e 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c4b3fdd5 c46c2cb8 c2fe505c 4438dce4 c3246388 42e08df8 4359f245 c41e67c9 446568d0 432a2cfa 435152f1 c3deceb0 43070d10 c225dfc4 42a3ffd3 43f6b964 c4aee774 c2fda508 425dd59a 446bbd38 43ef7448 c11f0020 42cba039 c15ea500 449cdcee 430abbc0 43526556 c4200462 c4975236 c2f86d57 42984b72 447b9c98 441a33a0 411ff6e0 428e832c c4a2aff6 c3d3a100 42a56004 41d3ff54 c484b3fa c49fe24b c103b120 438118e8 c38181f4 448474ce c2343258 42cd26f7 c40d7080 c46747f2 c29056e9 42caf5e3 c435c92f 44b28342 423525f4 43920483 c3dd59c8 c3e657d8 c30e8b10 437a2c44 43938e28 c499df64 c1deadf8 42838b0e 43ae9ea4 44140238 430cbc9a 43454c9d 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3e897705 bf75387e bdd06902 4293bd69", + "4462ae20 c440ebba c321b998 c48c3b52 c4b783a8 42c08a74 42790c10 43b2f820 449719bc 42636e88 4323f7d1 42a5a230 c3b49744 c321fe1a 436b4d27 448c41a2 44b06da6 430fc784 42132a86 431d6090 44868c5c 42afc888 4290db9a 448df37e c2f8d940 c3316b4b 43448969 c41fab67 c4436d65 42ad0da8 4126611d 44352360 c4169891 c315797b 414c2976 c4b63f55 44b73792 c3135f39 4390fbd9 448bb3fe 445b3de4 42ba7efc 430a9dad 408fb800 c4180e6c c32bb1b5 4357eb5e c3f6e8ae c37dc1b0 42c1eab8 435ccaca 44b8a5c6 43206cb8 c14f97f0 42d141c5 c2e1bab0 c499a388 c1a554d8 434b94f2 44aa50ee c496f532 431d3e08 42f054f7 c46b0956 43d327b0 42e7867c 429878de c43907db c49b6fea 42d250c4 43856377 447e2dd4 4493c422 c2e02027 4366708e c48c5f2a c427d49b 42ab051c 43329216 c3a85be8 c3e66c10 c299bb2a 4383653c c10e5c80 44b78af0 c344684e 42811092 4478bb40 446101a8 4196d878 438af021 42f17840 c2d7b880 c3438226 436ac71b 4495b4ca c3dc24d0 c2c27dec 4381ce31 41bc6fc0 448062fa c18a5250 42a4f023 43e4c7b8 4485dbf8 431b2f86 421a1628 c3f98d56 441b91f0 c2ef7f0b 427fefd2 c3b937b8 4489a55a c2b03092 433a4269 44593514 c4b3785c 431923ae 42865bec 43c5aed4 43980bc8 c2252fc8 430d73ca 42e62b80 447e6354 c277b0e4 42ed6b0a 448f8e24 c325c210 43105e3a 436a01ca c4b43f46 4484649a c32aa11f 43282a39 44921aa2 c4a5c57a c2e0a970 43439f41 c495719c 4499fc92 430dc3a8 423816ee 43951184 c3d08510 41970118 434d3990 c46cc985 c390d7d8 434231c2 43844812 c2b1aa70 c4a51b6c c2d8d966 438870d1 c3232e98 c4ba30e4 42a939a8 4375de13 420d2d80 421d4340 c2e39221 4385e366 4481f0a0 c3576cb0 c3054680 4321ceb0 445c38d0 442fc65c 42ae8b58 435e2ef2 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000002a -> bf70de81 bea50e99 bdd4baf5 4289ff97", + "c49f9686 44b9d994 c31977f4 c42a97b5 4484b6de c3010cd2 42bd5b70 440100c4 c4681196 c103fe40 430f2f91 44b52b30 c41476a0 4337d9c2 433efde2 c479cbb4 c4961421 431a72b0 42dceb2a c38d3ec8 c48b621c 420d679c 435393d0 44ae9282 c426b7f3 c303866f 42849f26 c4b29b58 448e55c0 c1a043c8 4350b986 c438a2bd c49f29ea c2d9e815 4390c8ac 41babd40 c47f5970 c302c65e 42558508 42ccf0b0 42800bd0 4307e782 42cf1147 44311ecc c3532158 43115b24 423a536b c45b9c7c 4495c2f8 424ab448 434206f0 44790b94 c3ac1dec c225c108 422cc651 41af6e40 c4b1b9ed 42e1244c 43954043 440909cc 44b53328 c2b96042 436fcf0c 44347e4c 445c96c0 c2eba56c 4388985f 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bf7c7871 bdda052f be01bc68 42e44c3c", + "c4449b9a 433fcbe0 4346fbb0 4431668c 446a30e8 4319cc56 42bb5bfb c42f9d37 44ac19aa 4165c720 43022702 c4aa9bc2 44b69f12 c3164278 42a6aa1a 446c817c 448472f0 43136cec 434ef4d1 c491110a c301d938 c0ea03e0 42ef4d52 c4715430 c2c6ca70 41a31020 42a6c67f c4a9c197 43759df8 4330d118 42960664 44aaf058 c4a81bc0 c2e6bb5c 436d1492 43b2ed8c 441be2f0 c321ca1e 43302b93 420ee5e0 44746ecc c2ced4a1 41ebbd64 c43edb50 43718c50 425c4710 43957349 c48586ce 42ed7230 432a2070 438d6eff c3f4ae9e c44bb476 433882ae 432646a5 43c9eaa8 43c1f264 42c6cca8 42b067fe c43306e0 43c526d8 c2cf0355 43505a57 c4b52a5c c40d3567 c184dbd8 43950887 444e8dcc c3ee06f8 4255bc30 4224b0f2 444140dc c41953ea c3051972 42ba9a34 c4558ef7 c3801e14 c312f78d 43375627 4476e564 43243e78 c31c58e6 431d3ecd 43ead558 c4bb1468 431aebc2 435cf567 c4999643 440186e4 c30ca151 43948c55 44ac418a 4474652c c296a32f 4384ab2f 437e07b0 432c7578 c333e7b8 438c66c0 c48dbcb2 43d882ac c2df5b58 4372c210 44983f06 446e5e44 c2fd6663 41afda30 c4a49260 440285e6 c28d1924 42939cfa c11da900 c482f46f c1be7e00 4356e63b 4285d0d0 442f1e50 c33d0834 41692dd6 c362bdd8 442d4754 432128ce 421f2293 c4665505 43d76548 c30cbe26 438c1cd2 44b5728a c41feaaa 42a20e14 4348c0c7 c3cb7924 c461ea40 c11ba9b0 427e6e63 c3f9157e c4111c8f 4222cde0 437d3b69 446e672c 4481beba 42850a90 4302c1d6 c3e26318 44a0a696 c02c3cc0 43747ba9 c3abea98 439dbb04 c262ed24 43806c00 42b46610 c4ae9349 40703500 42f6c721 443514d4 c48f3645 422f8eb8 42ac3014 43fe8598 c43a6baa c3310485 436a90cb 44b0cc58 43f8c988 430e44c4 42c0cd75 44035504 c4374998 c24bd4cc 429127b8 c48a1917 c4697bca c2f1adf1 4331beda c4a33949 c2221100 42cae6e4 42ad6745 c48320ca c3f0a0f2 41948ca8 42efa647 44a0ba40 4483c4ce c314eb3e 42d35563 440e0c34 c49bbe95 c1b51450 42913052 4413988c c3f0f5ce c3046146 432e43df 445865ec 4492f9fc c1b02f70 4350220b c4a039e2 c4647f64 c3129e71 423e8937 c44896bd c4861aea 42af8eb4 42d9ffc8 447c6c80 44a19b3a c28afe04 42a7de95 c3cb49f8 c3e825d4 c31b2c46 42d3754e 4419c35c 44060ff6 430a4d8e 42334a89 42e4eec0 429ab770 422da964 43353961 446a272c c480b6c6 40f31320 436fca33 c4b422b3 43c53430 42e7ebec 42707276 c4abeaf9 c4a118a0 c2f697ec 438f792d c45c6766 c37a0d58 c30d8970 436e0102 c48a0616 4456be60 c02b0040 4365f314 4441d0f8 c469a6a6 430c8c26 42dfe793 c44c87e5 447e3658 431090ca 42275895 c4aa2eb8 c4035a34 c30df9ae 43289d25 43823268 430112f8 c291f1fd 41ffd27b 43b91814 44a02688 c28e9bcc 428af4a3 c4869b5d c481f3cc c2e548b5 42be8e9a c481f23e c480986a c316693e 42bb40e9 42c38d30 c4a52c75 434341bc 436407e7 c4af5348 448348d4 4304cd72 433ee25b c411f453 c4796d54 41d046e8 42799962 444a8a9c 44071736 c3155a32 4359d6fa 449f8174 43d93888 c252e51c 434a4ccd c496583c c4a11c40 c306dec8 428ad2e3 c2d47c80 c41ed4ea 423bd65c 43397053 44b226c2 432bea18 c2f18899 41f2e506 44213ba8 435b2320 41f70150 43941031 c3f4eaee c3a0273c 40b95320 435fa50f 441e438c 44115f50 42d85024 430e3ae0 c3cf071c c4869b2b c1cfdec0 430fab41 c4b16f3e c11e1a80 c2520e2c 431d8320 4458aa94 c2eac980 c2f891f7 43100b2e 4494c466 44547480 c2aa343e 4361d47c c4487ad5 c44cb75d 426dde80 4362f228 44b0015e c1761480 c15b7240 428643fa c494e68c c487024c c2400d64 43245064 c48a9fcd 43c53a14 4334d582 42ff0bb0 c416039f 441b24ec 430927a4 42cfa685 448471a6 c480d2cb 41f9fbf0 4314b9c3 c4698ed6 440e10b0 c2aef0ae 42a7620c c3ae5cbc c49062ec c324071b 432a7ffd c493c152 444aad84 3fcd7000 43165a30 c4aa907d c4b32304 c0ab4a80 4382bb0e 4403810c c4447a09 c26334fc 4385986f c48fb912 447c72d4 c242ad24 425e96a2 41d2cf80 445506f0 c3071aca 42821d76 44a52516 44ade41e 431c6c4c 42006b16 43df632c c47745a2 41be6660 42b65b9c c456d6af c4584c3e 42fa99d4 43944128 c4a8bba2 4474e3b0 c1ec6170 42e4db66 c48bb2ad c2bf5490 c25fdb54 42b50dd0 c451d1b8 44b26ac8 426d1d48 433c64f1 445fdb40 440f70f0 c25d663c 42e027aa c40dae28 c48d0795 42c44288 4337eb62 44a9c632 44960766 4234e620 424d0a79 448e313c c358a170 430604f8 4383dab7 c2df3040 c45bfb69 4275b208 43107bc2 c361a8f8 c3c2f328 4306ba54 42bc53d1 c3864ca4 c4b4aa04 c33c06ff 41ae5c06 c36428f8 449035ae 433bd852 4390de3a c40a5d7a c4281246 c2b1cd56 438fdcb6 44678248 c45b5e54 433b88a2 420ff7c8 c2ca54e0 c456da7a c339e858 4255f6a1 c456e830 c4221bf5 c0f43d40 4354e86b 43c79838 c2313760 42fbe6e0 415edfc6 c40555e4 c46ca793 c2f7b3a8 43063f86 4484e9ca c4a0b90c 43309c14 42bddc71 c4984106 44197d50 c301b092 41ee28bf 44a16c98 43deae80 4302b496 4338f31d c4833bee 448d8456 c32d8745 42a811f0 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000077 -> 3f601ab2 3eb49f69 bea9331e 42cc7575", + "4498eb22 c39eab6c 43083442 440c2370 c49eb6d2 c3155adc 4325d1e8 c3fea040 c38a961c 432f7c62 41f1a971 44ab05f6 43d59504 c3139437 420b379a 4482fd56 c494c976 42bdd17c 42ae4562 4403fa50 44b9dd42 42d14ce4 41a79654 44af25a8 c4525f3e 41d00260 430e8e6d 448d9dd6 4314eb78 42cc8c34 4303867e 4332c090 444ec54c 42cea138 42807629 44b3abac c498629e c304f766 4395392a 446c2f00 443faa54 42d2fdf4 42c04907 c445344b 44baef10 433dc2d0 413c25e8 4412c880 4254e960 c29f6918 436a806e c4005205 44b77da2 41c608e0 432ece25 c446202c c474e05e c2539c44 431187dc 420d1ce0 43fe4860 427f7738 436c6071 43e3e300 426bf0e0 40814040 42793a0a 449009ae 44a684ca c31d6f90 436524a7 44a35e7a 4435f8d8 c19c90f8 438a75de c449138f c2d48240 42f08dc0 43917146 c43f2c81 4330cf40 42d11a9c 42e4be2d c43c529c 44b493ee c323f0f8 432f613f c456a4ca c468814e 433477d6 4373a17d 44296c04 44162d74 c0db1580 4250a6eb c4978ac8 44b52c8a 426830c8 435a0bb8 c20b4a60 445c86a0 c31736bb 4363fb51 c3850078 43073650 430765ae 43340530 42e56a00 43d4342c c282e220 4369a9a4 c3beca84 c3973ce4 c2de3413 438f28c9 44990d9e c4162d35 414aeba0 434c6947 c3537488 44a4eef2 433a9fb0 43534a8d 44b8d472 c41568e2 c33c1788 429c8a46 c43430e6 c411bccb 4301cfc4 42a448ff 446f98dc c49c43e2 c0fdbe60 430ccf37 c33d1640 c4b7dafc 43336d82 43561c84 c485db65 4139c380 c33b2f21 432ffa76 44849958 c4700f6c c1d6fbe0 42d17f8f c2840dd0 42b45e00 c2d233a7 4370e02f c311ba20 44b2069e c2a9b149 432915d8 44759b38 c3586d30 42cf066c 42283b76 42379b20 439a9e4c c28ac65e 429ae15d 446db488 c49aa3ae 4334b712 42bbeae6 449d1fda 444b6250 40cae760 43874576 c3df3510 4475e7cc 412ef2a0 438b37f0 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000002b -> 3f05c4fe bf546ab4 be48d4ba 416d9b67", + "c4888258 449a1f7a c31c6cd2 4418496c 44411138 42b7bf50 41eec542 c4b0d90a 445f01e4 4309e412 4370ab21 44a1da32 43b9634c c3445ad0 42a58b33 447d84b0 c46999e2 417fcd60 4275b67b 44609d98 443f8c9c 42d4c674 42985105 c485c2c6 c38a6a7c 42a57328 4161ee62 c3f1c346 c3253750 4245ae38 430bbef9 c3cea40c 43d32e64 c1d595a8 433454ae 44a72eda c4411181 42f9cd18 437f3d7f 43914558 c47be998 42e6d3d8 42bc5d8b c4935a30 c18d7dc0 4342f4f8 42533362 41a1bac0 43dd3a70 40a89600 434368c1 44b6c330 443a3acc c31cae94 43434218 c49f8c09 437e7bf8 42b3bb68 42bf4a0f c4a8855f 44219b2c 42b7b04c 43333565 c474a7c9 c39a0254 c1d5dbe8 42bcacc2 c4683f47 c36ab400 c29be83a 4336ae1f c3b99454 4411bc20 4200c944 434241ed 44af1300 c291e5a0 c317924b 4346449a c36f0240 4331ad20 403f3f80 43527d08 44a1e8b2 44b593fe c17fc920 433c0a68 42c2f440 445cd33c 40a3eb80 42e5604a 4256ece0 424b19e0 42ec0940 4384cc8b c3447b78 c45d3524 c319672f 4357d299 c4a4a632 44136e24 4336e65e 420a919e c3ec7224 449ca54e c2bd8cf7 42bdf88e c479238c c2a27430 428990bc 4337ab2e c2d975a0 c49f3357 4315ff96 43188071 c45aff2e c4ad25f1 4272c0c8 4281f582 44a3fc34 446f6d48 42cea93c 42f99fc5 44995c1a 44a68bc8 c328fc10 43819b44 4495b9bc 441556d8 c2ef4ee0 4366eca0 c3d33678 c384fe2c 420d3920 435be3b4 4398f6b0 c36881f0 c271a5ec 41611fa4 4425dc24 c479c3cd c1ac6bd0 41da32a1 c48d923c 449b3b16 431ee506 430a4f21 43d4e4cc c413414c 428ab1cc 42f9d0e4 432001f8 44a01728 42d9f39c 42a02f91 44a457bc 433809d0 c3019832 42fafba9 447f233c c39070bc c229f18c 4311ebfc c42af493 4499ce48 c2d0446a 41c99c7e c2199760 c482c90b 431bc38a 436dcc06 440df9e4 43ce8734 c149ff50 43696414 c3be52e8 4415119c c2b5422e 439546cb c4a9eaed 43caa3d0 c2e20f22 4336b9f2 c4b1d7ec 44647908 c2e938eb 43075cbd 43d05910 c3e62720 42e4685c 41ae42c0 c43e231f 44a90570 c3027594 42cc1d84 444ce56c 44b3088e 42e601bc 428f2676 4402b64e 44814e84 43361908 43184cd4 c3809fdc 449172b2 42a58bdc 4389c4f3 c2f92e30 c4bab3ea 43136ed2 429ee750 c41f0f82 c46f3f64 c26dd2c4 428af3cc c46b4a2d 445fa204 c1b69358 43118def 441741ec 44668968 c20a5e30 424b2342 c3c967d8 4482cae0 4179bf60 4360300d c2d8ff90 c482e037 4346d8f4 42f980ca 449a37fc c4a49682 c28f6af6 4289331a 4406e2f8 442a0d54 c2fee9f0 4247f3a7 c496dd0b c41b6243 433d8686 4342aa02 c2841ae0 430a0fe0 42ca2b18 41e7ea39 43950b54 44afc91c c313893c 439260a8 42cedd30 c406f0bf 40885660 4382b35a c34e1b40 446bf4d4 c316040d 432dfc87 c3e2be1c 44afa20c c19a2f98 42c65579 c4b99f4e c2a2ad20 c28968a2 42978e4a 44871a72 c48383f4 41218b80 430f4491 43af3aac c4123551 c2506df0 43009168 447a2d2c 444f8f7c 42821f6c 4377b730 c4977954 c29ebec0 c3105058 43199226 c4b40f90 c4b33650 43107cb0 4335707d 431757b0 c30a84b8 42d89dc8 438275b8 4398a9d8 43add4b0 42e73db0 423e09a4 447fc0e4 43f98320 4252d324 4137a455 c453a9ef 429b5720 c2ebd5fd 430c853f c3297080 4400b632 c262e1fc 42991089 44a8e164 c4955390 c33aaad0 4347d1d5 c4828450 c4120fb4 c143d570 4383eafb 4476dabc 44ab4782 c2a9e480 4393857c 43a78128 4431cd30 428d1928 42ffbd6f c3b637a8 43f0006c 430f1b82 41245353 42400da0 c442b55a 41d91f18 4269fbc4 c48521be 43ec5658 42231570 432f5a20 c42dbf3a 440ddbc8 c3336117 42ddf80c 43f5da98 43c5b1a0 426150f0 430c1be0 c36e83a0 c48feae4 42aaa0d4 42bffbe6 c4849152 449b2886 c29fd650 438537b9 c3b5f06c 43df49e8 c22a84e4 43156820 448311a8 44601154 c32b6163 436d3875 446b62a0 c3d619d4 42aabbd8 4357e35c 42cbacc0 44894a10 4074f5c0 43196006 44187e40 4495b544 422b2230 424a64c6 4497f288 44a4c78e c290cc08 439314ea c497685f c44c3577 43426196 42ac2295 44a784b8 4337bbc8 430dc744 4338a6f9 44a511c8 4409b16c 42e6d0e0 4319e026 c430e68a c48e0b6a 42b087a0 43122da8 43b064c8 c42df9b6 415c0070 42c5d964 449ce45a 44a192e6 4325e1d8 432ac5f3 439ffa10 c452d56f 42151eb0 42a369de c410e6fb c47ed7de 433fa06e 43096547 c3ff3788 c381ac20 c238da68 433e521c 446a9a58 4467ef70 4306b8a8 42a6826d 41075e00 c491cfdb 42d7d1ac 43804d2e c49e67d9 c4b6752e c2d7c9e2 4332cfd5 c47114a0 c487fbb8 410f5a10 4342c6c8 c38e71e8 c4b6dcbf c32f66e6 4267d804 c40c3cee c34d5000 42790a88 435d11ea 44af8448 43a0c594 c2a3a368 436c316f 4419649c c3e229bc c3057e3a 43805590 44318f8c c4966ccf 427ad7b0 43746bce c34e4fc0 c423aba4 42f30d98 4374174f c47e2ec6 c4a35e5a c11471c0 4336078d 44b73bea c4b75759 c32c848e 426c86ac 43ceb728 c3ed23f0 c33a4bed 42cc24a3 c3ddea40 c452afd7 c298f9ec 42f11eb8 c481e6be c492a253 c2ac5a86 4386de1e 446cc97c 44b7ac92 c30daae7 435d3977 44823128 c3b47994 430a2514 42047188 c268c8a0 4420899c c2eb415f 4236fc7a c45a963d c4384959 c3464869 42a439db 44aa88aa c4a4153a 42bf5cd8 438fc226 42e6dab0 c48c3cd3 c30f2236 42e65178 c40ac682 4482cace bf171f00 43201f56 445990b0 c428593d 42779a88 42cee83b 44ba749e 4499110a 43449908 426eb2eb 449cf1de 443a5580 42c4d238 433a97c2 c47ab43a 44b7613c 42970ddc 438af1fb 00000080 -> be53045b bf4e547b bf0e0f3f 43388f65", + "448c404a 448bab3e 4160d1e0 c4a4f50a c35c8bf8 c3238a27 42ea77d0 c4014c1e c3d64154 4297bf10 437fd02c 445468f8 c381e8a4 43475c1c 4384c4a1 c40139dc c41dcbb1 c2ebf276 41d99226 448fe102 c48c3b45 c29fb38a 42ac6b18 4479c024 c3fec7ec c2eaf361 42cb85e9 c48aa6ca 445a6b7c 419e47f8 4308cae0 c453321b c44d04b9 c219a53c 43608ddc c394df28 c413d88c 42b7fa68 43801cc4 433ecde8 44a9ae34 4287b05c 4329cb4d c414a435 c404412f c311e0a9 42d65466 4439b85c 442ad60c 43073634 4354d3fc c242fb40 4488ac64 c2c62946 436da256 44676c48 447b3c80 c23d2290 435db0d6 c451ded3 444e0c7c c2d06464 43258ca3 4466c678 c439a63a 424ec2f4 432b67db c4b7f76f c43514f0 c0faca60 418998f4 4332e628 c3d7fa1c bfdc5800 438c05fd c302af88 443b04f0 4338643a 431db56b c464deb9 448b3902 41dc2298 42fd7063 44a9f2ec 4483455c 433562b2 42e1497f 44b1e0fc 43b28a18 432c82dc 432e12cb 449de7d4 c4bb7f8f 424e346c 436ec5af 441fba84 c4898988 42c2a6b4 41c27a4e 4411d36c 436c3448 c28b7f42 4317d481 c43d7815 446ae6f4 c3101723 423c2c8e c3c4d9d8 c4062c4b c28931ba 41d95afc 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000001b -> bf618487 bdbc0851 beedb33a 428f17fd", + "c42889b8 4376aee0 c22f5db0 447cc584 43798a40 43370ecc 42c16c13 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c3325758 c4b5dc37 c1e1a638 c494987c 4332e2a0 42b5b5b8 4356fad0 c45354eb c40498d3 c34594fd 43892fe3 446c2de4 43ae286c 41920598 42047a85 c48155c7 c487008c 42a839b4 43797604 44b5f104 43e5dc88 c2a795af 4383735a 440fd358 c4a94369 c160ca60 42b6614c 4378ca58 448cfa80 41a02c50 436dd81a 443bc14c c3728b68 43469a52 438c9bd3 c47da866 c3fae49e 42a790f8 43323e03 c3951a04 43f2e8b4 c31ed944 41389b43 c4a790a7 44ad6356 c330fb6c 438a4221 446375d8 c48c2b35 429189ac 430a861c c43d7a57 c2a057e0 c2a7ea65 438bb3fd c4960bcb c3066148 c2ddb466 41cfdd2e c497f7d0 c31e7c28 c31670fe 42da85fd 444cdccc c451b7e3 c3077b69 42f98988 43b365b8 43a59968 43272c60 43787ca3 c3506410 c48ab2f0 c1ef9698 42cf7a5d 43171690 c4211687 42ff216c 435d869c 44b8284e 43098f90 c1153700 430e726b c4657c14 c4936ca3 417529a0 42b4b276 c48b1b8e c4a22e0e 43062460 4356e8b7 c4924c98 43e78420 c0baf5e0 438f3f38 42e441b0 4443728c c2d6470a 437b81e8 4461ce10 43f2afb0 c2a075d5 4283def8 c45ac99d 4486d52a c342f0b6 422ffba6 c4a971d9 44af134a c2423398 43764072 43cc70b8 c19cb9c0 c32e639a 43292e36 44b06eb4 43fac644 c30cb20c 434b38c0 44088d3c 44901628 c2baa24c 432a1a44 444e4884 c4587cb9 42a9fff0 436b1884 43d91d10 c2a9caa0 42e427f4 436f083d c4a799f7 44b64c60 432b5498 42d2fdd1 c43e2da5 c422259a c2c94178 42d5fd9c c4982af8 c36cc2a0 c2d8dde3 42642099 440dac14 c4b3bd5f c32be25d 433cc177 438779a4 44a3af8e 43412d22 43834651 43a880bc 43459d48 c30bb6bf 4389f131 c39d6004 44398290 c2037618 43958e26 c4845ace c445a841 c13019a0 43312b5a c46ebee4 4385496c 42d14754 43468c3a 43436e50 44300c7c c29e0644 4351234c c373bdf8 446b5890 41e699b0 42ab5fa5 43e8f8ac c4944d3c 431145d0 4364c2f6 c4869a26 c4977658 c2fb4cb2 43576442 c206df40 449b6030 c3010714 43174917 447b8f64 c4b73190 432daf58 431abbde 44893ce0 c43a607d c2fa11e9 43816020 44a8392e 43e4b4b4 434033d8 421c0b61 c434ad9a c36fa030 c3337f72 43810f52 43c909f4 c418ce64 c19941c8 437193a8 44b92da8 449225bc c2bec707 42bc8587 44900fd6 43f53ad0 430e5948 41c6364c c4a8882e 44462d90 c324ed06 42af0e39 c384dc08 c42931e1 42fbcd08 432a8fb6 446163b8 44638a54 43004934 426a0419 43bd92b4 4420b9b4 c29615d5 412d31d5 c48cfdd6 44455b88 bff2f900 435b124e c4aaaedc c3fe9078 c32a4fc4 4283a6be c2e2a1a0 c3b5aa24 c02968c0 438e1fe8 443b7778 43d77ca0 4237de24 42897060 c39c8fc8 c48853ee 42f5be94 427ddb06 43425b10 441fe078 4296e398 4393c7a7 439e0f78 c0e6d500 c331f945 437ae29f c292bd40 c4215c69 c30322f7 42b61d68 4367ffb8 c434fc93 c3056321 4234628b c478d372 c488e62e c3458e83 435ae268 440e8320 44943192 42f41654 419b7c3a 4452c4b0 448a6626 42f2f6a8 425df595 c469a5ca 43b159d4 42d94dbc 431813e3 4498ab84 c48b7ca0 c1c63688 430125c2 c49f8ceb 41fd9280 c319c663 4328b3d1 c42894db c4405034 42ad912c 4275c19b c45bf384 c456982c c252a228 431877f6 c2893ea0 c1928000 c33a4ce9 42ab333d c48a9e54 c49aea9a c010d8c0 434c2f45 449905c4 43ea1ca4 c2ed1183 435f879f 44116b18 4495539c 42637868 43814f54 421eab40 4408ad3a c24c2db8 430c4bdf 44707834 443fc248 c335677d 4348b92a c4b43c31 c2f6d930 c1afc9b0 430b7743 c47154f5 43bf9978 43025270 432e793d 40085000 c40caccd 428fc9d8 43536d2c 437bf478 420346a0 c260af34 4377dde8 43c88a34 44495798 3f8f0480 43035a4a c410d302 c3b51ed0 430d57ea 42eeac00 43981eb4 4486de56 428352ac 43221a98 44800ea0 449d2568 42888414 435b3840 c31dc7d8 c3b9205c c2cef24d 434cbb94 43d4bc20 c4a988d6 c05cb900 42b696f8 4477b3c0 43ccc574 c2d38533 42f13eda c4532602 44a7d91e c2b55722 412a9787 c40500a7 431c7958 42fc7bd4 41c908b8 c439560a 43c00c3c c26ec66c 4343a281 439e4004 c4a1fb99 430a021e 42ccc600 44add79c c41504b1 42b4881c 4332adf8 43d4aebc 44abdbaa c2ca4416 428c4b24 c42cc86d 440d0f64 c300a31a 4333e0b3 c42730fd c450267d 420d19d4 434c6985 c485a145 c2a89860 c308944d 43479b7b 43817cb4 43f2ce74 c2ee88a0 42bbcf62 c494b4a4 43b1b670 c14933c0 43779e5f c4b1d195 4397cba0 c32d9a68 4330653c c45ed5a6 c47565cc c2929a0c 4323660a 449a1190 43e6eb40 42bfbc4c 42aae79b 4416520c c4a2c77e 42ba20c0 43420774 c3bd5fb4 c44aa2b0 42dc12c8 41969275 c4ac8eff 440748b8 bfb4ea80 4242f9a2 44998f70 c4679929 42b9ccd4 42c2fda9 c496324e c33efd40 c10b81f0 41861638 c1f69340 c3589f08 c2febb3d 434bd7ee 43b721cc 439cf1d8 c23b5cf8 4220f584 449824f8 c4a54a2b 42cfa13c 431803e2 442e2c6c 449563a4 43355b3e 4320eab4 44a0f440 4349bfc8 43263b14 4383ad3b 4480c4d0 c3399210 42df9fe8 42dc5aa7 c49439e0 44a225b6 42836d38 415637e2 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000075 -> bf66fc12 3ea3f0f9 be93d2a7 4318ee1c", + "44224460 444ad744 c2b5e477 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c4b6d077 4449d73c 430ac4be 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "44b43b2c 449dd0c8 c3454be0 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c444a43e c4581d4c c24c0114 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "44602f94 c36235c0 c320cfb9 439cdabc c4700d78 c3335dea 4345fefa 447c1c58 433f1600 4297c194 438d59a9 c3c12e30 43f59548 431c4586 4340a01b c4213b45 c40b8706 c341a65f 423c6226 44079142 43cc1990 4311fda0 432ae0fc c484943a c4b17bbe c302f929 42c9cbf2 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f01f1a9 3f57570b 3e3ef726 43775c0d", + "43ccf4e0 c4ae71c4 c306591b 444d67c4 c44b7889 42641138 43871a3b 44aa2842 435585f8 416920c0 435a7907 43ba8efc c4a96de6 3e5cb400 42cf3957 447694b4 c291c010 c3452984 429bbb89 c3dfb08c 43cbb9a8 429a3c88 42f395f1 448fb3ca 432b29f8 41f27fb0 431d2e53 44b30d48 c3bc8b44 41f925c8 41422a25 44329af4 4483015e c20d84c0 43110f57 c47fff54 c41f9c47 421bbe30 430827a0 c43ce5b7 442e5d04 c286fb82 436168a7 c2769ca0 c3886eac c3317242 43347c10 c3cb57cc c44908b8 c291dad5 4329ca72 c47ae556 c49db798 c1a644e8 436ebf05 c38e3c78 c484ece4 42d7f6a4 4291c14c 43e56318 c488ddf0 4327ea28 43320a46 44b8fe52 42ae6120 43404ae2 436ac1d7 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> be8870a3 bf4f7828 bf058f93 435d05dc", + "405a2200 446eaf58 420429f0 43583bf0 44b634f0 423d6c30 42c4a2d2 44a8c0a2 44984430 c1255ea0 431b31c6 44b6f6ac c485d814 42c469e4 41d35d3f c4b16dd6 44803586 427df380 42fcc204 43b82814 c4a4cb64 c342beb2 431fff48 c3b3383c 445391a0 c31ac0fc 4375aeaf 443cde10 443b1adc 43342782 43063605 c423faff 44a93712 c2884d32 41ed5a7b 444f11e0 440179ae 42156e40 4214807c 44773d24 c23d2de0 c18f7558 429ee74d c41927af 44221c88 4284047c 4394d4c6 c4744c3e 4288f510 433a9580 435147ad c4057dbe c3bd6c40 c342740e 439244ca c482e0c3 c4b25dc1 bf5c4b00 436f1894 448bc9dc 446544bc 41a8b590 42884f33 44aadf26 c4aa4eac c2e08d19 41a50e9b 446b1838 440544ee c2af9391 42e172e6 c43ca0a2 43438cd0 41e54bb8 4248b3a4 439e1170 444d3c98 c2ded96a 434aaaf3 c48f994a c48e0f10 425d7c30 4298d17b 4454428c c4319704 c31d7aab 43889ba5 44a403e0 c3d8f740 4326bbaa 436400e8 c473e946 44638e50 c2df62f7 41879691 44a1d14a c43805ea c2acef66 42a4f802 c117cb80 43c089fc c3009bb3 431a01e5 c4414708 43a85b50 c1c43ce8 43657af1 44628c24 448cbfbe c251c760 42eedbe9 44633050 447a1b9c 428a5544 4363f642 c4798d79 c40434e1 c203f7c0 4352cf11 44a4d454 c40d3f69 c32048d2 430ed997 4443a510 42acc250 c30039a4 430b1365 c3e96008 430f1560 c2ea61c7 42df6e4d c1f45f00 44b0cf42 c304fc84 4317b9e0 44a602e8 c4864e4f 4342ae1c 426e197c 44736744 c3e1ca1c c31dc4cd 41dff091 44b66cec 42ecefe0 433386f8 42d9f566 c48a90d0 c2b8f4f0 430eadcc 433a423e 447cd638 43891480 c297addc 427ecb72 42ae6c50 4425483c 42bc92f8 4358ea81 c3499910 44b91856 c20c241c 42a788aa 43fc7654 c4b4b20c 431b0296 437b1d13 43f8ea24 c46cd87f 42f71de4 418af4d2 c3f476ae c43df106 431329a0 43351ee7 c45c6e68 c4ad8866 c1358870 42946509 436fece8 447d98cc c294527a 4383e902 440f3f78 4394d9c4 40ae6d80 438745c4 43f1a300 44b4e328 4337db26 4294f230 c38ccccc c42a1a39 42be613c 437af9cd 44a3e5ee 4483b41a c22a0634 43916822 43e3f244 c48f7a5f 428c4ab8 438e3621 43f06ab8 447876b8 c2b7636d 43353526 44279c34 44253f4c 433fa168 4318a10f c43c71c8 422c2b60 c31296b0 4336746a 44063dfe 42df03c0 41cac9e0 41f040a9 4158e000 44b7690a c303ddb5 43503cbf c44e9365 4381dce0 423ed89c 41e4146f 41d27a00 c4ada445 4274d0b8 42e1d4e9 43d74438 411f0580 41de1950 4310262c c47ced40 c3c58864 c2e40734 4381a884 c400a5e9 449eb896 c3020506 438d6911 c4ba4429 c2c11b70 433d6e9a 43864f18 c4871fd7 c485c2e4 c30b3726 42fbf011 c41f1f1c c4038132 c167a700 434a3b7a 44a7a57a 44b86ba6 42b16048 41fafd80 c457fed0 c45bcc17 c3275c0a 43511798 c4a24147 43ba4a80 430b5350 43622c8f 44a6da64 4400357e c1d9e5a0 42c8317b c40558c7 4418be94 42c07bf0 433290e7 446b9b7c c44ad1ea 42903ac0 43657522 43a97e24 442a9ea4 4329a9e6 42e7f87e 44905f6e c439298e c32d2eac 42cceeee c4acaf2c 4498736e 40c6bc00 426e5523 43dbe310 c48686d6 426c5460 4234fa31 44801ede c20ae280 4315606a 42efe02b 43b340b8 c44be2c5 4332bcdc 4311ee00 441e8c08 447ff668 c328ecb5 4333696e 437c2a78 448f740c 430b7da4 435a11fd c40d5fcb 44ae5d1e c17b78d0 43168243 c422eaa7 442219d4 42f1397c 43761e70 432b7308 42b0c740 42a4bc40 41a919f9 c48137c2 c4334d46 428344f8 4279e493 c4a6847f 43b29c0c 42bfaf90 42d0ea71 c3d7cd5c c4151b58 c31119c6 42f3357b 44527c88 c305b110 42768358 41b568a2 c4736dbb c24d9d40 42bbd614 425e14c3 c4a5d25b 445f8820 430fca44 434fab92 44076a7e c47c9afa 43078070 42399a8b 440c2bf4 c4a5491e 4300c74a 421071ee 42856600 44992a1a c2955b5d 430ca288 c4721a3f 4494c7a4 4134a4d0 4390ec24 c485e63f 428a0f80 c25dd64c 414fd6d5 4475ca90 c49f0d00 42a3177c 4379edda c4a439e0 44415d70 425e0a18 41fc56ed 445d0038 4312dbb0 43403d22 42e3474f c393d10c 44b4ecae 3e1eb800 43867344 44523d34 43ab2154 425e1d30 42c032bf c2791040 c4a9cbe4 43110b40 43837870 c486334e c45e4bbc 43129b0a 42b5a2bc 44aa7d6e 444a5c18 c342632c 43251775 c33deda8 4482efda 430d8f54 43395c30 c2f407f0 c4b73865 c32e9e0b 438bb74a c36e9bd0 4439bf14 c2a3b402 4392202b 44a070ca 44aaf900 c334656d 4284f1b0 c39b7638 43cb32a8 c2fc44e8 43235daf 44901220 c4a35400 4146d1a0 436c5939 c4570f17 4478bdb0 42942ae8 438179f8 4492bd5e c3d1dc84 c318246a 4189a9ba 42d186f0 c3229af0 43284646 432a2a0c c48b49b1 449462f6 c1d50460 4368fb97 4317e400 441d4f28 43169268 435e28b4 443ce0fc 4491ffa2 4331bf56 427fff7c c48186c8 4400d64c 4318edec 42cd1f0c 437f72c8 c231cc80 4270f9d0 42ebe50b c4086cde c49ffacc c22db41c 4340067d c4025902 c45d4051 c338e461 41dc0fc3 43c006b8 c42c1cdd c1c54030 4315cae4 c4ae48e1 c11d7d00 c32d88a8 431b3119 c45f79a5 c37cba50 433f4984 42725aac c469fa83 44609cac c33c87cf 42cfe06b 44913b76 c03f2a00 42a316fc 429352cb c28562e0 44615a34 c1c0f170 41c36442 445d642c 43115cb8 c2d4a5b5 41d00371 414c9600 446551a4 c1b759a8 42dc776b 4400fb5e 446d0b38 c31e92ea 4315955a c31316c8 c2e20c70 c30b9d40 4348c8ca 439e6d10 c3b181bc c31924b5 426c7eaa 41a72c40 c28f0010 c2fca318 43206620 c4aabb7a c4a22f09 42c04f60 4379e33c 00000080 -> bf667b6a bec5151b 3e4ffc78 418d6392", + "43e43154 44b288ee c2ade89b c3a71164 440c2424 c0a92100 42ac442e c4b76139 44ba2650 c225f5f4 439217c7 43c6e10c 40ecdf00 c24cd900 4353d0e8 430e0e10 448bdbaa c1f02010 42dddcfa c4aa416b 43aadbd4 c3218eaa 43502a4a c42c43dc 43005110 c290c858 42e743e5 4421ae30 c4b7936a c1ca64a0 41e7a928 43ad41a8 44812f98 430d7de0 429b678a c427fca0 43e1c43c c32f0f77 436ae2ec 43f6442c c39cfa08 42176878 42f373db 4425a674 c463bf2a 4315c076 43922fb7 446a2cd4 44720654 bf870f80 4284d78d c40a6e14 c27a1840 c18f8468 428a8486 c2220da0 c4856aee 41c197d0 437f4bd6 c3c64018 c48d8c80 419640e8 41226d0b 4332f0d0 c3fda50c c263eb80 436e8bd3 43df1b74 c4878ea2 c2002908 43870ab9 4468f454 43e03c58 42931708 4346af3f c4b44588 441e2204 4338fc0a 41fb9f8c 43fc96d4 c3e80428 41a67450 4386777f 421d3a60 c4415a2d 42c7f498 4246292c c3a5fb90 43e01528 42c5917c 4240e2c4 c499bebc c454a007 c213c7c8 4327136f 4482a5e2 438d292c 43023f18 42f62dc6 447e1738 c49b243c c28c07f8 434d60e9 c391cce4 4396c844 c239ae60 434b1f1a 445d78e4 446462cc c2fbf2ac 436af064 c46eae6f c221bb80 c3010478 4184397d 43538ef8 43e71eb0 c0a10480 42cc1ef7 4372e0a8 c45118bb c22201e8 4395e7dc c3a2ab50 c41eec79 42f57640 43364a6e c4419c2d c4862abf 42f1cb1c 43054c82 449075dc 43597e58 c2d3d984 4332cf5e c4b3dd4e 448ddc96 c07e1740 43895300 448657c8 c49bff38 c27e5238 433399cf c2d60f50 44b0bd9e 43340416 4339032a c4acdbd3 c3ac4f5c 433c72da 4284b3da c4937e13 41c3fd00 42f73410 433d195e 440ca86c c402ca9c c2ae448c 422d0cbb 445c4544 445961e8 c1f2ef40 43476447 c4baa5d0 4442ec24 431c2b6e 433aaf7c c43a7fcc 438f077c c34723ed 4352be8a c47bfefb 436084d8 c1828d88 431a1da6 448e8ee8 446b6fac 41602b20 4303df03 c3f2e846 c45e7f64 41b03338 438139b1 c476acd6 43a1e3f4 c29136ef 42eeb218 44459ec4 43b0683c 431dd2ea 43537a3e 439032e4 c3baef68 c31871ff 41eeb2c6 43efe344 440cfb14 42041798 435648a6 c49d2b18 c3eed4a2 c26c8cb0 430aab98 c3af88a4 c425d339 c33be050 43243c53 c4a92376 c40cf5ca 42bdf138 4383ad1a 4459f058 4487b850 42dd4f1c 43353426 c446ea19 434a11b0 c0e6b800 42f8b878 c32fc170 42205a00 430a4e84 4341c817 44169848 c410735d c3219077 436eb3cd c3042428 c3a3cda8 4306cf74 42837704 c4497b63 4477f318 c28082e4 43959b1d 4483b148 c491bc4d c1280180 43865e76 4368da40 4456f9e0 c28985a0 430ceaef 448e90fe c4b3a6a4 4321aa7c 435eebf1 43941c44 42ab2cd0 43057312 4213613e c45c8023 c469d756 c2bd9723 432e94d2 c16f6180 4423d1f8 42c25168 41ff577c c46de45a c441bd4f c329a470 4348de42 c295d610 4307bda8 4263a268 439032aa 42875ab0 445183fc 42bf5790 42372781 c49865b4 4386a9a8 42fd61f4 4347e2e0 c46c0d1c c39e82b0 42cad798 434f28fb c391260c c3cf2f60 c2f816d6 438b79f8 432b85b0 443757c0 43427900 41b41901 434ac330 444be11c 3f686000 4241fe5d c3c549dc c398be6c 42a782e8 42d6d7e7 441e0e30 43fee5a8 433e90b4 42d64267 c3b602d8 44a69136 c2e6ad5c 43779f3b 44590380 441da93c 434795aa 433cb47a c3c0c654 43a25914 c23c63a4 421ccbdf 44ae53ec c4a3dc9f 4289e010 43781225 c4a813f3 c483d2d6 c31f9a69 435ddd89 43313230 4394b060 c22c29bc 4363b572 c4272fb8 439fa2fc 42cbf298 4353ad34 448ea50c c26680a0 43319da6 431f725f c37642a8 c37421c0 c29f099e 430f203e c4832a94 c3c23f20 c310c56b 437f9e41 44381f20 c3c31054 42895464 43901b47 c3a5a060 c393a038 c304d934 42c5279b 44295ebc 4491abb4 c2acaf2e 432d0eef 434ed168 c43e9e2c 42dcb114 436c108e 431b57f0 c2ea6600 41875d48 427c320a 44aabae8 c4135b2d 42bcaba8 4386267d 43f649e4 4489989e 429237f8 432869b7 44445fc4 c4570880 42889198 434f92f7 c4b799c2 c43879b3 434207a8 4281aebc 44a04c8a c348df50 c25e2e0c 4383f2a3 c3385cf8 c3178388 433bd80a 4394d478 c46383d1 c3b1588c 43328ec8 426f9a05 43d62318 428204c0 4322e8d8 4351e4da 44762694 44aaadec 431cabee 430a2be1 43c92dcc 4452ba3c c2a3de98 4321923a 44241b6c 43b670e4 418b8ad8 431ea2cc c453b119 439a483c 41a5fd60 42caa550 c4336c87 43822298 430cd3e8 4231bc9f c4961395 43fa32f4 42c38158 431cad77 c3f92082 4436ee3c 429b3c78 42b7ce2d 449db2c2 42006f60 432165bc 429f4b50 c4117d14 44b48874 430d3c50 41d03016 c3ce7820 43015030 41aff6a0 4251eeda c487cb93 447ddbd4 c30952ae 4376e803 4498354a c300c8a0 42db5960 4336331f 44776c58 43c53b5c 4324855c 41d1ec46 43fe668c 445866c0 420f308c 426339cf c458ed6b c3ab28a4 c31cc72b 438614aa c49ae73a c4b6b8f4 422368b0 428cb3aa 442399b4 c4136aa2 c2eac835 429d113a 443b5308 c1225100 43350564 435a1f59 c4af9640 441a2e7c 434057fc 42ab9075 41f29040 44a04c7a 421fd594 4384246c 44b02538 c495e7b0 c197eb30 42bba4c8 439519d4 44824f40 41e1cc68 432011b7 c3a21bb4 440fc3fc 4309cbc4 4392962f c342da10 43f72a44 c3302c1c 42392961 c445bd3e 44a83842 c3207c7a 4338b56e c43b1676 42e32e70 43099c48 42d54d4e 44063390 c465c560 c33e4e89 4390c89c 4466c1cc c400de40 42721260 42b85068 44567f90 c4499759 43283242 4394113f 4334a4e0 c40c2ec6 422dedf4 43833e38 442ea978 440dc824 4309c20e 41d6bdee 00000080 -> 3f3b6be1 3e82f3d9 bf219f8e 420cbcf1", + "4498b946 c17c9980 c30597cc 4485651c c4b222e0 41c4ddd0 437a511e 44ba8b74 43bd70b8 c1da0e58 42a89c95 c48ec85e 43a5288c c216c7ec 4378bec3 439fce34 441d5a60 c32e7fca 41adb5f8 433791c0 c4682750 c2ecee0b 4361d7ca c4a029d0 4342c620 43294d9e 42d92164 c44be497 448a95e0 41c4d2c8 43531b1a 445675fc 4407dcf4 42a2461c 4389193a 43ebdcc0 c4087c61 4334c850 42c3dbfd c499d5b2 c30822d8 42e6d60c 43396d20 c2086660 442cd558 c1bce698 4355dd8b c45ecabf c4a9bb48 c3157636 4392fd54 44527b74 c4b4de29 c3239fe0 436dd540 c49df574 43b80ef0 41e9f260 42bca946 c4955ba4 c450c4fb 4220db98 423c5aa4 c4a33485 4432cab0 c13e3690 43090c34 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f747b17 be7da3fa be270ef2 4309afd2", + "4455ee94 c497bc08 c204b88c 444368e4 44a8fb62 c31d5f64 42fd1c9b 43946118 c43742b3 c27c1320 4237ca05 c451cb6e c4882624 c2ff644b 43618853 4376ce90 449acf40 42d69c10 43352958 449c7448 44792f98 c33a2f84 43620629 43f1bdcc c45fe137 431340da 4380d7a4 43f0fb08 42f0caa0 42c83208 42aae558 c4ba6c2e 445dca68 42a690b4 4384cc43 447d5ee0 c450f506 c33ff61b 41eb9896 44b5a38a c3ae6db8 c100ea40 42e8e406 c44a023b c479dee7 43189348 420a41e8 c370ac30 c3acfc78 c0dfc740 437969d5 4417834c 448274ce 43440556 434a1f3a c48a31c4 4302d2a0 c3215343 432c2012 c49c916a c439a337 42c102b0 41d86322 4181cc80 c49ca45a c3179119 43051ed0 c355cfc0 c4167413 432227be 42e54f3b 449345f8 4416e564 422958d0 4324b6d1 c3dd69e8 43fb397c 40b67840 43195a75 c406f55d 4454924c c1d235c8 42b41130 c4a5e500 449f415e 41ba12f8 425bc9c5 44654068 c4aa5b2d 42c7e818 42bea5c3 c48cbc74 c2e9bc80 4341d532 435e3f4a 43d5ad40 c36ccaa8 4310a86a 42541b15 c4aa576c c3015818 42798f70 4233a429 c2788c00 c48de2aa 432d2242 4123d0e8 c4417808 c30255a8 c297ebc7 43108f42 c4b07e32 43998c2c c2d0cd5c 42c173ee 446ea164 c2d049d0 c34787e2 43326934 4290d6c0 44aec8f4 423e36f8 42f225b6 43148960 43a6c098 c2d30f66 4307304a 442275a8 448c3baa 431c6b16 438c0aa7 446560f8 c3c92ad8 c1a496d0 438228e0 c48bb479 c40b8da2 42ed5a20 438cb76b 44b8713e 432bfa28 43252de8 42de7c64 4430b6b0 c4209629 c2bc1b17 43217a6a c4507709 440b24e0 43257c38 42758330 c3704f88 c4244fe2 4246c378 420468a7 447d8038 c42a472e 41e2c738 4382e099 44908c8e 405cbc00 c2aca1dc 42e97d82 43448730 c3b5d584 427d0e70 434a678d c481d349 c3ba425c c3035bd4 431c3b25 43fce490 c4a30d0e 420e35b8 43913024 c4a79216 c42cac0c 426bd4c0 42ace76e c3e68c9c 44206090 c2e84a17 41981f70 44ac9734 442068f0 40923d80 43223a24 44353ef4 c3c4a534 c33deeb3 4380e6b3 44364bac 44a0b6c4 c333cb9d 43184d52 c42a29b8 430695b8 42e2e228 42e2f7bd 43bf9620 43981b20 c252563c 437f6756 422710a0 c387cc34 405b6940 42e1b9b7 441006f0 43ec1e9c c33d6493 432ec970 43bc5a30 c41091d1 410ba450 426f169b c41c5dcf c4392886 c21372b8 43807c7c 4489c1d0 c4898908 4328b896 436d9ead c3e0033c c4092a6b 42d0f280 43609b6f c4b5fe2a c496ae4a 429af560 431d66f4 c2260100 c41d15bb 42597204 4362051e c3e80e0c c3ccdf34 40dbb740 4329b96d c45d04a4 c480ba4e 4305276a 4209ba52 c3ec6c08 c3012f48 c2d8dca5 4308634c c38bdf70 448e14d6 c2f0a6df 417cc56a c4881e66 44a1fd94 c0868b80 43196693 4406b37a 437aee40 bfe34380 4286264e 43de6d1c 444968d4 c27ffa8c 4336378d 44ade4a4 425ad060 c3272ca0 42d64efc 440080be 444fb120 4302884e 438b92cd 4430f7bc 4485e6dc 426a1cd0 435814e4 c415bbf8 447d2a74 c1b7f748 438696e2 c49a6dc8 c402fa27 c28561a6 424587c5 44959fee 4402473c c24df934 432ab72f 4461cc74 c48677d9 c32de1c8 4366e122 4489f250 c406bbba 4320feea 4308a94c 446d88d4 c443b99e c317c969 437900f5 c3bbb050 4493b72a 42d39624 4340a681 c4a7caf3 c42bae3c c2acc543 42b65e45 c420c25a 44512594 c2f4b206 437e3191 c486933e 4398c31c c31c8d51 42cf4b37 c3422e78 c45dd771 429be1c4 42bc34ca c4846314 42a73c60 41594770 4323ad2f 441eb874 c4a33eec c32fe7ea 4302863f 44aa77e2 c459d506 431d90c0 41de43d0 4422c418 43b18a2c 40f13960 4284aef7 4336a468 4418954c c326b343 434017cc c3a57fb0 c4994127 c2b92b98 4183827a 44a7bb9a c44f905b 4240d51c 42ae4a11 c45832c1 436eb4f8 c3476764 433ba01b 43048ae8 4477e44c 428dbf10 437fa165 c3d21018 c44713af 432747d8 43943de9 c458db65 448a29ce c28bb59e 420045d7 44905b16 c489b246 c315fd60 43219aad c49c6068 449b6076 42d1a1b8 435e3af4 c48e23aa c4a26538 43202324 41d119a0 c4347f95 420cf820 420435d4 4317a146 c32786f8 445caa14 c2ece84e 42ed81f1 c45af32b c423f0df 40db6500 43858ad7 44a570fc 4400e212 4305bac0 42d1437c 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000061 -> bd0e80c3 3f392326 bf3094be 426b9348", + "c2cc4900 44758118 41a36af8 c466ab8b c48807a7 42fb9510 4219f026 c496d845 c46dbc1c c2a214fd 43771560 c42cc0f1 c1cb0c80 c111b1c0 438be041 43b64df0 43837fc0 430b48c6 43470f7c c3528870 430326c8 c2056100 434ab9a8 44a8e19c 448a02ec 4225a8a4 433c8b4e c4441add 4374c9e0 c20e2844 4204d114 c340d4a8 44a77842 c33dc3e0 4346784b c3b55550 c41dbbd2 c32d3de4 42ed34d6 44491d7c c3a4c3cc c275be4c 433b3f68 44986cf2 432c7380 432f5cae 436f1023 c4ac8920 44ab1eb0 c2904999 4209a585 44b64ada 4402c9b2 c26753dc 4329fb0f c4bb5884 4485bf94 42fc7c88 42d02852 42ca4d30 c461e4ca 430fe0d8 431faf0e 444be6c4 c453f671 c23d1c2c 42cf624a 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bee32c2c 3f5b67bd be8618d7 43623119", + "44675bc8 c10c4980 4313d9a0 c29db2e0 448feacc c338223e 4286701a 44651454 44419380 c22b69f0 438bcbb1 446b3f88 43634b20 c2ae3bfb 42abef28 c401c511 c4984978 42d11248 43357025 c29c6c20 43e03a30 410fac40 43137bbb 4435dd54 447f9528 41dde790 4323d56e 4477b1cc 447e7f6c 429744a0 4273c931 43acfe74 c4040f5a c2e5f282 42ff0bc1 44b6ec1c 433e3918 409eabc0 436f467d c40a2f1b c3da794c c2f405ba 421a5495 c367c660 c39dd2e4 42b00acc 433eaec7 43687740 c4385a76 c1b05608 42373d25 43b4b350 442deebc 4344cf24 42764f94 c4b0c48f 448629ae 42dea09c 43418d78 c40b2cac 41dce8c0 c254b964 439115f7 c4a19e6a c4541bbd c294902e 4318069b c3cd33bc 448d5bbc c2b4ab77 43676f23 437483f8 44b08686 c2b3abcf 4232b61e c3087620 c36455d8 c33376ea 42ddaacc c48e3a7c 44a75cec 43353062 43310efb c39e58d4 4344cf58 41b0ac78 43851886 c3fc277a c4ae7bad c2456364 423ed453 4455d7b0 448e4bca c11881f0 4373e647 44b6bd22 c44b5a49 c33c2ead 428b387c c49d5124 c44a44c1 c2c01faf 43552793 44b40324 4407ff2c 41865338 43466c21 c30280d0 448baaa2 42b2ac50 43395f3a 4465d250 c35040d0 409c5d20 42e98458 4328b240 445a3cd8 41e55b00 431bfd67 43f2f7ac c34f5ea8 c308dc78 42d285bc 3f784000 c48572ce 433f6086 43559820 c1827740 c2bad580 c3131701 4296e07a c39e7be4 4481ab72 c2ba3a97 43861c3a 440bd790 c439aba1 4219a658 4358cd04 c4b2a3d6 44980de8 c1e9dad8 430f3dcc c40d78e2 444bed10 c28d1f6a 42e1a244 c3c723c8 c492fc5a c2c7bedf 4285dd94 43ebc8c4 429cc910 418b7040 43466327 c4a053af 44a1c268 c2efd509 437c68de 44182a30 447ef210 c309eebf 4394351f 44342064 c0dd9d00 c2e7b0c0 43904b0f c47c7946 43b6b35c 42915764 42c43322 c464c922 44867674 c1015dc0 43656293 c4ba0430 4414cba0 c3412745 435d3e0a 447067d4 43b9da2c c2842720 42f42f5e c45317c0 44a37bba 41db12a8 4382e412 c4145768 43b06760 42fe5cf8 4364fa73 c4a7e9f4 44431a14 c343e97a 427d1755 443bbb78 c3362718 42af6d74 4375f785 43388b18 c3cd91b8 c2f70fd1 43622d73 c35cea80 44a7726e c34773f9 437199b7 c4aa1ef0 44574e44 42690c50 42ecf594 449b5738 c2a945c0 c341dbb3 42039f5e 4175b000 44497b60 42d746a8 437338ca 44a0f634 c3ecbd40 427d7d78 432845a9 4463e288 449ff796 c2c6bfe5 430818ca 4482a158 c418ef40 c3458618 432dc165 44b3aa82 c45e6bf8 c3053cae 430eb341 c349d058 43860dc4 433810da 42b1c52d 44a2f874 444a60e8 4300bf5c 431f63c8 44b0faf6 c3285770 430857a2 433253fe 44379604 44a1b690 428edd58 4393577c 43ff47f8 449ba6d6 4319c76e 429337b0 44196454 43da1c40 4330a328 431aefd5 441238c4 4347a710 43341c28 43639318 4452a9b4 c49d21d1 c2281114 4358221b c41256f2 432d4d80 426a0288 4389c89d 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000043 -> 3de6807a bf25f3be 3f40c8be 42362ba5", + "43e76190 43f0e100 43417fb8 c485c3c2 435d7488 c2601040 420b7065 4400574a 440e86c8 4326d84a 433d13af c4b24dc1 4493eeb6 c32e627c 42cd03a7 44a7d66c 443dcc5c 42e5db80 4345dae2 c2edb4c0 43672a70 c25323f8 4377ac5c c4a0a54b 442fb0a0 431c62f6 41c1833c c48abb0d c428543f c2fa6398 42b949a7 44451fa4 c4751bb3 c302c188 41b96f46 4428ca70 441546cc 41c3ee40 41f615dd 4374e620 c380e960 c33e76ad 43841842 c4af1061 c489b7ef 42cd16a0 42802ab6 c3fd9eb2 c3a24764 c2644c58 43735d2b 448699b6 c42e051a c2730c00 438a6738 40987400 c3f04136 c1a42e30 43009f33 44092394 c40db9c4 433644c8 42f96cc4 41110a00 43c6333c 430ddeba 43807188 44260848 c4b48724 42164c18 42a425f5 c4671f7b 4421ccc8 c32d8af6 41bb7863 431fa488 c1cb7ac0 42e51ec8 438d2284 44b335b6 44195a98 42ae6800 436016bf 449cd7c4 c3b088c8 c1eca878 43198242 4473d1f0 c4392f1b 418c5868 42f36e14 c43b3e63 c4826e02 c2320580 42b0f2c3 c2f9ad40 43c06be0 c24a68ec 42fc98d3 c426717a 4497e282 c15f3e90 42c9266d 445f68a4 c492b4ea 42349664 424e1d07 c45fa08c c414abb8 c2551b80 414eb533 43204a20 41ebfcc0 c1dc5380 4392dd79 438b8978 c453ec9e c1113330 42340664 c45c6ee5 c3d24640 c33d80ee 4311cdbd c2979810 c45a775e 434746a2 41abfc1a c401c0a3 445da828 420cb2ac 438b1d86 c48f3d54 c3abf184 4280a0d0 41f90cfd c4437c14 c38d7ae0 433024c8 4374beb7 444a151c c422de1e c2a593f7 4321c35c 4490dae4 42cabfe0 4304b7be 4360bf63 4425c790 c3867720 428e0f88 429fc0b0 c482e308 c43969ba c2f40c41 438a25c2 448e0b60 44ba4fa4 43070992 4334dbbb c4920721 435ba7e0 42fcf6b0 42ffa5a5 44206088 c32e6058 431cd0be 426af2bb 4482e492 c3d493f0 42bf3898 4280a8ef c4273194 43fbc544 c26df8ac 438adee4 c4a27434 410c2700 42033698 438d6fcb c3b89fc0 c435bd4b c2911cd2 4389e9af c48f4334 c3e58668 42db2c00 438275e6 c4682d44 4435e51c c2f4bc1d 42a0a9fc 434c4278 c3df3614 429f1934 4285cf71 c2c82b10 449106fe 42f79688 430ae0ac 43d4a130 43f59a70 431c95a4 42e6664c 44007f5e c1ea7380 43398d16 43161aee 4496916a c42b3ab6 430c966e 42ee007d c37f8940 4494be78 c2e63357 4380ac14 c4380b03 4495d62c c2a957c7 42e8c64d 43fbdd50 c4b173d6 433f0d18 42239076 c47bd99e c127e480 423ed018 438b40c3 44afdd80 c4815bda c18adb48 4278dba7 4411137c c487e623 c2a0a5f7 4358d29e c3c8abbc 44aaf1ba c2cbc079 43400b14 c3af577c c41cde0b 43397dfc 438a3782 4492a588 446ea980 430314c4 434cb765 c4876575 4481bc4c 4330a56a 432e739a 4393a090 c32c1a78 42dd3260 433c569c 440b94ac 4455b490 c2f12751 4272ccde 448b1d6c c4ad4077 40b51640 43627a0d 446c50b0 44009074 4291f1c4 42b4c969 43923110 c0330a00 c0aa5700 42c14795 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000043 -> 3f3dfe72 3f2a24af 3db10210 42704314", + "c4a56a72 c455670a c2766d08 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "443d9660 43f21c08 c2cdd7ad 44573464 c48d5ecc c2e541fa 4385fb77 4374e550 c43ae5e5 c25e3aa4 43506d39 c4b158e2 4373d650 42cdd5ac 41f384e4 4440925c c3e8559c 42dd5b5c 42920296 c494a19f c4524564 c311af8e 4329a3f4 c49fc26c 43d1d040 c2612b50 43446dbb 449acec0 44a42fe4 c1839178 42fbab54 431bb0b8 43bed324 41de53a0 43809f8e 4190ae80 449eae7c c2c727cd 42f6dbb5 42c64330 449f952e c32415cc 43072c0e 449c0aba 449af632 c1333e10 438848f0 42f8c9b0 437b50a8 4321878a 43433467 43968e18 4481ad34 433618b8 43956504 c45959f2 c48f21bf 431589fa 42529814 4445ceb4 4353b620 433eaf62 4344b3b1 445af030 44ad2100 c3131116 42fbeadd c4b71303 4497c508 41ce40b0 437bbf50 c4983abf c3aba87c 42935f3c 42769758 c48ace42 44191e48 4256fefc 42627668 c479169c c30a6e80 c31f7162 42d2d922 c4aebf2e 44702fa0 42ef3f6c 4356c44f 4400fb36 435cf500 4263cd38 42f4dfab c4a902de c49480c9 424bd39c 43908f02 44a850c4 c32209b0 425f894c 438f649d 4452ac70 c4a072f8 431d71ca 4342a7fd c4b4417f c4a12ba2 418ea9b8 429096d0 c47dcee0 444fdbf4 431263aa 431cc071 c240b060 441fd3f4 433fac32 42c7bc0b c2b8ef10 43dd7f08 422faa7c 4391e461 c47d0976 c35d4730 42b64e58 4309103b c4323e21 c47271ca 42e37248 43948f22 4441a090 44264e68 c2d898a9 43505212 c4a35509 4406f414 c2403f4c 421710e3 4334bc18 c2d41de0 c2983720 4390c01f c4284027 437cc0a8 418e6920 4386c013 441bc260 c4885fca 4321821e 42d6fee9 c48cb237 c408df23 c02ba200 42c2aec8 447c25ac 43fc0f90 42e9742c 42e1b38b c3e99ec8 c3059d88 c248f4c4 437e58eb c4209266 43238ed0 c18ac128 43098e46 430fac40 c46e6b08 c1bae710 4373294d c3fa1cc2 448fc9c4 42c7b6bc 41350572 c3f3199c 43dafe04 429ccd94 4331b9ee 448f26c8 4479ca2c 42b86064 423a2b32 c42a45c3 c31bacb0 431219de 4309cafa c44baa59 44a08770 430b1130 42f9ea84 44918b96 c4b20df4 42c931d4 42218c77 c499a880 c2c513d0 428e5054 435b21ec c48ba548 c494410a c274e5f0 43226a4d 44120e94 c4961675 c346d2d5 429fff63 434b9638 c206d160 43394c2c 4282511a 44b10386 c456e976 c12d4fa0 431e3f81 4428be40 c43cb42d 41debe20 437cf5f5 440df334 c4b5827c c2e6e101 433dbef4 c3f8568a c4aa8e28 43265a84 42c6ae4d c48a0598 43d949d0 4325b6da 43834356 44af89da 44b2124a c19d95a0 436b5a86 c226a0a0 c45d530a c1dbf3d0 4270eaa2 c3247f78 43b9d0f4 43151f04 436081ea 44ae5006 43ec3324 c1f203d0 434da780 431ccdb8 c442c7b9 c2405504 437e22ef 4495147c 447f1284 c33b3f80 42297fe4 44937870 442a5804 c2f718e2 43465f18 c46d16a2 4412272c c31c3a04 438ad5e3 435f7048 c498d36c c2de522e 4395974e 4445059c 4412e10c c33df736 4320d37c 446dd8f8 c39b6534 c22bcb6c 41e7b3f9 c485cf8f c2a9ad70 4277f7c0 434e529b 43b53928 c44216eb 42cca460 438649ff c4303340 c4a0562a 433d4b0a 423c7cb6 44a61dd2 c3f152f6 431987e0 43661b5d c4b655db 445347f4 4343ba8e 43639607 422d5400 44a8acc0 c305eb60 43837e59 c341e588 c35a6d70 4324ca26 43812ea6 c4559832 4486e36e c33e1cb0 431b54e6 c31d9880 44aeef1c 433b62f4 43043eb1 c4a0720e 4229d840 c33c80e6 438dafd7 44a4a688 c453a951 427cb300 431b97ba c48ec9c6 c498371d c33251b3 4304d679 446a0244 c42f6d76 4021bc00 41a22dca c38b60c4 43d57f5c 41a30650 428427d7 c4111c5a 4453f53c c2ceb6e5 42844d65 c40011f3 4495c3dc 428d2730 42ff1c73 c4a99b45 c2a77710 42906e30 43929730 c3c20608 c2e23e40 429579a8 431ae3af 443db9a4 c4aa0140 42f8fba4 42c00ff5 c41c1a67 43f4bc88 42ca829c 42d9f08b c3be8458 c20b40c0 c3363baa 438e9efe c3dbec48 44b77c9a c3226006 43737d54 c37d5d18 444e5228 c319fe74 42bbee1b c42a9705 447b5660 42357c3c 41ac175e 42f80fa0 c43991fe c19226b0 4345abd9 c381ab14 c49e5b50 c332d438 42ded645 436dc1f0 c4b8fce1 c2ae0934 42e50c4d 447853c4 c4384915 43209a8c 43449325 c4b0729b 44961fd8 43004120 437dd847 44851bcc 442a7f78 c3333550 41d787a1 c3b6f5ac 448cc68e 41c30310 4336b61c c3e51558 c39a0934 c2da57b2 438a169b c34852e8 444ba690 42cc40a8 41ab26d9 c45a60aa c493c072 432b169a 42bf422a c3419898 44120618 c2503a10 42dd13dd 441b21d8 442f39d8 433d9d08 42630f9a 448c1830 c2aa13d0 c2bff358 42ebe27d c4b611de 444c7020 c2fc3597 43761052 c4608e07 c39c22a4 c2b8b528 43261078 42494aa0 c2ffc5f0 c3470605 427b0dd7 4451b874 c3cb17cc 432ae186 41da3317 c045b200 4487d518 c1d17fd0 438ae77c 44b13aa8 42982d50 c21765e0 4261e629 c3d5caa0 4419f86c c26d7ad4 4344dfaf 44968358 c3967a34 42b193b0 4383f72a c488083c 4485123e 43215910 43499603 4382319c 44a57d12 43077a76 4375bf30 447ca8f0 c3a5a5f0 42decc94 4392d2f4 44103160 c46a104e 41d69608 42da7f86 4465d2fc 449b6c9c 4281d4cc 4154bc73 c4ad9443 c3f51fa0 c220a230 4317d819 c3c7303c c4b251df c18b11f0 4319a30e c4aadfe0 43bb15b0 425adb00 422fd3cb 44308ccc c48bf18c c3361f2c 438b177c c2e89720 c42f144a c12e40d0 432bb93d c4b2adb8 43b66ac8 c3255c68 43331520 443925e0 c35a2968 c14ccbc0 426cafb9 c487a95f c4b7ffa6 43072f1c 439419dc 44320b64 441df448 43076694 4372313d c3063de8 c3809f34 c2a540cc 432d124b c236daa0 c3eae7dc 42d6de4c 428f0d0a 00000080 -> bdf4eb4a 3f2f33bd 3f3820a6 417e6402", + "43d56e64 448ee050 417f2d20 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "44b6f0d0 c37d77a8 c2c802b8 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "4488ff2a 44110454 43045496 44a4f91e 43297088 c2aa69d0 42e318dd c4ae603a 44571284 426fcf58 42f039d5 c4b233be c41ec36c c2ccc62c 43122902 c4a9e1a5 44b16c3a 43242eda 41f923f9 4407187e 4484627e 4315c6bc 437ac680 c49b7413 c46c9027 43210638 418d1a8b c1427c00 c48b5ff6 c2a1876a 43281c85 43c7281c 442712a8 c1f66de0 4329b23a 43d009ac 4400ffaa c26a6438 413b13a6 c462aa77 44b65fe4 42badec8 43055d3b c494e96a c423b858 c2e1ad8e 42b4bb70 4495b1f6 c4756c3c 43059bb0 432e5b11 42bb67c0 c4af9b40 c299d422 432d1ee0 c3baae5c 44b65ce2 427adfb8 43650cdf 43e6e0f0 c433840e 43107240 4388775d c207e8c0 c4943fba 42c58b00 42c32d7c 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f257648 bf3cdd4c be478a9b 42b870c1", + "449dfeaa 44b47692 43061c6e 4497bbb8 448cac28 429b094c 42328c5d c318dbd8 442a84c0 42f30038 43912b29 43bc278c c48bd188 c28d7504 42beb3a6 442d823c c4b64228 4221b024 43025d4a 44873094 c473a6ed 4273d358 4166899c 43933d44 c3de2018 432eda72 42394044 44753164 44a3c512 43474b02 432515e9 449bf3b8 c3844ce0 c2eb55c2 42da53c7 c2f5c910 44a7abb2 424a9454 425da4d4 43aae0d0 c32adc28 432a997a 42aa2fd8 44846456 44587fd8 c33c9b5c 4242daa2 42e39f80 43a88698 42cddd0c 421133e3 c484cc22 44911e28 c3461292 4320490b c4712c75 c3d25380 c33f6a3c 432a48df 44a43f5c 434dbca0 c2a5fd13 431e9334 442bd81c c42d4527 c333ad46 428fe8be 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bf39a820 3f132c7a 3ec1fbf2 423ad648", + "c39fd3f4 c47d61e2 42f79850 c3269a80 4461d920 c20410ac 42a434d8 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "44112a08 4443e72c 428c1e94 4382eb3c c45611e8 c3003e74 438897e7 c3a6a4c4 c4b0aa70 c214d480 435167de c47c5e62 c49647b0 432a4382 41fb7682 c4530d87 c4aa7f61 c30bc97b 43021c12 42b2e770 437c3758 42be4950 43764e32 c457de52 432a1b30 42dda888 439219b4 44187eb0 44170e5c c325a8f8 4334558f c42cce0c 4455bd84 c2f1e643 428ef122 c44b0bc1 c4891dee 43408516 42026954 c3fa9802 44713054 4318070e 4182d8b6 4465fdd0 c447b705 42fe2e6c 435f7273 44867622 c40be7e0 c2db4df9 43652dee c42ece0b 447ad86c 431173c8 4331a504 c4a0a2f7 41ce17c0 4212573c 4196f06c c33b7fa0 c45c497e c2eca0fc 43515fb5 44a623fa 446fb764 c2032e14 42ef8ada 44969c40 44204490 4309da8e 4209b84c c4a37c26 c4a04736 c32781aa 4357632a 44190098 4421f4bc c344b93b 4392e082 44333b48 c4ac1b57 c31a2edd 42f61f88 c292c440 c3fee968 c28fa76e 43083045 449e0236 43b34fac c30fdde6 435affa6 4300ad00 44a9055c 4260b460 423aeb0d 43b00e84 c4669203 c328732d 43941eae 446cc694 c3366250 4305c23a 42500da1 c2bb0d50 c48663b7 42996698 4284b6e9 443deb8c c48139c0 4315a1f8 42e24d84 3f981800 43a98068 c2a6b7f2 42f9f130 c49918d0 446bc280 c2e66f2c 433bc3d2 c01ba400 44b51470 c1891278 42b79c3e 435c1270 c48d04dc 41845160 422b72cd c34b8bf0 44aa77b2 c323a7d2 431e5095 43cd9960 c4b390dd c306e545 42c1dddc c45c02db 44b02036 43286aca 42d5ab19 43cf7638 c48c36ac 42918660 436820b7 44381824 44557a9c c2dfc4d9 438bd58d 43eeae58 c4400237 c33a0901 4372e08f 44b43b1a c2cca4d0 c09b98a0 437b84a9 44b4c3e0 431cee10 41e4da08 42dc0715 43966af8 436b4cd0 42d1bf54 43719b87 c4a34c6a c3ce05d4 42aee718 4314faa9 c31547b0 44b86fda c2f828ee 42359ab2 44937d24 448dc470 433ddeae 42ec64bb c415451c 440f67c4 416a6ac0 436eba7c 44975f6a 43a73010 c19291d8 42812265 449d6022 c41f1f6b 414536a0 426e8fa6 42c7e1c0 c3ff172c c291d0f4 4347c255 c398c558 436480b8 42bae7e8 41dae8ac c3cc216c 448fb8ea 42a122ec 42f20745 c4a2bf06 4434c9b0 c1023bf0 434b8387 c4a72dec 449ad096 4323e374 421efb05 c1d2c480 c49077d3 414bd3d0 42bcaeec c4b59e7f 44541918 c1bc1ce8 43946100 c48ce94e 435e1088 43179768 436b3e48 4478e0b0 430e5d70 43325eb4 42338c63 44029398 42d4c010 42b322cc 42cbf057 c4855844 449b8cd0 c344540c 43032314 44b7ab82 c481d146 42b22abc 4264a0b8 c48a1279 44572e5c c3126906 413faf66 c3b6d3c8 c35743c0 428ff6dc 43036207 445f9198 c4b169f1 425ddaec 433c73fd c488e486 44379bf4 432e4158 436f118b c4b9e507 449f4516 41a31b30 43206189 445d581c c3d2f960 43454654 43206e82 c4694f75 438ae0c4 43374322 43312943 c493e908 c490b320 c29f29a0 4381f854 c4a4f77c c4260bee 430ece14 42d7a682 c333dbc8 448b8e64 c2224340 42fe1550 4489cff8 42a42d90 c28e3baa 4345b08c 4494ccb2 c492c9cf c2fe40eb 42fbc4da 44b3af8e c45288c0 c20a81e0 41e6f489 439a462c c45de288 c2540654 436a0335 445c4a80 43acdde0 42fe53cc 436dcdbb c2b37660 c494ac67 c2959bd1 43505902 44296324 444f9910 41b0da80 43812ba6 44916cc6 439376f8 c2703fc4 424145a6 429ccd80 c4843ba1 4271b050 42af4d64 c4ad9260 c3e7073c 424316f8 42053638 c3866580 432fa968 421b9c04 438582e5 441686a4 c44603df c2c0ca2d 43811c50 449a2b86 c49bcaab 418b8ad8 4379315a c4a728e6 43a99580 432d66a2 43678c8e c4563839 43cf6070 43288ad8 423333b4 431fe4b0 c4029fbf 40971080 42f0e4ef 448a8a92 c424060d 41792c00 430e1622 431f4b48 c4961ab2 42bc4088 430bd83a 44b8fe16 44322a68 c247cbc8 43892c34 4196c240 c35be318 43414d72 43180ff0 42556980 44157fa8 43321764 4372f0d9 c4a6fc88 42963ff0 c328d805 43896573 c45697b0 449128f6 c332a4fe 42fb5b4d c3621fd0 40b93800 412d2a90 420a1937 c4a9f7cf c454b27f c3414371 4303a036 4413c8fc 4463a81c c29dbaf1 43754e31 c3e223ac c4978cc7 43049882 42cbad9a c4448dbb c4b34336 c2c1db05 436e6c96 43e87e04 c34d8ab0 42238c38 4380d33a c3b31730 441c6b14 c28b149c 42dbc0c9 c45e7104 43bcc874 c2ceb990 434b2431 c4aa2004 c3f55d10 c33ec10a 4318805a c4592093 c41d1483 4311e9d8 42bc2114 c38734a0 433f9218 42ea422c 43592155 c39b422c c489504a c1933028 439007fd 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000067 -> 3e6580d3 3f1fd376 3f3f9253 42c37e5b", + "44a0b846 44b61b3e 422ddafc c42fb5e8 4436ec04 43454172 4387754f 4401d176 4418f894 c28171d0 4386163d 44015466 c455024d c32b85ff 432cf70c 43cd3fac 4446cc74 c342dfa0 41f8c8e1 c3efd78e c493add0 4332f28e 425e5509 44af6d0e c3b74a48 c3238b7a 43433656 44917d9e c2ff2b20 c2ca9448 42a7a42e c3c707a0 43e24638 c1b8efb8 438eda35 c4a8de59 c4adc72a 42e07db8 4335d54f c4b04255 43898208 416f6610 43341d12 429f8950 c3969080 42bdf04c 42ddc393 44263948 c48263cd 42cfbac0 42e9e24b c3306ff8 4490c80e c26a7c20 4347f448 442ad5e4 c4ae7a31 428149bc 4385bf52 43e5230c c3da4920 c3434e26 42910f1c c3007198 c49c2289 4112d240 418216c0 444d55e4 c48e5166 409cfc40 433811d9 44b5ab4a c36f2300 c336e3b4 43630bb1 434e59a8 c3d0d840 4250f318 432ec59b 43d2932c 443673ac 4326d000 435f58fe 44145b8c 448dc102 42fab170 43158e7c c417f2b4 44576504 c2dda8e3 4165662a c3bb86f0 44934352 432fe87e 434de514 436fce30 c405a8e2 c3143c1a 430a748b 448d418e 4421e000 41ed1510 43385518 43d20b3c c47f6f16 c23918c8 41807cd2 4480bd86 439d8538 c32581ed 42e8ddb5 c38fccac c498769c c2c9f9f9 4388e03b c33baa40 c427f55d 40e3f440 4331f5f1 c42c4b6e c4abdbb8 42b35998 43940e24 449515c6 c1013a00 c2dbcb10 42126dfc c269cae0 c3c715ac c30499c8 42a34203 c4497b6d c46a4449 42993264 438b0f4b c4781d48 c40a1613 c321bd37 432621fa c1974bc0 445b5998 425cacd8 4352caf6 4416b8a0 448577d6 4231511c 42b74ca9 43d9c1fc c4b024f9 c2d18e71 42c44010 4463fbcc 4316b6e0 c302ee0c 437c244b 44b85e02 43834028 42a2de74 424d8e92 44a2cfa4 c41b938d 41813958 43140c85 c33e7430 447e6d18 c311bd1b 42919056 c39318f0 c404c3ef 42c03f18 42350271 c46fb297 44b3c858 c325cef7 43149068 c39050ec c4af935a c2ab7fc1 41b09de6 4490ee8a 44a663f0 c1aaf370 430c9181 c48b0aa7 4488bb60 c1b65788 434f8647 c4b5e2f9 4485b25a 432d295e 4332aff4 43a872c8 44a9d95a 4226c2d8 4288a7f6 c439efda c47d94e0 c2c34d14 4381f34c 4425323c c39e7fd8 4317d8a6 42cedf1d c41d8518 c48fd086 c3169c00 43791f2e c2d371c0 441226b0 c1dc3768 43902d8a c4149828 43f2e958 c2c302b9 43949db3 4481bec0 c499b1ea c2751b4c 432fd99f c39bacc8 c30865b0 c2eec8a6 43282b49 c3a4e300 c48003be 406d1540 4297ef1c c3bb354c 44902160 c2db6be9 42a04d03 444ef18c c3644d38 c28ee4a8 4318b94b c4a3772c c48cdafe c307e524 415b0ea0 4434db40 43b1b0bc c2e2e988 42cda895 c35ff948 44b1656c c2b027b1 438ecd49 44138540 43aaa7dc c267c4f0 4263d8ed 446c4ff0 4409fb8c c15cbc60 42ae1f34 c46663d2 c3f8b13e 432cd8c2 42405c71 43a0d9a8 44948064 c1a20988 433251c2 c2b92140 c4690966 c2fcdca0 43844e6c c3ef29f0 44461070 432a8b9a 435b43b2 44a134e8 c3f8e114 43044d4e 436b8ca4 c4445e7d 448f0842 c317f8fb 4302ef7e 448e0edc 4330b5a0 4144fb60 4366d01f 42af3890 c4a39492 c1ea3120 4212a8de 44abe564 c4a6a103 c2a087a8 435daacd c466cc68 c4b0a803 c2173584 437f1708 c4782d68 43cbec14 430c61e0 429ce9d9 4458d9b0 c39340b8 422fae44 438c3a6c 440c8e2c 43c85068 c2d65b8d 43157d9f 4484754c 440cd0b0 c33cfa96 42c89bc9 c45665c9 42352c60 c2c5fb05 41c0205a c3ca2958 440cf45c c333844a 42ff1bc1 4444da1c c499026c 4327d588 42b93e27 c2d38310 c463a487 413bbad0 4387a3ee 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000051 -> 3f6ad45d 3ea38977 be737981 43df8206", + "4490010a 43bfd3ec c11343a0 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "431d3fb0 4489da0e c3285cc8 c49fbe61 44945f6e 4304b170 438e2490 c443f496 c42c05ea c33cc23a 43944077 423d0120 4404e0d2 42dd1d20 42e327b6 c2710de0 c2621c00 42079580 430b3916 c29e7850 4413de88 c0e33fa0 42d07105 c2c0d680 c1d9a980 c31e50e6 42d40783 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> bf3113cc 3ea7e597 bf24b803 4341b85f", + "44484ab0 43aae234 c309c7f2 c3fecfbc 44913468 42dc6d70 421b1aa4 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c3c95b34 c4acf28b c34594d0 448477de 43df6c90 c2c28fc0 431445f7 44078b6a 44840f8a c3162b74 432fb662 4188eb80 c48bafcd c3410164 43339c87 c3865dc0 44a185b8 4345e5c4 433f04df c48aa244 43794228 42e9291c 431b3015 c39fe7d0 c3c15164 c2f6c436 4338ce27 441b4280 c46bc811 42e7f778 4123fb09 c4358c38 441fa474 4312e4e0 43067742 448b7d1e 43eb65b8 4309906c 437ba7f4 c4a1f64d 44b8255e 42f829e8 42a6301d c45c1e31 44b45f70 c25cf5dc 438efb17 c38a3d70 44130c34 4327e19a 438fb0c6 445297c8 c295db00 425acb20 41978a46 c3cbdae4 c4a02206 c1f59108 4315d121 c2ff8e20 43e7082c 42d7d548 43199455 c4a42c78 c48d1b18 c295361c 436fed12 c433ccbd 438470d8 42aa5150 4364832c c49af1ae c47dea2c 41b38738 424988d2 444ca940 42ec6a60 c2a4b07e 430198bd c4b80aba c4430997 c2f40cf2 4152ce3e c42f8f12 447a1aa0 c2dff234 436d0b69 c49ef562 447c4c94 c32df62d 4371b518 c447bf25 c3cf5348 c24693c0 43021548 c4510d3a c40aac2f c2f81fce 420809d0 43fb4338 434f2768 42990f58 4377ab1b 44b52ffc c47a5742 4313de42 433d9c0f 449d1876 c0f0c300 c2c1a2de 43792949 4451216c c4b76d9b c12d6760 42922014 c2f57e40 444221a8 c2d8a7f2 4298aa0c 44975e70 42b770e0 42ad63ec 4304ebf8 428b2ff0 449b36fa 40fdb1c0 435c426e 44562b18 c4863dcf 4327321c 430ec177 c3e1a9c8 c4587d76 42c3ea44 4309a63e 4311e020 c3baea00 c33ce306 421ba9ac 44adecf0 439715f8 431198a8 4331cca4 436b5508 c442b2d6 c33ff09d 42953b40 4491d43c c480168a 4335ff82 43101a3f c49b475e 44aceae0 c30057f0 4246d82c 44841e18 c42e684e c2a2ebde 41f0af2b 43db96a8 c48542c5 430583a8 436b4cf5 436e8210 446121e0 c11f20e0 432e92c4 c42f86d5 c4af3967 428710d8 420915bc 442d4b50 c48af2d2 c2bc0e56 42c3b287 43f9dfc4 c487b48b 430a2b6c 42b8058d 4493a88e c4183ea7 4306764e 433fddd3 c46abab4 c3054ca8 c24d0828 42f54c42 c4af6c4a 43a1f040 420c9228 42b713e3 c49ddbf0 44abf22a c19562c0 43778eb5 44483420 c49ad728 4347a576 436bb298 4446f304 c30e0818 4336bd46 438123fe c1f99bc0 448b3cee 42b91744 438faf85 44132330 448d149e c13dbf00 43591dc5 c369e6e0 c4b66afa c301cc52 42dea4bc c40fa35b c45c014e 420fcb30 4237c3fc c3570938 c49afd9c 4161d930 4348d252 c3255d48 c3a88118 c34623ae 436a091a 44041d80 c322b370 41665340 43320d61 c4875fa9 c4a250fd 40e06320 4309eb3d c3efc318 44b40146 c310fd51 42cb1f07 44282708 c37dcae0 4299cf24 425cf2f6 c487e5be 448c1f9e 430fa780 41e7efd4 44544370 c4948690 4088b7c0 432c7b10 c1056380 448cb148 c27015f8 434ec958 449c8342 c416de27 c20dfa78 421e3ede 44897e62 44ac0f68 c2afc2c8 42a53de7 c3efa912 449292b8 41f09c18 42e1d40a c13ef180 442fcdc4 c3444f30 42d2831f c4a1932b c4296430 c2206d90 415bf180 c39e5ad0 c3b50d78 41028d20 432fa710 42ab2b20 44a4af82 4343ceb4 432ff1c4 44a3282e 44b2642c c327179b 42ad0485 4422e854 447e3794 4117e320 41afda32 434e3fc8 c4ae2753 c1a2f498 4367f587 c488d60e c32e7770 42fc9c80 42a31cbb c4172558 414c7380 41de4c28 41c0c81e c497fc53 c46e5755 c062b280 4295625b c29350c0 c3f4756e c2acaf51 43260a3e 4450d550 447f0928 41eae7a8 438b7c5d 44affda0 441c0ec4 c293bc13 42e76b62 446771b0 c40d7988 425c441c 43488c92 c458fed9 44af7776 42cfc690 419dd206 4473cd24 43c988e0 43172048 438f1ffc 433e9a30 c429c28d c2b5ce1a 41884da9 c3c375ac 44a556f4 c10fe410 43645553 c2393700 4486b28e 42e6b36c 42f08180 43246fc0 44b61fae c2bdb3f5 435d52d6 c2e2e770 42818760 42ecdaa0 4305d676 c48c0ec6 c31241a0 c1c5e900 43942158 448978f0 449aa69a 43072d12 423b14b9 c36885f8 c2fe6450 c2233004 437dea99 c2f4b9f0 c3fca9a6 433dd060 431c63ae 4349e988 43136ad0 41b8f168 4191e500 c44a1484 433b5ff8 4317faf8 438ea9af 4289f210 c435e31d c31f1939 42968163 4419c7a0 c4afde51 41e45aa8 42c404c0 447db774 c313a268 43026dde 422a4082 447ba010 c420c568 c308ee05 430e9d51 c494e34c c3dfea50 c287b1ee 418e8e81 c2e8e320 44a7bb5e 4328635a 42957cc1 c4b753ad 44418f6c c30770d9 4389642d 44adec2c 4448bfa0 c2f2d395 432d9369 4355e418 c206f300 c165ab50 433aa447 44689c80 43a9656c c1fa62f8 42f70e2a 4490d71c c4980d5c c346e10f 41471611 4183a540 4487d7e2 42876ebc 42b75db4 c3a2ce08 c495cfb0 432a2cc4 4384938a c448f134 44845ebc c096de80 4330f468 c3f53acc 448e1ff8 c2e4e52e 438e4f22 448a9b7a 43ed79c4 c2804022 41f3d914 c438423f c4327c76 41832a60 42dd1cda 447124ac 4311b2e8 426b6dd0 43181c30 44a0dd06 44a49706 c30fb5ee 42e8a961 44a6ae5a 449ab476 42ae3708 4254b34c c49a3432 448e6650 410a1cd0 43822d55 448055d8 c4098700 c2866b06 435a4f59 c4bb4c12 4491a732 c2b5ec63 438c043d c3976ce0 c2973b40 410bdf70 4298321a 443f2168 44a21118 42cb481c 42a135f4 c4060e2a c405176e c17f1890 437e70b0 c30beb60 c341cb00 433458da 42be09f7 441f3294 c48deab0 4251f4f4 4304f350 c47e13a8 c4a31fdf 430f4494 4394889d c4883940 c28d9ec0 c2d94863 438cf71b 44a143f0 4472025c c2761264 438c4d44 c42805a9 4421feec c3239b22 430db5e4 c378d888 449accc6 4232e864 41591827 c4801557 c29a3040 43030c4c 43683608 c37139f8 44060320 c2101cac 42fff56a 00000080 -> bf26097b 3f2a4f05 3ebd57b7 419cb637", + "42bfcec0 c4994e15 c2b13eaa 4482bc5a 444a7034 c284c2de 433cd23e 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "43a0498c c44d72d6 c3105558 c40bee3d c0884500 433e892a 4322d65a 4348c7b0 4432063c c278eeac 431a0a87 448d0b72 44609908 40794b40 433d7c7c c42fdba3 440c3260 c2d21851 4212a1fa 4352e350 c2fbacf0 c32d69d1 43784174 4357c978 4492b67a 42fd4e48 43117e61 4403f2b4 c359f978 43326e40 436582f8 447d2970 44906802 4300a52e 42d55b45 c40f9b87 c3ecf310 c307a64a 42d2d7c9 44596ddc 44933656 c31b4c2a 434d0b2a c4a418d7 448a669e c306ecc8 428bd173 c3c420f0 43cf6690 4204f834 42084452 c4973ff2 429433a0 4338ab36 43419bc3 c4580458 448f542e c2cc6a24 43046f82 44087614 41dae140 430c7014 4249eb1d 445a7788 438338a0 427ea190 4394b33f 44b331a8 c472b9fb c297af21 438ae7ea 429c5150 449920d0 c29e6274 434e8aad c3e68da0 c39f2574 42cf54a8 4355d455 442b68ec 43a512e8 c320cfac 41a7612d 448116a6 44882870 42803728 42c973ce 449ec780 c469a3be c317710e 4305a17c c496eb03 44330368 426b5890 42b6db08 c4abf2be 44b11074 4318828e 4313ba98 c4598e7e c47642d3 c2d9039a 4283df40 c4011889 43ef6ce8 41b631c0 42813a91 c44ffd40 c4220b27 c2aa8842 43773de1 c48d5b82 42f9baf0 429aea8c 41f6ce4c c3854728 446b12bc c2a3b888 438b96d5 44a0344c c3e68e88 c32cf347 436eead6 c4a6e300 449007da 43025ff4 436e563d c4330fe6 c4b3898f 425a0388 42ecfe4d 421787c0 c421d2a4 c034d9c0 432b7fd9 c3b20658 4497e88e 42a7d548 427e286e c41162c7 c2a85650 c323eece 43437238 44969e00 c413825d c29d630f 432b3843 c4aa9c3e 43619390 4313dae0 42984374 44049de8 44a9e712 4198b0b0 438239e9 c4947d57 c335e9c0 c310d598 430ab300 447a428c 444a2ce8 432ad47a 4288d6e2 43dd8664 449ac3fe c29ba462 437d414c c4a93e20 c48837ee 42987740 431cc1d1 c494a29c c491f9ea 42434750 430e0713 c436e780 c3578930 431b16f8 4363fa53 43727240 c42c7eb4 42c1dd10 4350f4f9 c482a6c2 c389ac40 429dd7e0 432c4548 443163f4 43c1f5b0 c196d388 438d955a 44486198 c42f7fd0 c26e7f64 43259c13 43069b40 4491c530 4344b6ea 4394655d 44bab3e0 c2d543f0 40397300 4388b3ab 44903a8c c3cca1d4 c3163d56 432e2ab1 c3fd7698 c498d4ff 422c0090 434e00cf 431aea00 c3aa99b4 431130a4 432d7718 c4b1492d c4423cd0 c3340f43 429ee3cb c4557269 44386b88 c31f1582 43039ec0 4409e9b8 443a7884 42bf1b6c 437cea48 4442d7e4 c49b7372 432428d8 42e91895 c33ee508 44958b86 42cb04ec 422efa2d 44451270 447a87e0 42f128a4 436e866f c422231d c48a4bac c2d92d2b 4344c7f4 c4b352b6 444fbecc c22f7e58 42f0ed4e c3917604 4457730c 406f4a40 42c43bfb 447e26fc 443d3da4 42dad3ac 42a62609 c3cec058 c49a8d04 c2dc79f9 4245bd45 43bb0ac0 c41fed9b 42f50a80 42a26ccf c46e7692 c442eddc c2d06578 434753af 43c6bd10 4438f624 42f0ba7c 42840dda c3354ba8 c432a003 4336425c 4209a9c2 42505e20 c2fab220 c223e170 43887fc4 c3d48884 c3d50974 c1d13d68 43920423 436459b0 439fd1e8 4136a360 43505faf c48c87b3 40ac3300 42cb5ae8 434db871 43a47474 43f8330c c306abb9 439592ab c4035130 44b51d08 c1730ca0 436cb232 42e0ef70 44321950 42c6bba4 43485bee 44b6621c c409e318 4311b6b2 4331572f 445e8134 440e0184 42bbb16c 43881291 440eb7a8 c408dd46 42de2304 42aeb27c 44840e66 447a54fc 42878e0c 4330e54f 441eab00 43265f10 4130a0e0 423f9c45 44b8a874 c48c3ed2 4205b238 436a7d53 c4968f03 44abf8f8 42cf6cec 4324f979 44ba129c 43adcbc4 c250f55c 433e0b9b 43a456b4 4450a6c0 434277ce 42aac7cb 4435b268 44a95014 431af326 43086a1a 4448620c 44835790 4341d7e6 42bd6e55 44916c58 4494b9f4 c30e09c2 43186dd3 c40bdb1c 4490f206 c32bf04c 43936508 c4599988 43b0938c 42833104 4381bfee 442e715c c499ae82 c1096ec0 437d0b06 44a145b2 c460d57a 43231a12 41fcab01 44a80ade c480b0cc 427b74d0 41fb8f46 44825a2e c387c8b8 43054bc6 43666a97 43fc1fbc c4991e1f c25a5dac 424cec8f c4867939 c41c6bf4 431a85cc 42891b16 446b443c c42de3b5 c2df4df2 42273870 430921c0 c3a8f25c c20e6f08 4394d129 c490ab9a c48c509c 412f34a0 43471a72 c2a226f0 c4a903b0 4015d3c0 432e6ace 44a5ef1e 4499d186 c27995d8 435dfb3a c4436ad8 c4a0e42b 4265a540 43881645 c4a78505 c40e6d66 c294d725 423116f8 c4385a52 4282e170 42af26b8 4309ef2c c45e17e4 c427890c c33e3e62 4349f458 44b3c1cc 445f8fb4 4137c700 432c9da9 44386274 43f7fa54 4337e4f0 435b50e0 448f49bc c46f215b c2aa55a5 433d72cd 4380c01c 445e6c90 c2f04080 429a1bc2 44a7c924 c4813fb4 4338fc36 43616470 43baeda8 c4096254 c331717c 429ca7ef c49ff7be c41b66c1 42be1dc4 4335cbb5 c38bab0c c49b2a92 c1a5bea8 4285e2cf c4b22934 4480fa4c 420c2a84 424f83b5 c3b1cc8c 445472d8 43420cb6 43307f09 c491cacb 449e27f0 c33f38a7 43837526 c4b2de8d 44125f10 414f0590 430eb684 c405675b c2136380 c020aa00 41c09c62 c40b61f4 c423c18a c3391530 434a224a 4435447c c41b2c87 c0a23d60 430d6247 44a060a2 c3c6febc c294164a 4370cdff 442eb754 c4997a3d 421636b8 43612623 c45a475e c4a6c580 430be6d2 42666e15 c477573e c3a77e2c 42526b04 4355d509 c419d81b c46ccc19 c2e5ebca 42ef63af 44435698 c424fd38 c2b7c891 438a479a 438abfac c3968068 4318e124 43618a8b 4465fc54 449f6702 c21ba64c 420e8122 c4190b90 42c07500 426a52a0 4361b9f8 00000080 -> bec8cc36 bed699a9 3f51a011 424a56eb", + "4459d734 c43c7f82 c2ba84a5 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c3c683f4 432c4258 c327cc85 448ddf62 449fae90 42703c60 42d5f736 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c39af474 c29726c0 43275656 43dd7cf8 c49719ab c226d8bc 4289f5b8 c3fa10ec c45a9a9c 430c4158 438c9c50 c4221560 43e4d5ec 42d11c50 4382e47a 43cf3444 44356a30 431b0d00 42175f86 c4a1b2a2 c4aa960a c2afc075 42b4a5e4 44b03fb2 c4afbedb c346a1f6 42b71994 c431cbbc 42800840 43368d54 4213fe66 c2a6a800 432c3fe8 430a1ea4 41447c28 c46ad882 447e9c04 43478466 434593cb c458a5a1 c4b2fdce 42f4b3ac 435be3f7 c43b0517 44853408 4339e988 433c2549 448d373a c2e7fb80 c2cfd8ec 427d5c74 4444e3ec c44430d9 c2a0eb6c 431e9257 446124f4 447910ec 42b21480 433cbb1e c49861d4 c4908ea6 43302d12 43757736 c439e39b 444127b0 c16ca9a0 435cad4b 4466717c 443e24d0 429114d0 43719c48 443651f0 c44264bd 4319f318 41bafd70 c4439487 4329a660 c33d76df 422d277c c4a289c9 c3a650bc c21896f4 437276fa c424239b 444c560c c28789b4 429b9c5d c4351350 c3fa866c c2e9dd0b 42e1c65c c48fab9a c3b047e4 41aa2578 4218153e c49ca80f 44b938f8 c135ae20 4318ffc1 c3a1b81c c44444c8 42f5a148 4236bcff 4451fd0c c32f65e8 c1bd5108 43214be2 c3dbb14c c439730e c2b58742 42a1500a 44654fcc 43a1b7cc 419f3230 43564fe6 441d6978 c4876f99 41452310 43151ce8 c35b1ce0 c44b17ba c14d66c0 43138a23 43099028 c402130d 42916c10 42e527f6 440cba7c 44583024 43398bfc 42a24618 c49ba600 42c76f20 42b214ac 437a31c0 437641c0 c423d068 c33f5a51 437d7cf0 c3fc95ea 4467a640 43181c00 413b0f74 c4a50a33 44ae02b4 419ce9b0 431da126 44798c4c 4482be0a c235370c 438dcb73 c2dd4150 44b877a0 c32d8b80 42650dc7 444acd40 c3fadb00 41f706d0 430d7db1 4442d138 c49d6a70 4305a12a 432deef2 c41e5984 c4b1142b c308849c 42b20e46 44907442 44261e8c c3170641 43063518 c48f8aed 440f643c c30cc394 433d3f7e c3e29874 c2e38e40 c208fda8 4332bac7 4450262c c4757795 41327400 437d4ebe c393bc1c c4b3d44f 42e1bd8c 4213e8a1 c2c56460 4332ded8 c330dbc3 42a49b6a 44194a00 434c9a40 c3280e94 42a5cda6 44b20c08 c40ac2b5 42ad9268 419a7b1e 4464fe0c c4279b24 42462b78 4229094d 4429a7cc 44abea2a 43027a18 4369dc7c 4480eefc c31be070 42fb3ba0 42c6d497 449ce4b4 44b9c37e 428cb53c 43343e48 431d0618 44b9a7e2 c3067d30 42afadd0 c43eca0b c4a2deb2 42f453b0 42d0d73d 43f57538 448beb2c 42b32200 43293726 43a6ff24 4494c3ae 42654990 419ec3d6 4437d4f8 c3b095ac 42dd33d0 431b4abf 43129028 c37a1098 c31ae2df 430a7d96 c4654d8b c4b7a8f2 c2c8a36c 41787078 44382fd4 443b24e8 c2873f6e 43579d54 44931e52 c1ac8400 429f3c28 43930ed5 c482cbfd c31a5768 42e5310c 43607f18 c2ad4cc0 c4174c6d c1a7ae68 4380b2bc c4471b8c c4271ea8 c307c220 438e5502 44648d68 44521168 41ca4d20 43257877 c452d99a c473d767 c338b932 42456859 448f5c94 442587a8 c32a571f 429c845c 446d5bd0 4456c2e4 42000220 43898be0 42fd0e90 c4b5e993 427ab978 42317b7d c462c107 43f56460 431918c8 42c000b0 438fae5c c4adad70 c33c0b3f 42a556f9 44afe45e c4343ad6 c2e9296e 4389fa59 44831d0c c4146fcb c2e48a82 4390ff0d c46b452b 445d204c c07c2f00 435a0e94 c3082388 433e0ae8 c32108fe 4306d877 c3bc6500 43195888 43294412 43509532 4423b294 42c8eb70 c29744a7 4293619c 43b4b4cc c4abb7d8 42c790a4 424bb975 4495017a c42f00be 43302090 427b20b1 c4852128 4457b44c c30556f6 433e8e21 4211e7e0 c4809a3b c236d198 431f2c99 43581308 43abc52c 42b63ecc 4362ba9d 429481d0 44a4b972 42831e7c 4341f375 43468c30 c30f47a8 4328dc70 41b7a3ac c490dd42 c3e85134 414edcd0 43084fe4 44a84ac2 44b758c8 c2a2b495 43743095 431de260 c4a00e89 c32cbe29 438a592c 4484f19e c40fe4a6 41e7d6d8 434b6f2c 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000059 -> 3e632a8d 3f468f54 3f1746e3 41c900e2", + "43580970 c41d34cb c3107c21 c388d7f0 c491389e c31e8000 4373a5ae 433eb878 44122760 4290f6f0 42ef5912 c4905252 4360e0b0 c1afa6f8 42dbd0db 44945e00 c4a1e21b 42efe494 42a8107a 442d51a4 44025e76 4114b2a0 4381c39a 436a8fe0 44ad2982 beecfe00 4328728b 44671f4c 44934f24 c2e2b689 42e8c0bd 44ba54e2 c444c984 c3237341 4324d482 44199b5c 448e3c56 42a3f080 429ac788 c3564878 43c2d17c c237abf0 42be8cfe 43ad1e68 c353e7c0 c1c80bc8 431a7c0e 43b88d2c 43616688 43378c66 429f1a1d 444c7010 c384672c 42847be0 437248f6 c39d561c c3d6a5c0 420b80dc 430ba1ac 43aad9e0 432c2380 434701be 434c846b c2826c00 c40b350a c23deac0 43843dbe c244fbc0 449a3454 425f8584 416bde02 c3cceb58 434a76a0 4302af38 421d6838 c41e88f0 c44b1d40 c2cbf9ff 4254a252 4291ae30 c4bb4479 432955a0 429b2837 44a2bb84 44b2caa8 4216c54c 4333b1c0 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000015 -> bf4402f2 bf2451c4 bd2b4cbc 43127df7", + "4420d790 446cd7ac c29f2eac c4358f90 43b1b764 43147a24 4341628d 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "439b7560 c3670fa0 4299269c c4b602c1 441eddec 432e2c4c 438daa5b 448d2a9e c45d2d96 4208084c 432dac72 42145a20 c47a8dce c31b4044 43092060 449e85a0 43a9ebc4 42567828 4367b38d 443198d0 408e9800 42b02084 4370e21a c411dd7d c4661af2 42d9f070 42bd3d7e 44282f14 c493f30e 43339aa4 438f8cd7 c2bae4c0 435e7e08 c20a930c 438de18c c495b717 44ae1eb4 43426492 428ead8e c417cd67 44b84990 c31fddd3 42f5b2e0 c4bb7345 c4b8a46e 42de6c5c 4392108d c445f945 4484a6e2 c283d854 41381d23 c4452351 4489f3f2 433f1066 42ca4bf3 43729710 c43a1083 c2c47139 43783813 44a4c642 43d77570 c2e1613f 4369953d c436ef8b 43c240b8 c321c8a2 438d09ee 443d6720 c47919e3 c281e9f2 438ff802 43bef2a4 c3686940 c153e670 436227bf c39445c8 c3fd772a 42ecd028 42c0c717 c37e8220 4460ac54 c331b257 43833936 444ab4b4 44a66e12 42aeb1f4 43384882 4390c180 c49657b6 c25af848 43801525 441d678c c47b98e0 c2b64ed0 4347a5d2 444cde4c c3fff686 c312c7ae 42eaf741 449a87aa 447edf74 c2dfbdef 41ee2776 42419180 c3b8d148 c2435cd0 43763d5f c3948634 c448c6ef 432542e0 42a4e84b c3044ea8 44ab353e c215f344 424a352e 4383d234 c3e458f4 c347b831 42c91e38 449a2cc2 c1827680 c27d49e0 4347802f 44648a7c c206da80 c2c92c7d 43103369 c4831836 446ab31c 433ce1d0 41f68fa4 c4628530 c35fd7d0 c236b318 4330d8c1 436db9a0 44b6d880 c268ff88 42f838d3 4345be90 449767ec c2f00178 42e73d6a c46b8ccd c49102dd c22b488c 43647655 4441b128 c489e508 c32d91b6 43055ce9 c40081e7 44709548 c1819b60 4303145e c0b2f400 43489d98 c2bd3dbc 418f7eaf c48b6778 449bad26 42835d40 433488e7 c433ee52 44800282 c33340c8 4196c9a8 435439b8 447835f4 41c1e570 433815b2 44b905a8 43a0d298 42c5160c 414242ae c41a1252 44b30ed8 c14fe380 435282dc c49791d4 c165b180 42a39ab8 417423c3 44392454 430c7280 42c2826c 42eec5fb 44aeb53a 44af9c84 c3291efa 4159655e 44281adc c401be88 c2bbd0c5 4346b9c0 c4435792 43a7e9ac c31e5aa9 42dbda55 c4a47621 c3ce5898 c2fdf064 438b75af 435710a8 c2cd4a80 c1d99bf0 435b37d4 c49f97b1 c30fa860 c316d27c 4320fce8 c4963df9 435817a8 432c9f24 434194f3 c45906c0 43db1b8c 43087a60 4358d9a2 c496aaa1 44030100 c32e267d 4338b581 443e500c 4310ab18 431675fe 434b4064 c3ed05f4 c497a858 42d64598 434ff668 448c03d6 c48d656c 424ff87c 435eae02 c40c8567 444fe5d8 c1ab6010 42b7056d c490716b c4b35d43 c29dc791 431efe8f 448181d8 4329a610 432534c6 42587256 c39cd1dc 43c648e4 c1bf8818 43361b60 444b0f60 c3a3be18 c2caeb42 42f452c3 c417a422 437064f0 c30293a6 418670ac 438672e8 4447359c c240de5c 4392ee8c 440a34ac c3330df8 426ba3b8 43929460 44a5c4b8 c4625e3f c28fad9c 4307b22b c46147b6 43345f50 421d884c 4200c595 c3c027d0 43188d28 42cdac80 4286605a 43cacfa4 44280844 c2b74150 4357d729 43e92670 c474396b 4324c0c8 4315ef65 448d38da c4409645 c1ce2fe0 435e6d54 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000048 -> bf62a926 be8d822e bebf5c5c 420d3985", + "43afcc58 c3ed1830 418a0310 c4040c65 44771fe4 c217f0b0 4388d848 44a3ba06 c459747a c2f22d87 42c8d636 c4b8fba6 c39f3b44 c2e7807d 436fca54 c477a1d1 c4b5ecad 42c591b0 4378ae6d 44b2a250 c3a79cdc 43123c5c 43197527 43fe7e60 c40471e9 407d9c40 43233ed4 c47b71f6 c4961166 429f10c0 4367281c 4383d7bc 447758b4 42dd5148 4382f59c c43c0fa9 c34521c8 c334d0cf 435b311a c3ddeae8 c41f0e3c 429ee1e8 431f0e1a c49fe146 c398fd40 426df448 436c59f3 4416f1ec 440e9da8 42a56a28 42987152 440d7434 44998cee 424ba684 41a08dc8 44746300 4484f25c 433d07be 4122740a c4074e33 448d3a12 42c3a0c8 437caaf8 4206bd00 c343fea0 42b31d28 42753928 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f4f4320 bf118d34 be154c56 43180f61", + "442c0744 c4060c86 c3115f9c c4b1e568 c2ae1850 4296becc 43520000 c3de9728 c36cea70 c2b6ad01 434da8a4 442c09dc 4475611c c122a760 42f7f820 c2b11b00 c49fbf9c 428ebde0 42897542 443571ac c4ab6faf c2286fb8 430fe5a1 c4a9b684 c3935cd0 c11d1ec0 43279557 4487ae78 c4ba7789 425e6040 434d7e49 c2a92be0 c47c81f6 c2611548 42528cc0 44b0b672 c432eb14 42826558 4309290b 44a49198 c3e86688 c124d8e0 4307b6c7 4416b0b4 c4029e12 42105530 41c2aeef c42c89aa c328cb58 c337b3a1 42e52f73 c4aa7356 44b1e6aa 43161c00 42c17a6c c483d974 c429a267 4327ca3c 433eeac6 44b9d348 c4851c16 43032298 42de557a 44538848 43924f88 c2edb210 432e286a c2c0e740 c401548c c1fa2fd8 428d3e45 c3857c74 c4430ae5 c2bd11a1 42fa2da3 434dc830 44acf628 42d0a27c 435b42bf 4469a9a8 c35df288 c2b53f40 43033e6a 44ad40de c4264274 424dd6e0 431a3f20 c41ef675 c4a4eaa0 4347731e 43543ff1 c3ed0c88 c4acd24a c1b68fa8 43703465 424ebe20 c48c7a74 42725350 421febb1 c48d6392 c4b271f2 42028868 438da585 c4b347d0 4478c780 4333dcb0 437399f3 441e0ddc c2818390 42b867b8 42808f1c 421c5440 c46295da 42f9d764 432f28eb 448b5990 c3875dd0 c2350d50 431c145d 44afd586 441a1be0 c2b1972a 43003636 c4004c64 44284d80 4312d43e 42ebaeb9 445ebec8 c2b4df20 4317da2c 430a8762 c40eaabb 43ec1ec8 421dcd30 436e58dd 448129b4 c3fd6c60 c2262370 423f26dd c400803f 44725880 42e554a0 4374cb54 c3ff6cf8 44699710 c2fc7dd6 424f225b c44cde82 448c0992 4328e242 4224ab23 4432e958 c48419d8 c3123454 43031208 443899d4 c4748865 42358700 42c08f08 44ae3cc6 43695dc8 c34496b2 429fb679 43942cf8 c41f85b9 4316f514 43811064 4394e3f0 c4b229d0 42b410d8 4326c252 c4b66727 c4369878 c301fa25 425115dd 449d0e46 c2bdbdb0 c328d5f6 432011de 42f01bb0 44273e60 c30dfd69 438aea92 430eef78 444c1e48 42a3b934 4263f95f 42898c00 c46f24cd c3377e04 434c704e 44233288 c49681c0 c305bb5e 4363c114 446bf310 43095650 c2e75199 41b265c4 44a2c5c6 c4006bdb 418f6d58 4289208b c483de53 c3b18224 c322729e 4315c861 44b140ac 44b745ac bf084e00 42b51982 c4977b9c c49782a3 42cdff64 42a026f0 c349b5a8 c49ba319 429a9758 4379b8b8 4377f2a8 44218290 c285d932 43034120 44b55c54 c4a70604 43012e46 4389aab6 c4996c94 c3637558 c287119c 42ec5c6f c435db36 c4ae3036 4205799c 428e85de c4715f41 44a627de 42dc2af8 42688aa0 4405b530 c4500430 c2f88068 4324eaea 4408dac6 4445a230 41ee2f10 433e455f c3ee45d8 449f02c2 c291826f 435d97d7 448433d8 c3ada968 c180c1c8 4292da94 44ba07e2 c48bfc92 c2e1591c 4214bf0c 433020a8 c470cc1b c22e2ce0 43291020 43ec57ac c48c6346 c33fe822 41dc78a0 42169ba0 430ac070 c32e9c92 431801f4 c40eae7b 42a38780 c30ca90f 42e4cd75 429bd790 445fde38 42bc8444 4293aafa c26df100 c460010c 41ec22a0 426988e4 c493b987 43984c7c 41032cf0 4383a0e0 43633400 c3caeff8 c2e3de59 41c767fc 44289348 440818e6 422ba3cc 431acf02 4478a0d8 43d351e4 4316a7a4 432b7bd1 44367570 42269d60 c31c5ee3 43708570 4487358a 447652e0 c20033c8 42d0aa59 c44617b8 c4961722 429a3120 42869a5f c3a36a4c 44bad2fe 4235b868 42e347f9 439db790 c44ec660 c1b83ce8 41d1fcd7 439db45c c4846660 c0c262e0 42537f3a c3fd5ee2 c4b6ffbb 42d3ee78 4340349d 449d7e16 43df836c 41366670 438556ae 449e31f2 c470e550 c1143b70 43911c93 c498e791 44512b28 c29af952 42b5075c c46ec17d c464977d 425be074 43140869 4400f9f8 c4b4e900 42805450 435cb480 c4a20ac6 c43b946e 431dad9c 433a16d8 c46228c7 447074bc 4334ae78 4336f0a2 c4b09930 44acf632 c1679630 43800a5b c4a3ae58 445aaf1c c2178300 4334310b 4355c6f0 4466bc0c c2b368e8 428f1b02 428027a0 43dceeac c2bbe60a 43799d0a 449cc1ae c47b6858 4315bf82 4300e0dc 41e44140 c4b82f88 c11a68b0 42c9d676 c3de9d00 c4ad1ede 41c14d80 434c5338 443f1c34 449dfc64 42954fc0 421d71ec c44cac71 448eaf6e 432ee2ec 423ffcb1 c40ab140 c2fda230 c2e4b487 42f63f1c 44596dec c4a88aad 4321e2f4 438253a6 4435605c c31b8480 c2ebd4f7 4303f950 44b5c99c c4a2058d 42975974 419e19f6 44a756d2 42faabb0 c3254432 417de140 c22fb5c0 c4832314 bf9b7580 418a663a c4499f0d 44306a00 4304d254 43467d47 c48e1f5c c4742185 43420f42 4343d9d3 441d8ddc c4893612 408f0ee0 430f7bea 44a90074 c23c8520 424007fc 430f18d5 c494744c 43a753a4 41e55ec0 4387ff56 4479d9ec c487127a 42944174 43513154 c448eb13 43e57668 c309ff2e 4350be69 445c3eb8 449c5e66 426910b8 426723c0 44acc958 c4694a4a c3086fc2 41cedfc2 c4531fb9 c437ef6b 42c2a714 432e878c c2ddede0 43410900 42a86c04 438058a0 432a4c18 c44b53c9 c326cd83 430ff6ff 449e28dc 43bfd178 432671c0 4383b3b2 436bde90 438c4cd4 c2f65ecb 4211fb7a c4a8c9af c4850e77 c2036ee0 4311baab c4b43187 c416217c 430ae1ce 436ffeeb c20abfa0 c3e66614 be423c00 4366e676 c402f6c6 4343ff48 c2cfa312 43802892 448a1696 c4b9dfd5 c1bea920 42afe5ee c35428e0 447afe00 c313f530 412ee75d 4351f228 4410cb94 42d2da00 42684e5c c4bb2c3d 444be500 4209d810 42e8fe68 44ba574a c4a22bb9 c34615b6 41fa1980 447cac8c c428896f 41992618 42654bc7 4422dae0 449c8a1a c25c7054 428e02fc 00000080 -> 3e43d4c0 3f5f20e9 3ee71bc8 427a6b20", + "449eb7bc 43f32040 c2e3ce43 c4a278c6 c4b9692d 41edb8c0 42599cfc 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "44b888e6 440347be 43203318 449544c4 c4022ea2 41681240 434f9ceb 445b2988 44226f04 42d032dc 4241765d 44469c9c c4359f53 41c1be00 4269e065 c4b6d2dd 438b6d3c c18b46c0 42b4cb74 431af330 420e1940 c13071e0 438a5cc6 c4299e8f c43c76ef 41b4c7e0 430011ec 4450c45c 44a2cc88 42d507dc 41570d1c c45669c4 c49fe071 c217435c 436ef7d4 c4a5a8cb c3693b10 c2446cb8 42946eb3 43be6338 c4ae1b45 c315e93e 43453ce0 c315a680 43919d34 41b4a5d8 43846a70 445de95c c451c84a c3324a92 4301a8e8 c48f5210 448cf4b8 c24d71c8 42564800 44361bf8 c497bfb5 c30fadee 43464eaf 444a7284 c48b142c 43213a2a 43816c24 44a8dbd4 443a49b4 43274590 43526f3e 44842420 444b3fe0 c31c7156 43352978 c455366e c446b825 42707dd8 431f9ef2 c3aa1238 44751654 c14267c0 434e4305 44103234 440552ce 42320268 432bd6cf 448e7272 c3db7f5c 431d9efe 42d82ce1 44178c74 c437961f c3354e91 43909f0c c423e8a6 442aec94 c19b2eb8 431a5ccf c489c1cc c42ea5ca 429c4940 435580a2 44062c2c 4488fcb0 c33d7570 4189ba5c c491b9e5 c2d7a6e0 c2f27a2b 43850075 c44dd18d 44855fa8 42d2e608 4389d303 43bc917c c2d7c7b0 4336d468 4212e960 42566860 c3e87f2c 433f4a70 4337052e 4484dfcc 436fd690 4343a2b0 43372d06 44283330 c484c12a c298fe33 43177795 4454a6d0 c4824f7b c23abe00 42329997 c48a372d 4448eb2c 434725b0 4379d1b5 43e31dfc 43818f44 c1aaa8d8 4302950c c480b693 c4b744f6 c31aefd1 437f74de c1c9b8c0 c48a7c7a c2823ed8 43770d22 444b1e54 c3d2fd58 433ff94c 436e6ad2 c41e515e c4967954 430af5e6 421ac866 448d142c c3546a40 c29f81cf 4390fbfc c4814346 441cd07c c3204e49 41f985a4 c2a5bce0 43d835f0 42e3aeec 4381624e c2cafd00 c48ab549 c1bd9680 438c1111 44956000 433b4758 c1c07568 437e7c01 c2c445a0 c485fe0c c31dc652 43362222 44679898 c1cfd3c0 42ad982c 43050440 c4759262 438f75e8 43043ab2 419bd6b6 449daf0e 44959812 43344d10 4294e2b1 c420aeab c260e1e0 c2bf9949 430bd3b1 449a846e c4aca788 c2498f7c 437fc304 c3e6d9e8 c2778800 c26e0024 4343ce88 449cf84e c4a955bc 431bb99a 435cae20 43ee51bc c4b9de3c 4252a90c 435eb8c1 c40446b5 441b4a2c c3095ab0 434a8c4c 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000035 -> 3e82d2f2 3f6a1db6 3ea095f0 42e9a803", + "c4925295 c340f330 c33f1bc6 443cefb0 44a3ffbc 41d73440 42780e78 c45318d4 43da9b20 c204aeb4 42c31dc7 44b8910c 44a1a054 c1e75c58 4368e97e c4356b1a c43d66e8 c2887650 424a8161 c49ee51d 41869c00 c3165905 4356d5c8 c4947760 c3bd491c 43267492 42af01f8 c45413f2 44957820 41fbda48 42d04b5a 4390d074 c3053db8 c2d26532 424957f4 c1022d00 c4aecad6 4216b1d0 43273130 4454ffb4 c2e7e060 42a00a10 42fd9156 c2a690f0 c36252f0 42855c8c 41fa2b00 c45e071e 44ae52a2 c32dca75 430f47e2 447564e0 428f3500 43265338 426c8a65 444f46b4 c4773182 42a794fc 42ef4d19 c4b38d8d c41600a6 4338da12 42cd9292 c4a25ccc c498d6e8 42a44e30 43259c8b 44117f8c c41e8ac8 c2b6e68a 42960c71 43e5eb7c 4457890c c2664088 433c541e 44652b70 44261220 c2d4ba99 434f1065 441b54b0 44808bda c32eaeee 42a65fb4 4479cbe0 c48ed4f5 bf826380 41f89b20 42eea450 c4a228dd c25ba578 42d19706 c403b158 c454f0e5 41057010 43165c4b c014ee00 c3b3daf4 c28376de 42f04a53 442461f4 c48ab563 c24109f8 4389b9e2 44111d68 447ff9d0 42f50c18 41ac5ce5 c4792b1f c41555ca c259ce10 41cf7648 44a39eb8 c4b04528 4288cc58 4276f245 c44578a9 441d5218 c0a7cc00 438e72ba 438e7648 43c70f70 4346ba22 433fa9a9 449fb564 44a6af88 431fecc0 4308c9d2 c42f1a14 448b88b4 c319b822 43056262 c3ab5ce4 4484dab0 43382448 43315445 c2db5d00 c48405d4 41bc6c50 4394ce27 c40c6540 c2fe2640 4321f5b8 429e8df5 4418c6dc c4102a25 c22f1aec 42bec9ec 43073e30 c3ec5420 c2ca2999 436ef1c3 449373bc c3a85f84 42e3de74 420c4e20 c48983e3 443db210 4343c902 4363351f 44a58ef4 c3c45698 42da9fe4 42bf7f45 c46c1c8a 44a4673e 42875890 42072b2e c4a1672c c4983ff2 42abf854 420ef7d6 c482eba6 c169bf80 42582e04 42474e63 442adb00 444172b0 4329169e 433d4069 4321cec0 439e05e8 431cd91e 438afdf8 43bb30d0 c4025239 414e72c0 4395b603 c4a17597 448c34e6 c1b42568 43580c6a c4801245 44686b0c c333e432 438dd613 440a4550 43a3d280 c33284e0 4367ef66 43cfe5ac c40f9caf c2dc1a57 430cd035 43bf3a40 c4800cff 425dbc50 42fae23a 443d7aac 43dd4140 c26223c4 42edb5c9 4477a7a8 c3c0f814 c2f3f4a4 42d6f620 c28a1320 4482f2f6 4288b678 43818c16 c38cc5ec 440061b8 c342f5be 428582ab 43e171c0 c4b9d4c0 432c1da0 42d9c5de c3256c80 440f8f84 c1967d68 42319136 44192bd0 c48076fb 433fcdea 42a257c0 c3b348b4 c330e158 c2a2b8b0 43113754 440cbd84 c4892e81 c2cbb4a8 43045cb8 4236a8e0 c4a1df29 43181f4a 436e43f7 43ac40c8 4420992c c1550d50 437c3289 44a45f18 c464eed2 c2615f48 439146b9 c4190fea c4b09048 42f0a098 433eae16 c44bd188 c417cd65 43354962 41de0a9b c46519fc c442f283 4288e840 434d1b22 c3a23c40 44a89d24 433643e6 41a36604 431dcc50 c45d8756 c3037ba5 42b1bdf5 c35e93b0 4387fe14 42906388 4332c446 c48cf216 c485cffb 42b4ec04 435de938 c44e78ea 43b0b66c c2ffc900 431dbf35 445fb6b4 c4b6f784 4333ccf2 42dfc30b 43d26234 44022c38 c2d19567 42f63ba2 c46f4699 c46ce485 c2da1302 42b3967b c39a301c c45b5af3 c2278d98 434ae856 4441d9dc c34fb600 c2adf2dc 435ec58d c4b2b37e c49acf5b 41852ad0 4356862a c3e2fbbc c452e0a3 bee36a00 420aafea 43565560 c450221e 43069bc6 43313fe9 c4a5130a c47dc0e6 4315cc38 42f041fa c4bb7300 439c8634 c226e49c 438475ce 44aefa5c 4452ed44 c3239942 42a02a5b c3cd1e48 c38dff88 c2fc3400 4389e8e2 4439ea68 c4a4a46d 433ce762 43703e25 c3f72234 c32047d8 c0b31780 435838ec c2b12890 c43fd0c5 c346f218 430436a6 c473fe94 c482253f 42fee3cc 438ffaa7 c3e4912c 43e206c0 c2e3b861 429c9de1 c3fa73ba c4b5ada3 42840cec 425ac70e c4ae592c c390b514 42d5ab84 42a07dfe 44ba1054 c416098f c27ccc60 438dc8e7 c4aeb7f1 4376d010 c2823ffc 431e0ad4 c43b53f4 c4ab8842 c2ced12a 433bd617 4403bd7a c47c767f 4323b662 4365353b 4398920c 44b1d98e 42a37d44 4375f650 44ad7bda c489cd71 431d9df6 4358a536 c46882e9 44a87334 4205bd1c 435e62a0 c39c29f0 446e9b10 42cf1874 438c194a 44069d3e c4402a21 42abf400 426dce9f 4496d784 c4a543ea c23440d0 4335cc03 446cd17c c40fe8a5 42a69908 42c4ec89 c3883110 43992e84 41bfa7f8 426ccb01 c493a8a0 449970aa 41a7b210 41dd1149 44156008 44aa08ca c2b05106 43823a72 c38d2380 43c22570 42caafcc 420a7721 44bb01ae 439d3ca4 c31a28fa 43074e3f c4223773 c40ead88 432d7f46 43073e40 c31aad08 4433117c 430d7532 43274d58 438262f4 c49183fd 43472974 4347ce37 c3632970 43858084 c29d4eee 43347b01 c3a609ec c38117f8 4249ca84 431725e2 c42fb2ad 44148c60 c2d5f5f9 435c8ec0 44ae10ea 4483bc9e 42d3b150 42b23b72 c4118ca4 c4142818 4215f348 428e575a c465dbd0 c427e182 c33f77cc 421b5a82 43fc9138 c48b7e20 42b0f758 42e9244a c4a6ad33 c4b7c18e c1272a10 43344a5a 44aad1ec 43bba764 c1c20908 4376e71f c402734a c47ae106 429c760c 43339396 44b383b2 43bfd2f0 c3057584 4333d66a c49e8b77 c45b3d06 c14ebda0 43372beb 44b1cda0 43727db0 c2d2cf79 42b8fd97 425adfc0 44573a94 c179ba60 4253d1e3 434b0380 c45e0eff 4327cb52 42ab8c09 44108c20 c4350657 c1dc32d0 42a8561a c44edcb2 43da02c8 42d86ec0 42d8a9a8 c3841950 44a7e41e 4332b2fe 424ae8eb 43a05278 c4b822a7 c2d637b8 432e090d 00000080 -> be266088 3f4520cb bf1df1c4 430d7fdc", + "c48f8846 44a52b50 42e5c694 c48cf9d0 c39ffbf4 c121ed60 436a5068 c468f080 c4a1a2fd c30494a8 426661d5 c41c9144 c43c12e0 c317246c 42a2af6f c3452278 4493019c 42b00ea8 42861539 4499f99c c3cfce44 c1da0160 4308c561 c48b442e c46c17d5 c33d6d53 4341e247 c4977b72 44053058 406d3d40 432ae02d 449440b8 c4ad21d8 c3133471 427ac396 c2f74350 4397729c 41dbbab0 4382778f 44ab2ef6 c254ef60 c33a1792 433125d6 4398fd1c c473c964 c317b946 43548ec0 447373e8 4493e952 c302f67c 422fab24 4211e080 c3c49550 c2f0a289 41fc310a 43878880 c4b2aac3 414ae0d0 438d224e c3c7a200 447f7660 428df5a4 431e6e2f 43331af0 43aab4f0 c2b8f981 42a6b2f0 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> bf5ac8f7 bf03af75 bd90e6fb 411b08e6", + "44855028 447b5c9c 43357804 44850b0c c442d88b c1e54c10 42d17b63 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c3f506cc 44072fc2 c1e4fb60 44681be8 c45fc986 3fff9900 42f78a6a c4ab879d 429e60c0 4307a4a2 41d60531 438901a4 c3424b90 c32c4b38 4340a51b c09bae00 c4900c3a 42f3d848 4321a721 c4b53faf 44b7120c 432277be 4382d34e 4373aea0 44900ea4 c31d1d9e 42d8c6c0 445c3404 43ec0fe0 c3148121 43698cc7 4439a548 443023f0 c2f94688 4331a0c6 448c6052 c4ace475 c33b8b7e 4313fdcb c4b8efaa c4797513 41e3e510 43614ab1 c3814488 c4a531f0 c2716b18 42e026ad 44460b1c 441127ec c265c12c 423839e3 43b94ed4 4463d06c 4307885c 437f9e63 c4a9afbf c4636e9f 42c56268 438b2c1c c49818ff c47ab546 421dee80 42f36c61 c3998394 c4a1e861 c297cede 438130ae c43de0c3 c1d24b40 42cc60f4 430f3bb2 c49bb974 c400450c 40ce21c0 43802543 c3791668 c47c2978 c1936478 43214e89 42d23bd0 443f6b6c 41f0ad70 421c12b8 c4154583 c4b9d903 c30d121d 438dd8f0 44948222 c3edd544 41435c30 434e7f81 c41bd52c c493d218 c23db7e4 437dec53 434e0c88 c46b7f26 c2786f68 42dc6f0c 443aee10 c1b0e2c0 c31df01a 42b23c56 44a44682 4494ddf2 c338292a 42bed8fe c41f438d 44b794fc c1e00810 438523a3 44361cf0 c44e4345 c22f8a50 42d8b977 4387c424 c0822700 c3264dae 42f815f2 449dd89a c3c84d98 43382f44 438847e2 44acc46a c49e4a2e c3051e8c 4392f1a2 44a7d494 44033e06 c2af85ca 4299f5e4 446f4ac4 c492dd05 42da0190 41b263a7 43e11b3c c41434d2 c30733b0 42fe50d4 44ae4d94 448448ca 4279cda8 4388702d 449a4ba0 43dc35ac 432de7a6 41ebff3e 4421a4a4 c4aba864 c2c78466 41f27d6a c49556c0 44a94dc4 c1f11ca0 42f20279 42c10260 c4612c11 c2965065 4381b9a7 442c552c c4a4bf3b c274c5c0 433babc3 441cb764 c461bb6e c32e228c 4341fdc9 c30e92f8 c3e42ec8 42974990 42bb1bf1 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000002a -> bf3c6c06 bf2c9643 3d7b695d 40da222e", + "c4003f39 43cadc90 c2cc54aa c4a740d7 44b93950 c294e000 424e0869 c49603b0 c431735e 43221ee6 4305126e c45914dd c48b0c7a 4313081c 435046c4 c3a566c4 41f5c880 c19f09e8 43949759 c414a249 4402a96c 4321a744 431caa36 c4ab3302 c462dd18 42a9f1c8 4332d25c c415c4a0 43ac25b0 c253c430 42e0d1bf 44ad6e7e 442f0ad8 c1fb2778 4321ae04 c3d744a8 4401540e c10baae0 428b6324 44bad350 4422c810 424fb45c 437135bc c32eda80 c469cbbb bf242100 41f1fbc3 c4632ffe 44a90726 c32ee720 437cea2f c443e4b8 c4179fa9 c33a11a9 413bfe3c 4291dbb0 433b4560 42857ec0 43813065 c423e00d 442dd264 43092106 4316b503 4494684c 431c7eb0 c173d3f0 431460f8 441bc44c c3e92e7c c28a3888 435a03f4 c4af79da c43fa79f 4344d54c 43339605 c4aad990 c4936da5 c32e63c9 438100e4 441556a4 43d5ea50 c237e740 42debfe0 431c10d8 42b40da0 c31a44d1 434abf8e 4414ebf4 c37d8e60 43477d54 43704754 c4b96962 43b68d1c 4329bc74 42ae88d3 448c5514 c485449f 43209be6 4385fc1d 4429c71c c4b38a05 c25c96fc 43809e34 43b94698 c3e7d3dc 42f47564 43952e37 c411af96 c315db08 4338a72e 43030fa0 c099c800 4469c118 c3090e87 43434729 c3e5f26c c1a1e540 432d451c 42e821b3 c33a7d28 445ef084 42dee284 42bd7b02 c3e74478 42c6f560 42a9616c 4301015d c406e8fa 44293bb0 42a872a8 438777e7 c45cff9b c47424c9 c3147834 434e967b c424a413 42c322d0 42b4d73c 428bd00c 442853a8 c48e81f8 c261c3c8 42a4235f c30a7430 4373d0f0 c2a37795 428475c2 c2d5f1a0 c420e971 4327e50a 42f0f5b7 c4586ad2 42d6ab70 c19a8458 438bb8d8 c4410863 c4a14755 402beec0 4210d08a 43c8957c c39d2f64 428b6200 43323b38 44339dc0 c4a44e55 c2e64e8d 42cfe018 4409227c c2765ee0 c2628af0 43761cad 4448670c 4429f374 426217f8 42cc5b7b c338eed0 42b48d20 430757f8 4367b82a c444e138 4255f340 43326880 41a06eaa 44656e3c c3ff9ba8 4296abac 434c2beb 4427123c c46137f5 c1cf2610 428e1f3a c4b1d292 43cb8a54 41e91f88 42d2f370 c322bf48 44511780 40670f40 42f75bdd c3c4443c 44b0e756 408d71a0 4393ce82 44a023d8 c493ea7e 423604d4 43169ab2 4493ed1a c4894dd4 c06c7f00 4358a24f c4495399 44359ff8 430d2540 422e6fb7 c3186e88 43d156d4 42db5c44 4300de82 c3bdbb34 42ff5b20 4221dbb8 43161c25 c4aaec80 c4840ddb 42e6b2bc 42408d27 c481d7f9 c40cf01d 4314d7b6 4349463a c4b399a7 c320eab8 c2275ea4 42ae22a7 c4b8f53a 44acee1c c31cf2c8 435519fe 4421dfe8 c45e60cb 42dc11e4 4334c85c 441cb5c4 44270d1c 433f98a2 42b882df 44541f54 c3012098 431803b8 4373cba8 c4b9c780 c4965352 c3409b16 4379b682 c3c220ac c4b10865 433044a8 436bf6a5 c4091c8f c254f9e0 c2872058 4332e46a c432b01e 4478657c 42992c08 436db583 c3e5d754 4382ab74 c31c5aac 43178847 42bf9510 c49fce5c 429b3fac 426d3826 44489aa0 c4b6e772 42db5a54 42ce7398 c47859e4 41632c00 c2721ca8 435411e4 c34bdc58 c4a2c828 4277f708 438aae31 c3585f90 434e6498 431e114e 4392ef84 c4b3d242 c400aa9d c23aef6c 429b7a15 448ba6c4 c466798b c28a4666 43844622 c4afc616 c465a8e6 432ebf3a 42858402 c3e43c48 c3a20260 c2b49753 438bf500 c38e64a4 4482ad02 c33059ad 42e3d438 c438b576 43b2cdac 423082c0 43759c6d c4896917 43c972f4 c30bdd1e 4285957c c472d651 444a25f0 c2644674 436b9cdb 440ff544 c48aa82c c14f93e0 428a058c 440f0384 c2ed1eb0 c2a1e8e2 4330af0d 440ad318 4494aa32 c2a7d767 439262e7 434b9880 c4822384 c271ae38 41acec08 445abd90 44282e14 40d7d800 43320728 41e82980 42dd0f20 42b41da4 42fcbd32 44239818 43542408 c31fff18 429e19bf c4ab9d79 c48a4119 42a13a40 42abcf01 447c5820 c47fd4a0 3fc12700 4292347a 449f2912 c4a0f58e c2cff51d 438df73a 43189158 c23bc500 428a94c0 42e3393c 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000005b -> bf397f8f 3edcca64 3f099ebb 40dfdbe3", + "445070e0 c42dc61c c309f5a9 c4922459 c38fbab8 c199ac58 42a68c2a 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c22fadc0 c48e82c0 c25f3f08 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "44694e3c 440fa890 c27cae30 43215530 c464d235 c33c9dc6 4248cc5a c3888a7c 43dfc948 c3137542 422e1fee 4425a8a8 c23dc220 41e744e0 41923ce2 c4b20133 44885b38 c2536b68 41f7aab1 c49c6b17 c402679e c3183d6a 438f2642 44a206e0 442a5b28 c2c85aac 414a16b6 c4a58c61 449278be c2722028 43759f5b 44864d0e 43801f80 c317f79f 43336513 c1cfa8c0 44a97a4a c3183872 42645b6d c4159766 c1222680 43063ede 42d438e8 c481c080 44b97fae 4292a440 43915460 44074c24 443b0720 c2cd9d8e 42bd0f92 c4ad88e4 44b94214 c21c09f8 43703701 c4423264 c49377a6 42208b70 4379b977 44a70166 c4b43ab7 c327f7a9 432054a7 c4159c48 c407da32 c2c2024d 4245231e c3cbd7b0 44b70e8c 416e19d0 41fa3e0b 44372044 c45ce2b4 42d9615c 43340423 c1e3af80 4457fca4 42ef020c 438cec99 c4ab0f6a c423acbd c2890f82 42c75128 43dd6a60 c4a60e04 42dc3350 43824bec c46dcb93 c4025268 c27b1f0c 42f3107e c3de9990 c41b63f9 c2e2607a 42b7121a c37a60f8 c4091368 c33ba402 437c3023 4431e180 430f8448 4225e580 4352c046 c457dfe6 c477ccbc 41976960 437b357a c450471c 446d28e4 c29d55c4 430d6548 c4100137 43f465ec 42e23cc4 434a7040 440f091c 444b2f88 43144efa 42a121f1 4302d6c8 c39ff03c 43350266 41a7da48 43d9a74c c482457f 42b16c98 430ce4a0 44b72be0 c1e25840 c3041c72 4271017c 4440d028 44addc5e c2efd01d 4319d714 44058fb0 43cca4d0 c3213332 43149f76 41ece900 44a64f98 4262e8b0 42e8b394 c4b2e900 44923c3e c3295c24 4351b6b7 41f06200 43205808 4210b524 43453b4a c3209e00 4457acbc c2a6c914 42db6771 438ef928 43457410 c3352495 41da2c91 c31c8a28 c49783c6 430951b2 435e336f 43dbbc74 c48abb2a 429ccda8 42dbbb4c c2dfcf70 c41fe724 43423320 41cdf0e5 44026f84 c3a0dbac 42bac4c4 433808b4 443caad0 4380b1f0 c34203f6 4364fdb4 c49eff1d c4af1539 4330892a 43082712 44960c2a 42909380 42b574b8 43919480 4401153e 4485a9a2 43204626 422a39e5 4385ee00 c4ad758b c33bec8e 430208b8 c495ecff 4499c8b6 42b03050 438676cf c4658854 442e2d30 c2db3967 429577ad 434bd898 42d8f1c0 433caf52 41cc954d c4a735de 440f8cfc 42139710 414c2ada 431891c8 c41bffc1 43416b60 430243e9 c481845d c389911c 4304a3e6 4235fa5a c3912784 4429dd64 4289cdac 4339d115 c3aad550 448bf698 c1600290 434293ac c3ce2498 c407565a bd044000 437e0668 448915d6 c48db5e1 41c3caa8 42db638d 44665b60 442396fc 4312d2fa 42e71a2c 431d26d8 4401d718 43262a36 439333f1 c430db8c 4492aff4 41c480f8 42c06ce8 c4a74a35 43ad3920 c2c0918c 4352a757 c49e10f3 4392c300 c084cb60 431190fd c4a501d1 43b38ec8 4306d7ec 43537785 c4a0d0bf c3f723c2 4298e710 435f0563 c4676384 443c1568 c30e6ab2 4306567a 442d1cc0 43d1a97c 422c1abc 430895e0 42f75ef0 c2c23660 41e008e0 435dbb61 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000044 -> 3f2a52b0 3f2ed3fd 3e9a6afb 4259c55f", + "446701f0 44453b4c c2b9d304 c479370e 4377bc08 42c5abe4 41dbce2d 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "c42227c7 c46a6c04 43186788 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "43a9b268 43d53840 c1e0f018 c454246a 44b4bf3c c2ff507f 436ee04a 4220f080 443967f4 c312effc 432e46a4 c380d24c c4b887fe 43011d78 4256ca26 43a649c8 c4b1104b 42cf9cb8 43485ad9 c3c55864 c426c6f9 c27c89c8 42f212d6 44974ac8 443d7f1c 43319d98 434d8b9d c3aecae8 44b6ed10 43167ed0 4370eb29 43cda714 c3d806fc c1ff9740 432b179d c3c4ad80 c473e266 c26b699c 4362f44b 43c35368 4496de64 4303771a 4362d7fc c4709f15 4397dde0 c3049dc8 43605c2c c444e527 43ebfe7c c30b2741 429f22c5 448bdc9e c33c0b58 4326247e 4388ec09 42e91590 4459189c c231042c 4310b31e c4ad4482 419d8080 c216ca30 43226d34 448b1d18 c3f56c02 432bbf2e 41d6e0d5 4383aef0 c42e86ee 42e17078 43087376 440338ec c4b739e1 c33d8748 43112cbe c3191920 438da3e0 c2ed075f 42c346d5 437c9bd0 c45d59a6 c1ca2c18 435c94cd 447bc3b8 43cc8608 4329528e 4287dfd0 c3321fa0 41f7b340 c34157bf 43320825 44561790 4491a502 42a821d4 42377077 c1251c80 c413b599 4316b4f4 437e6870 4400e878 c4922117 c30b7250 4391acee 448cd2e4 44220f1c 41cfc390 4381ed64 c3854a5c c3184a70 c17aa020 438df0e5 43809f08 c49ad04b 43181c8c 437b985a c4a158d3 4406b5ea 4297f034 429c147b c3826198 442c3018 423c04c8 4201dce9 c43b0268 c45f3734 4270ee60 436e1b85 c4151377 4496f256 433bd2ea 4251425a 44233ea4 c3d09ba8 42508498 43136ceb c4a771a8 c2c820f0 430c3eae 4232be9b c4a0b769 c4a45919 42e6ea30 4394c05d c4a8f1d2 c4a06aa5 43457814 4354813b c4b875c0 448d6788 c3326f4b 4376ea13 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000025 -> 3ec6a9e6 3f6b7da7 bd69a764 42b2d11d", + "44a99bcc 4450da68 c1f2b580 c49fc81a 4424a430 428a8554 41e7f3d2 4450c2f0 433501e0 405c8e00 43151b32 c40ace14 c44ceddf c2dc24f8 430e7bcc c38c6738 4451b3f4 4224f434 437a691d 4352f258 c47c9a02 c26ddae4 438d6fb4 43bd2f14 c4b10140 c300a098 428d0cc0 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f5c7044 bf01f34d bceee8f4 443b9ca7", + "42c4b0d0 c49f2ebe 432c7d0a 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c3d673f4 c4af77d8 40652540 44b3d672 443957b4 c30103fc 41cd8963 c41b31c1 4086ad00 c2affa3e 431e6588 442fea70 44818c4a 42d71520 42a00ade 43989038 c496f270 c19d62c0 4394407b c4ab71af c27c9de0 c328a74b 41264798 44898206 c4aa46da 41837d00 4310b05b c4910c1c 44bb7444 c31186ef 434966b7 c401b3eb 44539bd4 c30b8035 42be497e 44499b80 c36004a8 42f00788 43811db6 43e34fb8 42427560 43140caa 43803db0 43f15e4c c490989f c2a54100 42d51f70 c3347088 441e20b4 c3014b94 42d17946 c3994f0c c47b7f68 c0806f80 433700f2 44845210 440c01ec c31a3f31 438c60a9 c45c7999 441fc330 43305c82 42be0dce c3ca2b54 43b40924 c2fc47c9 438f1970 4411a8f8 c29478d0 c12f1660 42749a49 c417ebf0 438e4430 c282e0aa 4322b798 43a33cc4 c44badb9 c27f4b4c 43642915 443d5f3c c45ae901 c33e29e2 42fd5fec 4472563c 446820a8 c2be3b5e 42646048 c41bdda5 43240ce0 c1bd9ed0 4207464a c40dcaae 4489663e 426fe730 438d1606 4361e788 4366c820 c0c39ea0 41aedc6e 44a12906 c3ee771a 425e02d8 4390dde8 c4445aab c4bb5b7d c33c4db8 4372db00 44763338 44adc216 43431888 433f1568 c3e6a594 c3ced788 c2ff1605 4395b28e 440d51bc 42e73320 c13f7bf0 432b286f c3d5478c c4b32765 42802f34 4249dace c4ae8ef1 c3a43c68 43122cc6 43070060 44a6d6de c3992e94 43348616 419a00a8 4436c890 c41655dd 430101b8 430153be 435016a8 c4a500bf c3065468 437897e2 44523264 c2f47050 c284b2ea 42d2b7c4 4348d4e8 446d3cf4 42bcb7dc 438e94e7 440af120 43e409ec c2c7ebcb 41a54d5c c4936eb8 44a0e004 429275b4 43889691 44079830 c0146800 432c08fc 437fd423 c488e576 43934d60 430f37d2 4306d002 c4b6fb9f 44aaf0d4 43184936 41bc4dc9 42ed8810 444a4094 c1e4a330 43403ee5 c3bc76b8 43dd0488 42dc5d1c 43874a4e 440d18f0 c3fce3d6 41e84670 42928d64 43e7ead8 449c396e 42c4a080 42bddeae c484151e 449b73f8 432a0538 43764428 43aeb794 449ba130 42b88b4c 41f2b706 c48ac92c c409a1ca 42963be0 427b30d0 4397d29c 449766e2 c29293d1 433b3836 44a359d6 440de94c c2113308 4389c28f c44f64cc 43b67f74 4281edb4 430f4165 c481eba1 44556414 c2e08018 42dea4d4 449ffd8a 441eebac c2f58a8e 4292a3d8 4484281e 43437f88 c2ade9e0 42191ae2 c4aff412 c4a2bfa2 c1df5868 433f208a c4ace103 c3d460a0 bf16a300 41d6404a 44ac5510 438c172c c2a22119 436d793a c4b603ac 44ad0e78 c2aded56 4390fb85 41b05900 4477a5e8 c32c3d07 432292c3 c439e6eb c2ceb400 4280eeb8 437b447a 4412ba78 c3b20f08 c30e9a24 43033916 c48d37f3 c2b750a0 c288491a 41a3a242 43b5b20c c4528b68 42007f64 43831781 c434bdfe 44558170 4316a380 43826f06 c48d52ea 439cd0d4 bca7c000 432c71ac c219ce80 c3430d08 c28431a6 4390f2a0 c3541750 c44c3e08 42a8cc30 41838d22 c14b6c80 44405eb4 430a2644 432deb87 c38ebe20 43935f20 432b934a 4348bb4c c455cf4c c49d4e37 432dc7a6 43182169 c4312fe0 c4330873 c306b20e 4370a71e c3b23d90 c38282e4 42a51be0 435b934b 44aa19ac c45dbdf1 c21b3c04 4345ccd8 44ae99aa c4959eae c2785c8c 42ab2e07 c4aa0c7c c4713f28 43437ba2 4386e1e1 4441d680 c4106ed9 4180eb20 43825f54 c3bd2650 c4b5d953 c1618880 43499f06 448566a4 c452d2ed 42703930 41b2df84 43ff2424 c4b7cf04 c2a2e109 429704aa c42b3567 42ec6b20 42065fd4 416bae44 427f7d80 44b71f0c c32c8d59 42bd05bd c3dbba54 c462a8ed 421f6cdc 42c437db c438e510 43fc6ce4 4231da98 41a4df23 c4991220 c4acfbe6 42b952e4 438faae5 4425c070 c417082e c1fb58b0 42e8570b 44a81646 c4aa6429 4312c66e 435f1014 43229cf8 c3d17578 433eff40 438f95b4 4464759c c48eeb76 434392bc 431d1198 438d87dc 44b12618 c248e184 4369563d c443e5d2 c43c5922 408e5dc0 42744aa2 c37db6c0 c47e4c49 c2145664 4280b8e8 43a19d3c 43aa55e8 43345296 43411a01 c4265bba c3efe3e2 3ffa6e00 43921964 c48f44ea c45396f2 c32cc4c4 4313f18f c48dfafd c3f91e9a 42bdc554 439501e0 c451c787 43d7d35c bea16800 424420c0 44068352 c4947d97 c1b8de28 42328549 43f663d4 44ad12a4 42ae051c 4312eb2b 4457a058 c43efe8f 43344518 436e50db 43cf8058 44069d3a c31537a6 438d64d5 c387ab2c c3e6d68c 428e0df4 4310b767 43aafbf0 c4b58fd3 c2314df0 42ee5ac1 44979e90 44958b10 426dfc90 4388353f 420bdde0 42579ea0 433653e4 4369bf80 43f29614 c42a7a5c 404f6700 431c1400 c47680fb 44788b4c 433ad994 42cba9e1 43b7d28c c4af373b c2fb85ef 43838736 c42e987f c42469c4 4306eeee 430a26a7 c45bc6f6 445e6cb4 4205c274 4383c1ca 44aede4c c4ae7f70 4103dd00 434a6b63 44212158 c4a2d778 c2e3ec59 4367fd18 c40c6919 446a7b50 433830e8 42b05453 c41ddbdc c470a717 c315c571 42e811f4 c4767647 43b8dbc0 42d77490 4331aac1 c3b58678 c3d0a3cc 4308cbe2 43328e9f 4477ade8 4246ebe0 c31c4b02 433ed34f c4a474ef c45bde69 429e55cc 4359603d 44a2e362 c49ce339 42f42ef8 433fd84f 443d11c0 44813846 42e71a10 422276dc 43ae71c0 c45fc3d4 c3467328 4374df6d c4a06514 449c0602 4204f034 420e2b0c c4814bc8 c2a9d450 c2b79652 433347bc c4b1484b c4b975fc bff59b80 4339918e c4667d27 44a4c3bc 43054f80 4286fe2f 44ab2eda 4389570c 42a3393c 4222e53b c4907a92 c43ef57a c283de3c 428c9348 c3bd2640 c08e0e00 4235ac58 42d18aef 447ac56c 43f59ea4 4338bf12 4275b5d4 00000080 -> 3f6a3377 3dcace1a 3ec86e8c 43279727", + "448a9eca 4482c76e 4311ab92 c4b38d9d c2be0c50 420f9b04 438cc468 c490ad5d 440ce1c0 432b9286 43341092 c4612275 c344e3c0 42fa2d18 41547a51 4387eba4 c48397e0 c33e1b04 431a4f1b 44953962 4412631c 4302c1c4 433275d9 c3bb3400 4420a1b8 427ab460 43816e81 44a664f2 443b05bc c25a6634 41b51626 c408999f c43cb786 c307c2ea 4306d27a 449d2994 c4306b86 432e1e5c 4236f3c9 c490a582 c477c935 c347c9d2 432bb031 c38ca628 43b63000 c3025e39 41e4d40d 44619e84 c40a6252 c2cd0069 431f407f 44a3ec74 4406ca14 c182e108 42d7673a 44088b44 c3fa14f0 41ba8920 42c611ba 4469b9e8 442db3fc 43450b00 42e79a18 c403be55 4490827a c2b92630 438ef591 c429ab7a c3b08d38 c3231daf 42d0fcc5 c456a8ac 44969024 c23aa768 435d35e9 4411fd84 c42cfd71 c302226e 436495a0 42f09310 438acf70 c331120b 43402fd1 4186c400 4482d082 c31d6c55 43431010 4458f538 4472c558 42c6b0a8 4333e358 441adc58 43c06bc0 c296b85d 42f1f31f c4723dd4 43cb8c1c c2d56fe7 43210dc0 c3dca860 c45005bd 42e84d20 43035f6b c44f8aa9 449cb722 c29f4d13 41a2a857 c418b772 442d1748 426398e8 4301afbe c48004f4 44646a24 42d58940 4293132f 4402b5d0 c3cb6f30 430fafb0 4313e55f 44513014 43c39fcc c3072236 430c85df 43c8e790 41995740 423ef9a0 4333cc15 4386da40 c4bb3fbd 41a429d8 41d8c6e0 c4adf245 43e6aef4 c21ea600 42cc204f 44629f68 43d0321c c2181374 43346f69 430fe520 c4a0f1e0 c27d2b34 41d7b1ef c46eea59 c3f68632 c1e8f0f0 4387c792 4487829a c498cf84 42a6b698 4375a9f6 444f5ca4 44414670 42c190f4 435b84d1 c4a4d2cb c3ef8dc4 42e3ac18 4359e5cf c41716be 44218648 c1adacc8 42bf82cb c4706285 4379e0e8 c2457d58 431c664b c3907010 c3179dd0 c204e908 41a25226 44ac48c4 c42b5e71 432b03ee 43575997 c41e83d8 c4949f0b c2b917f6 42c1017a c49dce67 442312d4 42b35158 431a3eba c41bcaaa 4433000c c2ae0586 42b57f31 449a6fca 4405c646 c2c268d7 430ff0f1 4484d3da 440d0c44 c2a8ac2a 437b7425 43bba17c c4aa3a24 431799d8 433776e7 44ac27d4 449e6474 bf364800 43017366 4403ae32 4401ae6a 430d48a8 431c714c 44779f10 c4aecdf8 c1d3bcc8 438fbc34 c4a0a035 c22458a0 425c5418 4332861c 44b83502 44a81fae c346a0b2 4309d67a c415629a c496b3e3 4214cac0 435c5967 c466a52b 44aaa63c c2fefa9c 42b163a5 44b4e17a c497e5cf c326cb28 42a0b31d c44e7e8a 43ffb834 c280a2f6 425de463 c4529764 c40cd066 4300baa4 433d9dfb 44908be6 44501fc0 c1a58038 43844e7e c43f997a c415dac8 c22fad68 42e96224 c4a89d94 441c082c 43088d52 434e4275 c4ab837d c33973f0 c2a22219 4381d6aa c3ffec42 444ca888 c2e07585 435af296 c1c8d440 43758be0 4110cdd0 435f36e8 44a9107e c46790b0 42b9b22c 42fcafeb c4845661 c2652de0 c25cf398 434ee6cd c48c0f4b c3ade870 41b12920 4321c35d 43e0c48c 44214388 c0f5a7c0 43866168 43429708 446b07d0 c2df32c1 42b318fc c438d495 c38c9c98 c2f00927 436e1529 c3be47dc c28281a0 4302f7b0 430b6fd1 c498b11c c49581e4 c314e7b6 42c417c9 c437d862 441fcb44 432adaf4 41cba08a 434c38b8 44b7619e c2df5bbb 432f2479 c3e6cb50 c47d3174 41a0cca8 4348fc29 448f8eb0 444d8260 c2e71ca4 433c2a8f c41bf2a2 c401a3cb c309bde2 434eb1e2 c3d0bae4 c43cc2ab c0eab720 4327ed96 44b83bf2 44a71c4c c33cc8d9 434bf784 43e63970 449bd6de 4209d6b0 418a7310 c436c1c2 c43a2f2f c2b93dd4 438cd584 4457e900 c3597028 c28ca2bc 4330fed8 438adb9c 43e35168 432b4480 4211bc03 448580de 42f85170 43217808 4337bfb2 c42ea55b c45735ee c30a4b5a 43680bb3 44a7201e c3179018 43311ad0 413e6898 c4497401 c3b0297c c32f3390 433e8260 44acddea 431bda38 432663ba 4306dd31 4364c7a0 42965630 c21c688c 4341024c 41858b00 c42941dc 43029830 43825c0f c4ba659d 436f65c8 c325b9ba 4357b287 c406e31c c3a43b34 4296db40 430c78ee c4abc43d c3554920 c21d4290 4309b98e 4443fb08 44705b14 c328308f 4373fc2f c40f4175 c432943f 42a45004 42ff1623 c3c9b6b8 441751d8 4237ca0c 41ae3dab 4430adb8 c0e61400 40be9900 42d3f3e3 c4875269 c42a8b7e c3229279 4394f54c c3aa2690 c41db6b1 42d22fc8 42e83431 c3cc4f90 c447e794 42951f5c 437ddb2d 44117db8 43a82338 4200c8ac 43244d23 c483291f c292bd40 42876814 43652d86 c32368b8 438f1978 c28e5772 42a15413 434ecc80 c36c8180 bec7b800 42c2af7e 44ae5960 c4aa99be 433d7df0 437889e6 448cdbb8 c3d592d4 c29763b5 43691c78 c3f6ff4c c388a768 c332744e 4312c304 c4a5d8dd 44203e24 c1b63b88 41ff3be7 43627968 4488b0b6 42a91114 43647ed3 c48e061d c49c73b4 431c2732 42aad0f5 44764248 44425420 431a2b46 4327af66 44a8f33e 44833664 c1f393b8 4390fbb4 445a048c c2e6b110 c21e7fdc 42ccdcad c43433b5 4488722e 433a1ac2 42d7184b c41500ec 44695b10 c2f29bfe 4360fd27 c36af658 c462c029 429e6f88 435e3e46 c4825ea7 c43e181b 42868ae8 4356488e 441d5f9c 443831bc c30008fc 4384e8e5 c4817e7d 442046c0 4345ae48 422f28f4 c2a6d480 44484414 42ff0d58 4316c6b7 44b5e174 c49a5395 4290b8bc 4336e51e c40c75e9 c48ce0d4 42fca418 43585fd0 4495b7a0 c3bb8e40 c1994478 42c7dfea 4490c56a c4839bfc 430756ea 4340e5a2 c4a49a38 c481eb43 c22dc4cc 4356286b c46eb572 442497ac c2c38b37 41b8a09a c423c54a 42619ec0 c30661c6 4328592f 00000080 -> bf2b095c bf3e49a3 3d08cd48 3ecfa6c1", + "c2e5f3b0 448ea6e0 c29f257b 441e7a30 44403e8c c2856d40 431fdc8d c4954deb c37289b0 c33cca7a 4306ea22 44ab341c 4464e274 c2841af2 42be3929 448aab38 44ba07a6 c345be67 4383ed1c c3ccb750 c4a6b421 c291155f 42eddd0f c490710b c41336fc c2bb8d9c 437b89f0 43cbb4bc c40b1650 42eb2250 43903d93 c42cabb4 44803e36 c333cc96 431e20dc 449cac7a c408a5d5 c3021940 42f7c67b 41765880 c490c81d 4337ae9e 435ef981 c3ccf134 c42a0f76 c2dbdb61 438991f8 449dc360 443cb508 c20d07f0 432196e1 c4801929 440001be 401cf740 43700da1 430896e8 c47ffd55 43170056 43003370 c1dd9640 3f78e000 4318624a 436e517e 43bbdad0 c4a218a8 c3079cec 422ce42b 443f020c 44730f8c c246e4a8 432a130a 4470fea8 43a96308 c24fa584 42a4c5ab c49767d4 437cc050 c343191a 437e0e22 c49e0ca9 c3df13f4 4324e054 4385354c 449702b6 c42b9a72 42f17ffc 4337bcf0 c3f639a2 c43616b7 433a1a60 436624c8 c33319e0 44485f7c 4320c790 41364f41 c4484885 c4761315 c31c5624 42bf76f2 c491649d c49204bc c30828fb 42181482 c3ba1f90 4486f400 42a11dd4 43283070 c415a8ac c4369b54 429da0d0 439062b1 c4849723 c4ae065f c288c19c 4249cdb7 43843340 44ba497c 4319d808 42e157fe c42f994a 43399ce0 42def820 431a439b 44868f0e 43aedd0c c31b53df 41cda814 441e3b54 c3c9e17c c34156e2 438b07eb c2957350 4422783c 42b76d74 43915918 c4673d24 446cad6c 4053e180 41b35792 43516660 c436b42e c2a11629 42040486 43348a10 c4ba021a 42344dfc 42fe8844 c339ac00 4444d8e8 c205520c 429cfd84 c41f8826 443f56a4 c33c1889 43299ec4 c3fc242c 43f334c8 c2d1c31b 4366358f 443a2540 43dcd99c 4305cd3e 438c94c3 c443186c 444c8354 c0b0cba0 4306a450 c4110357 c3d04b54 43331f28 436a0b1e c20a2240 44802bd4 42e3648c 414bf4dc c4319403 44158a1c 432ee9bc 4380f3dc c4ba0b04 441b7c78 4239af48 438e88ca 44a846dc 44525894 425b4be4 435acad9 440c263c c470d8f5 42599e58 4323915b 43695150 443ab36c c2a44ca3 438ac5ac c36a5408 c3cc99ac 4307c7f8 436e5faf 42557b80 c46dd4ef c320e9ce 420149a8 446bfe7c 43d82ab0 42c6293c 430b31ff 44b09430 c4b3e472 c2aa4074 43416e46 4428a424 c3af9270 42cc5d90 41aed6f0 c4afceae 4490bf32 43428584 430f3ab5 c488a420 4447a920 42c258d0 423c3954 4428d81c c3753830 c2f42ace 43607884 430d7e00 4487a0bc 420c21ec 4387723d 4486f996 c4835478 c2825b1c 4378169e 43a465b8 42ea7c00 c312755b 42c4af04 c4af3709 c467549f 42c74700 434b4ed0 4492e1bc c4ba30ca 42f3c05c 4284fef5 44b90dda c438b0a4 431c8df2 43256924 c3b80e5c c3b3f020 4272fec8 4363f501 c33420c0 44b03a00 c26d0ba0 42f9e944 c3180a20 c4b871e4 431f55b4 4226acd0 c349e328 c3a8aa80 42da11c0 4330c50d c4aa49e7 44a2ec68 c1dbe6a8 4318b57a 443d1a70 440841f6 c1eab728 438de3ad c4b514b8 c49eddf0 c2d31fd8 435b4618 43aa5b3c 44bb7d2a 42c4dc84 42be2e9e 44b05ba8 c4a81e5a 410eeef0 43152b2c c0c82f00 438037f8 c23e5744 43438069 c46a930a 44321770 430e1f6c 41891a32 c41b1553 43d1d754 c2d4e67b 431c3285 c449d236 c44ac8bc c30c6e36 41d8ea3d 4471d96c c39711f4 42e30250 4353bac2 44aa0570 441bdb0c 42bb911c 42e6e3b5 442f61d8 43c351b4 42e2431c 430c4fb9 c4327284 439d611c c3106f28 42f0fde7 4488f560 c41b7a9a c3292380 430f856a 432046e0 445ab714 c29c1b8e 4164203a 4474c70c c392f148 427158f8 42eeca21 44806e18 442df970 c06d5880 42f2b0db 4483a47c 440c4bd8 c139e8c0 432f9727 c42e0edf 44750924 41299cd0 436f218f 4483a1fa c4b4f64c 432253bc 432b8944 44aa7c40 c38d1074 42d208c8 43519b99 403c1600 44845202 425e3fec 438d0a5e c4825316 440d6124 400f1740 41978fc4 c4981792 4449cf2c 4313b31c 4329e458 c4a62353 c3d625b8 41072ed0 4128b5c4 c4873186 c397aedc 421d48e4 4330c0a3 c4894316 434bbd20 c31ac2c8 41a956e6 4447a504 c41fb726 422f0914 43256ffc 4490ad08 4439e210 c32ffa67 4303eb72 43d13e44 44ad73ca 43167f5e 43947eeb c4989a45 431d8e10 c2d6d083 42648c1c c46ee558 c333ae70 c115e2a0 431aaa25 44ab8ca8 44b22e6e 42ba8374 431932a3 c1310500 44977a4c c203f0bc 432b2adb 4466bd9c c46a596b 41addf20 438c4b6f 4433d13c 439698b8 c3033167 43827c75 c49dd58e 44b01970 c30dfb97 42dd03c3 441cc4ac c3197db8 4324be10 421588bb c2641ac0 42bcfa60 432386e8 43343858 c47973f3 c340b6a0 c22a577c 4353384a c4994014 43ab61a8 c327952d 436f66fe 4321b680 c4902548 c33820dd 43935eb6 c3fe8a30 414ea300 423469f0 430d119a c389b178 44a63104 c2c81ab7 4318df3a c3b33fb8 c3c8e8ec c326a091 428ee308 c419b3e2 c48abfad 42e7daf8 431d809c c4a3c3c0 43d012e4 c342e1df 4390e5f6 44b9abd2 4477edb8 c232a260 42ebb286 445c7f98 44872d6e 4308b192 4239951b 42684120 c3b2898c c296c938 4390b504 44a13840 c47c9d32 c3417ded 428abcbc 447c0eec c2f0a190 4294fa24 4325f751 c423c7a8 c37b8898 c2ead3f2 4372632f c3dd8134 c46ec0cb c221ec1c 4390648a 4473538c 43593e38 42b632d4 4389b3cb c494f187 c49f6d1e 4342b20a 431aec5b c49004ab c442599c 427cbdd0 4328d792 c4957576 c48cdcba 433d52b0 4395ee64 c4a70be8 c48e8641 c2ae6fb2 4240fba2 c490d99f 437f4ca8 428a0a7c 4338fc60 44a9af78 c2961e80 42928d1c 4331e690 43ba28d8 438286c0 c3402ce0 433b93c6 00000080 -> 3da18385 bf5cf8f0 3eff56f7 42a49dac", + "c455801b c3f90fc8 c205a184 c39b81a4 44874140 430e05b8 4274ac66 42466b20 c49a3645 42185670 43728f65 c48790f3 c33ee318 c30918a4 430a6d09 c45bcb9e 44391850 c2d6156e 43877528 c42ecffd 44825938 c2d08820 43877aeb c48cde86 44ad829e 424c8a24 42f72bd1 c38a57f4 448cdc64 41392d10 42945b58 c4aa63b5 c49b3a90 c2df2b62 4378c1d3 c4b19cbe c3e68d54 427d2448 42aa5e34 c35b4dc0 44aaca2c 421b8468 4319efac c49e7f58 446219d8 42fb3418 41a992c6 429b93f0 c4887482 c2048878 437daa40 44575ff4 441f7878 c2f43191 419c1ddc c4a459c2 c4a9d899 4138d230 4307c112 c4485e41 c2dbb600 42d6eff4 4343dcd9 433380b0 c3bd2404 42cd0af0 41c9a54c 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f3d51db 3e58c9e7 3f239322 40acb6d3", + "44b16d76 c2a32520 c296d16b 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "444a1440 c38f4530 c13f4c80 4471e468 c404d6e6 c30c8630 4334e04b 44892780 c42b42f5 c184ebc0 4351b9cb c34595b0 c3fa7fbc 431c84fc 42812c48 44442d34 44b3bbdc 42fdefac 42964167 c4b19861 44add1a8 c2fa95fe 438fa993 44a3afc2 44189350 c335ef26 4366db05 44727510 c46705a0 42afb610 432b647c 443cbbbc 446b8508 c2d0253b 4385135f 4453cef0 c407f432 c2dc5b4f 428b7a84 c4214a74 43d76be8 421c3800 431a22cb c46e2ad5 448b2bfa 432fe838 4304c1ff c47e261c c4b15610 41e7a600 4308c906 c4ab4ad3 44888022 4332b0e6 431db1d6 c48cbbdb c41a6bc7 42f53470 423224ab c426b67e c3a95268 42d4c2e8 434d64fe 431c0968 4496b9e2 432ed376 433dd522 c4988e7c c4b87e42 c216b0e4 430a6c7d 443f0d50 43a72258 432fda68 42f205e6 c3c92de0 440e4f78 42db1440 41e7aa35 4445bfe8 43b6caf0 4220b298 4370e3df 43b35ef0 c42329e3 40aa4f00 4385b54f 4489bcac 442ce50c 42cedb48 43179bd3 4212aa60 c493f358 432b5004 43872f55 448d9f9e 449ef2d0 433200d4 42b6b1b8 44a2c5ba c4074223 c287e75e 42599d89 43b5ed94 c48aeb40 4291f6ac 430738ab 449f2360 433fc998 c30ea2ad 430823a0 427313a0 4434d994 c26752d0 434832a0 44570314 44b02ac4 c3325295 42b058d4 c3a70db8 c4a8f77d 42ca4038 42e65730 c43bea15 449c912e 432c3f56 434649de 44095b28 c4abd29e 40037900 430a2f69 44378de8 c19fcd00 c313798a 430ac35a c41c319f c31e0ac0 c3020b86 43181be8 4395fdb4 c49cef46 43394f50 42c3f44e 4382ac1c c4044b42 433b3842 43699da4 443b8820 c42aae03 c31b8ad8 4388a4a6 448aa03c 44039552 431cc024 438545c0 434886a0 44af4c8e 432177ba 4356181d c461cd40 c4af0e5f 42c6ecd4 4384f8b8 c4a573d3 44170b88 42982dc4 418e713e 43a4baec 449a4792 c2596b68 42d8d4ad 445d2b20 43407cc8 4287a7e0 42c621ad c49b31d8 c317aaf0 42dc6edc 438b3f29 44a88c70 c47f5a4f 431fb100 43011b70 44a17f8c 4391e0b0 41e78428 41f0c38d 439832ac c43dfe51 4316de12 42d014b8 4302f348 c2ad5040 c2a71eb5 432e6000 c3fab924 c49d3ba3 c2cc56d5 43856dfb 43c813b0 44a56cec c3077e14 437d33e7 44991e2a 444bd5e4 c31acd8f 42c5319e c4b94c0a 437e4248 42eecacc 42302e79 c4670ed3 44b32faa 42cb72b8 41ab6941 c489444f c3f31646 4334c29a 430fd8db c48b1bb8 43b564a0 c1ee8fc0 42e69fb9 c4aea89f c4ac8fcf 42ec9214 42cfca64 c42a3403 c494f719 433db578 41393856 c45d5955 44922eb4 c2a6093e 4146a4b4 44bad90c c4a4c68e 3f75c700 42604d65 c23ce3c0 c42ede48 c32ea1c6 416d8b92 c31b71c0 4442d400 c3130ee2 432e167f 44229a6c c43a39d9 c1d6dcf8 43954307 c48b3214 44544694 42cd576c 4159cb91 423c38a0 445f97d4 42f38260 4382edf0 44b28678 4458e96c c33b05b8 4387f3a3 43a5b8a0 445bca88 4325030e 42c3383f 440b07fc 44387c84 c3378b37 41fa300a 447ba804 445bc3ac 433ee9bc 438204f4 432c8690 c388e4ec 4325fbda 42b331b5 4498ce24 c44a948b 422b27f8 4181905a 43fedb34 44b3c2d8 4316a644 430454f0 c4899246 c4250030 c03c5540 42881452 c436d758 43c8e1c8 c2fdbfb5 43539006 c4473390 c47ec571 c2160790 4347fce1 44823722 4477b058 43182d9a 4391c4ee c45914d2 c3d2c094 c30840c8 42d6c27b 44655054 4493ed8e c1902b28 42240f3e 448fafcc 42b37bc0 43386638 436263fc c46e5151 c4b75848 c2d56e62 43410630 449c2964 c1df4b80 c3046a81 42ff1e38 c438fefd 447fc0b0 42fdb74c 4288f09e 43a54ec8 c4235217 424c7c9c 42fa60c8 c4ba8f75 c43420d1 c1e8dbc8 420195e6 c3e1d418 43cc39a4 42f8a4f8 42c80909 446fff28 42f4fc90 4239bb38 429e6d7f 4473c9ec c3ab74fc c2926c15 435ca05a 4401b13c c33e14d0 40a3d800 42958636 44a02906 444e55d8 42bef598 42e2cbcb 43f1f010 c2959560 42adfcb0 42ea5778 42fe1f00 44aba7b2 42b4784c 4321d193 c42eff4d c4a5d898 c31e391e 433ec46d c494fe82 448fe9dc c2253cc0 43285df3 c460cb37 449e8d50 42f8e5d4 42edd918 448c7af2 44a15bfc 420084d0 4382ceea 42903020 c4996eac 4137a9e0 4271560c 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000005f -> 3f6f990f bea0789f be247e0c 42d0ac49", + "c35b2e18 c472a824 427b2a48 c4a0fe12 c37c3050 4315c054 438a34e5 c3303f50 44490a04 4310e644 43766bb3 c498c956 44b0ffd2 42d5d8a8 42b72077 44113a44 43b96c68 42e752b0 41ac990d 44af03e4 c4b2dbe5 c34648d9 4390c75e c3cd59ec c258d400 42b8cce0 4386bcf1 448330b2 4481923c c19b2e00 43066ca1 431c10b0 443e8e2c 4310dfa0 433469f8 448d64d6 c4952c42 c33b33ab 4311abdd 42861740 43bf23e0 42cf3820 425b8381 44a853da 433511a8 42e1a2bc 438ff3d9 446ac324 438195d0 43042868 43117f44 4433a864 c4896156 42f22f6c 42f13cc4 c2cd1300 c4317322 c308c9a8 4334bd3b 440ab3dc 44b3dcc6 c32c7840 4336c2d3 c4099733 c34866f0 c2bd6c22 42d853d4 c49251d2 c4703eaa c2194688 433583d9 43896e28 c4060245 40e0d2e0 42d8c85f c430fc67 44831366 c341f3e8 4372cba1 4415ea30 444c87c4 c3274ef8 42accd20 c4b5d3a7 44b59a62 42979ac8 430353b7 44a940da c2671e80 c3174652 433bf560 44a690cc c32a47f0 42e25100 43276333 432fcda0 c47c871a 43074870 431f8ba7 c4182638 c3295a68 430b643e 4341ab5e c46e5c07 c443c703 43163e98 430348d0 43ae21f0 c2db4b30 c31907ae 433cb909 c43cc9cf c3d91178 431b8c3a 438945f7 449536cc 4465080c 4200f55c 42d4b799 4436c52c 448151e4 c2348dfc 43406e7b c4a5cd68 4459ea24 426b9c20 42541f16 42e68e60 44b2117e 42e08b28 421cd686 c4b74081 bfd58800 400f9440 42a8acfb 449f15e8 c31ad778 c3277ea8 436b1680 c492c04e c42b898e 42f1d310 43177d0b c3cd0704 4184aa80 c2576960 4334c6fa 43231c58 448affea 4267b2b8 43646f7d 43781790 418e78c0 42d995a0 430d295c c4a65a06 c4527251 41f18b28 42f725e6 43898f98 442a6c50 4317eb20 4343f59f 44091428 c4b53c8d 4227ee94 436329c3 44832134 43c6cc44 4343335c 430c5c39 44281584 44645350 c2dd1d2f 4312ffb8 c4ab890c 4495b92c c2bb6482 432a2d2c c36071e0 c4a59c92 42166a9c 434ba685 c3fef194 c4b13475 40e6b880 431c9048 442a98f4 c4a78094 c2f00be9 4356661a 448bd6c2 440e38b0 c2fc6f09 42f13b22 c3a2c4d0 c47e381c 42f4187c 42dd0906 449636c0 43aecb4c 42bf5dc4 438aaaa3 448f7fc6 c46487b3 c33c5ac1 436bb247 c42340dd c4165271 c2107740 425e4658 44aa1df4 c4b2d19f 433a946e 4324ab08 c4898ad6 c457f91c c29709d8 43480acf c07dea00 c49629b1 c33f7332 4370f12c c34a3ac8 c4229dd6 41f52a80 41a0007b 43b3f6cc 448050c8 c327a188 4384d271 c4983250 449d2e16 4272d1d8 43748299 c407a10b 44012106 42e413a4 42444dad 44bae0a0 4433d238 c2dd8cb8 430616c1 43d76d7c c4ab7265 42c8f14c 438036de 44276260 43e2adec c2c96e22 427829ef 44833090 c483530e 430b2c8a 43724a95 438ebb44 44a6122a c0899f80 4337d9df 43b204b0 44b97c7e c308af5e 4309a50a c4530392 42a910c0 c32ecdbd 41a0096b c3c0eb34 c48053cb c2e4a88c 430fb43d 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000043 -> 3e7cea52 3d2370a7 3f77dbbe 429711e1", + "44526814 c4382f7d 41275920 438c3934 c4823996 c2305968 432447a9 442a2534 c40d8589 433b8ae6 43363fc8 44968d36 c4af9d8e 4331bc86 41f5361a 448388be c456dfc0 c245e954 427c310e c46bcaf8 4240c920 c3468421 4332a0a5 44542e80 c45a1108 c319d2da 439312d4 4422827c c281cd30 41d13b90 4308b69e 44575f74 443d623c 428ab48c 4318eb35 c49a1e2d 449f302c c34754c9 436f22b0 c4963338 c4a23148 431cba34 43502a19 c468ed40 4481d262 c2924222 4319fb14 c48f019e 44adbb88 410407d0 438dec24 447d675c c4266811 c2ceef86 43498383 43e5e718 c471eb2d c3228ffa 42f2db9d c4ad83ea c3870dc4 42fc4190 42a42065 44387080 42bf7bb0 42f57064 4254cafc c3d488c4 c3117270 4340e08a 438b4e9f c45820c8 43814640 c3269df8 423105c4 43ba5ee0 c406b643 c22cbb1c 438cd2f2 4493067c 43b26ee8 43107794 43647be1 44aba6b6 43b5a398 421e8370 431d9f10 42062ca0 c4b6a103 4307d26c 43892dbf 44782e4c 43b026c8 42ca438c 4351f4a7 c439e006 43d6fc90 432ef66a 4348ae12 c4acba4b c478d635 c310bae4 434b77e4 44b46908 438d8f8c 42b9f878 42a5fabf c464ffdf c48d4c13 c3398abf 42d512ae 44560c88 c480abd7 c04871c0 43035158 431263a8 c4a446f9 c2a764e2 4238cc82 44a250ec c417ae26 425c71f4 42dc4945 43a7f1b8 c4a104e8 c321dc58 43365fe1 447a03cc c39f1144 431261ee 43933bda c3af8890 442fe500 431eee08 435bea9e c266a200 c4657928 42d9d6c4 42e6c01d 4491bc6e c3e4ed3c c29480aa 42f50651 44b2d110 41a01700 c315874f 434d7811 c48c86a3 c3f842ca c30fb7b6 428256b6 c3dd2648 446a6f50 42b3bd44 436112d8 42b6a300 445ba3f0 c331eeaa 438904f7 c03b1600 c487b971 c202a9bc 437234e1 c4360fc3 c4a6caa7 4333f674 41c60637 c43455fb 44493d7c 432f05c8 42e1c2e0 c41dc74b 44a045e0 c2d30ad2 4333c89c 44b5453c c43ba581 c2526ff4 4222239e 44a6a9f2 c36c0c70 c1459040 431aab65 c439102d 4403c9b2 424d5e84 432f6a57 c4b7ce38 c4811da1 c2f5458b 43517faf c4876cd5 4487aebc 4311bc22 4363a9a8 44a0e478 4223e9e0 c313b608 438aa29c 432a4a88 c49f429d c208d570 42e30709 c39a9878 44567578 43203e82 43054ccc 436525d0 c4874b84 42ce98a4 42b6c4a7 c362de58 44a8b430 433a6aaa 4202244e 43fd680c 449d4da0 4197e1e0 4332a516 c35b6670 c3b4bc9c c337977d 42207a80 4360bab8 c43bc71a c2e348d4 43061080 c4a3da7f c22c5e00 427a4340 431238a3 c48ed819 c31f6fa0 419b4ab0 43830622 c4b8ef88 c4916e11 c31f3af9 431184a4 444e547c c45e9cca 43459b2c 43833e1a c399d4b4 449aca76 c2bd2908 42819d25 44946abe 4456f8b8 c32759c1 414c692e 44aed2d6 431390a0 c0064300 42759d9b c4aea498 c40e0953 42e1a094 4252e02d 43522700 c2a33030 c25c9db0 42114417 c24e6900 c41e9cc4 c3076107 4392bda3 c393fa40 c4972890 c32ba6e4 432b752f 446e29d4 c49d70b4 42f52450 4295bc7c c3abc280 c47736a3 42a521bc 434a04d7 44b647ae c4b1691e 414cfdd0 42b4541c c38ffb2c 43dc43ac 3fb4d900 432f44ed 44a98988 c3c116dc 4305f02a 4353e761 c3fec55e 44aa7b46 431ee6b8 42c35637 447fcd20 449739ce c2337500 42265ba1 443c6adc c4207ac9 42e61ce8 4371abf1 4421d1a4 42953c80 c2f66247 438579b0 4436121c c42bb223 42e968bc 43824418 439c4e1c c48e899a c3078266 43278324 44a54a1c c49b5e19 4295631c 437c6d65 4455bd0c 43897ce0 c33dd4a9 4195c5d6 c432736f c3bc065c c2dab8b4 4382201a c46dd200 4145e200 c23bd0f4 4315d85c 4453e834 43923a68 43245d48 435503ed c4438d54 442edf24 41c224e0 438479ac c3078818 43b03e30 4302da6a 434f7f73 436e8988 44b09a70 c323317d 428df254 445c0b0c c3dad6c8 c25d8c30 43650f8d c454994f 431ba638 c28cd828 42611853 c4338c0b 44412ccc 416b8900 42d9d7c9 c4174b48 c4002f68 42a28128 429e690c 4491abe8 c40ed8f3 c32774ac 413f2be0 c45a421e c2e8f520 c29ce4ff 428c69e9 42961950 4466b210 c23e2fbc 426a49a4 444664e8 c3e967dc c19e3390 42bcda03 c4230663 c4b55ed8 c32c2ed0 437a5a08 c4860761 43bed970 c2bb72ba 4299c858 c429d828 443c827c c1c1c370 4315b136 c463bae9 c452542f 42016270 4239daab 449b6302 4384bddc 42ea0e48 42b095fe 449217d0 c49b8352 c3477e98 42d4af99 c4a8aa5b c481c767 c2d7b528 430097c3 c476f011 c480d44c c227f000 4389d9a2 c410bf21 c43ebda7 c3309c27 42b784d8 c43457a1 448c5fd8 c321949d 42ab829a c4ab0eb2 4483834c 42ba8aac 430eb764 c4b35a6b 4471a36c c3438000 42c529f2 c44cf413 c43773c1 c2c5800f 42743235 431b7ac0 c46f8f6b c21d8860 42867440 c4b5d829 4431fe88 42dedbd8 43945b51 c39ab2e4 4485c7e8 c3300938 422fd1c1 c3d78a08 428b7280 c3021f76 438ed947 c47e2f66 c416cc43 43127a24 41ace058 c1b54d80 42bc1250 c2db18d3 41aa33d6 c3ddd14c 4302dcf8 c2979b2b 42984385 c485ff67 449f576a c2fe3afd 4389b9e3 44973fba c452be7a c258fd74 423aa524 44810d22 44876d7c c2ba85a1 43217176 c4979734 c4933b59 4311be26 4280844a 445a17e0 43ae2320 c31f773f 431a8f6c 43dd3cd4 c4a4c95f c30e40ac 438b87aa c3a63184 c4572e5f 4292de4c 417f086a 44aa6bee c3ce01e8 430a15d0 4312b93c c35b7ff8 431798f0 430a65c8 4312de16 4402e71e c4854a7c c2e4fef2 42474464 c47fdae2 c4a965a4 c31d61e1 42c1f7fd c4af777e c3ea09ac 4331b5b8 42f3564a 43fa7b88 c4acdd08 c2c9874c 435f72e1 c32d24b0 446a01ac 4200e0f0 42073d8e 00000080 -> beb07ba8 3f07e442 3f4632fb 3e3e44ae", + "c4928e72 c4b08f33 4237b828 c3ea2668 c4760790 c0ed1e60 4169e73b 445d8a48 c497bb15 4190b908 42ab9adc c3a16668 4216bac0 4269f940 42fd5ae6 44ae037a c3f09086 421ebf5c 438f5568 4481288c 44946396 c335e87f 42afe9fb c4171be0 c3dbc2bc 43262bb0 422ce765 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3e6d3fde bf6d45fb be9740de 43ff403b", + "c2b10fa0 444905d4 430185c2 440f8fa8 c36fa598 423d7478 4321d1dd 4398d0ac 446c3850 4316868e 433f4520 c421fc6d c4457945 c2c920b6 42fb72c3 c48d1f17 c4290f08 412968a0 433889c7 c3f9758e c28280f0 c130bc40 43934b0b c48b786c 44a38b7e c2620e38 43157766 c36bbc50 c4455301 434429b0 42a8ca29 c3c7a554 4498877c 42d4f830 43155cc5 4361ba40 c0f03b00 42a0c9c0 42133be2 c4b110e0 448e0eb4 c25c8b7c 43222707 44272d68 c400487b 41c14ac0 43491c55 445e7abc 448aa9c6 c3020fd6 4203877b c3a690b4 42189900 42dc6424 4329c4b9 c48615cf 44b73e86 42594c44 4365091e c4a4795e c487f0e4 c31f2978 42e7af98 44736a24 43b3ab84 c2c1778d 42eed1a6 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 -> 3f6e0d10 beb9f927 3d6df5e4 428fb0c9", + "44ba71a4 44161544 c31ec030 c345eb30 435e1840 c1906738 422eaa0f 44a7e544 c4352dab 42ef4c68 42edea4b 4415c8e4 440a35a0 41a54a28 41dff81a 449a5040 4489d770 430dacae 424041a8 c455890b c3f2d1be 420a8bc8 4381f1cc 44a7223c c4afdc1a 431c2228 436b400d 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> 3f3f9815 3f25d1c8 3e11f716 4379818b", + "442be924 42ace1a0 c25edf28 c4699d9a c4b0c58b c3359d78 43291d07 417e7580 44aa993a 432f7954 42cdf4ea c3437e20 c464f624 42b82d90 437ca3ba c3b4a18c c3cf7740 c195b940 4329a0d0 c413cf59 449ae4d2 42c9c318 42fe4ef1 c43e7c74 c43798ea c1e049d0 429d95ae 44465e80 43bfdebc c21b38bc 435045be 44059ca4 c48ee902 c2c9e956 425c2791 442b4008 c4668f76 408f5dc0 434824f9 41889400 4220aaa0 c21613e8 4389557f 449bd024 4468fafc 42e05c40 424e58c9 4485a368 c4b2202c 41d38dd0 434c1ca1 c33ca230 c44d49b3 429b6934 436e3f61 c3df9e7c 43fa36e4 432ed832 438c546d 43940c6c 44678f7c 42e356f8 438438a4 431bd420 c437c289 4263f200 42cb3d3a 44a7aa4e 4360c020 c31ca87e 428074bf 44836ef0 445f27dc c3361979 436ef6cc 41a45f00 447eaa78 c09379c0 43084274 c2977b40 c4201e91 c23ea568 43607408 c4a452ef 442f39fc c2cabd40 430d0a8f c3621298 c2ecb310 42f38210 41debc46 c43764d5 4369acc0 c3313622 43541d16 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000017 -> 3f6a1a3e 3ecf3084 bac686a3 433c9159", + "c2d4dfe0 c463c759 c2aed6a3 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca", + "c424d757 420864c0 c300aae4 446f258c 43d15f30 c2fec654 43882fab 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 -> 00000000 00000000 00000000 7149f2ca", + "44090394 449b8a3a 422b3108 c40cdb38 c3584bf8 c33620b4 43768509 446ebb0c c4b8588e c2f7853a 43863c94 c2215000 444ae618 c335448a 438c11f6 c42a8d4e 44346d5c c27381f4 41dbef74 44b34362 c27dcf00 43032f80 42aefa52 c4b7a9b5 c499ab9c c3203e08 4378a069 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 -> bf5894f7 3f00897e be379645 440ec173", + "44951d48 442bf4bc 411045a0 c46fbf0b c41b3c5d 431946f0 436495c4 c48ebfc4 443795b8 c2b8c41c 435083c6 441febdc 42fe62d0 42735db8 4392bf98 435bb388 441d4da8 408bc740 43831f75 c31d33e0 430acb60 431f9aca 437bc7a8 448127e4 c4145e1c c33afe47 42df368b c4471a2f c31b0770 c2de6aa9 42d288b3 c450a093 c489a9a0 432169ec 42fcd246 449d996a c3c0ef2c c29b065c 43147a8e c47c4584 c471aad6 c30ab203 439563b8 c49df688 c3ba5330 c2bc278f 438cc915 c4731ae0 c41dc775 c1c99ae0 42f0acde 4384b608 44a9e396 c2d3ee57 42e9bc1d 441bfcc0 c33e2ad0 428c6544 4384555e c4339f99 42c4f3d0 40f5e700 434c97f0 4288cdb0 44a5336a c16eb300 43324b9a 43d04b80 c43afbfa c3311365 428913ac c390b8c4 c4aef8e6 42a4f0a4 42b07f34 c3a07ec4 4497354c 42cbf784 4311e740 c4ad7c83 c49779be c3023274 438e02c8 c4b740c8 44801072 42c006bc 42afe661 44952e18 42d22810 429abf18 43164276 4412e978 c357d418 c2e26433 4340ef86 43edd940 c2550180 c12cde80 424858b2 449ae7b0 440a5bcc c2a1ede6 438b2666 c448c317 c446a4c6 433ec846 432af827 c43dda6e 44ae7958 433e33b8 43736179 44083d3e c45bda6f 4308511c 4266bf30 c3d485d4 435eed10 427f7fc0 434f936a c4609f79 c465913a 4292031c 4220737c 432bc380 435cf868 4018eec0 43927123 446d4c24 c49f3d33 423202a0 43890f2e c3514d58 43af17e0 41b1c430 42e0ad57 445fdb8c c43bffb4 42aa1174 436b17da 4488b4b0 c46c4681 c33f3a4e 438c383d 43329028 4491c080 42f199e8 4317d0df 4382e5c4 c4a7c8ea c2b60127 4209bcfc 4471ec04 445ac518 432f173e 435a8f2c c4bac38f c465afc4 c25354d4 434902f4 442be03c c4baf092 42beefa4 426ef098 c3dafd18 c4a337df c248c110 41e69f58 43e2f72c c2113160 c25676bc 42266bab 4487a572 448fd058 42fd65d0 41681708 c47603e7 443b796c 418dcfc0 434be394 444bbdd0 c4b52474 c232e2a4 43678233 446326b0 42a1ff00 c324b939 43432d2a 4406405c 447c4964 c26e83a0 43395ed3 448f0808 c4a74739 c335319d 43822498 c3211cb0 4483695c 41fb5580 43197bb4 4229b800 4431cefc 43071582 421b4344 440bf5d4 c47c5dde c2ddf91d 438d29de 44b21ad4 449e5246 41970230 42a6288b 43e02714 4415805c 431acd56 43588aca 43a9f234 44b2115a c2523074 4379d518 44b2b5c6 4430fdf0 c2368684 43765443 c48822b1 4443ed0c c2d9f26e 437442f9 447c5db4 44aa2276 41dd91f0 42ce7f95 c4766ea1 c4a8eb8b c30a3966 41a0381f c470913d c41e6035 c3291dcb 434369de c412a694 c483934f 4282dfe8 436579b1 c41e1b22 c4966696 43361dbe 427b3702 c479cf72 c3f7cc58 c2c831af 4312b858 c25a6960 443ca678 40e91500 436baa26 c3df43ec c4b2f4ef 4338f4fe 438b2e12 44a37ab4 c37fcb90 c31ef8bd 41814f0e c3dc9354 c44dc4e1 c327c548 4337f7bc 4306afe8 44842916 41530340 42d03096 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000043 -> bf44c165 bf1fa872 be12051b 42c164af", + "43c1aa40 429a6aa0 c338c8a6 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 -> 00000000 00000000 00000000 7149f2ca" + ] + }, + { + "glsl": "vec4 cultmath_weighted_lattice_cells(vec2, float, vec4[128], int, float, float, float, float, float, vec2, float)", + "tolerance": "ulp-bounded", + "cases": [ + "447ecffa c3705460 00000000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 40800000 42f00000 3f800000 7149f2ca 71c9f2ca 40000000 -> 3dc7823d 3f0eb93c 3e11d76c 3f03315f", + "44188f23 44922628 42b60000 4352def8 4199f072 00000000 4347dae5 43caaa97 44775dbe 00000000 42172d46 c2ba189c 42dbf49f 00000000 42ef0665 c4c6a3bf c3b3b034 00000000 42d81d84 c400d4a2 c4f4b693 00000000 438b8a79 4488b3f8 c4783c94 00000000 4366b4f1 441855ec 436110b7 00000000 43556b3a 43616402 44de734a 00000000 435e2c49 c484db2a 44380bd6 00000000 438b68c6 c3ab01d2 c3345521 00000000 4386aa1a 4129ec7d c4f4a734 00000000 433c3f5e 443f9b9f c3c4c5b7 00000000 42b6e367 44514a1b 441459e1 00000000 434cfdc7 c21054db 438306a0 00000000 42866bf6 c3ee15e8 432a0757 00000000 42fad859 c4e4a2ee c4d428e4 00000000 4364d38c 422bd155 c31c4636 00000000 43452ff1 44f14234 c3cf4273 00000000 430c6a74 43cc371e 43f6c0a5 00000000 43156972 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000013 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 3f800000 -> 3eab768a 3f1def16 3ead81b2 3e8c2798", + "c490e80d c461c778 42820000 4395aee9 419be3e3 00000000 42200000 435ddcf5 43eb25ad 00000000 42a00000 c3d83f39 44161d45 00000000 42f00000 c46e51cd c2e2cfad 00000000 43200000 c3dee2bc c48891ed 00000000 43480000 445b6d3e c4885676 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40325b84 4055af70 4034dfa6 3ec8f506", + "449d9ffa c47db139 43360000 439385c6 42593240 00000000 42200000 42d589da 43fe75db 00000000 42a00000 c4192560 43cf91de 00000000 42f00000 c447e777 c404cf31 00000000 43200000 4367aa89 c490a122 00000000 43480000 44abcfbb c3850413 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3d2a98a2 3f3e98ce 3d2a98a2 3f682419", + "43ffca91 44ad03f1 43430000 44ce56ae 43a303fe 00000000 430495a8 41ffb0e7 432ed9ca 00000000 4377a062 c3a083cc 4347bfb2 00000000 4310ca25 c430ae15 c4031bf1 00000000 42768c79 43e01640 c4d06638 00000000 42f04c3f 4443d948 c2b21943 00000000 43173384 4352fbe7 43c64355 00000000 430b1708 c4bc9891 44dd3179 00000000 437bd72c c4da0b76 c4157ad2 00000000 433aee25 c2d017f3 c50e96cb 00000000 42c26490 449368d5 c4042494 00000000 41ee1665 44cb18c6 44c65f2f 00000000 434f4a39 c3f387ea 4490e02f 00000000 43114a86 c50d5eac c24768bf 00000000 432ad44f c420a3f5 c4d97ee4 00000000 42cf40bd 4464c35e c44c8a7b 00000000 42a7ad94 4490b318 441159a9 00000000 429c463a c3230855 44e2b6c4 00000000 433adccf c4d9502a 43ffc11c 00000000 429f3ae4 c44e0215 c4843004 00000000 42e3b4c1 4332eb3f c3979e57 00000000 4225bab0 44f4cc9e 439b4534 00000000 434d5cb8 42d5b4da 43f091d8 00000000 438d8fa8 c3dd48e0 43958e28 00000000 42c1bd59 c4dd0462 c4976c13 00000000 4356dfd8 435740eb c46b431c 00000000 433a857d 45103027 c3af6de3 00000000 43028d22 4418b1b4 448349ad 00000000 4342e020 c4486bd0 447ddfb4 00000000 42f38fb3 c455fbbf c380ddfd 00000000 434f2766 c2ea35d9 c4af48e4 00000000 43702d2a 4476fc89 c3f430e9 00000000 42fc3c82 44ceb4ae 44bb304c 00000000 4211ea78 c455fccc 450e162c 00000000 438d4c9b c4e0f0cf 41e217bb 00000000 42e18b5b c30f1873 c3ad51a3 00000000 4323d9ab 4350dedf c3497150 00000000 4334ec53 43e7d8c0 43535f1f 00000000 4309abd3 c2117036 442ef6f9 00000000 42afe3f8 c49b8798 43d0da6c 00000000 432be20e c3ee318e c40d7c8b 00000000 43436afe 444fe424 c4c06857 00000000 41eed6b7 4511eab8 438c300b 00000000 43848254 434e3ef2 4444c530 00000000 4243a5c0 c4bdef75 448b16bd 00000000 4237a480 c38e440a c3338c85 00000000 42ebf342 43ce3ba2 c508262a 00000000 4380cb50 44f53b52 c3bb4bd8 00000000 42da779e 4460e744 44b198c8 00000000 43058c92 c4904a59 44c5aced 00000000 42456b6c c512bdb4 c418d7e4 00000000 42b01bd7 c3303548 c4b50ea9 00000000 43259cf2 44a4510e c4323169 00000000 43808dc5 44800996 4456e0e3 00000000 42ef4ff4 c34a1c61 44174800 00000000 4201a3fe c4792d18 425549f1 00000000 42b6a9ed c460bb3e c4f57f4c 00000000 4370bcf5 44386eb9 c43fd2fc 00000000 438a8ac0 439c2cf7 4300619d 00000000 42fe1b31 c18335de 4490c0bf 00000000 41bcba9f c4e15d80 442a7e6d 00000000 438369c1 c3becb08 c3d208cf 00000000 434064a9 43918221 c413be7a 00000000 436a1c10 44c9505e 43040062 00000000 42a93302 440f9949 44ed1fb8 00000000 438146c0 c4bcd408 44958aee 00000000 438045b4 c4846f5e c4197be0 00000000 430419e5 435ba2b2 c4b66890 00000000 41d4abc5 436e34f9 c25b7d83 00000000 4285a980 4428660f 4474fcc3 00000000 42363e78 c406811f 4447ad19 00000000 438dcd41 c506e017 c3ede378 00000000 4357a54b c3903655 c4e12067 00000000 43802072 4489a943 c423050c 00000000 423905e7 446767b2 4433bebe 00000000 43842232 c3301800 44167b2d 00000000 42c2f149 c51651ab 435becee 00000000 43692969 c3cffea6 c44e4570 00000000 42423b70 430f99d4 c3211add 00000000 438f161d 44393a22 4388289a 00000000 4378ae16 416886c4 441a111d 00000000 42c777b8 c4a9898c 440f1bc4 00000000 42f86ca6 c4085d0d c40b2e7e 00000000 43283cbd 444a78bb c4e2cb77 00000000 43143934 4419ef5a 41d909db 00000000 42fbdd12 442fcf4f 44ff2cb6 00000000 438c735d c4dd308e 44bd2ed1 00000000 42ebc6f6 c4b830df c443489d 00000000 43799da0 4389ad51 c5198267 00000000 431ee5a0 4507f86c c4131a22 00000000 4300eeec 43e1886d 44177992 00000000 432a99c3 c4828a1d 44d284f3 00000000 4389a704 c4c6f53c c390354c 00000000 431bacf2 c3d802ea c5079cb8 00000000 435a07d7 43471a64 c3004682 00000000 4317f0d4 44f7d28c 44b1ec01 00000000 424ab77e c407237e 45060fa2 00000000 4346629b c50885fd 438d9935 00000000 4223cdbb c3eeb6ec c4580cc1 00000000 4321ef4a 442eb7dc c453931b 00000000 4291c87b 4362711b 42934f93 00000000 41eb6a9c 43075935 4509c8fb 00000000 421c9054 c2f3dda9 4263e5c8 00000000 42c93339 c429dfd6 c420c663 00000000 434035fe 4305faed c3a6b5b4 00000000 43268519 43ba9e9e 40164d31 00000000 432e9d60 42a4873f 435469a5 00000000 4387bf1a c4810a81 446e2c4e 00000000 4351a68b 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000006c 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 3f800000 -> 3f048576 3f1897c4 3f01acc3 3e8c2798", + "c3949e43 4436f155 43290000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 00000000 42f00000 3d4ccccd 7149f2ca 71c9f2ca 3f800000 -> 3ef422a4 3f179d2d 3ef422a4 3eaec3cc", + "c4a0e71a 44846b18 43770000 43917292 4292b29b 00000000 42200000 421f9458 44019de9 00000000 42a00000 c42a5a82 43904969 00000000 42f00000 c41f0af1 c433bcb0 00000000 43200000 44133f63 c47f9f80 00000000 43480000 44ab8d80 438a4153 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e85acf1 3ed696e9 3e87667d 3e549b04", + "c1ec5299 c3dafd55 421c0000 4395e2cd 413b270d 00000000 42200000 437601ed 43e5103f 00000000 42a00000 c3c03207 441e153e 00000000 42f00000 c46ff9a0 c15d49a3 00000000 43200000 c411e921 c48031bc 00000000 43480000 442e65b0 c497ba62 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401ee1ea 4061c735 401ee1ea 3ece80b0", + "c39990b6 44556770 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f0ba4ca 3f37821e 3f0ba4ca 3ec3cce4", + "c4b38b01 c480aaaa 435d0000 43925a10 428385f4 00000000 42200000 42859400 4400ec59 00000000 42a00000 c42436d2 43aa656e 00000000 42f00000 c430d7a4 c422415c 00000000 43200000 43e1bc38 c48846f7 00000000 43480000 44aed6f2 426fb0b3 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e9796a3 3f220bb9 3e9796a3 3f4a4ed7", + "42bd4893 449232e1 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3feec8f0 40420905 3feec8f0 3c5a4ec0", + "c4acbcee 4447970b 41d00000 4395f306 40f99267 00000000 42200000 4380eaca 43e1c9d0 00000000 42a00000 c3b3b8d0 4421b5ab 00000000 42f00000 c46fd498 4210524a 00000000 43200000 c422418e c4765e9d 00000000 43480000 441638ab c49e0fb4 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f13dc20 3f1f6394 3f13dd00 3f6031e3", + "c430288f 4394cbc0 43360000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3daf257b 3e932638 3dbb38ce 3f571c73", + "c461e9a7 435e41c8 42b60000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 3f800000 -> 3ef51a18 3f0aca57 3ee93112 3f571c73", + "c488fc2f 43f7ef85 43430000 44351b3b 430f14c6 00000000 42ac3505 4229d457 4368455f 00000000 426e874a c49185d3 4435179f 00000000 4221b1bd c4a2720a c471179a 00000000 431819a3 4370c4a1 c45fe9a4 00000000 4332ac74 444e382f c2bb878c 00000000 41c887e2 4469017f 44daf504 00000000 4369827c c42a23e3 44478c2b 00000000 434d6543 c471ad87 c3a5ae6c 00000000 431a556c c2c6bfed c5082fbd 00000000 43003c96 450bd8a3 c47ab9cf 00000000 4355c832 433fa0ad 433b2b65 00000000 4296e07c c3931625 442f00a6 00000000 41a9b126 c4ea9c4a c2257704 00000000 435bf87b c3d1ea5a c48e1af1 00000000 42868bff 44307c87 c41dcca9 00000000 433ddcea 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 40800000 42f00000 3f800000 7149f2ca 71c9f2ca 40000000 -> 3e6af1b4 3f29898f 3e9186a2 3f120fa7", + "c4a16abc c2eb3e04 41500000 44e5e734 41bf4a4b 00000000 438f2dba 446a361b 44c140fb 00000000 43083cf9 c460f93e 44de6f28 00000000 428d2f92 c4f83428 43326012 00000000 438e9d7b c4159144 c445d0fb 00000000 438fb314 43292eca c3dcf7b6 00000000 431fabe0 44edb59f c3b90542 00000000 43657b2c 4494a6ed 449f92aa 00000000 4334b34b c301ab2c 43f0ca77 00000000 43823899 c502658a 441e5db0 00000000 432716a1 c428fd94 c413af70 00000000 438a94f0 4199dc93 c2edb5cc 00000000 428a8638 440d53d9 c36d4263 00000000 4357536d 44831793 4439737f 00000000 4361b762 c1bfc9d7 43cf08fd 00000000 42c8b922 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000000f 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 3f800000 -> 3f48dcfb 3f6669ef 3f4b5270 3d55d830", + "44b43252 43e836a2 42820000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 40000000 -> 3ef16d03 3f459acb 3ef3724a 3d399760", + "c4a62b95 c4817eac 43430000 4393283b 42688515 00000000 42200000 42bb016a 43ffc320 00000000 42a00000 c41d137d 43c37837 00000000 42f00000 c440bb23 c40f0528 00000000 43200000 43992a6a c48e716b 00000000 43480000 44ade158 c31e1f07 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f070907 3f2411b5 3f070907 3f4a4ed7", + "c3c88386 c4ae8b7d 43290000 4393dcef 4249d606 00000000 42200000 42efed5f 43fcfc8d 00000000 42a00000 c414fba2 43db5ab6 00000000 42f00000 c44e8974 c3f47a9f 00000000 43200000 431c05e9 c4923478 00000000 43480000 44a8b2a8 c3ba2991 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401363df 402e91e8 4017b8fc 3f354648", + "443aa4d6 43781eb1 42d00000 43953085 41f9267a 00000000 42200000 43388af5 43f3137c 00000000 42a00000 c3f9d0b4 44087768 00000000 42f00000 c4670548 c3821194 00000000 43200000 c3619f04 c490c757 00000000 43480000 448a5605 c4565d95 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f31af23 3f3dc6f0 3f31b003 3f4bdb53", + "c497256a 42d4fa09 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 400c7731 408d0dc6 400c7731 3d55d830", + "c436705e 4304b7ad 43430000 43c8394c 429e2f47 00000000 4375c3a0 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 3f800000 -> 3f37cb19 3f3d7003 3f2c7b4e 3f62e889", + "446d1322 c49bc147 43020000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 3f800000 -> 3e2c4c62 3f02e8de 3e2c5974 3cac8220", + "c4a700eb c40a2c25 429c0000 43958b3f 41bb02a0 00000000 42200000 43518fd4 43edf39c 00000000 42a00000 c3e3c9db 4411c8d0 00000000 42f00000 c46c8617 c322cced 00000000 43200000 c3baee88 c48be6a6 00000000 43480000 447001b9 c47ebf9a 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e112cbc 3f45d169 3e112cbc 3f1ab712", + "433b2c46 43d3d981 43500000 4392c452 4277cdda 00000000 42200000 42a05894 44007212 00000000 42a00000 c420c473 43b71276 00000000 42f00000 c439096c c418d825 00000000 43200000 43bdd9f4 c48ba7b0 00000000 43480000 44aee446 c244ff0a 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3f9d1e4b 40662a62 3f9d1e4b 3f44b788", + "c4b9eef1 c4bb2ea8 435d0000 43925a10 428385f4 00000000 42200000 42859400 4400ec59 00000000 42a00000 c42436d2 43aa656e 00000000 42f00000 c430d7a4 c422415c 00000000 43200000 43e1bc38 c48846f7 00000000 43480000 44aed6f2 426fb0b3 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401a409a 401f7a81 401957dd 3e191f94", + "4363c23b 3f2246f8 43020000 43f30f84 427e377e 00000000 42f16ed9 4424cdf6 4500452d 00000000 435cd090 c43449ae 44287e1a 00000000 42228ac0 c45773f0 c3ab5060 00000000 42f26dd3 c0d9c0bf c2d9db8e 00000000 43833c56 442804ac c3b8f841 00000000 4381c5ba 437811b9 4333a9d6 00000000 431092dc c35bc5a0 4491f96e 00000000 42d9a078 c4823a49 4387aa2b 00000000 428229e6 c4c3e05b c4eaa711 00000000 42b86805 43333331 c3c11ba8 00000000 42549617 44f22259 c1456f6b 00000000 431af091 443dd750 44c5ee32 00000000 435a6438 c43f761d 446b6578 00000000 430ca813 c4ecb452 c3e9bf2d 00000000 431b80e3 c302bfb1 c42248d7 00000000 43390374 4402f7da c3c2d7bc 00000000 430feb00 445b7a60 43ea626f 00000000 437fa98c c203dd44 4425dbff 00000000 4391ca05 c4c9739a 44262806 00000000 4363df55 c4ad5434 c49de667 00000000 41b8ce09 44245b9f c505c06d 00000000 42a4aef4 4391eb3d c227c53a 00000000 42a94146 444a67cd 4499486b 00000000 427651d5 c2f84b6e 434c1b36 00000000 4264a9be c4732d45 c2ce55c3 00000000 4276df4c c3ee328b c4aafcdc 00000000 42da1bcf 442def9b c42aac0d 00000000 420188bc 44b2f001 44044a0e 00000000 42f9c290 4164e011 43248958 00000000 434d196d c4a8d52f 4444b88c 00000000 4389f024 c49c3eaf c456ecf8 00000000 43259020 438215e3 c4c7624f 00000000 4354d273 44c04c98 c3dc72aa 00000000 43482661 4333b21e 434ceb87 00000000 433f4e2f c2ecd35a 43883016 00000000 430e5af9 c49b51a0 4218a613 00000000 42ab7dca c418854d c49592cb 00000000 425b9efe 43c576ac c3ff3812 00000000 432bfcf5 44819746 43655578 00000000 431495e6 42bebf13 43d23206 00000000 42d8b4f4 c443f99f 4419529b 00000000 4346b979 c3ab3407 c32c4234 00000000 422f79dc 40866459 c325dd16 00000000 4389b9e8 43837abb c2e80475 00000000 42e01e71 4403062c 43e34ddf 00000000 43827996 c41faa93 450e2b2c 00000000 41d4eebd c3ce62fb 428b3988 00000000 437b4b50 c41e6aaf c463b097 00000000 42f7e978 443d4ad8 c4a47d71 00000000 4301e8aa 44c18f9c 42fc71b4 00000000 438bcee3 42c7b35b 4384dab4 00000000 4310e637 c31a5276 431efaa1 00000000 438c0c6a c4cac2ad c40ac881 00000000 42df27b0 c35fe41e c4faf7a5 00000000 42ae4bc9 44db5b48 c4870c87 00000000 42099828 44ff22aa 44a67b51 00000000 43330421 c3399812 44a7d73b 00000000 42ccb28e c4a6c1ba 43d0dba5 00000000 438f4cc4 c43441df c443bdeb 00000000 432d03ea 441eac78 c4c35c44 00000000 435b95ef 44b5d0c9 c2a04741 00000000 4364123b 43e7d365 44564b89 00000000 42a4113e c43e8177 4481815b 00000000 4312bfd8 c3a9407d c284910b 00000000 4355bd1a c3db2756 c4d8e58f 00000000 4381d5f6 44e63881 c4bd52c4 00000000 41b26654 44f2c895 4465a5dc 00000000 429e0496 bf292abe 44285db5 00000000 438bc6bb 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000045 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3ef7e034 3f0ebe7f 3ef7e034 3f64c232", + "420d9443 c464020d 421c0000 450b268a 42adbf7a 00000000 42f9ebc4 4419e631 448f4c98 00000000 437ed24e c3cbc769 44279c4e 00000000 43172d39 c517a697 c20bd760 00000000 4201c4bf c46567bb c4c98d0b 00000000 4387007a 43f14dd0 c451f018 00000000 42e2c18b 4394011b c040f79d 00000000 437c2607 4413703a 4474dcda 00000000 42a3349b c3989516 440ca52e 00000000 4249218c c4ad2149 4240c056 00000000 43908acc c335e2b4 c38ef57d 00000000 43912f84 444e6a92 c4c9f6db 00000000 42d6ee22 4367f8f0 c15c9ded 00000000 433fdf26 4407d183 444a5656 00000000 429f1d96 c3367a6f 43bdedd7 00000000 4390826f c4bffcb0 43014370 00000000 435f918e c3bd336b c405b4b2 00000000 42864e3c 43b99096 c44df875 00000000 4255ac51 45143294 c38135ef 00000000 42bb8203 4420b95d 4457b5fa 00000000 42abe78c c4582dfc 45004fc5 00000000 43890b56 c43d6dc9 42cafa8b 00000000 43907f06 c4a4d6c2 c4d23cd6 00000000 4388c35a 44427463 c4f7b096 00000000 436864ce 44ebdbed c39610af 00000000 4293d40a 44455deb 446f5c4a 00000000 41a92f77 c38d6788 4442037a 00000000 432e381a c3a3016f 4270717d 00000000 438af427 c489f7b8 c49f2e50 00000000 42915ad7 441e06d2 c4ea991f 00000000 434fff8e 43ab1155 c28fa675 00000000 4367e2e5 44c057de 44d3314a 00000000 436bc210 c36d16da 443f6c98 00000000 4345c333 c3a80290 429e6e4e 00000000 4389dbbc c45e4c8f c4685753 00000000 42d89994 434a3327 c432b16e 00000000 43909fc3 44d7abf4 c3e1e793 00000000 42d0223e 43459dec 4344a070 00000000 42938f0a c3d9c65a 44d4407b 00000000 43670714 c491a03b 43a7f1ea 00000000 4277ac69 c4b076a0 c4a725e2 00000000 433da9e6 4386bad3 c4922826 00000000 438dcac9 4496cdf2 c3be1a4e 00000000 433b01af 444fc038 443b4f49 00000000 43528c6f c25ab72f 43858f8b 00000000 4307d8fa c48e0ee0 43c29088 00000000 4369edf0 c46d82e1 c44bc7d6 00000000 4361ded8 4292a727 c3cc98c8 00000000 42615d5e 45121b0c c4584e13 00000000 4321c3cd 44a50645 4486afca 00000000 429fd4ae c39a3ebc 44fa87f1 00000000 438c7bb4 c42a8a27 4387dda6 00000000 430eef98 c4e50aab c4b1bbb9 00000000 4323dcd0 42d329b4 c44ce141 00000000 41a50b91 448ee62b c3f42450 00000000 43889d68 440454df 43c3238f 00000000 4388f4d8 c33e115f 44e4a6bf 00000000 43457566 c500e367 446b5bb7 00000000 431f749f c4272d29 c3ea0d99 00000000 4391ae03 427771ab c4437ef2 00000000 4356d7a9 4407f4b4 c3844e51 00000000 430a0fce 44dcaea4 449287ca 00000000 422a2f10 c2ea34c4 450686f7 00000000 43211103 c48b7286 44104a64 00000000 43914592 c3d5aa05 c3866bba 00000000 438e4202 41874262 c40e02dc 00000000 428e2abe 43858f6d c312a301 00000000 42b3be5f 44481749 43ee3b38 00000000 437e38de c0981de1 4465fd72 00000000 41cb1682 c2f20d5e 428cba69 00000000 439205db c42f72df c3c55e7a 00000000 430a3d8a c137729f c41383a5 00000000 4285d3f4 43e404fb c38c2f20 00000000 432e90a3 432becad 42b66cba 00000000 4380758e 42b89b21 4502fa1e 00000000 434560a2 c4dbabb7 448e9cc6 00000000 41de4862 c40d0fd2 c38ce5cb 00000000 43922685 c0eea4e5 c2d90aa8 00000000 42fdb554 43830d00 c3337862 00000000 428ee896 44a98a43 441f0cdb 00000000 4309da10 4183d813 43304cf0 00000000 42e4619d c4d4eeb2 4499a0eb 00000000 4328d8ba c4ce3fb2 c4353f97 00000000 4207e70c c3737910 c5009511 00000000 431904b5 441d334d c3eece72 00000000 421a59a9 43dbe2db 43347796 00000000 42c45b59 43a94c19 45139cbe 00000000 42d79ba8 c44ff9de 44263136 00000000 4370a6ab c41137a7 c35dd6ce 00000000 4350a8b4 c3bba3ec c50b2842 00000000 42d283aa 446877d3 c44351ba 00000000 4345f3e8 43c69116 430c93fe 00000000 4329db3c 428dae69 43b69ee6 00000000 4285b2cd c4e18b49 44c72ac1 00000000 424e5553 c424021f c356399a 00000000 439112fd c3caaf4b c4e6bf35 00000000 42806b18 4452668b c4433615 00000000 433ad06f 450cfbaa 4428eb6d 00000000 43900a77 43b45ff2 44b7a9d3 00000000 435056f8 c456d0fe 44515e5f 00000000 42634054 c4df78d9 c3f3f933 00000000 43320557 c3bcf7bd c4add549 00000000 436a7927 44597cef c45ea964 00000000 432e992d 43884ed1 42867f1e 00000000 43890e38 43d202cb 44aff99c 00000000 42a0beee c3a83ab4 43b4ec80 00000000 4308bc06 c43f2d23 c328ce25 00000000 42c3b696 c4394a76 c50e61b0 00000000 430309e5 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000006c 43820000 3f333333 40800000 42f00000 3f800000 0e736390 8ea24260 40000000 -> 3f9484c5 3fda1cce 3f99a8cd 3f5eaf6f", + "c1ec5299 c3dafd55 421c0000 4395e2cd 413b270d 00000000 42200000 437601ed 43e5103f 00000000 42a00000 c3c03207 441e153e 00000000 42f00000 c46ff9a0 c15d49a3 00000000 43200000 c411e921 c48031bc 00000000 43480000 442e65b0 c497ba62 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401ee1ea 4061c735 401ee1ea 3ece80b0", + "c39990b6 44556770 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f0ba4ca 3f37821e 3f0ba4ca 3ec3cce4", + "42bd4893 449232e1 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3feec8f0 40420905 3feec8f0 3c5a4ec0", + "c1ec5299 c3dafd55 421c0000 4395e2cd 413b270d 00000000 42200000 437601ed 43e5103f 00000000 42a00000 c3c03207 441e153e 00000000 42f00000 c46ff9a0 c15d49a3 00000000 43200000 c411e921 c48031bc 00000000 43480000 442e65b0 c497ba62 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401ee1ea 4061c735 401ee1ea 3ece80b0", + "c4912430 c319be2d 43360000 439385c6 42593240 00000000 42200000 42d589da 43fe75db 00000000 42a00000 c4192560 43cf91de 00000000 42f00000 c447e777 c404cf31 00000000 43200000 4367aa89 c490a122 00000000 43480000 44abcfbb c3850413 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e96dbc2 3f6ae035 3e96dbc2 3d55d830", + "c4555fdd 4448bea5 42b60000 44b7efc2 430646d4 00000000 438800d0 42d7780d 43837f0a 00000000 42f604d9 c31aabe3 4336d032 00000000 433123fd c39c7026 c28d8354 00000000 420c3ab2 c3b26464 c4a96d75 00000000 41e3ccb2 44bb138b c4a9dab7 00000000 42e03038 4500bce8 443e3389 00000000 4280d4cb 434d5596 44caa7d9 00000000 432c0405 c4c472fd 4488122d 00000000 42ca9b3e c41d22ab c3a5b453 00000000 438a4953 3f8cecf3 c34ae6ed 00000000 41d0bad1 4449241f c3ce8ffe 00000000 42ac4f23 446e6c49 4429007a 00000000 431a009e c375f394 44df471c 00000000 435d366f c4a27b7a 43e812c5 00000000 425cf87c c2cbf9d4 c2bd46be 00000000 4341716a 431a9dda c40ca117 00000000 4324c088 44dabab8 c3bbe7bd 00000000 420f45e2 440a48b3 44271685 00000000 437db2ce c383a11d 441bd1c9 00000000 4381fbc9 c49303ac 42bcef29 00000000 41edffd4 c3849ddb c3d38d96 00000000 42976422 442b416c c491ca49 00000000 4394d515 43c80a10 41a43446 00000000 43537d97 443d4518 44cf253d 00000000 437cbbe5 c486f300 44acffcd 00000000 4389408a c443e854 c310c1c3 00000000 42cf88e2 c406a3a5 c4dbdbf3 00000000 432ea126 4481bed5 c47f2191 00000000 437f55fc 45098c45 4432b735 00000000 433644c4 43b0d4b2 4504278a 00000000 42f916e4 c486ad7a 444ade1d 00000000 43089c18 c2f0f598 c2661cb0 00000000 428d7402 c15edba0 c3cae14e 00000000 42ef8547 4481a06b c4126afa 00000000 43372bdd 44052653 43ad4a13 00000000 438ad672 c1aad6cf 435b409b 00000000 430343d7 c48d62cd 43e3a923 00000000 41b20b9e c4cc60c5 c4af1058 00000000 42689e78 43cd7f6c c4dce87d 00000000 43130cb4 44658d87 c36bba5d 00000000 41d99cd2 42893bd0 429902a7 00000000 4358a0a0 c3c9f282 44862abf 00000000 42483ebc c45cd84b 42d4d591 00000000 4388503f c48d2f1f c4ce81fe 00000000 427a068e 4416f784 c48d11e8 00000000 431a365c 450f1050 41d2ed9d 00000000 434d0032 424c0aa3 42c9b36b 00000000 4225c690 c4429f46 448786b0 00000000 4365fbac c4069578 c29af04c 00000000 42e6d2b7 c433a546 c5003ca8 00000000 436b4f6d 43dea44e c3ed054b 00000000 4266df8e 44bba3a2 43d33aa4 00000000 436b7068 43dc7627 45043b7e 00000000 438704f2 c4cb1e07 44a6070c 00000000 435caef4 c4cb9478 c42ee7fa 00000000 430c0054 c1ee6287 c3c8d12f 00000000 43173eda 4408b1c6 c3a911a8 00000000 437b3f31 44555c39 43fe22f1 00000000 43791187 c30c959c 45190aaa 00000000 4388ec92 c4f48ecf 445bdc4d 00000000 42a6255c c48e9b47 c4614a43 00000000 42d18bef 426f2aaa c39c7eb1 00000000 43644150 42e4e670 c20921f0 00000000 43010876 4435450a 443aa0d5 00000000 430123ec c3ca2483 449869e1 00000000 42460faa c5130dc5 43bd67fb 00000000 42f935b1 c46203bc c497f699 00000000 43379f21 445b6da8 c4e2378b 00000000 43834d65 43a2e91e c11328a5 00000000 434eb06b 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000046 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 40000000 -> 3f4baa32 40039658 3f4baa32 3e8cb2fa", + "c490e80d c461c778 42820000 4395aee9 419be3e3 00000000 42200000 435ddcf5 43eb25ad 00000000 42a00000 c3d83f39 44161d45 00000000 42f00000 c46e51cd c2e2cfad 00000000 43200000 c3dee2bc c48891ed 00000000 43480000 445b6d3e c4885676 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40325b84 4055af70 4034dfa6 3ec8f506", + "44b4d781 c42a30e0 42c362a8 439548e7 41ea16f6 00000000 42200000 433ea91b 43f1e490 00000000 42a00000 c3f49b3b 440ace2d 00000000 42f00000 c4689674 c36cbe3f 00000000 43200000 c38303c6 c48fd142 00000000 43480000 44862e84 c460ae13 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40c1cc31 40c3eff4 40c07f6f 3e736b1c", + "444e8c68 bfdf6380 429c0000 43958b3f 41bb02a0 00000000 42200000 43518fd4 43edf39c 00000000 42a00000 c3e3c9db 4411c8d0 00000000 42f00000 c46c8617 c322cced 00000000 43200000 c3baee88 c48be6a6 00000000 43480000 447001b9 c47ebf9a 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f167253 3f2381cb 3f166d54 3f6c7d59", + "c4ab4cf7 444cc9b2 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f14703f 3f223cf1 3f146e07 3f06942f", + "444248ad c42ce00f 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f2166bc 3f354e75 3f2166bc 3d4ae2a0", + "c45d596c 449ff606 43290000 4349bc0e 4209af98 00000000 43830174 43de4bad 44ea652c 00000000 43176ff6 c4831d97 44410c23 00000000 43100af4 c408bc51 c3a1dad1 00000000 43399da6 4324ac67 c49a4f9c 00000000 4366b6ef 450525d3 c412ee91 00000000 4347b715 42d459b2 4305bf25 00000000 43219dfa c45b6fa1 44c9c969 00000000 42d795b4 c4d0f293 c3215749 00000000 43087c84 c30e966b c3e200f6 00000000 431cd158 44cad452 c4ad698f 00000000 41dec918 44683383 43e707df 00000000 43321d3c c30f0549 45153747 00000000 429ef2f4 c4cd7f26 44124abb 00000000 43733754 c4195357 c426a824 00000000 43506e43 44655ae9 c4fd38dc 00000000 438f18b2 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 40000000 -> 3ed550b1 3faf55ea 3ed550b1 3f70eff1", + "c483ea3d 449f53f6 00000000 43960000 00000000 00000000 42200000 438c7a85 43dac84f 00000000 42a00000 c399f96e 44283853 00000000 42f00000 c46d9924 430779a7 00000000 43200000 c440d32a c45f41ba 00000000 43480000 43c69044 c4a7cfcf 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f43ab94 3f44240d 3f411e4f 3f7979ad", + "43bda5fb 44841e1a 42500000 4507949b 42e1cf3c 00000000 4338073f 442d6ec1 44ac1370 00000000 4331ff44 c48a425f 44d0a6e4 00000000 4278100f c40fd603 c2190d9d 00000000 43922396 c4028cc9 c4864f33 00000000 4341ae3a 431acecc c3627895 00000000 431b4341 44e2a0b5 4312d69e 00000000 42282880 42690eea 42f8d33e 00000000 4318a62b c3a4bf2c 43e9b5ee 00000000 4324117b c445487b c296be03 00000000 43681fe8 c3e6a3c3 c47fc62f 00000000 42b73443 449531d3 c4cd4d7d 00000000 43837790 4510a516 437ebcde 00000000 42bae9ba 434039f7 43dda461 00000000 435338bd c440b781 4480a82c 00000000 43064534 c50907ca c388ad04 00000000 431aad8a c403c56d c49e23cc 00000000 43462b82 44bc0ff4 c4f3b360 00000000 430fd1e4 44f7187f 4389b7b5 00000000 41a0efc7 4335a838 43e32c6b 00000000 4215d5d8 c44552e8 44783976 00000000 437af028 c508966c c3a855c1 00000000 420b0026 c4375859 c4ef399e 00000000 4316ee24 4485f830 c4a3a1cc 00000000 4371837b 44fb202e 43a99879 00000000 4367b354 441b0de9 44d36069 00000000 42bc2ba2 c4850d2b 449dd0f7 00000000 4383a361 c48a1954 c34af09d 00000000 433e284c c423608e c4e90e1a 00000000 43613e84 44853b3c c4997ca6 00000000 43287e0a 4517d815 43f147b3 00000000 43246228 43c5e1ff 4493eee6 00000000 4205c165 c49c8602 44af284f 00000000 4339a8fd c5120257 c3f98e17 00000000 4229803c c2c607ee c39b7448 00000000 43348a86 44935824 c4a02dde 00000000 4295df20 44666fa9 4352db20 00000000 42a6b7c6 43593745 44336a4b 00000000 433c53d8 c42c5296 44360014 00000000 436673a7 c36226ee c25cb2fd 00000000 4315099b c3d41ede c4b8c3d9 00000000 42f660fa 44c01201 c4c516f2 00000000 4362a84c 44d72be3 43df2acf 00000000 434004c3 4409bf53 44fdb243 00000000 434cf3a3 c3d5d4bc 43d52fd4 00000000 42faf653 c4cb2df4 c3df45ae 00000000 420fc249 c371e048 c46c23de 00000000 4344ed8c 4343dbd4 c33db8d7 00000000 4391f6ff 445fa9b6 4381d9cf 00000000 437cdd9d 434651c5 444dea55 00000000 42a39092 c472c02b 44647526 00000000 43375699 c4d3dabb c401a43e 00000000 42aafc99 c270b146 c3855f17 00000000 4323888d 44d33530 c4c11c64 00000000 4309a1be 44b6b331 43eb2b74 00000000 437b0dfe 43071c70 44207810 00000000 41e2ff3e c4a159bc 448f4fed 00000000 4289fbd1 c50a4354 c43acdf3 00000000 43421f8f c39cf003 c4c8b26c 00000000 43634341 443157cd c4190109 00000000 425e3b89 44e1e2a4 441fe211 00000000 42cc2a6e 43c26560 45069123 00000000 435ceb81 c4db7218 44b7e14a 00000000 43438683 c4f5af5b c435e7ec 00000000 435db85a c299d37f c3e80849 00000000 42cfc385 4409eab1 c3e07222 00000000 432c6e8d 4486da8f 43d09368 00000000 437db592 43b11590 4512a0fe 00000000 41c33cdc c4a7ed86 4484ab1f 00000000 4347b19e c4c4d4e2 c41ec610 00000000 42908910 c370feb7 c4dd147c 00000000 43080e2a 43464a94 c3181112 00000000 42ff775a 43ce985b 432d9c61 00000000 43449e6e 42f3e84b 447ab261 00000000 42923119 c4b2a4f8 4484f50a 00000000 431205dc c44cfa47 c3b33f13 00000000 433dc15c c305fbf7 c49c7e51 00000000 428f3b03 4475c808 c4317afc 00000000 42a3a025 44ce37e2 443b7431 00000000 439318a8 42a0618e 4458d0e4 00000000 4310b5bc c4b19464 4478c22d 00000000 42936f24 c426d208 c39d7a8c 00000000 42cf2a7c c2e45f50 c4b7199a 00000000 43546d94 449cac4e c454ce8d 00000000 4380058c 4411543d 438e589e 00000000 438a2c1c 4316cb29 451479df 00000000 4395c050 c368bb94 431934fa 00000000 4282bd76 c4799e2b c3fd7ad6 00000000 42e7d5d6 c20007d9 c4233956 00000000 431bdab7 449b56ea c44629da 00000000 42c5db88 4419a064 43a19cab 00000000 4347c08e 40a32e49 43136925 00000000 4359309e c500e57f 449f40da 00000000 43498de2 c35954b9 c2ecaee9 00000000 42b75384 c19fcc0d c477979d 00000000 435f543f 4431243c c3d3df05 00000000 4355e25c 443d56fb 43d5541d 00000000 42a36ca1 40f22379 44a43152 00000000 4322dd46 c3c5ba08 4364d1ce 00000000 4369e765 c4dde088 c4813d50 00000000 43143174 3fdbf163 c346c1f6 00000000 432a24d2 450353cf c492f841 00000000 436fd57e 448b3376 44279594 00000000 42e27640 c1fdcb51 44ac0178 00000000 42dbb73e c4d36530 4464a3f1 00000000 42579123 c5036d52 c4a36de5 00000000 42a7cafa 42213dce c4866f4f 00000000 41f822b7 43fea97a c3850366 00000000 41f77728 43d7d3db 438a8a77 00000000 43313aa7 c2390c5b 445ec620 00000000 438b1870 c4b2ce47 443445f3 00000000 42e2ddc6 c4807450 c42a2fa2 00000000 43208558 42d02ae3 c4c405e6 00000000 42b8530d 44c21638 c43cb785 00000000 43819072 44ace62d 446c4f8b 00000000 438a0e63 c2363a10 440cdb82 00000000 4316b12f c4c19819 443563ab 00000000 42506c15 c40a8113 c3c336c3 00000000 435b31c8 43248a69 c4d7a29a 00000000 42ab6a48 44068c4c c372bd57 00000000 4345eae2 43999f3d 435f36d6 00000000 43635895 c30d26b1 44a07cea 00000000 42b4042c c4d60f94 4439b861 00000000 422307a6 c41d387f c3eb6ff3 00000000 42c57657 41989aa4 c3192a08 00000000 4316a630 44525d66 c3af5a45 00000000 4338683d 4461e1da 442e43fa 00000000 4386e606 c3908e5a 4501cd9d 00000000 435a16e6 00000080 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3f028796 3f555f52 3f032190 3f0d526d", + "c490e80d c461c778 42820000 4395aee9 419be3e3 00000000 42200000 435ddcf5 43eb25ad 00000000 42a00000 c3d83f39 44161d45 00000000 42f00000 c46e51cd c2e2cfad 00000000 43200000 c3dee2bc c48891ed 00000000 43480000 445b6d3e c4885676 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40325b84 4055af70 4034dfa6 3ec8f506", + "43c9061d c4b347ad 42500000 4395cc18 41797ccf 00000000 42200000 436a03b0 43e82f0d 00000000 42a00000 c3cc6067 441a3747 00000000 42f00000 c46f7893 c27ed10d 00000000 43200000 c400f2f1 c484a98e 00000000 43480000 4445832e c49078e1 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 405ea9f8 40a107d2 405ea9f8 3e4c1fc4", + "432bc01c c41bec8d 43290000 44f87ddd 43a9991c 00000000 431c2d5b 435da80a 4469b8a2 00000000 438d3be6 c440ba1c 440de15e 00000000 4356845a c4dab977 c48173e6 00000000 4385f066 438b7183 c502ab28 00000000 42a44546 44e98020 c400d63b 00000000 432aeee8 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 7149f2ca 71c9f2ca 3f800000 -> 3e8ac0e0 3ec5e73a 3e8ac0e0 3e44ffa4", + "43a00a43 c4af25eb 42b60000 44f52093 4332f266 00000000 42c645e4 4402c470 449f9bf4 00000000 434931af c3cb5087 43f04e8c 00000000 421641de c512dcc1 c404d9d0 00000000 43933870 c392c167 c48b6176 00000000 42251a6e 449a0554 c48bd785 00000000 42dccba4 440f3ae0 43539cc3 00000000 4324ba39 439c17a5 451a0e5c 00000000 431b1ed0 c48e894e 444574d1 00000000 4248e38d c46ad480 c3f7a2cc 00000000 42a8c876 4122af6c c4ea3b32 00000000 4230fba1 4503e450 c487725d 00000000 4383d726 44d85e7a 44995e8c 00000000 43565106 c35cd5a6 44c879f0 00000000 42bf48e1 c429c26b 4372779b 00000000 43807fc8 c463217c c452c339 00000000 42be3485 43665c5f c4518574 00000000 431d4d4b 44f08b54 c3cea558 00000000 41b53700 43eae2db 440de7ef 00000000 437efbab c327cbe6 43c6a21a 00000000 438473aa c48298d8 42a7d5ef 00000000 435c137b c4022a27 c44fa441 00000000 43769a31 4389fde5 c3eaf200 00000000 4387de68 44b22531 42923b76 00000000 41d1a581 447e580d 450b2ec6 00000000 4389f390 c3f88c80 441f5087 00000000 422baa4c c40043ab c2bd8cd2 00000000 42faf71a c36bbc96 c440791e 00000000 4355d2d7 4421878b c41ed0c9 00000000 434da2c9 44f180b6 441ce457 00000000 432776f4 433aad57 448b8358 00000000 4355c1c2 c4b6dabd 4489b7fa 00000000 4339dae7 c4ae0bab c42635e6 00000000 42fecaac c0680393 c2d33722 00000000 435e4924 44cbc836 c4662dd8 00000000 4393c669 440233be 43a97404 00000000 43572e27 c36b59bf 451705d1 00000000 43275136 c4f3f305 4444678c 00000000 41d7029f c4ad7f30 c4949cab 00000000 4269f456 43c57e33 c4d44d97 00000000 438e1052 43d46133 c2da17c4 00000000 433f0113 44058b92 4414e5db 00000000 42e919dd c3fa9e37 44a6808e 00000000 430203f0 c39fd801 421a0bb9 00000000 438e2077 c3a15415 c3ebf900 00000000 42308c6d 444a783f c4bd3249 00000000 433ca87c 4336bcb2 4006b5eb 00000000 433f2e5f 4403bed8 44823bf1 00000000 4358dc0d c4b51202 44fc2db1 00000000 436cd7c8 c4144fa8 c2aabdfc 00000000 437483a9 c43a195a c504d7f7 00000000 437c8904 4405a997 c40e4b76 00000000 439535be 44d53a33 43f008be 00000000 433b71bc 42966a32 43b46fe1 00000000 4349e2b0 c487874e 445d8fb1 00000000 42bec9c6 c50bc31d c4702767 00000000 42971d2c c33514d3 c5188b52 00000000 438299ca 445a0986 c406d6a4 00000000 437959a0 4463d612 4407b084 00000000 42fadfc2 c135f632 434615dd 00000000 429ca853 c436159b 43a3b236 00000000 4211a1a6 c4859db5 c453163c 00000000 434aa12b 431e999f c44f8e0c 00000000 43402b0f 44ca6497 c3f2812a 00000000 42f0ca64 434da4ae 4353b8ed 00000000 4263a974 c25cb61b 43266a0b 00000000 438e5a38 c50fcea8 43b93982 00000000 4385a0d2 c2fcdbe7 c32a032d 00000000 42d5ebb4 43c11072 c4470987 00000000 42ce814a 44cedaa2 c23ada72 00000000 438f76f9 43bc5809 4429243e 00000000 431003ad c41287e7 445e3498 00000000 438bd199 c3b98e66 c219b6a9 00000000 43190c9e c412f20b c4b9c6e8 00000000 4288e7b8 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000004a 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3f09749e 3f23d2b1 3f0898be 3f7b69a3", + "c4b9eef1 c4bb2ea8 435d0000 43925a10 428385f4 00000000 42200000 42859400 4400ec59 00000000 42a00000 c42436d2 43aa656e 00000000 42f00000 c430d7a4 c422415c 00000000 43200000 43e1bc38 c48846f7 00000000 43480000 44aed6f2 426fb0b3 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401a409a 401f7a81 401957dd 3e191f94", + "c37ef6a5 c4791563 43360000 439385c6 42593240 00000000 42200000 42d589da 43fe75db 00000000 42a00000 c4192560 43cf91de 00000000 42f00000 c447e777 c404cf31 00000000 43200000 4367aa89 c490a122 00000000 43480000 44abcfbb c3850413 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e61feb4 3f2a02de 3e61ffc0 3ee9973a", + "4409e1dc c49cd1b7 43770000 450e1d76 440f5629 00000000 4366f1d0 42e09e3d 44b6719f 00000000 4306cac6 c41a72eb 4382d0d6 00000000 41dc9166 c3f710a1 c40b9b35 00000000 423a6f5c 448040e1 c4dea625 00000000 422408ef 449cf8f7 437d0282 00000000 424353f0 43666594 44e53ad1 00000000 42323521 c502f505 447c3fc0 00000000 4380bda6 c4923933 c49605c5 00000000 433b9ddf 441f02a4 c49ad0de 00000000 437de500 4519172d 43b9e332 00000000 431d12da 42904a8f 43ce39c5 00000000 43139194 c4e59f7f 44791445 00000000 430822de c3deaa82 c3cf7344 00000000 438c2688 43cd600b c4622523 00000000 429cc434 42e3969e 413b2cde 00000000 4356c16b 43ac9aeb 44bfc036 00000000 433290d0 c2f477a0 429441e8 00000000 4327bb1d c4d1eb2a c4b17a4b 00000000 4394e083 4421e852 c4cbd4e6 00000000 42312944 44147907 420105c2 00000000 43282f2b 437f905c 44674559 00000000 4278d034 c3ae64fa 436b38ba 00000000 4297e2e2 c4dd72e5 c4a9a17c 00000000 4348cf46 42b16013 c3818457 00000000 434d8966 4405de54 40502c29 00000000 4359aa15 42c9f21c 43998457 00000000 4380ca6f c37f768a 433ecea5 00000000 4310d82b c4a35ab0 c4622726 00000000 424e321e 43cfab1f c4b368a9 00000000 437a785c 450066a2 c2ad2066 00000000 42e60d11 44241ac9 44d624e5 00000000 433dc452 c34cf499 43290e14 00000000 4373078b c4873bf6 c4288dc4 00000000 4282cb73 4277922a c3821d8a 00000000 4303ec1e 4517a83e c35bb583 00000000 434e1b99 44659016 4502946f 00000000 43127a5c c494e838 448763d6 00000000 431530e2 c3b54383 c34a5bfb 00000000 43937d6e 4320cf58 c45673cc 00000000 4344327e 44a8d8fc c33c4417 00000000 4332889c 447089f6 44f15d5a 00000000 435ab38d c2e91bb5 42e96c4b 00000000 42d007a2 c4ad18ae c42beb76 00000000 436a31e9 43298c16 c4999457 00000000 43342ac1 450bd541 c3d34760 00000000 4369590a 4404b8d5 446d0487 00000000 438347cd c3fc8e8f 440b4399 00000000 4383593e c4e91387 c44c1ffb 00000000 4366891f 41d26163 c3937222 00000000 42e4c4fe 44db66a8 c3d1fb97 00000000 435f4a87 44446ba7 449d1e99 00000000 43505a94 c48b45ad 44a9501a 00000000 4324b2da c4eafc08 c4335817 00000000 43479035 41cc2ccc c41c7652 00000000 43445798 444d3979 c36ec144 00000000 4346c80a 448e6698 44cd2006 00000000 438f3a2b c3f26739 4422ba98 00000000 42b3635d c4955848 c3c38f39 00000000 41bd5ab1 c1311906 c4ba451c 00000000 436b5085 4405b45f c337eb58 00000000 435edc4d 44852b16 44ad5cb3 00000000 431f5f9b c432e726 44850753 00000000 429e795e c42ad274 c33bc4e6 00000000 4200193a c1ec9f72 c404d3c9 00000000 4369797e 44c21d45 c41acbee 00000000 42fc7895 44b6c1ea 44d791c4 00000000 4393e285 c4951b42 44f69e07 00000000 43742817 c5170dcc c4071ce2 00000000 428f5792 c17779a3 c3147a72 00000000 4322e0cc 4494c847 c4079a60 00000000 43909352 4470910f 4480c141 00000000 4380585e c3aab7ca 441de3dd 00000000 42be605b c515b3c3 c3cfd0aa 00000000 4314a5d9 c35e2be9 c4b551d7 00000000 41d2f2bf 44635ef4 c3ea4ec4 00000000 437224f1 43b86ccc 43b3446d 00000000 42d71e65 c33fdb6f 43c7e6a5 00000000 43940377 c3402d12 c1bf0a96 00000000 4227953c c2d38fba c40258c3 00000000 4319b6fd 441e5ffb c3b70756 00000000 43670dde 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000051 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3e2776cf 3ebf47c4 3e2776cf 3f23c489", + "c4ab4cf7 444cc9b2 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f14703f 3f223cf1 3f146e07 3f06942f", + "c434fdf7 c417cbae 436a0000 4516e859 440fe2a8 00000000 421d3f76 42975d15 443768b3 00000000 42aa541b c3ef736b 43613820 00000000 437faca9 c3ed141d c3f163ac 00000000 42a58772 43957d33 c417c5cb 00000000 43725b90 449952d7 4314ea61 00000000 428017fc 4357bc4c 4475d1f3 00000000 43829dd6 c3fdb421 439c84ba 00000000 43388bf3 c4cde182 c4a6e789 00000000 438ca42b 4422b95a c4e2cf2b 00000000 4389af32 42ddc39b 3f5894a3 00000000 432c08e5 43600512 4423f3b1 00000000 4365e1c7 c47f8f48 4448cb64 00000000 42336683 c4e6a99a c49335aa 00000000 42dc8311 439d54fc c4a70d87 00000000 4284a832 448bc1b9 c2ecea88 00000000 4222b0d4 444ef1c3 44da743e 00000000 423177b8 c4b3d3f5 44b19820 00000000 4244225d c33f5341 c2bb22c3 00000000 438973e0 436fe388 c4fcd1b2 00000000 429680f4 4500cb16 c3e50adf 00000000 438fd17a 43b085e4 440e2f77 00000000 431755e2 c3f2b44d 441689ce 00000000 42d233c3 c3889479 c2c24767 00000000 424eed4b 411002a5 c4e70342 00000000 427883c5 450e9e4f c444a162 00000000 423f72f8 449058d4 44b6ad4d 00000000 42ea1f35 c3d729b0 44299959 00000000 4311e290 c4fc54fe c3eab5ba 00000000 43247f18 c348e9b1 c4e6f445 00000000 4234e69b 450921f6 c482d5ca 00000000 438a830a 449b7624 449c8cd2 00000000 4223d228 c3d66857 445cbf9b 00000000 4303d03d c4819b48 c2f02818 00000000 42cad27f c257fe4d c36fc84b 00000000 42436cfa 4494277b c4391181 00000000 438c65bf 439d28d9 437bf3b7 00000000 4331fa7b c2b8c3d1 4383097b 00000000 4206889b c4506f9d bfe123e4 00000000 436dd979 c3c94777 c490b17e 00000000 4295cdc8 42c0b942 c29926b2 00000000 4367fe6c 44a14e17 444b6511 00000000 42fcc4b0 c3029595 440e2a4a 00000000 42df480f c4633df3 42cac265 00000000 4308e0c1 c4591e71 c4e1f613 00000000 42ecadd8 440956e1 c4092390 00000000 4328af3a 43ed104f 4364a3d3 00000000 435cba00 c290540a 441fa20e 00000000 438acbd0 c431b07c 43221f41 00000000 4282f3a0 c33719b3 c391aec9 00000000 43856097 44b2142c c4df6b77 00000000 4370bef8 43558a0b 4295395f 00000000 43431763 3f81e47a 44c375d4 00000000 41e909c6 c50fa9ab 44499fce 00000000 42875072 c3eb626d c4134445 00000000 42b0da42 436c6e41 c3bca7fd 00000000 42011c28 434fb8a6 423c62a5 00000000 432a4265 4205303a 43919e2d 00000000 429fe8fc c4457d3b 43bf1a9a 00000000 42d7bc2f c4c28200 c4c1b86b 00000000 41f9b613 42d294d0 c35be359 00000000 43929d71 44a09146 430d95df 00000000 435aab42 43e90f83 44fc3b95 00000000 41b57335 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000003f 43820000 3f333333 00000000 42f00000 3d4ccccd 7149f2ca 71c9f2ca 3f800000 -> 3e2ff43a 3f05e348 3e2ff43a 3e06a96c", + "44043cca 43839150 42d00000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 3f800000 -> 3ec37e87 3ee9a081 3ebdff1e 3f4f1861", + "c4acbcee 4447970b 41d00000 4395f306 40f99267 00000000 42200000 4380eaca 43e1c9d0 00000000 42a00000 c3b3b8d0 4421b5ab 00000000 42f00000 c46fd498 4210524a 00000000 43200000 c422418e c4765e9d 00000000 43480000 441638ab c49e0fb4 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f13dc20 3f1f6394 3f13dd00 3f6031e3", + "c4852a66 4314b971 43770000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 3f800000 -> 3e6ea341 3eb14393 3e6c2ff8 3f14d74e", + "43c9061d c4b347ad 42500000 4395cc18 41797ccf 00000000 42200000 436a03b0 43e82f0d 00000000 42a00000 c3cc6067 441a3747 00000000 42f00000 c46f7893 c27ed10d 00000000 43200000 c400f2f1 c484a98e 00000000 43480000 4445832e c49078e1 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 405ea9f8 40a107d2 405ea9f8 3e4c1fc4", + "c48679bc c368162d 43290000 4393dcef 4249d606 00000000 42200000 42efed5f 43fcfc8d 00000000 42a00000 c414fba2 43db5ab6 00000000 42f00000 c44e8974 c3f47a9f 00000000 43200000 431c05e9 c4923478 00000000 43480000 44a8b2a8 c3ba2991 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e3a5536 3f230518 3e3a5d5d 3f0c344c", + "4471036a 44a3135b 00000000 4447f281 00000000 00000000 42e81bc4 4489164e 44d58025 00000000 433c14ea c3a00f5d 442ede66 00000000 4331ed61 c501c001 4393f69c 00000000 4254976f c443e009 c462c9d5 00000000 41a13a57 438b49f4 c46b6f1f 00000000 43149f8f 4428c046 c3446e30 00000000 43824ae6 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000007 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3f0c4656 3f222122 3f0c4656 3e8c2798", + "44783286 44a7b596 42b60000 44a27ab5 42ed39a0 00000000 4337521e 440107f7 449d7d72 00000000 424e43c8 c49dd665 44ba8e2c 00000000 42dea7b1 c4af83b8 c39ec4fb 00000000 437ebb34 c408d81a c501f7aa 00000000 43401a0a 44b3785e c4a2f2cb 00000000 42ec4a93 4508ac96 4449ed35 00000000 42f26ecb 4278bfe4 43f5812b 00000000 4287143a c4e5c2eb 449f2512 00000000 43712e97 c4490c20 c3d402ce 00000000 41db5fd0 3fde7861 c3a0277e 00000000 429bcf38 44f36a32 c479f9c1 00000000 41d70774 44532f79 4415b1ed 00000000 436d9bf7 c3321ab9 44a1af73 00000000 42aec194 c47c21c2 43b40f51 00000000 4337a5ab c43782f0 c42a4964 00000000 438c4a81 42b93c26 c3a87a4c 00000000 42e8d694 45016dd8 c3de6100 00000000 42a3a436 4331fd18 4357101d 00000000 42850682 c4426c20 44e626fa 00000000 4321a776 c4b3fd3b 42e74fc2 00000000 4341724b c36f8b44 c3bf1023 00000000 4366cea0 445f3e2f c4be0c0e 00000000 43881a3a 45117e94 42eedc6c 00000000 4275df44 4367d624 43fdbb75 00000000 42f969e6 c49dfe1f 44ca8a39 00000000 4387761a c4af9929 c381c013 00000000 43753d13 c41d96d5 c500aaeb 00000000 42cd6980 44a168c6 c49eb289 00000000 43204cfb 44da2ba1 440dbbef 00000000 4395667a 43ab53c9 45000a97 00000000 42d9cfa4 c463df1f 442b9fae 00000000 42bf1ccf c41800a0 c39128e4 00000000 437dffb9 c1bdde1f c42cd8e3 00000000 4337e2c9 4492e122 c425e7d0 00000000 438e2097 4389979e 43331237 00000000 435eaeb6 c3721236 451b55d3 00000000 437cbe85 c48d5c01 43e39e33 00000000 431841ba c33a515b c31f9812 00000000 4253a704 434ae61d c45a1d4a 00000000 431cede0 4501336a c404ad2b 00000000 42ee6415 4312a1bb 43237d29 00000000 41e48354 c42b7d4d 44e3dd16 00000000 431a3d59 c47972c1 42f0666b 00000000 42cfba7b c433aca4 c483674a 00000000 432cbcc7 441b9327 c4916036 00000000 43349a06 44916f13 41566c34 00000000 4372b780 44440178 44c1c1d9 00000000 42afeadb c39f1bcf 43dd9799 00000000 4384b268 c4a4f1e1 c33de43a 00000000 4382058e c409fef7 c4c5031a 00000000 42e8c9de 448970bf c4925114 00000000 42b25661 44391a01 43505f58 00000000 42359945 43e5e4db 4509e3d4 00000000 435e40f2 c430717f 4410396c 00000000 42fe86a8 c4186d48 c382f538 00000000 433aaffc c216004c c3fcb960 00000000 42ab017a 43c1b08d c36f9018 00000000 431777f3 441f7852 43bdf270 00000000 4304e56c c29504d6 44a23938 00000000 4368b325 c488e4a1 43f6231e 00000000 438e96de c381fe76 c34d5d60 00000000 4392848d 435709be c48cb4ec 00000000 43260916 44394c3f c35e057d 00000000 4299e543 439f83b3 43a43adb 00000000 42a5329a c378029e 443aff51 00000000 428f1f24 c4bf288b 43763693 00000000 4318caff c49ceb7a c4d3036e 00000000 4320ef4f 444933f4 c4cf6d7e 00000000 4374c93a 44edef5b c256edd4 00000000 43522a52 44360d49 44a37db7 00000000 434b5498 c4a5a7f1 44fb3525 00000000 42468b9f c4524634 c2ae3091 00000000 4389c430 c3c4b625 c478b1ad 00000000 429d27ce 44876a13 c49c2799 00000000 429f0b0d 451453b9 440dcbb5 00000000 436f1709 437396e4 44735be1 00000000 43672afe c445c19c 442f341d 00000000 4359fbbf c4223955 c378b3cc 00000000 434aa8d9 c3686ddf c4fe3407 00000000 436808c1 44d3ca9c c48ee921 00000000 43564f70 44a21c80 4430083c 00000000 4250542b c0baba80 43a5a7f2 00000000 4208c32d c50ab9ae 448a3858 00000000 4356abe2 c455dab6 c41b893e 00000000 43488966 438bc0e3 c4e8b706 00000000 43162a2d 44c4a88d c4071046 00000000 4379d372 43bea5df 43b54864 00000000 43751596 c42a99f9 451415cc 00000000 4394acd3 c4cfa482 43a7d1f4 00000000 4326806f c36ff157 c3949c27 00000000 422018ac 440f902f c4a454a0 00000000 438d1dc3 442db8ac c23d35bd 00000000 43212e3d 4484b34a 44d98817 00000000 4380f050 c31176de 4370e56e 00000000 425f229a c431e9e5 c234d6d9 00000000 42235cff c47abb16 c50dc04f 00000000 43953ae9 44aaad96 c4d563ae 00000000 438655ec 43910c79 426502af 00000000 43808ced 4209ece2 42eb6eae 00000000 42b9973c c4d06531 44c7f569 00000000 435a7744 c4f2109b c423cd9d 00000000 41a5ab24 c33bbe6a c497a51a 00000000 4322d7d8 43a70b14 c3754cc9 00000000 432f939a 44a664af 4423e974 00000000 433a8b56 422214fc 44e4dc0e 00000000 42b81d78 c50762af 44949a06 00000000 42c943df c4a9f9be c4632931 00000000 4362c614 423bfb1c c3d62d49 00000000 4346445f 44fdd537 c4453536 00000000 4339cfd1 440057a3 43e158bc 00000000 426f0ef1 c3bd2b27 44c0ae7a 00000000 42bfe761 c47b3c2a 4374f9fd 00000000 434f209a c44b77b7 c4687f4c 00000000 434bf106 4458ace5 c50acccb 00000000 42ca180b 44e3df3b c3451be3 00000000 426b93ef 44aa11b1 44ff61cf 00000000 43054111 c43a640b 44a92f31 00000000 43066eac c435c485 c189dad8 00000000 432efe72 c4065922 c488ec54 00000000 4362bf6f 4413a162 c44867f0 00000000 42b529d3 443a81e2 42e95010 00000000 431a9ebd 43ab891f 447ecced 00000000 4395bc19 c35560fb 435daf57 00000000 435904eb c464245f c3866e77 00000000 42625ff9 c3b6863e c4e924fe 00000000 43109054 44efd4e4 c4bf357a 00000000 4308d508 4300b4c2 42649f43 00000000 436e2047 00000080 43820000 3f333333 40800000 42f00000 3f800000 0e736390 8ea24260 40000000 -> 3fbf82c2 3fe5d8ab 3fce8e27 3f492e0d", + "c47f6ba3 445d4d82 42ea0000 4394f978 420c1475 00000000 42200000 432bd785 43f5648a 00000000 42a00000 c402222c 44037e14 00000000 42f00000 c46353fe c399e880 00000000 43200000 c315e9a8 c4924e08 00000000 43480000 44924467 c44027bd 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 406eccf2 407a5323 406f4f06 3e549b04", + "448bacda 43776e0a 43500000 443aa42c 431d907e 00000000 43375b18 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 40000000 -> 3e983e40 3f1b947e 3e99b3aa 3da8dc20", + "c452c069 44b815ef 42500000 45086ca2 42e33708 00000000 426b8c49 4474c5cf 44f2dba1 00000000 43018a46 c44e9f15 449be8ea 00000000 436b7e68 c44dde2d c25b0f66 00000000 4379dd61 c41859b5 c49cbcd6 00000000 42c36120 438751cf c3c5f61b 00000000 4331dfc4 44805200 42a648d5 00000000 437a7c24 43b7d5bf 44444594 00000000 435e4abc c4a9bca1 44f0ca23 00000000 434e40c6 c4ddeffc c3299493 00000000 4387df71 c42a19ed c4bca370 00000000 43940334 446543c9 c49dbe17 00000000 437ab3d2 44e3ae1d 43487c94 00000000 4320dffd 42634ef7 43030bda 00000000 425a7b7a c47a10b3 44a6f146 00000000 4284e632 c43c7d20 c2bc0044 00000000 43816ee0 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 40800000 42f00000 3f800000 0e736390 8ea24260 40000000 -> 3f50c86f 3fa6f092 3f688024 3f781067", + "44b4d781 c42a30e0 42c362a8 439548e7 41ea16f6 00000000 42200000 433ea91b 43f1e490 00000000 42a00000 c3f49b3b 440ace2d 00000000 42f00000 c4689674 c36cbe3f 00000000 43200000 c38303c6 c48fd142 00000000 43480000 44862e84 c460ae13 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40c1cc31 40c3eff4 40c07f6f 3e736b1c", + "c47614e8 44544924 43770000 44e5b048 43e7a9ad 00000000 433a99e3 42ab9a6d 448b620d 00000000 435b7a2c c40347be 435e6272 00000000 4382c4b0 c4bd8000 c4d62849 00000000 43674cbd 444d58c7 c4b23de9 00000000 432155c1 448995a0 435dc28c 00000000 42db25c5 42e60d6d 4464e31d 00000000 4385a7ea c49aab84 4414f65c 00000000 41fba103 c494e2c7 c498c10e 00000000 4228161c 44597a99 c4d3bdff 00000000 428bfe48 43f7fffe 42969096 00000000 42f9115a 41924707 42d1107d 00000000 42d2d646 c456c9d0 43e8fcce 00000000 42f25b7f c4d19796 c4c3450e 00000000 42f6cdaa 42b2c8cd c344dd78 00000000 435d22e0 44915dbe 42ef1b53 00000000 430d94cc 43ca904d 44e1084c 00000000 43831aea c40f6a23 43adf2a8 00000000 41bdd339 c44a3153 c42af21c 00000000 41b520b6 439a844c c44286f5 00000000 427dd81f 44180a86 42041f95 00000000 4387d9e4 43b41510 44a2f6dc 00000000 436ba40b c4691a4b 441d3411 00000000 4384f831 c4aca865 c48441b5 00000000 41dbd1c9 43b354f7 c482f215 00000000 434547cc 44b24944 410a9f48 00000000 426e081e 43d0dfe9 449ec8c4 00000000 43951102 c49dff64 446c04e6 00000000 42f9c54e c49c6ae0 c4588ca8 00000000 42558f93 43819833 c45feb21 00000000 437dafa0 45148873 c2c84570 00000000 432bd417 44208e43 44d18357 00000000 438b9760 c33afbc6 431a3b26 00000000 4394df50 c4a183e2 c4494f57 00000000 4319c6db 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000022 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 3f800000 -> 3e856fbd 3ee4a946 3e8835ca 3de35d40", + "44aeeb47 c42dad68 43020000 4504d5e7 438aeeba 00000000 42aa2571 4428c657 45035c3d 00000000 431c6c1e c49dbf5b 44936d4d 00000000 43861bef c50a2bad c45bba77 00000000 43084703 c1f8403d c3f85ecd 00000000 42d26e60 44fc675a c48aef39 00000000 43617bb6 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 42f00000 3f800000 7149f2ca 71c9f2ca 40000000 -> 3f3abc0b 3f527b77 3f44aaf0 3f3fab85", + "c497256a 42d4fa09 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 400c7731 408d0dc6 400c7731 3d55d830", + "c4b212fa 44465d7d 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f0f9c86 3f138568 3f0e6e89 3f06942f", + "441e1d40 c3430bb8 42ea0000 44430bc2 42b7668f 00000000 429b18e0 43a7bdc7 446f897e 00000000 4388579d c4da1a26 44dc613c 00000000 4386fa5a c469bfa1 c39e414b 00000000 438aa712 c1a73480 c3232e56 00000000 42ea75d7 448d9fdc c43a0e50 00000000 42f1a0ce 4411e3e0 43ad3efa 00000000 438258c6 c21be46d 43ed0e0c 00000000 42167da9 c4b14b22 440a41bf 00000000 42caedd5 c4b0bd3e c4a3144e 00000000 4367655a 429e7419 c3840f45 00000000 43823cb9 441feb64 c2d1930f 00000000 436efc56 433f7aed 43873321 00000000 42f21ce2 c495aa8c 4508b5ca 00000000 42cf5fd6 c481963a c2433202 00000000 42ce16ab c2dee9b8 c3815d55 00000000 42b6e8f9 445c597d c4801e3a 00000000 43101518 440d2c1b 4314126b 00000000 43184e04 4380a9fc 44a0ddaa 00000000 4204d006 c45df411 442921eb 00000000 42c0e310 c502d99d c4839270 00000000 4395f7c5 41ad44ee c4e0947f 00000000 43884b75 444f1788 c3c3df18 00000000 42141b82 43179761 42f2cdd1 00000000 4374d4de c33c9300 44516209 00000000 426ffd54 c38ad42b 4283642c 00000000 43883f78 c4a6dee5 c4cbc95b 00000000 438fd114 43ca31a2 c45bee61 00000000 430b81c6 4518c6d5 c2603631 00000000 433bc922 44696553 44e1f633 00000000 4344aa05 c4a7f02a 44e16db3 00000000 421f3cce c4a7fd73 c37d8f88 00000000 43607b7c c3468d87 c4353f4d 00000000 42be0dec 44c65017 c4ae52f9 00000000 43736e00 44c1ad6f 4421e5bc 00000000 43538728 42a6855a 44b387a4 00000000 432cbcda c4edd21d 44858f6e 00000000 431c56fb c4d4a427 c4932270 00000000 422245a4 428c2fa2 c3e58f2c 00000000 42debc38 448a81f8 c3acc6ef 00000000 41efb1c7 44159058 441e98e7 00000000 4294d948 c4591128 450fc6a1 00000000 42b2d5c9 c41bf223 42687223 00000000 42896890 c40fa7f5 c46c0f76 00000000 4332690f 431f74c3 c3789a2a 00000000 436cef1f 44a00766 4315d91d 00000000 4388d4a2 436092d9 4420198f 00000000 4371e488 c430e400 4432e8fd 00000000 4382f46f c491def9 c3c534b1 00000000 4392bcb4 c34dbe83 c4c80636 00000000 4220d80c 44045b42 c3ae1049 00000000 42af1f9d 43c095ae 436471d6 00000000 4344f6ab c2f504e3 44bb6600 00000000 4328e226 c329b4c5 42848753 00000000 42eba675 c39c5e7e c39024f3 00000000 42c972b3 4359fc39 c435fe1b 00000000 434a394e 43eb9380 c29ad463 00000000 436bbbe7 43f38c0f 442bc975 00000000 4358468f c3152f4d 43886d41 00000000 42c4f20c c4a5991a c276e609 00000000 423d4daa c453ada3 c4f55d47 00000000 42c0b843 44943b1f c4ac8a93 00000000 4385a8c4 4405ac2b 430bee44 00000000 434a83c0 43233df0 444b961d 00000000 42240f58 c390037e 435bb345 00000000 438fe235 c4ac8779 c42d45b8 00000000 428a164c 41a3cd08 c4dd3550 00000000 42f712b3 44e7cc55 c45b8319 00000000 422a0354 432ac082 43089c67 00000000 42ec76dc c3b94de5 44ce369b 00000000 43548a30 c3d3c4b3 42c8dafe 00000000 421ddc32 c43378d8 c45af623 00000000 437210fc 44078c5e c493a086 00000000 43803ea6 44ed07f9 c2319c81 00000000 4317c5fa 4410a3b3 448bddde 00000000 435177c5 c4927625 44c4cc51 00000000 42932532 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000004c 43820000 3f333333 40800000 42f00000 3f800000 40400000 40800000 40000000 -> 3fd53e7d 4021f55d 3fd64834 3f7aa33f", + "443aa4d6 43781eb1 42d00000 43953085 41f9267a 00000000 42200000 43388af5 43f3137c 00000000 42a00000 c3f9d0b4 44087768 00000000 42f00000 c4670548 c3821194 00000000 43200000 c3619f04 c490c757 00000000 43480000 448a5605 c4565d95 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f31af23 3f3dc6f0 3f31b003 3f4bdb53", + "44727c07 43d9bda1 43770000 43917292 4292b29b 00000000 42200000 421f9458 44019de9 00000000 42a00000 c42a5a82 43904969 00000000 42f00000 c41f0af1 c433bcb0 00000000 43200000 44133f63 c47f9f80 00000000 43480000 44ab8d80 438a4153 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3fe16bae 3ff604c7 3fe1b695 3da8dc20", + "c442ec3d c470907e 42820000 44d9f804 42e301e3 00000000 423fc849 447f282a 4507379b 00000000 4370806c c4af2509 44f329f5 00000000 42a83119 c4ce813a c3448866 00000000 436261ad c41563e0 c4b712c8 00000000 437a84f8 44bbff40 c4e99e64 00000000 436e45a2 4502ace9 43b56775 00000000 438b4956 43a73cfa 4470fdc4 00000000 42e8a683 c4bd3e24 44d307f0 00000000 437d74ff c4b94239 c3a9c708 00000000 430d20e2 c3137be6 c3ffe464 00000000 4306f330 449f2ae6 c49f7a3f 00000000 42832631 43d94460 42f89d90 00000000 4382e77c 43a16e4a 44ae9705 00000000 437095bf c4d39c8e 44be81cb 00000000 43604a02 c48e5e19 c3c45aec 00000000 428d15f2 c3b4b7ec c500b1d8 00000000 42b48776 438a73b1 c35fb7d4 00000000 4303ffd6 45016f1f 445210f3 00000000 43908f8a 431fef5e 44a54eba 00000000 42b66533 c301e874 42bbe850 00000000 41f750ae c4a72cab c41cefac 00000000 4347e54a c2c608a3 c4b89c6e 00000000 431033b2 43960a89 c3418193 00000000 433c5979 44f32fa2 44826b44 00000000 423f4b6d 40151fe3 432c1d87 00000000 4302322e c4550a7e 43f39500 00000000 437619b3 c5056e38 c4a206d8 00000000 42c280bd 4225566f c48185c0 00000000 4371d751 44b6ee2c c437f932 00000000 4238e194 44b1216d 4471e197 00000000 4382ec32 c342c68a 45022099 00000000 43864b38 c45e6b06 43c2ac57 00000000 436daabc c4ec6b0f c4b4a72c 00000000 4339a437 4396923e c4fec74d 00000000 4393afe5 448b58a0 c3d13c72 00000000 438de297 4425540e 440ced1c 00000000 42e50c2c c3563f85 44840d42 00000000 426e3a46 c4fb451e 441e99be 00000000 421aee6c c488f1ad c481f98a 00000000 4358dc53 43f03537 c4e7cb87 00000000 438f9d9b 450a2d86 c40e7bdf 00000000 43764275 4498e275 44a17830 00000000 421ac34d c41af4bc 44f478a6 00000000 41d11632 c42cb2c4 430b3ba7 00000000 437c9d0e c29f5859 c2bb647d 00000000 423cee48 43992396 c44b3b0d 00000000 43098636 44b8d450 c358a5cc 00000000 42826284 43b69874 43ef8e8f 00000000 43541bb6 c39af183 443072b0 00000000 43735b5b c49fdae9 42ec2b90 00000000 43245967 c48b7fe1 c4ccd733 00000000 438741a2 443981b6 c4b7e755 00000000 4232948e 4389af06 c12a7533 00000000 41e29fb6 44094513 4462b335 00000000 4382149e c40f8444 447a589e 00000000 42dd2b26 c413bfb4 c10b675f 00000000 438d4a09 c3d65c95 c4486ee9 00000000 435d48a6 44a231af c4fadce9 00000000 41d04f35 4409a357 42164f53 00000000 42cde246 447fc74c 4508a8d7 00000000 438bf332 c4064a7c 4439367e 00000000 43940c19 c51735ff c393c5ce 00000000 42f0099a c4153568 c4b882c7 00000000 43881817 4496b837 c4ba17f0 00000000 42b1cbf6 450fcf65 43cb5edb 00000000 42789551 442194e6 44eb3afb 00000000 437131a4 c3ca06e5 43dfddd8 00000000 42aeefe9 c3f75ce0 c2e5f8f0 00000000 41c17b5f c306a40c c3ec6795 00000000 433f3a8d 44dc16d2 c4db228f 00000000 436f5cf5 44bf369c 43dd68aa 00000000 430262b2 4366f01e 447d65d1 00000000 43541915 c4d0e721 44bae1f6 00000000 42fe3535 c38ccbd7 c2c42c2e 00000000 4382b30c c2cae6da c41336b3 00000000 429127a6 447c6e48 c44aa323 00000000 4393a918 44f2f9f3 4446f402 00000000 43324425 42743ea8 4401a646 00000000 43738c09 c4ea7dca 44a878b1 00000000 42c91b5f c489bd12 c4025cb9 00000000 42889738 c240afdb c43c8416 00000000 427c71e8 44f46a06 c49c853d 00000000 42c9b401 44987f6a 4424cdf4 00000000 430818ac 41998df4 44e6ef41 00000000 423bbc56 c49a166d 442ee4d9 00000000 438d7b23 c4e65d94 c48cdcab 00000000 43357c32 420e2383 c44e6228 00000000 428d39b3 443ad6a6 c3ba6e76 00000000 438e5acb 449d4ac2 44583ead 00000000 42c9301c c2e9f030 4497297b 00000000 42adf7cc c4ec9dc4 444d539f 00000000 438738a2 c31901a2 c2eb5c48 00000000 43645d05 4378c0c6 c4cdf8a6 00000000 43752617 450c55de c450b4e2 00000000 43486da6 434264ec 4326c2c4 00000000 42f815eb c28397fe 439fa2bd 00000000 43849124 c3d61e46 4305ab35 00000000 4379e96d c46f7b5f c464bb11 00000000 431703d7 439b6231 c4940598 00000000 42430ee6 43ded473 c2e2c845 00000000 4319d896 448f15e2 44981358 00000000 4394180b c381f072 444ac90e 00000000 42be2a94 c45a604c 432d32b8 00000000 438af463 c48bdb6e c4a58685 00000000 434ac4b3 438039ec c4288f4d 00000000 42a91712 4411ccea c2a72618 00000000 43453a13 449c9fbe 44ced406 00000000 42a7257b c3c06f40 4459486e 00000000 42fc16b6 c3bb8141 4205bf07 00000000 428db6bd c463d53a c4a8698d 00000000 4360f734 4407e40f c485ab44 00000000 422dd287 432ea15d c0c692bb 00000000 428b4d66 44890ef4 44e3f7ee 00000000 43939bd1 c40df6a3 4475d74c 00000000 431ad2ad c4d59ca7 c1f49168 00000000 437ec23c c411de1a c4896dcd 00000000 431db6be 436b1e52 c3b49412 00000000 43941d7a 44bb7be1 42d63a67 00000000 437ce0ea 441d523f 44a97fac 00000000 436bc521 c42174bb 445d35f9 00000000 4360d799 c3c4961f c24526f0 00000000 42d216ca c3bea695 c46de75b 00000000 437dab4c 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000007b 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3e6c2c0e 3e8c3a6a 3e6c2d34 3e97dece", + "c490e80d c461c778 42820000 4395aee9 419be3e3 00000000 42200000 435ddcf5 43eb25ad 00000000 42a00000 c3d83f39 44161d45 00000000 42f00000 c46e51cd c2e2cfad 00000000 43200000 c3dee2bc c48891ed 00000000 43480000 445b6d3e c4885676 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40325b84 4055af70 4034dfa6 3ec8f506", + "44727c07 43d9bda1 43770000 43917292 4292b29b 00000000 42200000 421f9458 44019de9 00000000 42a00000 c42a5a82 43904969 00000000 42f00000 c41f0af1 c433bcb0 00000000 43200000 44133f63 c47f9f80 00000000 43480000 44ab8d80 438a4153 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3fe16bae 3ff604c7 3fe1b695 3da8dc20", + "44949855 c4112339 43430000 4393283b 42688515 00000000 42200000 42bb016a 43ffc320 00000000 42a00000 c41d137d 43c37837 00000000 42f00000 c440bb23 c40f0528 00000000 43200000 43992a6a c48e716b 00000000 43480000 44ade158 c31e1f07 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e58e6ce 3f43f6e4 3e58e6ce 3e276124", + "c4b212fa 44465d7d 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f0f9c86 3f138568 3f0e6e89 3f06942f", + "c4ab4cf7 444cc9b2 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f14703f 3f223cf1 3f146e07 3f06942f", + "c47f6ba3 445d4d82 42ea0000 4394f978 420c1475 00000000 42200000 432bd785 43f5648a 00000000 42a00000 c402222c 44037e14 00000000 42f00000 c46353fe c399e880 00000000 43200000 c315e9a8 c4924e08 00000000 43480000 44924467 c44027bd 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 406eccf2 407a5323 406f4f06 3e549b04", + "44b4d8b1 c36e9123 41d00000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 40000000 -> 3f06d30d 3f67348a 3f06ff33 3ec619bc", + "445f24a0 c3e9199a 43360000 44ee8cf9 43af9baf 00000000 4388a106 43a0371c 44beeb20 00000000 427cf4bb c4b7c35e 44791144 00000000 429619e8 c2cccf9c c28811bb 00000000 42feeb88 43e50d7a c50eff70 00000000 4323b71a 43050484 c1cdf6b7 00000000 432ae785 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3e0f7fcf 3ed3e549 3e0f7fcf 3d4ae2a0", + "444248ad c42ce00f 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f2166bc 3f354e75 3f2166bc 3d4ae2a0", + "42bd4893 449232e1 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3feec8f0 40420905 3feec8f0 3c5a4ec0", + "c4a1e1b3 c4418943 00000000 4510e476 00000000 00000000 42dc0667 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3d922695 3f209663 3d922694 3f4a4ed7", + "44a6844e c3f8f8ce 41500000 42eee054 3fc6c19b 00000000 432596b2 443bc26e 449aecdb 00000000 43769d62 c4759e36 44f2d879 00000000 43841f51 c4ef2095 432bda33 00000000 425d81b3 c2ea9d24 c31b261d 00000000 430872c4 445a60f2 c50e9c65 00000000 428f3f1c 448ed0b3 c35e51da 00000000 438cddb2 44777a04 4484d430 00000000 43544e2c c3fed299 44ec995f 00000000 4383ca1f c4c03416 43e96e15 00000000 4348f09d c431f458 c41b84e5 00000000 43959a0d 438de338 c4db35f2 00000000 434d82f1 44c8d1f0 c4289142 00000000 437d39fb 44bdcd39 448640b1 00000000 425187a3 c2a5338d 44b2559e 00000000 4308f05a c4c72b32 445997fb 00000000 42acda30 c36b0bf5 c3046a11 00000000 429ac21c c25f0fb6 c49ba10d 00000000 434fa5a6 44797aa4 c42b9d9b 00000000 43897d28 439d3ba9 4308d7ca 00000000 426f04ff 4260ce9a 43bd52fc 00000000 42da9d59 c41fcbf2 440801f3 00000000 434aae1a c42fb04f c35f72a4 00000000 43632d0a c40882fd c505afc8 00000000 41e3c2c0 4467e122 c4727abe 00000000 436b5066 4408b4ae 42e3afb3 00000000 42e9a96e 440ee7ff 44c23714 00000000 42cec90c c4bc5cd6 44f27887 00000000 41b88603 c500c7fa c3544a9d 00000000 4387f28d c32fdf70 c3b3aeb6 00000000 41e8c6c7 43659226 c3b7f489 00000000 434808fa 44b8453e 3ddee672 00000000 43421631 446bdb2a 44bd0dc0 00000000 4362f44c c323e239 43a75efc 00000000 42ad7f3e c494db38 42f50653 00000000 43870f22 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000023 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3e89f114 3eebf9b6 3e89f114 3e276124", + "c497256a 42d4fa09 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 400c7731 408d0dc6 400c7731 3d55d830", + "c39a93fd 44a6a506 42ea0000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 3f800000 -> 3ed1feed 3effbd50 3ed28f63 3d9a89d0", + "4385a4af 444caebe 43360000 441c4120 42e60d57 00000000 4316aad9 43db63da 4502b776 00000000 4331bf80 c4cd724b 448b3a6b 00000000 421cfd14 c2b26881 c26d0e6e 00000000 4318f536 43b9a8da c4e7d09e 00000000 43542c18 45123da5 c3e2703b 00000000 4327696a 445ba058 44a79e0c 00000000 434722e7 c450e446 44980239 00000000 4342c8de c4ac1187 c395054e 00000000 42dee6fa c381b475 c4b6c8e1 00000000 4282d961 44cd9982 c48227e9 00000000 438ecb25 4431d1e4 43fc9fb3 00000000 436d1609 c3942cef 449f0bc8 00000000 428d2a6d c38d68ad 4236855a 00000000 430e1454 c2d8998f c3312259 00000000 4370935b 441b1930 c4534798 00000000 42e1f4d3 43df31a3 42deafce 00000000 42e6cd45 419d37f1 43073205 00000000 4394aa79 c3322938 42d248ee 00000000 434cea0f c36677f9 c32ec926 00000000 4357fcdc 43a1e099 c4981810 00000000 420bf4d6 44437f95 c2ca784c 00000000 41a62dd0 4321f947 438e420d 00000000 4383dde8 c4051b57 4429ef63 00000000 42d8691b c3c6204c c2e02c68 00000000 439258f4 c2986a86 c427b075 00000000 4387fec8 44db37bb c4709dd3 00000000 430b85ae 42a86c38 428837b6 00000000 42c1c776 c30085ec 43d65860 00000000 42224132 c37488d1 41bf621e 00000000 433d6251 c490cc51 c508f24b 00000000 4332bf9d 443561a1 c4593d21 00000000 439034d1 443e5ee5 4371506b 00000000 43416774 42a43365 447a0672 00000000 42c7eb25 c4b21eca 4435463d 00000000 4337239c c48d3568 c4736232 00000000 4385de64 435c26a8 c424b396 00000000 4384cdde 44d7cedc c2e5410a 00000000 435c74e4 44397b75 44bd848e 00000000 42dab269 c48ffd3c 44a1e6ef 00000000 4345040f c4ffe863 c433f627 00000000 43698cd6 c229223b c4506177 00000000 421f712f 44a021ce c4169253 00000000 431ea792 44809bfd 446c0db7 00000000 435e7c3f c39d81f9 44554739 00000000 436361e1 c5050474 42955a7b 00000000 4391f3d1 c41e45e3 c4af61d8 00000000 4318b1f7 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000002f 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3e27cf84 3e366858 3e22de6a 3ed720c2", + "c18f31b7 c4af4d13 436a0000 44d5aa28 43cbb8de 00000000 432d3cd2 42d6b14b 4482129c 00000000 42eeb570 c4bc5f29 44312d0c 00000000 438a0ec0 c4a5e935 c4a8ed7e 00000000 42c90668 442d8822 c4b02ec0 00000000 437b32b6 448169f5 42fb62f0 00000000 430bfb92 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 40000000 -> 3ee34716 3f1c026d 3ee7e878 3ecf2756", + "c49dd5e3 43e5ec37 42500000 45144bcf 42f6fcc8 00000000 4385bdb6 44523f3b 44d09a31 00000000 433e6950 c3d8947a 44236c9b 00000000 436cad3e c3fb5acb c205bb1c 00000000 4369b81e c30ca368 c390b031 00000000 42e2b0c2 445bce9b c4a0c7a0 00000000 429add57 43d71844 420b5da6 00000000 437c6812 42e7c11c 43776edb 00000000 43687714 c478579c 44b0265a 00000000 42944248 c50418c1 c349de24 00000000 434323b0 c47add4c c50b19fa 00000000 4207ad56 436ef0e1 c3a4666b 00000000 41ccb290 44b8d897 4322c4c0 00000000 4287ddb9 443890d6 44d4cf26 00000000 431a8df1 c47a9e4f 44a74fd0 00000000 42bc16f9 c50ed0b6 c38e721b 00000000 438a2fb2 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 40000000 -> 3f5dc8df 3f9e819b 3f5e0516 3f14d74e", + "c483ea3d 449f53f6 00000000 43960000 00000000 00000000 42200000 438c7a85 43dac84f 00000000 42a00000 c399f96e 44283853 00000000 42f00000 c46d9924 430779a7 00000000 43200000 c440d32a c45f41ba 00000000 43480000 43c69044 c4a7cfcf 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f43ab94 3f44240d 3f411e4f 3f7979ad", + "c3c88386 c4ae8b7d 43290000 4393dcef 4249d606 00000000 42200000 42efed5f 43fcfc8d 00000000 42a00000 c414fba2 43db5ab6 00000000 42f00000 c44e8974 c3f47a9f 00000000 43200000 431c05e9 c4923478 00000000 43480000 44a8b2a8 c3ba2991 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401363df 402e91e8 4017b8fc 3f354648", + "c464a2c6 c4254f33 43430000 4418f665 42f1b157 00000000 42912602 430f478b 4443f596 00000000 4389bb32 c3c99652 437adc3d 00000000 432094a5 c4ae6d69 c4817003 00000000 42a19943 441aedd9 c510153f 00000000 43130296 44d66e6e c342ff43 00000000 4387cdda 4460dc80 44d34dbb 00000000 435cc442 c2e072d1 43039f0e 00000000 424f8df2 c33eaf5c c282b92f 00000000 43548ed0 c183101a c3b39ce0 00000000 437bd335 447a5844 c3e06ae5 00000000 4355bb0c 44b68439 44b24534 00000000 42ce8d4b c4370cd2 44d9cab0 00000000 42bcb37f c5147d5c c25173bd 00000000 4386c1d6 c3095fab c3b9fe81 00000000 43910c0d 44cde98c c4b81c0f 00000000 4394c719 44f0442a 447158bd 00000000 4380bbeb c335396b 44fc02ef 00000000 430152f3 c504c00d 441c3b98 00000000 43795d1c c406fd47 c42d3c2c 00000000 427b6878 443e2ef6 c4a12a0b 00000000 43582fbc 4514c90d 43bcbdf3 00000000 438dfb8d 42d50828 43efcf71 00000000 428ff21a c3373147 42f79f14 00000000 423877f2 c4c53699 c4871d21 00000000 438fd271 43eada3b c5005766 00000000 4211c7ba 45081b13 c3a59881 00000000 42f5a29c 4488965f 44eae0cd 00000000 43275d3a c41c6453 44461a16 00000000 43950299 c3ef42e1 c3101719 00000000 4386b0db c2edc5f1 c4b1f382 00000000 43718bb6 43917d91 c30fd805 00000000 43945f0a 44890724 44782df2 00000000 435433e3 c290f5f1 434081a0 00000000 43892176 c50f85a8 421041d5 00000000 43473068 c37b92c4 c4185aae 00000000 42a4f941 442ee998 c428b131 00000000 438fb79f 441cf992 438f1ca8 00000000 435c2c46 c2bffdb9 44e6f7f0 00000000 43833ef2 c3c8429c 430675b7 00000000 4330da44 c3c66780 c3ebb417 00000000 4381bb6c 434a9748 c3bb8089 00000000 4285e7c6 43cad71f 4242e048 00000000 4379b103 42bec6e0 43b6030f 00000000 431c7585 c4f84605 44b5cf40 00000000 42c241a4 c2d7a14f c28811de 00000000 43864eea 439afdf4 c4cca47f 00000000 430d70c6 44bceddc c3904b88 00000000 43717064 44503c25 44a46f36 00000000 43926592 c410fbc3 44469ffb 00000000 43197320 c3d4cb92 c2dda4f6 00000000 426f78a4 c27eacaf c402d76d 00000000 42510f93 44c99e14 c45aa4d7 00000000 433f9ac0 44a96234 448e223f 00000000 438af12f c2f7e1f2 43b98aad 00000000 42770232 c4fb403a 42d71094 00000000 4323a021 c460cbb2 c4f59145 00000000 433dc8ce 449521b3 c49b1bc6 00000000 435788f8 44c164c1 441ef9c1 00000000 438b9ffd c1f51c25 45073441 00000000 43672e9f c4abff9d 44021ee7 00000000 432fdf5c c4c2ca32 c4d66f29 00000000 43472565 4431a3d3 c4b45e8f 00000000 42e94541 44b70ec6 42f00fd2 00000000 438c25c7 438a2b90 446428df 00000000 431366b7 c38c9fbd 435ebc0c 00000000 436766b2 c48c0b3b c4224d52 00000000 434c2c84 432469a7 c4888bad 00000000 42216a07 44d2296b c3c1a613 00000000 41ce5bdc 44255bb6 4470906b 00000000 432465f9 c35f6313 43a5d00b 00000000 4294b46c c46ede01 c352a725 00000000 437dca76 c34561b2 c49a1067 00000000 431f94ce 4312ac4e c2adb111 00000000 4203c4f2 44bd7e54 449330a6 00000000 438828ab c2eed76c 43cc1a32 00000000 4352bbe7 c3ba9861 42087ff7 00000000 433fe8d7 c47fcaaf c4fdac15 00000000 4337c4d0 43cfa5bb c3e8f553 00000000 432ab261 4494c932 43dabdfd 00000000 42fb8397 4098086d 4349779f 00000000 436a6a0c c4a7c751 440d9fb8 00000000 434e937c c30b58ac c30e39e5 00000000 41fe259a 425e1867 c2f8c6a3 00000000 42987213 440985ee 41c1e61f 00000000 433cce89 424451da 430e78bd 00000000 4345b0da c46e55e8 444bd904 00000000 42e8aec3 c4b1d7a8 c43c8d85 00000000 42fb3a2f 42788136 c40a8a7b 00000000 4233b5ca 43eb357e c2fe7715 00000000 42619aac 440010da 442c06a4 00000000 4326d15a c386caf3 43d960e5 00000000 4313439a c45533bb c31a8857 00000000 430b747f c39fdb9c c4c8b7c5 00000000 4385becb 44c84602 c481078b 00000000 437d7148 44da586d 449cc256 00000000 426bb2c8 c3a8cd42 44a774ae 00000000 421b36af c4993d56 431eefa3 00000000 42f122ba c44283ac c4b00bd4 00000000 4357e7d6 449f91f9 c4c13b30 00000000 430e30ba 4495cc7e 43c2e6ed 00000000 437bff3f 430461dd 4506c3f7 00000000 427de4cb c4fa81b0 446a1a7e 00000000 43204335 c3d2c350 c3c7792c 00000000 436bb668 44659be9 c50ed988 00000000 4327debb 4482c272 40d29ff6 00000000 4260e336 43b55c94 446a252b 00000000 42efc381 c336b91c 4328a0a0 00000000 432506cf c4abd0f2 c425de6a 00000000 424c2758 4289b4a1 c4687ee0 00000000 43401ba8 447de09f c39e1e16 00000000 4262f074 443855fe 44650804 00000000 42ee42d9 c46a7d5d 44ce0d94 00000000 43857e9a c3a90f41 c240add6 00000000 4307e2d7 c3fe25d5 c5051ca9 00000000 42bf43b3 44c245af c487cdda 00000000 431d7c35 442898aa 43df4cb1 00000000 435eff3e c3ab78a4 44c9fa5b 00000000 431c6b1b c4d1532e 438cdb7e 00000000 41c454fb c43edbfb c49e4fe2 00000000 43792f73 43c35f95 c3ffa72f 00000000 4383d140 4507c337 441a3ecd 00000000 42a5a3ee 42e46ae3 448fa5ad 00000000 435efb74 c4d679ec 445c8604 00000000 428b429f c2a92df9 c2946ceb 00000000 438fc380 44235f04 c4e3c2d8 00000000 432502f0 446c8c7b c1ee203b 00000000 428c3d4f 42918be1 4328b5d3 00000000 42ed3dfa 00000080 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3ea08fc7 3f192a92 3ea08fc7 3d883d00", + "443aa4d6 43781eb1 42d00000 43953085 41f9267a 00000000 42200000 43388af5 43f3137c 00000000 42a00000 c3f9d0b4 44087768 00000000 42f00000 c4670548 c3821194 00000000 43200000 c3619f04 c490c757 00000000 43480000 448a5605 c4565d95 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f31af23 3f3dc6f0 3f31b003 3f4bdb53", + "c4912430 c319be2d 43360000 439385c6 42593240 00000000 42200000 42d589da 43fe75db 00000000 42a00000 c4192560 43cf91de 00000000 42f00000 c447e777 c404cf31 00000000 43200000 4367aa89 c490a122 00000000 43480000 44abcfbb c3850413 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e96dbc2 3f6ae035 3e96dbc2 3d55d830", + "444e9c51 c11b0d9a 43430000 4393283b 42688515 00000000 42200000 42bb016a 43ffc320 00000000 42a00000 c41d137d 43c37837 00000000 42f00000 c440bb23 c40f0528 00000000 43200000 43992a6a c48e716b 00000000 43480000 44ade158 c31e1f07 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f180f08 3f258ace 3f180bcd 3f6c7d59", + "441d9923 43602d60 43360000 4503d874 43c21d79 00000000 4335db9c 438e6b11 44a9b5f9 00000000 4327f160 c4558350 4410b1da 00000000 4328c94d c408c1ae c3b5b66b 00000000 42a56cc2 43e14560 c50ca30d 00000000 41d4f69b 43be5afb c2935f62 00000000 438b463d 441411af 446202bc 00000000 438a2149 c439d380 4487395f 00000000 42a91ac1 c3d3006b c2b6bd2e 00000000 425251ef c399626f c4d827a1 00000000 42ccd927 4396b672 c33ed1a0 00000000 42826b71 449f44e6 446244ef 00000000 433571ea c37a5f0f 44865e9c 00000000 430f4090 c515dee1 43c17156 00000000 428f685e c4183838 c478f7ff 00000000 432a2bf3 44a58fde c4e18892 00000000 424b9c7a 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 00000000 42f00000 3d4ccccd 7149f2ca 71c9f2ca 3f800000 -> 3f190629 3f26f594 3f190688 3f6c7d59", + "c4ab4cf7 444cc9b2 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f14703f 3f223cf1 3f146e07 3f06942f", + "43c9061d c4b347ad 42500000 4395cc18 41797ccf 00000000 42200000 436a03b0 43e82f0d 00000000 42a00000 c3cc6067 441a3747 00000000 42f00000 c46f7893 c27ed10d 00000000 43200000 c400f2f1 c484a98e 00000000 43480000 4445832e c49078e1 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 405ea9f8 40a107d2 405ea9f8 3e4c1fc4", + "4386da6e c3af71cb 43500000 4506fa2a 43e3e5ef 00000000 431988f0 431b2626 447890a6 00000000 4393d521 c402dfaa 439507ef 00000000 432dc10a c4ba90fe c49a1b97 00000000 435cf12e 4441b9a1 c50e812b 00000000 4308699c 4498baca c22c087c 00000000 43555e44 446ae7aa 450bafa5 00000000 43905de1 c383f348 437b374c 00000000 438eb8ff c4a303f9 c41c6013 00000000 4204ffe3 432624e0 c4f5682f 00000000 42fbc9ee 43c933f4 c2e60205 00000000 41b55e5e 4432b2c9 446f6d4a 00000000 4392f15e c4897cf1 44d800bc 00000000 42da4e62 c42ac7d9 c30d597b 00000000 42d7bf26 c30b55d6 c459912b 00000000 42907d5e 43e08724 c381054a 00000000 438f19d7 448e4cf0 446931df 00000000 42a6d739 c40d407a 44d28bba 00000000 438dc88d c379f699 411ca716 00000000 439405b3 c46eb69a c50c63fb 00000000 43876142 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000014 43820000 3f333333 40800000 42f00000 3f800000 7149f2ca 71c9f2ca 40000000 -> 3e198dfa 3f2f2917 3e615c17 3f2b3e6f", + "c45346b9 c4b354b3 421c0000 44e29b2a 428d7954 00000000 437ffa1e 448baef3 45021002 00000000 4221ab74 c4027a54 4456a39d 00000000 429e8e72 c42f2cc1 c1218894 00000000 438395c4 c293eda1 c301f785 00000000 4303d932 43802c5d c3df0672 00000000 4386baf0 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3f2fbe1f 3f363044 3f29503a 3f354648", + "c4ab4cf7 444cc9b2 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f14703f 3f223cf1 3f146e07 3f06942f", + "444e9c51 c11b0d9a 43430000 4393283b 42688515 00000000 42200000 42bb016a 43ffc320 00000000 42a00000 c41d137d 43c37837 00000000 42f00000 c440bb23 c40f0528 00000000 43200000 43992a6a c48e716b 00000000 43480000 44ade158 c31e1f07 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f180f08 3f258ace 3f180bcd 3f6c7d59", + "c47f6ba3 445d4d82 42ea0000 4394f978 420c1475 00000000 42200000 432bd785 43f5648a 00000000 42a00000 c402222c 44037e14 00000000 42f00000 c46353fe c399e880 00000000 43200000 c315e9a8 c4924e08 00000000 43480000 44924467 c44027bd 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 406eccf2 407a5323 406f4f06 3e549b04", + "42bd4893 449232e1 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3feec8f0 40420905 3feec8f0 3c5a4ec0", + "444248ad c42ce00f 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f2166bc 3f354e75 3f2166bc 3d4ae2a0", + "448756b1 c38ea322 430f0000 4307995b 419c3101 00000000 4303bad2 42bf3251 43a34619 00000000 42a73d39 c4918fc3 447b8b49 00000000 431b2e43 c41bcdcd c38f1046 00000000 42415b83 4076d38a c4b89f68 00000000 42f1849f 450b153b c47be924 00000000 437c6f10 44d97654 44bde3d2 00000000 434dab6e c412ad19 44f5be76 00000000 422e8502 c4bd5297 435201c1 00000000 42db599e c4844a81 c4d06ac6 00000000 42f92833 448b6cfd c4d60240 00000000 4310cd4b 4447005c 42f0013e 00000000 43195b54 44042df1 44e76e34 00000000 432cb80d c4e4109d 44c26ee0 00000000 42f5bf84 c2b934fe c22d0b7c 00000000 431e1d5f 41656b74 c4c1f5c9 00000000 42cae540 42d7e5a1 c240147e 00000000 434067bd 443f47c4 44294688 00000000 436c9fe0 c41202c2 44eed6b9 00000000 4221a93f c504d4a6 438c2b16 00000000 43894d45 c4363b70 c491ac7d 00000000 426d43f7 44a2eefd c4f680d0 00000000 4368926d 44ef4d47 4396cd0e 00000000 430cb21a 433a9219 4427877f 00000000 42a483de c4b87dfd 449b2f76 00000000 439443cc c432cae5 c3a9f2d6 00000000 42c87723 41060260 c403ee3c 00000000 431c796e 44af1245 c418fc5a 00000000 433383b2 43834771 436b79c3 00000000 4342ac3d c3b6279b 449185d4 00000000 420ca4f0 c4a8d2aa 43290ccb 00000000 4384bb78 c332c035 c3910539 00000000 422a227c 44851985 c4c67e49 00000000 4353e1ef 44ffd5ff 43a82e1c 00000000 42d2c38e 4349892b 4439b98e 00000000 41f886a7 c41ac834 440073ee 00000000 43264f47 c489dad9 c405489b 00000000 438410a2 423ef4b0 c5049450 00000000 434f68a8 449601ed c400b8d4 00000000 4329ad96 44a6f7fc 4497c181 00000000 42e08c75 c37810ea 4441aa9e 00000000 4361cad3 c4c0cb48 4336ac84 00000000 41bdd353 c399a082 c3fd0422 00000000 42da4690 435048ee c3991b03 00000000 4325a492 43133262 41c98e37 00000000 43780484 43d9a0de 44cdf263 00000000 42858420 c4966897 44764bde 00000000 43734544 c4651bd9 c3e14528 00000000 434b3c8a 40b6f266 c3443733 00000000 4382caeb 42cb033f c22b06dc 00000000 422a3739 448f776f 44842451 00000000 438e0d79 c437f4b7 450c6722 00000000 435e46b2 c4db58c8 43440ad5 00000000 436a6774 c4845bea c4dd480b 00000000 42d38ebb 4469f7f2 c4a98e64 00000000 438b9ec5 4380af12 42373c93 00000000 4333cd39 440eb00c 450abf80 00000000 42698030 c4ba5d38 449688fd 00000000 437156af c427e737 c3a7dcce 00000000 423169cb 429d640f c5097bb0 00000000 430e402e 44aa507b c40cd463 00000000 42d158fa 440f0298 44057bef 00000000 43161eb5 c39d5146 446addb2 00000000 425dc38e c50ee602 43701a07 00000000 434ff90b c42157c0 c488eb9c 00000000 4291482c 4466c735 c4a4e4e4 00000000 43471900 44a8be32 4379863a 00000000 43445dc9 43de05a5 44ddfb6c 00000000 42ee40c7 c4c385d7 449bccf8 00000000 4385a0c4 c44110b7 c3c43b3e 00000000 430eff32 425c9035 c4a28357 00000000 4375c2a1 44fedf69 c44ecde2 00000000 423a1002 44abe881 44a29adf 00000000 423d5f60 c3657c60 44279b8c 00000000 431763fd c34443ad 419a5eeb 00000000 433a2258 c3ffe7ef c45c8072 00000000 438f70d7 44b2a96d c4fbbe85 00000000 4332eec9 44a1eb7d 437852fa 00000000 42d3691c 43c681c8 44cc3680 00000000 431a0001 c4395a19 4411b2be 00000000 4332e3c2 c4ed87ce c475669e 00000000 427410da 42ca3ddb c500d6bc 00000000 4313f4b8 443c9c4b c39621c4 00000000 430bbbdd 430e28ad 43084310 00000000 42c6c5b7 c3b54c37 44819a65 00000000 4304cd85 c51b6b95 4363d776 00000000 4300ad2c c470f185 c4d2d0c0 00000000 430e22c8 44ab5840 c4ee133f 00000000 436a954e 4489fa76 435b3374 00000000 42923878 43d147c2 44ddb236 00000000 42c127d8 c4d8d831 44a823e6 00000000 43112742 c4b2a0c3 c43b8e76 00000000 438742f1 42e1fbc9 c4fd8a10 00000000 43514ada 44c1f0a9 c4176775 00000000 4390c7eb 438cde78 4388d414 00000000 430830a2 c414b4a7 44d02bae 00000000 42d75837 c4ab6b54 42e8fa14 00000000 43668203 c439cabc c4a5172c 00000000 42ee439f 44b619b3 c4f983dc 00000000 4309170e 44f6c107 43cad215 00000000 42dae794 425407a3 436775ce 00000000 4391cf47 c334f29d 430a6545 00000000 434689d7 c4a864d2 c433abdb 00000000 43955055 4207b224 c408015e 00000000 432e5113 44bc9e88 c410606b 00000000 4363a091 44c4cf5b 44c1b81b 00000000 43175e7a c424fcb2 44e23689 00000000 42271c0a c4dc2ba0 4309ddc7 00000000 4304b4f4 c4220cd5 c49240f0 00000000 438b4ca0 4477a819 c4a753d3 00000000 4341c62b 44efbf1f 43cbb1a5 00000000 4226fb0e 42d36e66 43ee0bc6 00000000 41a251d5 c4b37819 44876395 00000000 4353fe79 c4ecd8f1 c48060d6 00000000 41c3955b 4312c3c6 c504e5ce 00000000 4336f858 44e6566c c42cd169 00000000 41b44d59 44381365 44379a46 00000000 43037b44 c357e417 4411038a 00000000 43886875 c4824897 429544e9 00000000 43950bec c3c46ad6 c4341445 00000000 4376b596 443fac1d c47f7126 00000000 42415042 445a83e1 433fb7d0 00000000 42fd0eb4 4391ccde 44a97580 00000000 42a68e69 c48eed6e 4454afe2 00000000 43131f98 c350229a c2e53687 00000000 4290dc12 431f65a2 c503a189 00000000 421828f5 44e3697e c4273169 00000000 428b59a6 4477365e 4479ddfb 00000000 4393253e 00000080 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e3e9ca3 3e9fd28a 3e3e9ca3 3f03315f", + "c477d3c3 4419876b 41500000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3eb9d965 3f00e72d 3ebaf6b1 3de35d40", + "44727c07 43d9bda1 43770000 43917292 4292b29b 00000000 42200000 421f9458 44019de9 00000000 42a00000 c42a5a82 43904969 00000000 42f00000 c41f0af1 c433bcb0 00000000 43200000 44133f63 c47f9f80 00000000 43480000 44ab8d80 438a4153 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3fe16bae 3ff604c7 3fe1b695 3da8dc20", + "4286d28f 43b90df6 41500000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 00000000 42f00000 3d4ccccd 40400000 40800000 3f800000 -> 3e3bb233 3ea02cd5 3e3bb233 3e90563c", + "c25b897a c4896d47 41d00000 44852760 41dd9e2d 00000000 43903279 44508066 44b6964e 00000000 4364390e c45c3756 44c6253a 00000000 42b0222b c4196ed9 41b8a93b 00000000 43818f1a c3b7ab5f c40b711a 00000000 4239b531 43c55a01 c44fa6b9 00000000 4216d75f 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 42f00000 3f800000 7149f2ca 71c9f2ca 40000000 -> 3e293aae 3f4dfd57 3e4d542a 3f72a230", + "44073ea3 44419428 42820000 4395aee9 419be3e3 00000000 42200000 435ddcf5 43eb25ad 00000000 42a00000 c3d83f39 44161d45 00000000 42f00000 c46e51cd c2e2cfad 00000000 43200000 c3dee2bc c48891ed 00000000 43480000 445b6d3e c4885676 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e286a8c 3f129894 3e286a8c 3e579118", + "43540a07 c48d467d 42500000 4395cc18 41797ccf 00000000 42200000 436a03b0 43e82f0d 00000000 42a00000 c3cc6067 441a3747 00000000 42f00000 c46f7893 c27ed10d 00000000 43200000 c400f2f1 c484a98e 00000000 43480000 4445832e c49078e1 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3f39263b 3f3d3dae 3f308ec6 3ee9973a", + "c4ab4cf7 444cc9b2 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f14703f 3f223cf1 3f146e07 3f06942f", + "c40a10ce c330d2cf 41d00000 4510b752 4270dca2 00000000 42051208 44879cd3 44ed83d0 00000000 42aa8dd8 c2a12926 4311023b 00000000 43387178 c492ddbf 4230c1fa 00000000 436d15fd c48063ee c4c2f2a8 00000000 429e2ac5 42b3a377 c33d0388 00000000 42d34677 442da1b9 c28d0884 00000000 43437916 44a36e4d 44d8c918 00000000 43227779 c4145cf2 44b9b76e 00000000 43573613 c4d1cea3 438b8d30 00000000 431494d6 c3d5f659 c3f924f8 00000000 42881ac8 441ed242 c4f28768 00000000 42c37fbe 4493fe84 c3899718 00000000 42f3b5fe 44b00d2f 44b4696c 00000000 42e29d50 c413f670 450f2c72 00000000 4376c3b5 c4d30297 43fdad86 00000000 431a9a8e c4511d4b c43caa69 00000000 42c0d0f2 4323213a c454ed45 00000000 42856fd4 4510397b c456396b 00000000 41a7ca37 434c35c0 4321ef1b 00000000 43672dc2 c345813b 44c373c8 00000000 43407ed3 c505bfac 446e5e19 00000000 424b388c c44180b9 c4065678 00000000 43929dd8 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000017 43820000 3f333333 40800000 42f00000 3f800000 3f19999a 3f4ccccd 40000000 -> 3e4bd2b8 3fad5b3f 3e4bd2b8 3edcbc78", + "44b4d781 c42a30e0 42c362a8 439548e7 41ea16f6 00000000 42200000 433ea91b 43f1e490 00000000 42a00000 c3f49b3b 440ace2d 00000000 42f00000 c4689674 c36cbe3f 00000000 43200000 c38303c6 c48fd142 00000000 43480000 44862e84 c460ae13 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40c1cc31 40c3eff4 40c07f6f 3e736b1c", + "44073ea3 44419428 42820000 4395aee9 419be3e3 00000000 42200000 435ddcf5 43eb25ad 00000000 42a00000 c3d83f39 44161d45 00000000 42f00000 c46e51cd c2e2cfad 00000000 43200000 c3dee2bc c48891ed 00000000 43480000 445b6d3e c4885676 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e286a8c 3f129894 3e286a8c 3e579118", + "c4443555 438a806e 430f0000 44f08533 438a85ec 00000000 434dd507 440bfb7f 44ef1403 00000000 4250cade c4c620bf 44ab311c 00000000 438bb7b6 c498a657 c40c2ad8 00000000 433224f6 40b87318 c509f73a 00000000 4392af5b 443e9690 c3ac9963 00000000 435700e5 44800346 445f9055 00000000 434202db c3e6946f 44c128ac 00000000 4389d4ec c5039ef9 43920048 00000000 43407781 c3b348e3 c40d39fb 00000000 4357b6a8 449e962d c4f36b60 00000000 431ce8f4 440ccf7d 42a9d2ee 00000000 43688143 426c8c57 434f1578 00000000 42bb9fa7 c4c9d20a 44ac0f10 00000000 425b193f c5096dc9 c4806779 00000000 4333e4ae 4015bdb7 c37d318a 00000000 4332ff0f 4504f52a c46c94a0 00000000 4301a944 43f8c089 43dc22bf 00000000 4304e83e c430a5b3 451079f4 00000000 432001c2 c4f5d847 4381b676 00000000 41b1c78b c4498ca4 c4a11d9d 00000000 43701e50 433877fb c38b8aba 00000000 42936569 44e57456 4390986e 00000000 4338d846 42fe2061 43e430ba 00000000 42e9c88d c4e0fd31 44bd3fd4 00000000 433b75c4 c2eacab1 c25f2d82 00000000 433a1145 41a98446 c4a6e323 00000000 432b090f 44c26e2b c429e70d 00000000 42c472aa 4463a9b8 444c2e0a 00000000 41e2ab30 c29bab5c 4378ba3a 00000000 4332e856 c395dc3e 42160fd8 00000000 4302547b c4487dfa c4a2a8ba 00000000 42d3f434 449f6b52 c4edbe75 00000000 4362f8a6 44efadab 439d8efd 00000000 426529a5 438677e3 4477d67e 00000000 42a7211e c4e45fde 44bd86e0 00000000 42e8bd39 c4ebb6b7 c463e5c0 00000000 42a8582d 41009b57 c3b294e9 00000000 426d7925 446eb35b c3ccd470 00000000 41a8b703 42f18893 42db86e6 00000000 43149d37 c2daed5d 43aaeae8 00000000 431ef84d c407925a 4280748a 00000000 42f80a5c c43ae90b c499ea85 00000000 4317ce6f 42fff833 c33c284d 00000000 4300ef24 44e30391 439b6c9d 00000000 438fced5 4415b57e 450dac4f 00000000 438d00da c45c681e 443475b0 00000000 42a1bcab c501f4cb c47f8ec6 00000000 4296bdba 41820da0 c40b7c57 00000000 437162cd 44317947 c39582fd 00000000 43951499 44be4db2 44af481d 00000000 41d27f5a c43b0645 450ebeb3 00000000 435b2aec c4ce5cdf 43387012 00000000 434f20cb c4778b62 c4ceecfe 00000000 42c7e266 442178b1 c46a091f 00000000 4326ffa7 45094fc8 43c3859e 00000000 4315f493 41d79b2f 42d1a73b 00000000 433e2004 c469fc26 443d002e 00000000 43389a8a c4061545 c3860cf5 00000000 42a549ac 42879a04 c4ece660 00000000 430fb092 44c9bf4d c426d225 00000000 42fc331c 4444da07 4437bd3e 00000000 430c8e34 c37e278b 443db813 00000000 41ba8850 c50e2153 436ecf8e 00000000 433fd281 c3d3710a c4336f89 00000000 4389523a 44aa8406 c4f3abec 00000000 433c293e 44e20cd9 43a72209 00000000 41e9b1e2 43c603ea 44c5facc 00000000 422f964e c487acdb 44583927 00000000 4318dfea c4cbf98e c44f51e3 00000000 4386a23e 42989e48 c4e0e6ad 00000000 436af094 450ac98b c461397c 00000000 42989758 433e955f 43344503 00000000 4317e839 c43d409f 450a3901 00000000 437b2483 c4eeac92 433bba5b 00000000 42e41720 c49b466a c505caff 00000000 439167bb 42e8df0e c324106d 00000000 437e8320 444db18b 431dba6c 00000000 430fb605 43ba326d 44bf8c90 00000000 43282a36 c4598bf2 442b0159 00000000 4346d1fd c4d4f042 c45bfe79 00000000 427637b5 42f04991 c5191375 00000000 4326614b 44abf896 c408e316 00000000 42c90813 44a9303b 44a22b96 00000000 4391dfde c4482e78 450f1a3a 00000000 42f99a86 c35e1adb 41a2ccba 00000000 436169bc c4220f3d c48dcb99 00000000 4382282c 4487c4cb c4bca4e1 00000000 438a9325 44887723 4358cc21 00000000 429b66d3 435f072d 446c426d 00000000 4379cb8a c365e1a6 43323fbf 00000000 422fd64c c4ee6989 c47a543a 00000000 4391bd36 43005a9c c510014b 00000000 43938d44 44a7b3a9 c402ebaa 00000000 43863006 44a51760 44a05b1f 00000000 42962f3d c3ce7f99 44908971 00000000 41b0ad66 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000060 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3ececfcf 3ed7ede0 3eccedfe 3f14d74e", + "44b4d781 c42a30e0 42c362a8 439548e7 41ea16f6 00000000 42200000 433ea91b 43f1e490 00000000 42a00000 c3f49b3b 440ace2d 00000000 42f00000 c4689674 c36cbe3f 00000000 43200000 c38303c6 c48fd142 00000000 43480000 44862e84 c460ae13 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40c1cc31 40c3eff4 40c07f6f 3e736b1c", + "c47f6ba3 445d4d82 42ea0000 4394f978 420c1475 00000000 42200000 432bd785 43f5648a 00000000 42a00000 c402222c 44037e14 00000000 42f00000 c46353fe c399e880 00000000 43200000 c315e9a8 c4924e08 00000000 43480000 44924467 c44027bd 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 406eccf2 407a5323 406f4f06 3e549b04", + "4485b04a c3aed057 42d00000 4442b575 42a29596 00000000 42b756f6 43d78b79 448df4a7 00000000 428efb46 c36cce80 43815c38 00000000 4300ec07 c30dd39d c21fb3a5 00000000 43069d6c c2bed114 c3f4e3db 00000000 433bab9d 448e78ba c45cc627 00000000 43501122 4434fe4a 43ac8ce1 00000000 41b78651 42080403 44c15519 00000000 4339fb23 c4cc2a50 44592880 00000000 438158ac c40c7a6a c3c68ebc 00000000 436c3ac2 43a7e132 c50c5801 00000000 420113e9 44cd378d c4074589 00000000 4309b286 44a2a6de 44a2ba26 00000000 4288c4fb c301c263 43c48c62 00000000 43945407 c4b88eb3 435c11c9 00000000 4337317b c3350cdc c38037ae 00000000 4253e546 4398adb7 c40f623d 00000000 431848c8 44d9ee6d 421c8b89 00000000 434de3c2 44105d35 44979bbf 00000000 42f9bb43 c4978a18 44c36601 00000000 42e46fc6 c400c997 c2c931fc 00000000 4213dd4a c40f4e54 c4fefbe6 00000000 4313bd26 447a23e2 c464bd92 00000000 43152ca6 442d8ab1 4383efae 00000000 436d9494 43587d16 45023732 00000000 41e9d6f9 c33b153f 42f00132 00000000 438512be c4c3e2ac c4677aa1 00000000 422e5d86 42a70785 c49be14d 00000000 42aed7dd 44ab0f17 c4109d7e 00000000 42016900 4464cd6c 444250e1 00000000 438c6f09 c32928e8 442edf9d 00000000 41e6ee7a c4fe5b03 43edb527 00000000 43375ae9 c4542f3a c47dce50 00000000 430f935c 43e667d6 c4855fa2 00000000 43799e23 445bf1a5 c25043f4 00000000 438d7726 430c3f32 43719fc0 00000000 42ee9647 c3124cf1 43603c12 00000000 438931f8 c4bde1e2 c329c3f3 00000000 4380209a c34c0fee c4096805 00000000 42a487a6 44bfa846 c4ce59a2 00000000 42bbcbd4 450868a3 441de7f7 00000000 42ee18b4 42af73e4 43ea441d 00000000 432d4288 c488c868 4450c860 00000000 429d9e74 c46eecea c3e812c7 00000000 42723039 c211ea3a c51b3c37 00000000 43105d94 43885405 c30e763f 00000000 4318b381 44e960bc 44a77fd4 00000000 438120b6 c2329f6b 438e38d7 00000000 4272cfc9 c41c139a 4348b8eb 00000000 42b85cc0 c4d00a90 c4d33277 00000000 422bc07e 4239c65e c30952e5 00000000 43115b06 44927efc c325f3fc 00000000 4386e3e0 44ab3796 44f64d7a 00000000 4356f86f c473343e 44e06f51 00000000 43764c3d c49f243e c2178028 00000000 4345e483 c2a23615 c32d9a8d 00000000 42eecd5e 438c1259 c3b1ea61 00000000 42950a53 4320a2fb 42025995 00000000 43889f60 4410e149 45049996 00000000 42c5baf9 c326248a 4315b806 00000000 42cfcf5a c3376a3c c28e83b9 00000000 42cec347 c348464b c501a79c 00000000 438564d9 44e2d95a c48f2f2d 00000000 433c39e1 447715ba 44146ebc 00000000 42a2a0dd c31b0ec0 45026cef 00000000 4311f50e c4b53b1b 44161bbd 00000000 438e46a9 c4104f29 c3f8c3cb 00000000 43783eeb 4326b36c c426fd71 00000000 43140e4e 450a19f2 c3f9a298 00000000 42bc5480 4470a16e 4492117d 00000000 437df579 c3d615a2 4472f6d4 00000000 4339fce9 c4d0f354 42ad6439 00000000 42f07d1e c405227f c46946b3 00000000 4360d291 43f45ec2 c4385211 00000000 435ded65 4500faf1 4375e4ff 00000000 42895c10 437fc21e 443024c5 00000000 438efce9 c3cc0fde 43d883c9 00000000 43491e92 c33f8da5 c263cfd5 00000000 435ddd51 c38ca276 c4c3a922 00000000 4333a39a 431bcd39 c2ea3c3d 00000000 42f02737 4420ef9d 439f3b35 00000000 43394334 4190b01d 4518f115 00000000 41f7caa0 c30a5f90 428e098e 00000000 42388bb0 c36a5150 c32ac702 00000000 42e1d895 43c10925 c512b54d 00000000 43336670 42c90c13 c1fc1949 00000000 433ec18e 44996b8d 449e09cb 00000000 42a0ef0e c438af0c 45054e15 00000000 43114d4e c4cb48c5 435a335a 00000000 43173c82 c42f375a c48002a0 00000000 425789eb 43b6d368 c425d0b4 00000000 435ceb31 4482d19c 421b1c4d 00000000 434bc91e 435cdbf9 43f0efaa 00000000 434d7014 c4922120 44b6d97b 00000000 43441f02 c4ef534b c3c97cfe 00000000 4326c9a5 c4071acf c4fe9951 00000000 42e1f6e6 43ef91dc c3d4bdb5 00000000 42a9c2e0 44acc7f1 4409295d 00000000 4376f864 430bf703 44c42c7b 00000000 4340a458 c43fed1a 43ee6288 00000000 42d714d6 c4b1b171 c459096a 00000000 43954e00 431ed57a c4f32eda 00000000 42b6cc7d 43ed2f7d c340697a 00000000 434d0695 44070e17 43ec44b0 00000000 4394a4ec c3ec292d 44e56ede 00000000 433a589b c38d6173 4276e79a 00000000 427a8dc6 c34e4bfa c37e35d4 00000000 438a981d 42f6406b c3890472 00000000 432b34aa 440e2d00 c1cab197 00000000 42dc17f0 44845c86 44ebe6f5 00000000 42f21514 c404df24 44454d0f 00000000 43120a1a c4b2912a c334cb16 00000000 430b148f c41b638e c4db011d 00000000 434fa441 4430bc59 c438cd1c 00000000 43150701 44c301e5 43ee2072 00000000 4232cec2 43b205bd 45013f8b 00000000 41d8fcf2 c3a94091 437a9d05 00000000 428323e0 c488b91d c409c500 00000000 42c42b2c be55b12d c5142392 00000000 426c7608 448d059c c40e2b3e 00000000 43252655 44575f2d 441f6343 00000000 43658219 c3bba8a9 450864f1 00000000 428c80cf c48bb89b 43aaba5d 00000000 43538ae9 c3e772cb c3f1eb07 00000000 42d3cea3 43184707 c3d6bfdf 00000000 41f507ae 44c375d8 c3463066 00000000 42cc37b6 4485cde4 44c69b6a 00000000 43925cb4 c492ad86 4502c479 00000000 42993eba 00000080 43820000 3f333333 00000000 42f00000 3d4ccccd 7149f2ca 71c9f2ca 3f800000 -> 3ee4ec9d 3ef0a092 3ee39081 3f6c7d59", + "c49e0278 c43c3ff8 42500000 4395cc18 41797ccf 00000000 42200000 436a03b0 43e82f0d 00000000 42a00000 c3cc6067 441a3747 00000000 42f00000 c46f7893 c27ed10d 00000000 43200000 c400f2f1 c484a98e 00000000 43480000 4445832e c49078e1 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3f3e3aca 3f810e03 3f3fb5de 3f1ab712", + "44441218 c4a77189 43020000 430f1342 4195a466 00000000 438c7aa7 43b46311 448c65f7 00000000 43754c6f c48b58b4 44823ad6 00000000 420e87c3 c4f4e8a1 c442bc3d 00000000 42e74c2a c3154849 c5155aaa 00000000 433dd4e0 44a0890b c430bb5c 00000000 42fc25c1 44f83a26 44b3c71d 00000000 4206b4b2 c3529bf0 448be367 00000000 42270ac8 c44db3a8 43564a36 00000000 433c00f2 c445f0fd c46d2059 00000000 432b099f 439cd5eb c4290208 00000000 42817e51 4413ee4c c0713e92 00000000 42bd334e 44654d63 44ef12bd 00000000 433be15d c4799ae5 449970f2 00000000 4393a85b c4254c2a c3233b6e 00000000 433e5454 c34f5bb1 c480af90 00000000 42a3db6e 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 00000000 42f00000 3d4ccccd 40400000 40800000 3f800000 -> 3ecdf1fb 3f01803c 3ecdf1fb 3cac8220", + "43540a07 c48d467d 42500000 4395cc18 41797ccf 00000000 42200000 436a03b0 43e82f0d 00000000 42a00000 c3cc6067 441a3747 00000000 42f00000 c46f7893 c27ed10d 00000000 43200000 c400f2f1 c484a98e 00000000 43480000 4445832e c49078e1 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3f39263b 3f3d3dae 3f308ec6 3ee9973a", + "4331bf96 c302cd9e 429c0000 448893ed 42aacbb0 00000000 41c86c91 43be0cb6 4457cbcb 00000000 434541c8 c3131b04 433c4b79 00000000 42f52cbc c4983b27 c3519012 00000000 421ce820 c336ae18 c408b80f 00000000 431b82ca 44a3574a c4ad5fac 00000000 4290881c 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3f253f12 3f26be50 3f1b10e5 3e44ffa4", + "c3c88386 c4ae8b7d 43290000 4393dcef 4249d606 00000000 42200000 42efed5f 43fcfc8d 00000000 42a00000 c414fba2 43db5ab6 00000000 42f00000 c44e8974 c3f47a9f 00000000 43200000 431c05e9 c4923478 00000000 43480000 44a8b2a8 c3ba2991 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401363df 402e91e8 4017b8fc 3f354648", + "4484977e c4962fc9 43360000 4465bb49 43291db2 00000000 429df56e 434003dd 4464cff2 00000000 439082cd c49c689e 4453fdef 00000000 42fe9a4a c3a90e98 c360a193 00000000 42a3a52d 43ee1d4e c514a7b5 00000000 427ee29a 450cb8de c3d9e4b2 00000000 422cfbc8 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e7c3758 3f0d9e03 3e7c3758 3f158e3a", + "c4481bb0 c48559ea 41d00000 450f644f 426ea864 00000000 4200bf8d 43459010 43ad0204 00000000 4348332c c2b19b7f 431fce9b 00000000 4295c78b c4c28632 426a1d92 00000000 4375f44f c44c9380 c49b5070 00000000 4350928d 43d9bb0a c4651809 00000000 4311d0ff 43c240f2 c21dc898 00000000 433cca34 4400ff4a 442b1c47 00000000 434fb60f c3225546 43cb342b 00000000 42c7a3d3 c3a4442c 425a8551 00000000 436de8a9 c34de433 c36fbf15 00000000 438dc471 443e5580 c5115344 00000000 43242e31 44ba62ef c3ad4892 00000000 42c0c0a0 4397672b 439b2720 00000000 438c4e1b c3e3b321 44dc5473 00000000 43844b70 c4aa02da 43cc6379 00000000 428bd112 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3e049d6d 3f02233d 3e049d6c 3f7290ee", + "43493566 c40be3ef 42820000 44f16a9a 42fb6d61 00000000 43935499 441e2e6f 44a7a70a 00000000 432dc90f c44e8a85 448f6070 00000000 4338a12b c4def7ff c35433a3 00000000 4371ff55 c3ec9381 c490f56d 00000000 432ac04e 4440fb84 c46fd05f 00000000 435b9c14 4466888d 43200381 00000000 435466ca 43c359d1 448cc03b 00000000 420cea0f c4cb4eb8 44e2b710 00000000 4219a268 c4be64ba c3ae7bb0 00000000 4205134e c4057b2b c4e798b5 00000000 420fe4da 44983039 c4987c17 00000000 4234e8b6 44d7469a 43f6563c 00000000 425a3374 43042817 440eedee 00000000 4354a4b1 c4c1ba9e 44ae686d 00000000 434de069 c42ad4ce c36b9cd6 00000000 43113017 c37f4bb2 c4b5cda2 00000000 439205da 442e8e0e c40d0712 00000000 43733f76 449a67c9 43fa97fd 00000000 4301bfd2 43080b02 448c9ce8 00000000 438bc683 c4e25342 44a3af91 00000000 431a60fb c4be3938 c43292db 00000000 4301dbe8 c2386c8d c42bec7e 00000000 4281f59a 43f584b1 c39e5227 00000000 431d81bf 443809c2 43c56590 00000000 42ae1371 4202e449 45171250 00000000 4394a1eb c4aabb93 44433563 00000000 432582b8 c4982ba5 c438c86f 00000000 435a289e 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000001c 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3f1ef8ea 3f3302ba 3f1bf2d9 3f5eaf6f", + "c4b38b01 c480aaaa 435d0000 43925a10 428385f4 00000000 42200000 42859400 4400ec59 00000000 42a00000 c42436d2 43aa656e 00000000 42f00000 c430d7a4 c422415c 00000000 43200000 43e1bc38 c48846f7 00000000 43480000 44aed6f2 426fb0b3 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e9796a3 3f220bb9 3e9796a3 3f4a4ed7", + "c425d41c c4b26667 42d00000 43d7f73d 4234558b 00000000 42faf486 43a8d827 445e65fe 00000000 434c22e1 c46be30e 4480db9a 00000000 4336cdf9 c4c37cde c3dc2047 00000000 43531652 c2b7425a c3eb30de 00000000 42c5d0ba 4450a7e1 c421aaa2 00000000 42c718ca 44f00090 4464ce79 00000000 432c5668 424b42a0 451074f5 00000000 435b4926 c4603c39 43ee8162 00000000 43389673 c4b547fb c4801d76 00000000 42beca88 439b4188 c501ca67 00000000 420c665a 44837f44 c3ad5b36 00000000 4342e5cb 4462b7de 4462d2be 00000000 41dde2d6 c3dd9714 44a7d2ab 00000000 41aea092 c4ad234b 434e73de 00000000 4383e1de c4406678 c4884165 00000000 437fe17b 432ef6dd c3a45012 00000000 42a3e658 43173961 40594167 00000000 437b0577 4337993e 43c0cfcc 00000000 4349a717 c48822f5 44af89a2 00000000 42ff1c0e c4698e3f c3366ef7 00000000 438c6627 c382f045 c468fa8a 00000000 42bf2901 441b7788 c40e2aa7 00000000 41cda40f 44bf97c3 4411a8e1 00000000 42d042e0 4306eeba 44a2522b 00000000 43508d21 c4ab6abc 445be832 00000000 42fb916c c3a50a1f c343073b 00000000 41b58f95 42154737 c40b5055 00000000 422f98ba 4509f598 c46943cd 00000000 43607296 43bcd6b9 43a06037 00000000 4323a326 c22ac5b4 43308a5a 00000000 43440d49 c3d501a4 42c7109b 00000000 42c8f4d0 c49bb301 c4ba3d9f 00000000 432fa1e9 434a06a1 c3e9e421 00000000 43428866 44a903e9 c2a00a7e 00000000 423c1eb2 4439df8a 44a01d9b 00000000 436133a4 c498905b 44e9d59f 00000000 42d7ecc2 c50e82f2 c37ed395 00000000 43884094 c4194513 c4ce68f6 00000000 4277e956 4411b631 c41ce1d9 00000000 43184a0d 44768633 438eb008 00000000 42b24d13 43711c6c 44a0f783 00000000 438394d0 c40334b7 43c8452d 00000000 4268e46f c4ceb765 c448c9bb 00000000 42444afa c0221f21 c32c7a20 00000000 438d0a6d 44f1eeb8 c47cd14a 00000000 4305b6c8 44801c09 4437e48f 00000000 42900e22 c311d44e 4468390e 00000000 435f5531 c4edc12c 4418e1d6 00000000 422328b4 c465185b c4689205 00000000 4367034f 442b59ea c4fd52e7 00000000 41c8d57f 44f3669c c389dd3b 00000000 43059e5d 433f43bd 43899224 00000000 43889a4c c4179edd 448beb54 00000000 4375198c c3a449cb c11c6672 00000000 42c9f99e c3dcd421 c46c5681 00000000 4375f117 44297cae c4574737 00000000 4355da44 43c64505 42a0e334 00000000 43705f75 42d238b3 43c0672d 00000000 42c06be3 c32a915a 4319b4db 00000000 4344ad70 c4f42a13 c43db799 00000000 421ad3d4 c31266c6 c4bd8e61 00000000 43384688 4408fbf5 c3acecea 00000000 4286d1ff 441571df 43b38db2 00000000 4358e52a c332da7c 451670f3 00000000 42915b32 c3a9422e 430c3126 00000000 43410ad4 c49c9ae4 c486faf9 00000000 43313d44 43c10d72 c4c1632a 00000000 42f5fd2a 44957e07 c3871ce2 00000000 423e3eb1 449ae7bb 44bc0fe2 00000000 42e04dd1 c426c413 44bd432c 00000000 438adc01 c2f0a184 40c7ae3a 00000000 43637865 c42ddadd c4985009 00000000 4214a3cc 44ab31ad c501204e 00000000 4371a882 436fa3a3 41e46e22 00000000 4331a892 4403b417 44b56950 00000000 432536cb c2cbd432 42d84479 00000000 43840042 c50a9357 c424ce5c 00000000 436f37d9 c3462077 c489d2ec 00000000 4292ff10 43d231ba c39e014f 00000000 438c022c 44bb70c1 4439747a 00000000 436ff750 417a2fef 45043ac9 00000000 438900c8 c3eac639 4370fdb1 00000000 436d0659 c3c306e5 c38e2425 00000000 43817a60 422d5b18 c383c05b 00000000 43688b4c 444dd446 c3810c2c 00000000 41da7c9e 44631630 4469ec19 00000000 435ef800 c44943ec 4511460a 00000000 43898c2d c36dbcaf 41ff2e71 00000000 43814d66 c2e7ab0c c32940d0 00000000 4285895f 437ebd3c c3e709a2 00000000 4314085e 44cda6b4 4273d6af 00000000 430445c8 441d0916 44ab4f83 00000000 4339dda2 c46f84ba 4495da5b 00000000 436d4bdc c4c7f2b3 c3a85621 00000000 437f2566 c41778f5 c50eb8bc 00000000 42c3c1e4 44d7f03c c4bfc190 00000000 437fb7ee 44c77908 441e59c9 00000000 4382b2a9 41d06cbe 43921035 00000000 42418818 c49a07d0 443f50e5 00000000 436afd54 c4f1915d c49386f0 00000000 426a4016 43152573 c4e459cd 00000000 42cfe3c6 441f82f4 c381668b 00000000 4335265e 42d3aea9 42b9292d 00000000 42cd668a c40b08fe 45071304 00000000 41b8d4cc c4e09a94 43c41f41 00000000 43346cb1 c38eded5 c3b00d85 00000000 41b76058 4442c8a7 c4d8c295 00000000 4296f6b6 43db5327 c19c5741 00000000 430ee56b 43d4c32f 443d9948 00000000 43380ac2 c392cad8 43d9f8cc 00000000 42feb1b4 c4182d53 c29a1304 00000000 42a8af3d c42c200d c4f297a9 00000000 41f8f04a 4373866f c37ea37b 00000000 434cc1bb 43552126 428220c2 00000000 4257adf1 43b195cc 4500ee45 00000000 438ff7ad c41faa60 43ec6b14 00000000 42c28b0c c4246bdb c3a5ae03 00000000 41faa1a6 be2819e1 c4e9113a 00000000 42e8ec30 43d38b87 c3554401 00000000 41b88a53 4494d0e0 445c43d7 00000000 42d15896 c3bd10b0 45096a9e 00000000 4343efb7 c3b3fc50 42dbed8f 00000000 42f714cb c38f1f9a c3959902 00000000 43897974 42d571a4 c396813a 00000000 431927d6 44e2efed c3661afb 00000000 4347a765 4489d878 44cc9b0c 00000000 4392c2a1 c439890b 44a568f9 00000000 43252b63 00000080 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 3f800000 -> 3f1578cf 3f50ea99 3f16ec8d 3f7290ee", + "c43fde68 44484478 42ea0000 44046dc1 42790b44 00000000 436af720 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 3f800000 -> 3ea5caa4 3f03188c 3eab27b9 3e8cb2fa", + "c483ea3d 449f53f6 00000000 43960000 00000000 00000000 42200000 438c7a85 43dac84f 00000000 42a00000 c399f96e 44283853 00000000 42f00000 c46d9924 430779a7 00000000 43200000 c440d32a c45f41ba 00000000 43480000 43c69044 c4a7cfcf 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f43ab94 3f44240d 3f411e4f 3f7979ad", + "c4b7988c 448c98a0 43360000 449e7c40 43695635 00000000 4337fab8 429a0a54 43b78f68 00000000 431109d0 c4ec0dc9 449ff86c 00000000 4294fb76 c498743e c44a9201 00000000 43352cfa 43503f89 c4820272 00000000 4291c84b 44005927 c2c6bbd2 00000000 42d70b12 446f16a7 44b67883 00000000 43651510 c3574593 439ca6c3 00000000 42b01207 c504577f c3e53b00 00000000 438f0852 c37414b2 c4abfbce 00000000 42a24a34 434a91e3 c3003ce6 00000000 42575fae 446f6994 442a1035 00000000 42ea8f98 c28b4ff9 4395885d 00000000 42b95a3a c3f52a87 429e38c9 00000000 42fd97cb c287f364 c2de5c0c 00000000 438b5e60 440e10f7 c44186e4 00000000 4317df80 4512b8ca 44126371 00000000 435c5c0c 41b28784 43198560 00000000 42e555bb c458a6ee 43ffb758 00000000 41f29eee c421c038 c3f55762 00000000 42c27001 44001984 c4f0b72a 00000000 434f317c 44730195 c2fbac00 00000000 4394d575 443bf4fb 44a51419 00000000 4391ee2f c3a85681 43d6e9ff 00000000 4395cb45 c4b749be c3cf6277 00000000 42a32aec c3846764 c511abf3 00000000 42e2712e 44d53e6e c46a0f3e 00000000 4371c528 44c8382f 44a1ef2f 00000000 42f9c992 c2f778ec 43ce5c9b 00000000 436ad0e6 c470069e 42bbdacb 00000000 4349cca8 c29f4661 c316a365 00000000 4290bc0e 4468858b c48b3e99 00000000 431958be 44f96881 441e133a 00000000 435977bb 42984bac 4467e5bc 00000000 4391c978 c4cca722 445046dc 00000000 436e03c0 c4ce20f1 c4b1a39a 00000000 437ac48c 440434af c4c5d06e 00000000 42bc471c 448d1c59 c295e717 00000000 43011c59 4451e0cb 44d671c4 00000000 4313b5be 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000027 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3ee5c490 3f3ef20d 3ee5c490 3f049224", + "44b72044 c4b1edac 41d00000 44def876 42398da5 00000000 4289abb0 448be7f8 44f508e2 00000000 434989e6 c38cffef 43fdbc94 00000000 433eea45 c4d753c2 42819385 00000000 43494520 c3be2a1c c4105f74 00000000 433c7373 4317a5a2 c39f8fb8 00000000 4386aafe 43f23ae8 c244c0ae 00000000 43861414 4470b8b9 449fa78f 00000000 42a0ea78 c38cdba4 44305265 00000000 4378198b c46a85a7 431bfd8d 00000000 424cf116 c48cee25 c4a41a86 00000000 43213981 4396d7d1 c466587c 00000000 430b9051 44c17c20 c3b3e204 00000000 4352e453 42b1842b 42b5e9b2 00000000 42b12a62 c3b946ac 44b34783 00000000 4382c2d4 c47d23b7 439829bd 00000000 436bafb6 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e8d672d 3ee7d8f6 3e9010e9 3f78b8a4", + "444f8885 c3ed131c 41d00000 4395f306 40f99267 00000000 42200000 4380eaca 43e1c9d0 00000000 42a00000 c3b3b8d0 4421b5ab 00000000 42f00000 c46fd498 4210524a 00000000 43200000 c422418e c4765e9d 00000000 43480000 441638ab c49e0fb4 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3f3f393d 3f414493 3f3639b6 3f6c7d59", + "43c9061d c4b347ad 42500000 4395cc18 41797ccf 00000000 42200000 436a03b0 43e82f0d 00000000 42a00000 c3cc6067 441a3747 00000000 42f00000 c46f7893 c27ed10d 00000000 43200000 c400f2f1 c484a98e 00000000 43480000 4445832e c49078e1 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 405ea9f8 40a107d2 405ea9f8 3e4c1fc4", + "44b4d781 c42a30e0 42c362a8 439548e7 41ea16f6 00000000 42200000 433ea91b 43f1e490 00000000 42a00000 c3f49b3b 440ace2d 00000000 42f00000 c4689674 c36cbe3f 00000000 43200000 c38303c6 c48fd142 00000000 43480000 44862e84 c460ae13 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40c1cc31 40c3eff4 40c07f6f 3e736b1c", + "c421e6f1 44885f6d 42820000 44497fff 4251db0b 00000000 4383bfdf 44083e7e 449066d8 00000000 438217da c4a3b335 44e3464b 00000000 43924a87 c48eed71 c308068f 00000000 4384bfd4 c3afce77 c4577224 00000000 429691e1 44a0943c c4c78c0e 00000000 43181f12 4324732f 41e44a41 00000000 43252c7a 43fc113f 44b59d86 00000000 430cdd5c c335deef 434acf73 00000000 42fef7d8 c40eeff6 c302fe24 00000000 42e3bc52 c3939e8d c4801042 00000000 42ef8910 44c3ede6 c4c44f92 00000000 4312dd23 43d73bd0 42f649e5 00000000 4297a75e 431638d9 442277ac 00000000 423f902c c4e037d7 44c9db37 00000000 43508002 c495aa6c c3ce6bbd 00000000 4329915b c2992659 c3da1fe4 00000000 4367e866 444801db c421975d 00000000 426ea501 44dd4bd2 443393cd 00000000 435cf802 4391d7ea 4516be18 00000000 430b1a5e c435c284 44037464 00000000 433f1d28 c487e782 c3ff298b 00000000 4375ac5a c280d82f c470390c 00000000 433bc47b 4333e360 c2e7ffde 00000000 421319e8 44b867e5 4445ca89 00000000 435c74a5 41fda9a5 45126298 00000000 4345a60e c4adbb71 4446a355 00000000 438ed828 c480ebc4 c41c8cf9 00000000 438d6623 42c4c4ef c51a253a 00000000 41f3e93e 44ca3ed0 c44b6607 00000000 4355ecec 44c0fbe0 4483c3cf 00000000 42e5907a c3555dac 450e8c1f 00000000 43506bd7 c4cef82f 443526d5 00000000 42c3a5ea c430b46e c4070647 00000000 42bfcbcf 42731d76 c3cdaf5c 00000000 43141806 44c9ebec c4179929 00000000 42ee4ace 444fbb65 44311239 00000000 436da9a8 c1aaa74f 42d25d54 00000000 43719c05 c5065985 44299a17 00000000 42261a12 c36b432b c35f4a1e 00000000 432ccd34 42e8f8f0 c3e0d020 00000000 428ac03a 448d0594 c3916a9e 00000000 42b2eb41 44a0ffcf 44aa0a31 00000000 438138bc c42c48c6 4507e7a7 00000000 4294a30e c446736c 431ffeca 00000000 4311873e c398c543 c3b3a927 00000000 435cbdbe 421d5d53 c2d0d6a0 00000000 42c3b03f 44d89ef3 c37de97f 00000000 43951d98 44869339 44b08e69 00000000 437008b7 c303731a 4395b189 00000000 422b75b2 c43a5259 4289a2cd 00000000 436d6845 c4a3cbb8 c4f08464 00000000 4297148e 42ad99fc c32c19f1 00000000 433676e9 441d9936 c1c31cf6 00000000 4380b93f 44997228 44fd6a2c 00000000 434f7e01 c2c564c7 432c29ef 00000000 4389632e c513d4ac c20b7b29 00000000 4285a1a2 c424c79b c49a12ad 00000000 43310e5a 44988650 c4ebe84b 00000000 434e1fc2 45120441 431f75b7 00000000 43825ff9 43d0f032 445f4444 00000000 42672ece c4b317d6 44f700ea 00000000 435351b8 c44d0be5 c2c86255 00000000 4390725c c3afd9da c45974eb 00000000 42677b00 4345c21a c3742c0f 00000000 41b4fc57 439f4c41 426145cd 00000000 424d1d0a 444791cd 4511443e 00000000 41ba7aa7 c3ff0349 440d4a4a 00000000 42fa3a7b c4294db6 c31d66a7 00000000 42b16eef c3250b3b c410e4b7 00000000 4280d98e 448edfb8 c48e4127 00000000 42140ad3 44270967 43416a16 00000000 4343505d 436f5de7 448352ba 00000000 42b12c0a c4b623ce 44a2f0d4 00000000 437e892c c4dcae6c c419bd13 00000000 425e7630 c2653188 c3a64a16 00000000 41eb4016 44d105c4 c4a7caa2 00000000 42ab75fc 44d16161 442b71b7 00000000 42676e35 436c865e 44fb1a74 00000000 42b13798 c4e46374 44a4163a 00000000 4227b5e2 c413dbbc c38bf0a7 00000000 423041bc c2f4f1f3 c4efa498 00000000 438d1b05 449c2a53 c4480376 00000000 438c1a85 44ffd2a9 448a3bee 00000000 438c8089 41ba2b7e 450bfe2c 00000000 4284945a c43903b6 43d1ff33 00000000 4349cf07 c47e64c9 c41b8df5 00000000 436d1b60 41dfd7d7 c422822f 00000000 42d4b61b 44f93fde c478b4e1 00000000 42eb8e55 441d1046 43d7ee46 00000000 42109682 c253b1f4 4408ca15 00000000 4323423e c471fb9c 43d1fbcb 00000000 4390b01b c4e267ee c4ae2221 00000000 4212b0f4 42d815bc c432ebee 00000000 43655097 443fc509 c38e9989 00000000 426d2997 448c3ffa 4470a05a 00000000 41a6b669 c33d935f 4465f92b 00000000 4262d7e2 c50accca 442d4c80 00000000 432c71da c4151b0f c40e696d 00000000 42d68bce 425e83a3 c353f8d5 00000000 4319d5e6 4450c165 c354754e 00000000 437f6c46 44cb0814 44d7c9bf 00000000 43342688 c41cb332 44f48c73 00000000 4311e5aa c4b66f50 4390b140 00000000 422594c2 c2918f4c c2ac4652 00000000 4305249e 4377795f c422a892 00000000 43128992 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000006a 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3ef064aa 3f63a0e8 3ef07fcc 3eeeaa80", + "445e8946 c4b1bb4c 43500000 44a3f786 438a6c27 00000000 434f6e59 42a415df 440370e9 00000000 43453168 c4cebdce 446b6cb0 00000000 43397dac c422a0a7 c4065574 00000000 42cfcc63 438d4604 c44fd794 00000000 4380ad0c 44d9dc67 c2756579 00000000 41ae68ab 440f6db3 44aa9453 00000000 42cfc11c c4b673a9 44adae9d 00000000 43634a63 c4520a36 c3c97bf3 00000000 433263f1 432f9945 c501afa4 00000000 427579ad 4490eeef c3a5aeb9 00000000 431ac08c 43a19e02 43d88a7a 00000000 4363d343 c496ed0c 44ed1d60 00000000 4386df4e c3c0c074 c29f88c8 00000000 41ec0e48 c351ec72 c4a3e4e3 00000000 42ae7fbf 44021380 c3957dd7 00000000 4381e7ba 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3ef92fc8 3f09dfc3 3eeb39a2 3ec52248", + "c4650a60 44b45902 42820000 44a37ae7 42aa4258 00000000 4277fde2 43976d1e 44207e2f 00000000 42a8162e c3fde2c6 44303e14 00000000 43035788 c4d4f87e c34aafbb 00000000 427aa40f c340d9e2 c3ec5563 00000000 423d7a7a 445c6fa2 c488f702 00000000 427c1548 45058d32 43b96593 00000000 4349b61b 43eebf33 44ac0493 00000000 41efe7ca c4535411 446ba8d2 00000000 430e96ee c4e3df5b c3d0d489 00000000 438250ef c3a994d6 c4931dbb 00000000 42c28656 44afd5c7 c4b02d6f 00000000 422e19e5 44c46a5a 43e0c159 00000000 437bfc5b 4392b510 449eaa8a 00000000 42ca1e4a c4b443c2 44a24954 00000000 439484aa c4b6d87a c3fc2ed8 00000000 426b40e9 c32b4156 c473e94e 00000000 43804f54 449fd8c6 c48124ff 00000000 42d60b6e 441576fc 43729344 00000000 438fab35 430593a4 448a1056 00000000 431f5385 c3fd2ba7 43b719e8 00000000 4391ccf6 c4f5a8a4 c4669d27 00000000 4307e136 c2eccd8d c4dcc0a2 00000000 420d4acb 45029eb4 c4a87577 00000000 4381e1aa 44c97839 445817f1 00000000 431f2c1e 413d6596 445a98b0 00000000 4357da1f 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000001a 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3ee0bc02 3ef1b16d 3ee03130 3f70eff1", + "c49e0278 c43c3ff8 42500000 4395cc18 41797ccf 00000000 42200000 436a03b0 43e82f0d 00000000 42a00000 c3cc6067 441a3747 00000000 42f00000 c46f7893 c27ed10d 00000000 43200000 c400f2f1 c484a98e 00000000 43480000 4445832e c49078e1 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3f3e3aca 3f810e03 3f3fb5de 3f1ab712", + "4494ae5a c3ae622d 42500000 447ff60f 425526e0 00000000 428db59c 4410d517 448fb30d 00000000 43059ac6 c4889614 44ce2089 00000000 41c5e1d6 c2e29697 c0f11bbb 00000000 42b68094 c45ef96b c4e5652f 00000000 4328b66c 429bfd2c c2e432ef 00000000 42ae65ac 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 3f800000 -> 3e477043 3ecef949 3e4d82ac 3e736b1c", + "447a871e 43d94e3c 42ea0000 44b5fba1 432b1e18 00000000 42bf16b2 440c7567 44c893b4 00000000 43887f9c c495cf7a 44975ffd 00000000 41f05122 c454d40b c3901765 00000000 430827ea c397017d c5135f21 00000000 420ff14c 444c1f23 c4061480 00000000 438c364b 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 40000000 -> 3f35b480 3f65e6b0 3f385c60 3da8dc20", + "c42ae3cf 44b316e6 43500000 4502f685 43dd1ed7 00000000 4316746b 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 43820000 3f333333 40800000 42f00000 3f800000 0e736390 8ea24260 40000000 -> 3f77ae67 3f932862 3f9119d5 3f7979ad", + "446c9845 44b6eabb 43430000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 3f800000 -> 3ec2ae0b 3ee17d4e 3eb72c6a 3e9d8638", + "4232d37b 4388bbee 00000000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 40000000 -> 3f451289 3f539c8f 3f41a411 3e90563c", + "c47aafda c49b4fe8 43360000 44c8cb0c 4393d026 00000000 43759b54 43eb82ff 450c527e 00000000 4360e2ac c476b571 442730ea 00000000 423dde04 c430f84a c3eb252d 00000000 4381e7b6 43c4ed9d c4f5e28a 00000000 42439814 44b77967 c38e0b93 00000000 43848529 43ac14b6 440354bd 00000000 430e9a08 c40223ec 443d676b 00000000 42dac677 c4bbf5af c3a2c88d 00000000 43908c53 c304d718 c43b33fc 00000000 42f1e78f 441f2c18 c3c98793 00000000 42ebb819 42f29ef0 42ac57a6 00000000 4317422b c2e28993 43f3281e 00000000 42dfabba c4b001b6 43632d68 00000000 43271e6a c3d1c979 c42b900b 00000000 42b98463 438f6750 c3c3593e 00000000 438d3272 44c24b8e 43c1da88 00000000 433b5c55 435a9811 44bbf930 00000000 43866db8 c391c8a1 432c11d7 00000000 422dc5ed c4894d63 c4504213 00000000 435375c4 43e27f7c c4d4cf27 00000000 43745df5 44947ac0 c319c63a 00000000 435b3255 442b042f 4496332f 00000000 434721de c418bbba 4442fdef 00000000 42cfca11 c4810cf8 c3920448 00000000 42f450ef c38bf2c5 c519f8df 00000000 42e8f610 448832e8 c4157e6b 00000000 4375753c 44c77add 44a15610 00000000 42ca0e50 c40e8245 44edab86 00000000 4310b649 c4b53d16 430dd860 00000000 425e4d6e c424a6dd c49bb93d 00000000 43705d7c 44688465 c48b3de9 00000000 43299f4f 450cca0f 443276f6 00000000 43485c1e 42648d04 442e013f 00000000 43423df4 c4ed7000 4471a458 00000000 4312b7f2 c3edb7b9 c3ccdcb0 00000000 43246247 43b2bf89 c485ba11 00000000 43399949 44d47b4a c2e1b869 00000000 4317e13e 447642e5 44fb9e85 00000000 42d4fe5e c4c2954b 44daca48 00000000 432774ca c50d4baf c446b9e4 00000000 42b5ac01 c19d4d36 c3c1cd92 00000000 438c0218 44286120 c39e5398 00000000 437865b4 445e2c31 444be42b 00000000 4379c60b c42ba4ae 44e86b40 00000000 42d12ea2 c3adf023 41434cb2 00000000 434b1e90 c40a3499 c4992537 00000000 43059762 43947c5a c39cd02c 00000000 4388c020 441caacf 43729479 00000000 438b3963 42176230 44f2ffea 00000000 4386a48a c46df4e6 43cddcc4 00000000 4365add5 c454697a c44f842d 00000000 438f64e0 43283b9f c3cf9d74 00000000 43193693 450fafe6 c10dc3a6 00000000 4385de8e 43241ce7 43c6217e 00000000 42e7d053 c43af710 44397e13 00000000 43196aa0 c498b1d6 c40150fa 00000000 41f6b9c8 40bf538b c3fe3eb2 00000000 42cbccf0 44c5a8e3 c41c8a45 00000000 43459e98 43ffd9b3 440507d3 00000000 425e7e4f c35a3248 43f6d5f8 00000000 430c0900 c503ea66 c2671815 00000000 432c643d c3a5da87 c45b5db3 00000000 43326fd3 44e40211 c4d48174 00000000 41d2b43c 4486d076 43f879e9 00000000 436995ce c1e25370 442473cc 00000000 4391ab9a c4a44a8f 43ecc5d8 00000000 42014f9a c38f0f32 c39e6194 00000000 429c787e 445a65cd c4e39363 00000000 4285a5f0 44f72981 42e7f5ef 00000000 4371f2c4 443716b1 45058a79 00000000 43355160 c4a3b772 448f4cee 00000000 430faac3 c4fe0daa c47da4a4 00000000 43438700 42036117 c3dce82d 00000000 431a4e3f 441e1e44 c34dce5b 00000000 4380696a 43d95e1c 44002658 00000000 433d1c95 c4411673 44ba1321 00000000 43478d7a c4dfb7ef c3212cbe 00000000 4390a4e9 c4285247 c5088669 00000000 4389429f 44959340 c475c945 00000000 43362a40 44895f7d 441409b4 00000000 43871b4c c2ef153e 448d3560 00000000 42f992c4 c3ae91d2 42cb57c3 00000000 430be5fc c4b6a4af c4e5834b 00000000 4316c568 448a3d31 c4f73c4c 00000000 4390b684 449f28a9 431ade32 00000000 431fedcc 440da9be 450116fe 00000000 43188334 c4000e13 43c55c18 00000000 433dfc41 c4cc31fd c46cc9cf 00000000 43030044 435eadaf c4ca6c59 00000000 435e3f51 4486f79b c38b1723 00000000 4324ee90 4494ae77 44c74d52 00000000 433e0d28 c42eef35 4491918f 00000000 4344097b c451bb01 c300bac6 00000000 4387e254 c354f01b c45cd7eb 00000000 4289b04b 4424dc12 c3ee0e38 00000000 4386b3a4 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000060 43820000 3f333333 40800000 42f00000 3f800000 7149f2ca 71c9f2ca 40000000 -> 3efe647f 3f95096d 3f076ca8 3f392f73", + "c3fc4625 c28c4726 42500000 44db7380 42b6bf86 00000000 43513fd8 44271629 44a5c78e 00000000 42c10224 c402cf3d 444568c5 00000000 4362d1af c4edf21d c2fd3192 00000000 428ef333 c3eebe5a c4759e5e 00000000 423ffcca 43aee94c c3ffe17d 00000000 4324028b 443a22b0 42713461 00000000 4385620e 434972e9 43d713cc 00000000 43908599 c34ccf16 43914584 00000000 437acff9 c5051dfb c34b6d59 00000000 431ab89e c31bc2a1 c3acbc0e 00000000 41f29eae 43725509 c3a6bbbe 00000000 435fdd1c 44d2ba9c 43398f60 00000000 433c92ab 446968a2 4506902d 00000000 4348f4a1 c39066f8 43c0cdfa 00000000 42a44a00 c4961f0a c315bb98 00000000 430e04ac c2c4326c c36b7531 00000000 42832bec 42d683d8 c30afd5e 00000000 43652aba 4511e98e 43a2a5a7 00000000 4323e75b 4383da31 4424e3b7 00000000 437004a5 c4ab3698 44d760e6 00000000 425f8332 c49c5cb2 c340b4aa 00000000 42acb282 c45696d1 c50bfeee 00000000 436f36e5 447beed3 c499db66 00000000 43530b6e 4354b5c3 420fa6e1 00000000 42eddb9b 44426d18 45048663 00000000 42db488b c441d490 4465e86c 00000000 43811806 c46d433f c32e54f0 00000000 434b1aac c3e92fda c4a6519e 00000000 4380ddf1 447f9bf4 c4933c2d 00000000 43664638 44f86600 43c55a39 00000000 4247cde0 424a451c 43173684 00000000 429342f7 c487bd82 4497e668 00000000 436ea301 c4902896 c376645d 00000000 424794b2 c42250d8 c4fed5ed 00000000 430694f2 42c9aa00 c2db3b0a 00000000 4339e6d0 44b2e34b 43a3b00e 00000000 4217b9a6 43e109f3 44b9e076 00000000 43945565 c4749191 448126df 00000000 438709da 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000027 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 3f800000 -> 3e30462e 3e59b397 3e1701e0 3edcbc78", + "446550a5 c405144a 435d0000 43d794d9 42c1bd0b 00000000 4392ad20 429d968a 441818b2 00000000 4374ad67 c45f43a8 43e7ab5d 00000000 4298afae c36b5efe c357f4cb 00000000 4388ccf1 43fa3757 c4970e72 00000000 4393a89c 44f2d39b 42a67281 00000000 4243c59a 43738c28 4440120d 00000000 433be211 c3cfc93e 43a031a0 00000000 42e297e7 c48cf59a c4326958 00000000 437d1820 43adcd8b c4c785bd 00000000 42e2705c 444f36ae c2e1c94e 00000000 43660893 43f4a392 446804ec 00000000 42b131a1 c426b5c3 44381cde 00000000 4243140f c4c0f899 c41cdbb4 00000000 42283cf8 42858891 c4e62fd4 00000000 436b9fb2 44a87739 c3da809f 00000000 43227f06 43c09f12 43f67ac0 00000000 4383a828 c42a5f6b 44889646 00000000 437548c0 c422dfcc c309665a 00000000 42d26f8b c32e7f8d c498a246 00000000 429c7a37 450057d3 c4897cdc 00000000 43544cee 4341f2b8 432d4f06 00000000 422a74c6 c44353b2 44f4e64f 00000000 4385dcb2 c43325e0 c1aa1f6f 00000000 42cc6347 c3efc750 c4b4cf4b 00000000 432db0bf 446f01b2 c43d5347 00000000 4309fab4 44ffc625 449d31ae 00000000 43186438 c1dc2296 4306dc47 00000000 4301db28 c4b8ad94 435d0d91 00000000 4391a75e c4074ba9 c478a6ef 00000000 42c1e23e 446a39ba c484ce65 00000000 41bc539f 43f7437a 434173fc 00000000 43614e5d c1d322fe 448ed80f 00000000 42b95dc9 c5038e3f 44324f15 00000000 430b0c62 c35be089 c388edbc 00000000 42f88970 432cef72 c38ec9e9 00000000 429d9e68 446c9004 433a9a7e 00000000 430cae21 4325354c 448415c6 00000000 4341a016 c4be61eb 44526fe9 00000000 42d83da0 c44b7088 c43108fa 00000000 431c8462 443eb393 c4f88c8c 00000000 42f11b18 449e2044 41a73061 00000000 428b400f 4387883e 4443bef0 00000000 425e978d c489a462 4460040a 00000000 4364eec8 c4e69222 c4898fb3 00000000 4242e132 42ee50fa c41c7951 00000000 42bd6952 45079778 c3b0e8c3 00000000 42969816 444de4f8 44b76a3c 00000000 438a48bd c4568b8b 4479d753 00000000 42e2be8e c4c12382 c41147df 00000000 4335ba6c 3f806b9c c2c9cc10 00000000 437cec96 44026ac6 c338725e 00000000 42a3b4e8 443c40d9 446441a7 00000000 42b7a0b0 c2fa1512 4354c0ad 00000000 4327db15 c382741a c23f9560 00000000 4302c411 c396d344 c4de0006 00000000 42bcfee0 449d1de3 c43319ba 00000000 438df5a0 44577dfc 443699bb 00000000 42921637 c3ec160a 44a01d3d 00000000 41a54897 c48d65e2 c0740df7 00000000 42d4157a c419133a c4d406a9 00000000 426abe7e 448d3a07 c46c1682 00000000 41a4b273 43c5933d 4364c35d 00000000 437c93e5 c31db689 445f0783 00000000 42831dd6 c4f04023 43a9bbca 00000000 431c8ac6 c339cc97 c3a087b9 00000000 42ebf751 4488ac0b c4a37537 00000000 437c7513 4495389d 43d793a7 00000000 41befbbb 3fd09e74 43fe4827 00000000 42bc2b3d c4d80994 441f30bd 00000000 4204bf39 c32742f4 c34574ed 00000000 41d0d5df 4455ae03 c4bb610d 00000000 43142817 4480be8b 432f1cb7 00000000 43901588 43a1c658 44dc84cc 00000000 438c6e72 c4d18881 44763562 00000000 43179958 c4476504 c42481b4 00000000 43215ac1 443d30c4 c505b3bd 00000000 42e5c3aa 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000004d 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3f83be0b 3f920973 3f82bec6 3f6c7d59", + "449dbfdc 44956b1b 435d0000 44e99fca 43d1f3fc 00000000 4336bd33 42c7f9c2 444101c7 00000000 42f10921 c4aa350b 44309d6a 00000000 4360aa2a c45bbfa2 c4499f53 00000000 4308459c 425f9451 c306f9c7 00000000 42bb0988 443ec5da 4202c444 00000000 42fe3cd0 434d1960 4421bfac 00000000 43549e58 c46ec761 4438167e 00000000 424fe08a c4a4ceb0 c4509885 00000000 4292de4f 42aa3511 c3c3650d 00000000 43052a2c 4481987b c30d361f 00000000 42d0e0a9 431cde99 4394c704 00000000 433e4182 c4447269 4458f432 00000000 42e0a0d3 c50b843a c462d07d 00000000 4342fe09 428a5a59 c4ee7ea5 00000000 4393aee5 4405839a c32d2b6e 00000000 42458e2c 43786b1a 439ef058 00000000 4285eaa2 c3c2f057 441c4812 00000000 423ba672 c3fe6891 c2d69e1b 00000000 41ed9c17 c30874e6 c46eb7b8 00000000 439275a2 4488f865 c412bacb 00000000 42edc2b9 445c5397 4444e145 00000000 425dc953 c36ff744 44166f10 00000000 4325f2a8 c3a73398 c11ec739 00000000 428cc601 c3a74e1e c47c51c9 00000000 427350e7 4491cc44 c466fba6 00000000 4385688a 44896180 4428dd13 00000000 43249f1d c382f126 44a06fd8 00000000 43136112 c49b95b4 433a3ab9 00000000 4350e64d c488dd28 c4fb88d2 00000000 42bdf98f 44a0c6df c4b6524a 00000000 437c83d2 44c46e45 4419aec3 00000000 41f01678 c0c68cee 4386542e 00000000 42881b63 c4293b0e 43655f8b 00000000 42223d1c c42e6725 c459381a 00000000 42f43e68 44986b6d c4fbb2e2 00000000 4334aab9 45005e15 43ca840b 00000000 42784cd6 43b3b87f 450fb019 00000000 41fc34b4 c4ea53b2 4481815d 00000000 439210ac c43ec367 c4260109 00000000 438b7bf8 436b3841 c4194927 00000000 436f10b9 441f230e 41284200 00000000 433e3ee2 43af65f3 447d52cb 00000000 42d6089a c4976e8d 44767579 00000000 433ec76a c4b5b0d3 c458cc37 00000000 4376e842 43930326 c4c10d06 00000000 432019fb 43c19590 c27c92c3 00000000 4237845b 4391854d 4401a202 00000000 4348d737 c48f567b 44a6eb4c 00000000 430835f1 c35c0cbe c2a58604 00000000 420f6f4c 40ea421b c4380de7 00000000 41d66fab 44e1fdcd c41fced8 00000000 41f21ac2 43bd975e 43e5e0f5 00000000 41aa1e3b c2e11c72 433f8247 00000000 42e9853b c4b9fa1d c3889002 00000000 4315a249 c381c53e c4bf026f 00000000 4323082b 442f69f8 c3c7f534 00000000 43945105 430deeaf 42f0897e 00000000 439412db c40692f6 44b68977 00000000 420bce78 c4c9b00d c0ae0ec3 00000000 4368ab15 c3f62a05 c4aa7b7a 00000000 4348f07a 444fdddc c42dbeac 00000000 433f6cc1 44cde293 446e6282 00000000 430edddf c34e446e 4491d89a 00000000 4362b033 c5119f47 43cdc28d 00000000 42c5efd7 c3eb1350 c44b1ad2 00000000 430e01a2 44b8364a c4dc50aa 00000000 42dcf854 44c5ebda 440ef769 00000000 429c4a70 3f0357a4 4320173e 00000000 4290b048 c4796f0a 43b7cc8a 00000000 43042b82 c3e9e3e9 c40a0e8f 00000000 42bb9635 4295ba3f c3034c64 00000000 4298544e 4412a2aa 42c77263 00000000 4242dfb4 42d6094f 4411e0fb 00000000 4265de02 c34b4bd0 42eee137 00000000 42a31e3a c3156c23 c2f68e61 00000000 4346bb3f 44254c5f c4e9a27d 00000000 42ce2fbc 44a0bbde c1493b96 00000000 43414a4d 440a8591 44b83e7a 00000000 427284f0 c414de34 43ff966f 00000000 436afe81 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000050 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 3f800000 -> 3f1fd947 3f239737 3f15df66 3eb1de38", + "438ed69f 44b0e173 429c0000 445d3db9 428a55c9 00000000 437be462 44727eed 4509ac71 00000000 43099032 c4801ec1 44a3fe59 00000000 42a8d006 c4a00a9d c35c508d 00000000 42cf69bf c3fd6e0b c4bdab29 00000000 429d315e 44383000 c443802d 00000000 4349a72f 441f4f1a 432b70c4 00000000 42da335b 43c5d968 44d343f9 00000000 435ecf45 c4001665 43e1f1f6 00000000 435b1c7b c4c2eb55 c4109d0d 00000000 43414689 c38f49db c5015e8c 00000000 41fb96e1 4499dc47 c46089e3 00000000 438530c0 44ff1aad 4474f7fc 00000000 43456401 42c0d71f 450554ca 00000000 438e9a74 c4e8d8c4 448aee6c 00000000 435c1f62 c3847a05 c31ed572 00000000 41f4b744 4278e337 c4a484b4 00000000 42aaf30b 44e55e86 c45b165a 00000000 42a7e634 441156da 43d5073a 00000000 43415eb0 c3abb449 4518b1bb 00000000 432f3a69 c4ec1b2b 442e0eb9 00000000 42954df3 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000015 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 40000000 -> 3f0c23b7 3f3ad29a 3f0d744a 3c91bc80", + "43c4af30 4404cf03 42d00000 437b47d3 41d1d28c 00000000 4304ae14 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 43820000 3f333333 40800000 42f00000 3f800000 7149f2ca 71c9f2ca 40000000 -> 3e98ad95 3ec78234 3eadd77c 3ed720c2", + "425b05a4 c4b4914f 43770000 44766e5b 43788c96 00000000 432eb1ac 42b03383 448f1e21 00000000 43896cd4 c3b51987 4319637a 00000000 42f62e29 c39197ee c3a489ae 00000000 4395ec57 4425feb8 c4901597 00000000 4312e59c 449533d4 43707c65 00000000 4342aa5b 43654f92 44e42638 00000000 423c9337 c4e95e79 4460c1da 00000000 43457957 c3145bbc c3183681 00000000 42914f52 4348148b c3c2cd6f 00000000 42bc6db4 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000000a 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 40000000 -> 3f274288 3f87256d 3f275c16 3f7b69a3", + "c4b9eef1 c4bb2ea8 435d0000 43925a10 428385f4 00000000 42200000 42859400 4400ec59 00000000 42a00000 c42436d2 43aa656e 00000000 42f00000 c430d7a4 c422415c 00000000 43200000 43e1bc38 c48846f7 00000000 43480000 44aed6f2 426fb0b3 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401a409a 401f7a81 401957dd 3e191f94", + "444248ad c42ce00f 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f2166bc 3f354e75 3f2166bc 3d4ae2a0", + "44b908f3 c471f6dd 43290000 43a8ac7f 42663e41 00000000 43917e84 42ed22c2 43fa0b0a 00000000 42b0ff3d c4c14996 448e4afd 00000000 422dde6e c4279c12 c3c6668a 00000000 42f7b855 432a596c c49fa131 00000000 4329d3a0 44dcc1a8 c3f39c3e 00000000 428ba28f 43bcd25b 43eddad0 00000000 430f24aa c44e27d2 44bd930d 00000000 4309a3d7 c3ea806a c23512a3 00000000 4322787e c34ba997 c421677d 00000000 42048a82 44dff185 c4bf76d4 00000000 42b5cae0 45011550 44806ebd 00000000 436b0f1e c21fa597 44268ff4 00000000 42b4f833 c429fcc7 437206b1 00000000 430e8795 c4b49828 c4c44bed 00000000 433eee1b 446b2207 c501ccf3 00000000 43953339 44966443 41e1b3e7 00000000 42c970ee 43fa3eb2 449d62a4 00000000 4367f54f c4ce052a 44cbde44 00000000 433595a0 c4fe985d c4509f5c 00000000 4390d4fe c1eb4fb0 c50e0131 00000000 436b9216 44ded490 c4443713 00000000 4331e415 44cc2a88 44bfd4d9 00000000 426ab2f6 c4524cfc 450eefce 00000000 429e5767 c2e95117 40b8509c 00000000 4240a9b2 c3daab57 c461b05b 00000000 43370f33 43fc3fdf c4106c18 00000000 438e8318 441ee144 434fd6c3 00000000 4380ae7b 4193eceb 43572d49 00000000 43053c32 c2d37c41 426042fd 00000000 4321dcdf c4c9de8e c4a3bd09 00000000 438058e2 43bb36d2 c4a2f507 00000000 4385daf6 44c70dab c3436d54 00000000 435fab6d 4464106c 44c55e8b 00000000 438b3cb0 c4ace947 44e5c915 00000000 438ae336 c49c74db c39b5666 00000000 4335b85e c37fb705 c4c7f91f 00000000 42c34cdd 43ba7f90 c36a0106 00000000 42878242 448133c3 44341ae6 00000000 42ef22a3 c3e233dc 4506b349 00000000 423e1ba5 c43c35c6 43149b41 00000000 4205765c c41f3923 c46a6612 00000000 43651e65 43b3435a c40b20e8 00000000 42de8394 44e01dca 439a5ce3 00000000 4323b69b 424cb1cb 43594dda 00000000 43510b00 c4b57ae9 44852d09 00000000 43259d4e c49d7c26 c43b0fe9 00000000 42f68700 426713f0 c3d60f16 00000000 4212f234 4426b106 c336dc71 00000000 4385ee74 44b63631 44e63ec6 00000000 42844564 c404aeb9 44732463 00000000 42089ac9 c448ae53 c29d6bae 00000000 4230bd66 c3e84c07 c4b91373 00000000 4373a48f 44e22eba c4c0c913 00000000 41a14e0b 44e32a0e 4462e191 00000000 421a5945 c26f0b6d 44733315 00000000 4355f651 c4a13bf3 43e47583 00000000 43896287 c3db3514 c3eefea7 00000000 436d90ba 43e2b233 c4794768 00000000 436d74f5 44cf96cf 4225d8c3 00000000 42d081b0 423a15c7 42eb1ad1 00000000 429abbc4 c4c31336 44c0742b 00000000 42af636c c40cb923 c3679ff0 00000000 43929685 bfb0bbed c2f1af0b 00000000 42bc293e 43c68a63 c32e1b8b 00000000 422bdf0d 44d2db5e 44c6b87b 00000000 433b75b5 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000042 43820000 3f333333 40800000 42f00000 3f800000 0e736390 8ea24260 40000000 -> 3f382559 3fc2861f 3f3be197 3e7f9a7c", + "c4a0e71a 44846b18 43770000 43917292 4292b29b 00000000 42200000 421f9458 44019de9 00000000 42a00000 c42a5a82 43904969 00000000 42f00000 c41f0af1 c433bcb0 00000000 43200000 44133f63 c47f9f80 00000000 43480000 44ab8d80 438a4153 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e85acf1 3ed696e9 3e87667d 3e549b04", + "c3b898ea 4421d97c 42500000 44e0c29d 42bb2b53 00000000 4393e559 43be4d67 443cd04e 00000000 41c3bae4 c4ab36f2 45013169 00000000 434c8499 c3d9c717 c1e7bbb1 00000000 42f255e4 c4341a38 c4b949ef 00000000 431789c8 43bb28e3 c408e64c 00000000 4346209b 43e9bf2c 42177371 00000000 42a074be 4360609f 43ef8e9c 00000000 420af522 c49e57e3 44e0a06e 00000000 4344330a c4f86178 c33dc912 00000000 4353a276 c45ec159 c4f707ce 00000000 435e5a1c 4381bce2 c3b28759 00000000 436a94a3 443c6168 42a5e17f 00000000 4378dce6 4382718e 441667a5 00000000 41a25c0e c2bc0f88 42fb18d5 00000000 421ef5fd c4c95930 c348d3cf 00000000 42a0703e c45ed264 c505b48c 00000000 42cd5156 444535b2 c47f8ded 00000000 438626d4 4510829b 43a11589 00000000 4295c2c6 44647bba 450eddc6 00000000 42ebd43a c377f3a7 439bf4bf 00000000 436dbfd1 c48debf0 c32ee8a9 00000000 4313389c c3adeadf c462ec90 00000000 436f0f45 4463b14a c48b0da3 00000000 4315b449 4355fdc9 42108468 00000000 43583150 43d358d5 44900efe 00000000 43238b46 c484dc3c 449d96ec 00000000 4355e840 c5042b6a c3c23a01 00000000 4394054f c42f8649 c4fa6215 00000000 432c6c04 449a1066 c4b17ca0 00000000 42898a6b 448a0857 435b5569 00000000 426bdc9b 43905975 4457d352 00000000 4334df19 c4af433b 44c420a2 00000000 41cc005f c4dd2b28 c3bd0200 00000000 4382326e c40a7441 c4d95f73 00000000 42cb815e 4384a362 c390312b 00000000 4351f537 44c8df36 43b7cdc4 00000000 430f4bbc 43d12d31 44acc65f 00000000 422dfcb9 c4070bbc 440ea14c 00000000 43549b51 c4819956 c37cf2c0 00000000 431db72c c347ba57 c42df874 00000000 436b221d 44d01d43 c4d58d8a 00000000 42dce1a3 44ba8a04 43c1788f 00000000 4258ad7b 43c03327 44b0fdfa 00000000 42a99bc6 c44d16a6 444c787c 00000000 4322ee8a c3466a36 c25a0950 00000000 4300450a c3939ff6 c4901fbd 00000000 4376c5ba 44cfb572 c4c93368 00000000 4393ed68 448ac96b 43a12642 00000000 4382be09 43b9a959 44c0c5cc 00000000 42e87afd c3436fab 4337edd4 00000000 4357abeb c4e184ca c40a00d5 00000000 4367e64f c3a3eba3 c4b5a969 00000000 437196a4 44c948c2 c4b809a2 00000000 429ad616 43c6ec4f 430006a8 00000000 436bae53 43b75cd8 44d9c6cb 00000000 427d6dd3 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000038 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 40000000 -> 3f5b4033 3f6adcb9 3f571065 3eaec3cc", + "43c9061d c4b347ad 42500000 4395cc18 41797ccf 00000000 42200000 436a03b0 43e82f0d 00000000 42a00000 c3cc6067 441a3747 00000000 42f00000 c46f7893 c27ed10d 00000000 43200000 c400f2f1 c484a98e 00000000 43480000 4445832e c49078e1 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 405ea9f8 40a107d2 405ea9f8 3e4c1fc4", + "c3160ded c266edfb 43290000 4487cd17 43395f0f 00000000 429ca55b 4320544e 44290e5b 00000000 4361c72f c4007361 43bd1faf 00000000 437de261 c4908288 c42b0ea5 00000000 4334f5af 43598b00 c4cbda82 00000000 430a82e0 437f2107 c28cc549 00000000 42126668 442cdace 4459bdce 00000000 43312035 c2964514 430a2f01 00000000 42957c6a c4ea957d c33522e8 00000000 43769b00 c355e4e8 c4298353 00000000 42f42c9c 438045c8 c35b5669 00000000 434fccd6 44e4d6c8 4463af7b 00000000 43867db6 c224be7e 442be161 00000000 429a6d73 c5047726 443c9a4e 00000000 42bb5fab c4aa9e35 c4b973ea 00000000 430b1f00 4466433c c4fe395c 00000000 4388deda 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3edd9367 3f7f7271 3edd9367 3ec1141a", + "4349a445 c4af713a 430f0000 44d85d68 437938f8 00000000 43302210 42e2b0fd 43c195bb 00000000 42c31198 c368470a 4348b2dc 00000000 422bed45 c4ed2abf c459c601 00000000 42edb1c3 4087be1f c4cb1139 00000000 4394ca37 442abc7d c39a9efd 00000000 428424e9 446209bb 444560dd 00000000 422fa198 c3915053 4473761f 00000000 43651cdc c482a588 4310eb96 00000000 42f0dcc0 c42ad378 c486903c 00000000 41cc702f 44a0b0e9 c4f6a64b 00000000 42b6bff7 44f2b738 43925cf8 00000000 42a2525c 43bde7e0 44a6404e 00000000 4282f048 c3bd3ab5 43a15310 00000000 437d0a25 c42ecbca c3a3514d 00000000 431c8ea7 4181360c c4da7add 00000000 4387f6ea 441b8ed1 c38a65b6 00000000 42a48ed0 44a197d1 448f00e0 00000000 432b9412 c3cd8ac1 44a81bdc 00000000 43295a13 c4fb3805 43848c54 00000000 4283699c c404ecd7 c4548455 00000000 432bf3c3 445d8997 c4a7952b 00000000 4375f3be 43e8ccae 4292b413 00000000 435ebc29 439d84f2 448d7161 00000000 43765666 c3e4ebc5 43c08e82 00000000 4329a55d c3c2eb4c c3394706 00000000 42783885 4171737c c46db4b4 00000000 432d43df 43939a9d c300fbc1 00000000 430cfb3f 44b7c0a6 44a4cc78 00000000 43891e7c c40c7864 44e07144 00000000 438b56bc c50e9dac 438ecec7 00000000 43956e9d c3109105 c36a92c8 00000000 4275398d 43e77fff c42c9e95 00000000 42f7bcde 450eb417 43bb9e8f 00000000 42ac3052 438d350c 44822111 00000000 437f5260 c3e18202 43bb25d9 00000000 43830ade c4a15894 c41bfeeb 00000000 42dec484 42140a6e c4cd9141 00000000 430321f9 44b8570e c41e2ed0 00000000 4391bce3 433b253d 432a1825 00000000 4376f81a c40a6435 44d815fa 00000000 42f008d3 c4c6837b 433c17db 00000000 4364b89f c3f3a2f6 c448a0f6 00000000 432a3392 4446093b c4919265 00000000 4356853d 43cae1a3 428ae6ea 00000000 42b17fa7 43f5cab7 44e8993b 00000000 434629ba c4c15081 449e4719 00000000 4385142c c41b46e3 c398ace0 00000000 42fce43f 420eee73 c4994c46 00000000 431a8468 449660b0 c3fd5e9a 00000000 436f744d 44ba13d9 44ab63aa 00000000 429e8bf5 c3a530e3 447c294c 00000000 42f59ed0 c45ec25c 42c7179a 00000000 42c135b1 c443ef9b c4a3c917 00000000 41df24a7 44a10d06 c4e96d11 00000000 4356c915 44fa19ea 43b21028 00000000 43773ac7 44045cab 4500b51a 00000000 438c6e37 c3ea2f70 43bd299b 00000000 43309c19 c45d9e14 c3dd9057 00000000 42df848b 42901840 c4fbbcd4 00000000 436b1f2a 44f07d20 c446db00 00000000 42a78837 4381b519 43722290 00000000 4282dafe c2b9ba17 438aa3cc 00000000 43328c70 c3895f78 41e6d149 00000000 43517038 c313cfdc c37ae018 00000000 42bb9919 44a6ac9e c4ee2e9b 00000000 42742322 44962644 435e0799 00000000 42c4c447 41ebfd5f 42ebf281 00000000 4320d406 c4ea38f0 44baa35b 00000000 42b831ed c4737a34 c3f77860 00000000 42250ce4 42c81007 c513686f 00000000 4324c269 44e77ee3 c43bd607 00000000 430d9344 44522456 4446c502 00000000 438ed25f c421fdc2 44ec9fd3 00000000 4382548e c4d474b1 43271b2a 00000000 43547833 c27398a0 c2d1e51e 00000000 426eda60 447b7175 c4b12608 00000000 436181d8 45134465 43e1da36 00000000 4334aeb4 42a6cf3c 43ab9ab4 00000000 42ad7727 c41b09d1 43f3bd5a 00000000 436a62c3 c400e7fa c3852d67 00000000 438a82ac 42e8dedd c51459e2 00000000 434738a7 44e1c46a c433b54f 00000000 434c6547 4427265b 4420375b 00000000 43320463 c43effab 450889b9 00000000 4359bf72 c4c0801d 430d199e 00000000 424f6f94 c48e469d c4f8f886 00000000 435e2d19 44981dc2 c4d35bae 00000000 42d4ea10 448cc030 435f9af8 00000000 4350288a 43d26fbb 44deebbe 00000000 4263386c c4c16ef8 4495fcc8 00000000 429fce2f c2cd4379 c2578600 00000000 4301d5c4 421e3c83 c4318800 00000000 436ff284 448d5a04 c3dcb304 00000000 436156eb 441c7f3b 44180216 00000000 430dd696 c3b13eea 44781f9a 00000000 435d1fc4 c517472f 434d9a55 00000000 434966ab c486f94f c4efde93 00000000 41d5c53c 4457cf6b c493da2d 00000000 42791d92 44cfec7d 43aae769 00000000 436eec7e 43ad18ad 44bcf57a 00000000 42a77da2 c4e92cbe 44b2573e 00000000 4390eab7 c385cb2d c30ec101 00000000 438750b0 4220e874 c4214668 00000000 4390737f 4504fbb3 c44b94c9 00000000 4349c7d5 4398f8b5 439691b4 00000000 430d61a0 c3e57b3d 449d5209 00000000 427e39cc c51a7dd9 43417aa8 00000000 439411c7 c48a8b39 c4fa13d5 00000000 432fc0da 44186d44 c44df8e2 00000000 439396bb 440a90bc 42eb74d3 00000000 433f0b18 4313c89a 442662ee 00000000 431c808d c427dca9 43fd43f1 00000000 4385d07f c3c3225c c3538976 00000000 42bd245c 4312bd1e c504dfc7 00000000 4374a881 44dba539 c424cbbd 00000000 42c7f95a 42a25580 42a1eab0 00000000 438d979e c3ee01db 449fde8b 00000000 432d0a6a c43ec282 425a8eef 00000000 420017ae c3c8a6b6 c437f5fd 00000000 42f15bd4 4457e6e4 c48fddcd 00000000 43210db5 44fe2f2c 43df0350 00000000 43505d72 432b649a 44473460 00000000 4390f41d c3ea61d3 43ae63aa 00000000 43782df5 c4b774ea c44a090c 00000000 43868a82 41dfae50 c3b8b78f 00000000 41bb5781 44e34eca c4271dc6 00000000 435345d5 4484bd5c 44862a46 00000000 43951bd2 00000080 43820000 3f333333 40800000 42f00000 3f800000 40400000 40800000 40000000 -> 40210c19 403f9fd8 4023b5be 3f72a230", + "c490b6b2 c494082f 42d00000 450dd0e1 436cd611 00000000 438136fb 43c7c336 44838fc7 00000000 4335709d c487c472 449454c4 00000000 43108f1b c4d8cfd8 c3f42346 00000000 4383920a c3053ea1 c42b00d9 00000000 41d9db9e 445d4a0e c42b747a 00000000 435562df 44dfe5ce 44557409 00000000 433381aa 41432cb0 440ab5db 00000000 42e91ab8 c4bfd6d9 444c0c39 00000000 42dfe30e c49fa0ac c4619fcb 00000000 438fefc0 4381c6f0 c4d8fb50 00000000 435fde4d 44a00d6a c3d30062 00000000 42dcded5 44273158 4427452a 00000000 432953bc c3e2cf67 44abc6bf 00000000 437bc3b5 c47f0071 431808c4 00000000 42481f8a c460bceb c49f2817 00000000 433b0934 43f33f91 c4647093 00000000 435dbe0c 44f1960e 422d896e 00000000 4310fdfd 441522c1 449c9e97 00000000 43430f4d c3a7a845 43d82e65 00000000 429e7c14 c402cc80 c2cc5663 00000000 42b0d524 c402b1ff c4e88bbd 00000000 43632292 4404c8a3 c3f2d916 00000000 43878c85 440c5116 43555a7a 00000000 43085e0c 42958b20 4433e5c9 00000000 42d5a4f4 c48d405c 44353555 00000000 430a905b c44b0fc4 c3eff589 00000000 428025ee 4292a9ee c488dfb9 00000000 428d4094 444e3642 c3ae557e 00000000 4244f3d6 43f30e86 43ce6bf8 00000000 423abd62 c4027c58 4506e4a3 00000000 4385655d c4987df9 438e82e3 00000000 426e6a91 c430ecc0 c453a13c 00000000 437bef7e 43a308b0 c43cbfc0 00000000 42185b46 44fdcf09 c2f05505 00000000 4364169e 44800071 44dc870c 00000000 42104722 c370f089 43b8a4d5 00000000 43038700 c4f3daa3 c35a04e7 00000000 4310af48 c4522497 c50d8034 00000000 436e7c12 432dd526 c33b28b1 00000000 43139a48 44533519 43747e21 00000000 427332a7 4386a1d6 44b3c31b 00000000 42274e6e c496883c 4465c4fa 00000000 428f375a c41ac978 c396590f 00000000 42aa108b c1437026 c44febef 00000000 43373e91 43a68f1c c32e0d89 00000000 430cfee4 4457d8d9 441aeacb 00000000 4235ee24 c3099cb9 445b233f 00000000 42cf77b9 c4e61a98 4413f66c 00000000 43422dc5 c418ff2e c41b5154 00000000 430c5da6 43f5119a c4b5274e 00000000 42712fd4 44c17f08 c35b3215 00000000 4324a632 443a1f28 4485df2a 00000000 4314e394 c3b8ad13 442a6c78 00000000 438f6fc4 c47d9688 c1f1698e 00000000 4391d787 c382fc73 c40c2f82 00000000 432e533e 42f1788d c3195aeb 00000000 436b2303 44eeca39 43c1c4a0 00000000 436297bc 4360929e 444d89b1 00000000 4304aa64 c4844862 446e6981 00000000 42aae77f c4aebd8c c407c63c 00000000 421cfd75 c338d163 c4ef4bef 00000000 42a4c87c 44a9f2d5 c45689f1 00000000 42faa53a 44b37a82 4457a35d 00000000 42092c72 c19f42ec 4385f625 00000000 43199d0e c4c861e2 4425f892 00000000 42e7d03e c4635d49 c443f80f 00000000 4345c4a1 4402fd6f c5033798 00000000 428d4a00 44a906b1 c398c48b 00000000 420982ce 446baddb 448f100a 00000000 4260bbc9 c4648080 4501a9cc 00000000 42cb864b c505bbe4 42ddf351 00000000 42e36153 c3f2f56e c454da93 00000000 4331db6e 440febf7 c4591c73 00000000 43452eff 4457c571 42cdadbd 00000000 433941e7 44524f61 4510d7cb 00000000 42f2845e c33816fd 434352e5 00000000 42327d9e c4ff7282 c417e66b 00000000 4327920a c334c5cd c47b80e7 00000000 430056ff 44df0675 c4a7a679 00000000 425cb96e 44e36a39 4461018d 00000000 42a8fd31 4183305c 450aac32 00000000 43888e80 c4308411 43b5309e 00000000 43845124 c38229c4 c33dbbb5 00000000 4305560c 43b906a6 c50c9eea 00000000 43391963 440b6f01 c32ed6fc 00000000 42bac642 44b55b90 44bad117 00000000 430a592c c3924ae8 4453303c 00000000 42cb1357 c41a3544 42a585fb 00000000 430b0672 c49819ac c4de3e85 00000000 4218320d 44948210 c506b0c5 00000000 41d48642 44e781b9 42893f65 00000000 431a6b74 44054f74 44916dc3 00000000 42db010c c3eb4126 44132f6b 00000000 42f79309 c4f3a100 c3cd1c85 00000000 42e26dad c400feb0 c4f315cc 00000000 4276e9b7 43b7a04e c3a30ffc 00000000 43122448 444c915c 43a26539 00000000 4350535f 42c03b33 4486b707 00000000 438e989d c331e9b8 42dcfac4 00000000 431e11e4 c483509e c42063ca 00000000 43944716 43159b96 c4e50ead 00000000 4360a3c2 446f1488 c3c1f2f5 00000000 435e94e8 44824ec8 4463f699 00000000 43494c7a c3eee09e 44e8127f 00000000 432f8729 c44dc94c 4333b0d9 00000000 43904735 c45879f4 c4856087 00000000 437ab1bc 43349f15 c3c8fff6 00000000 436e9305 44a24654 c267590f 00000000 4304c6b7 44054ed8 446d96d6 00000000 4391b5e9 c457810a 44a0003c 00000000 435e20cd c4c3e6f0 c3465830 00000000 4335234b c4277003 c4ebfc55 00000000 420b2f86 43698770 c3742fb3 00000000 42fa66f2 439fbe21 42c3107e 00000000 434c4e68 43bc135f 45088c0e 00000000 42bf7fd6 c44b17ed 44165c78 00000000 42f33c5e c4aa1a1c c42b6766 00000000 4395701e bd937246 c44c6e1e 00000000 4395f51a 438ef3ea c3101d91 00000000 436b101c 44c729c5 44936475 00000000 4342f5fd c385448e 44c1b93a 00000000 42aa5948 c3159f8f 4236d3e1 00000000 437e81bd c488d5b2 c48f0647 00000000 42e5e16d 438c6eee c4460bd9 00000000 432c7820 43ff531e c28171d0 00000000 41ae521c 44413b82 448f6893 00000000 422561fa c488faaf 44f43de8 00000000 4365d051 00000080 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 3f800000 -> 3f3bdf03 3f8961ec 3f3c31d6 3f73cfb8", + "44949855 c4112339 43430000 4393283b 42688515 00000000 42200000 42bb016a 43ffc320 00000000 42a00000 c41d137d 43c37837 00000000 42f00000 c440bb23 c40f0528 00000000 43200000 43992a6a c48e716b 00000000 43480000 44ade158 c31e1f07 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e58e6ce 3f43f6e4 3e58e6ce 3e276124", + "44020fe6 c4acee1e 429c0000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 3f800000 -> 3e75ae66 3e8ead42 3e5bb9a0 3e4c1fc4", + "c40db9a2 43d8758d 421c0000 4407f8a5 41a9c73a 00000000 4392b4e9 432a4e5f 439e937b 00000000 42feeb36 c43904b2 44982e04 00000000 438fc3c1 c48ee651 c183c590 00000000 4368cff7 c3013412 c36307fd 00000000 432ed5e7 441d95a2 c48919cb 00000000 43849737 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 3f800000 -> 3f3e0313 3f47d6af 3f379cfd 3f30e753", + "c4a450b4 44403062 429c0000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3e0ce915 3e33478c 3e0c3c1c 3f4df960", + "c4b9eef1 c4bb2ea8 435d0000 43925a10 428385f4 00000000 42200000 42859400 4400ec59 00000000 42a00000 c42436d2 43aa656e 00000000 42f00000 c430d7a4 c422415c 00000000 43200000 43e1bc38 c48846f7 00000000 43480000 44aed6f2 426fb0b3 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401a409a 401f7a81 401957dd 3e191f94", + "c47f6ba3 445d4d82 42ea0000 4394f978 420c1475 00000000 42200000 432bd785 43f5648a 00000000 42a00000 c402222c 44037e14 00000000 42f00000 c46353fe c399e880 00000000 43200000 c315e9a8 c4924e08 00000000 43480000 44924467 c44027bd 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 406eccf2 407a5323 406f4f06 3e549b04", + "c4a3e3c4 4401898e 43770000 44d665be 43d83d7d 00000000 4386a8b1 432bc098 450b810e 00000000 438a2422 c4bc9689 441fbb27 00000000 43943b28 c47de972 c48f79a7 00000000 43938982 448d1fb9 c4f4fe05 00000000 43830222 439dda06 427e6d42 00000000 43959447 4343fe16 44c2fff1 00000000 4373600a c43a58ce 43b37866 00000000 42c2c54e c49aa2fd c49ea785 00000000 43004b42 441a438c c49631d4 00000000 42e1997d 448e594a 432cd831 00000000 432f56b7 43603f67 44a0403f 00000000 4330f698 c4f8bf6b 4486e983 00000000 433a383a c4be1bbb c4b11e0b 00000000 4332d866 4437622a c4c9ede7 00000000 4393d6ce 44cee6d6 432a2976 00000000 4388a547 438c13e0 449b9d84 00000000 43778f5a c3e3bd09 438a1cba 00000000 43805aa4 c44feeee c42fcc9a 00000000 432fa3d6 4358a71d c4086055 00000000 43467dff 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000014 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 40000000 -> 3f86f375 3f8b7ecd 3f83e4ab 3c478980", + "c49e4aca 4496775e 41500000 44f0f436 41c87c29 00000000 4352daa6 449f13af 4503422a 00000000 4366ee21 c44eae44 44cc590b 00000000 4347992f c4e70792 43260867 00000000 42ab4b28 c383e55e c3ae71b8 00000000 43012567 439fae16 c4508e62 00000000 41beafe1 4351be70 c22340ed 00000000 42833dc3 42e943f7 42fa670c 00000000 42c781eb c4156d0e 450abd67 00000000 429f1d58 c403cdb2 43201319 00000000 4321f3ae c4be4a8e c4a64cf1 00000000 4340e505 433f6d8e c493dfd4 00000000 4382fde4 43ca1697 c329a1c5 00000000 428ef728 44e2a2d7 44a04e8f 00000000 436de699 c25e3d02 446fe7da 00000000 4357cdeb c40a7333 43974205 00000000 41dffa25 c4e23061 c47ed93e 00000000 4355df1b c1339690 c37a9891 00000000 4385fee0 44bb4902 c480d52d 00000000 42a97ef5 4505a509 4468a084 00000000 42bb62be 438cf94a 44ed7221 00000000 4335e9c5 c314b98b 42fd2b04 00000000 43138fe2 c38cfdd0 c2b35188 00000000 432bcdd9 c2ea2134 c3e548d6 00000000 4318df1e 446a65ab c4751cbe 00000000 43727bb8 45100d5c 43efec03 00000000 421aa3c6 439fd7cc 44593b9a 00000000 4333db4d c35157a8 4386bd13 00000000 42716471 c41e89c8 c282ac28 00000000 42535c12 c42c7eed c4b03b79 00000000 432a938a 447deb13 c4cb76fb 00000000 438f76d8 45099750 3e266f62 00000000 430f8ec6 43858118 43d6063e 00000000 42d119cf c37478f9 43f9acbf 00000000 42eec825 c3a93349 420b4187 00000000 42713840 c460a78f c490a32b 00000000 4353ca42 438673a8 c436a49f 00000000 438b75f1 44e81349 c3c11f3a 00000000 42a494dd 44806a20 44865314 00000000 41a4a927 c3f4cd4f 44ef969d 00000000 433baaf4 c3201d33 424b8906 00000000 43068e4e c4075db4 c3e67f35 00000000 4331fe57 438d622e c4ede5ac 00000000 427d2daf 44c7c121 c42dc7e4 00000000 42b58fff 449c93ab 44577c00 00000000 438aa018 c297904a 44d2cdae 00000000 433ba83c c4acab58 44427b00 00000000 4301d2f0 c4900789 c41d68a1 00000000 437572e6 c2cdfac4 c4deecc2 00000000 433b8f8e 44210805 c3e3bbb8 00000000 436e4dca 4459dfa0 43b6f4cb 00000000 4374286c 431f63a3 44767a54 00000000 42fc988a c3f1b6fa 43d32dc6 00000000 42b6699b c4ecfce0 c40ffc72 00000000 43096e30 c406b975 c4fa535d 00000000 4384ed3e 4478b1be c4857163 00000000 42a440f5 445da514 432ca72b 00000000 41be52f0 43ec5854 449a6997 00000000 42eb3aed c485fa60 44b124f9 00000000 42d65a5b c4d80083 c31b7ca8 00000000 41bf2cf2 c4326fa9 c4b07c74 00000000 438d3558 447a4b84 c4ce74de 00000000 428d8ac4 449d279b c1814794 00000000 4391ccbd 430bad2f 43599a9b 00000000 4386aaa2 c3ecc7e5 4479f326 00000000 438e1019 c4a75297 431b38aa 00000000 43931b91 c48d8c32 c4b17ae3 00000000 41a69a65 43669a4b c42319ae 00000000 42a78d52 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000044 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3f19b71c 3f490ec8 3f1b29c2 3d97bbe8", + "c497256a 42d4fa09 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 400c7731 408d0dc6 400c7731 3d55d830", + "443aa4d6 43781eb1 42d00000 43953085 41f9267a 00000000 42200000 43388af5 43f3137c 00000000 42a00000 c3f9d0b4 44087768 00000000 42f00000 c4670548 c3821194 00000000 43200000 c3619f04 c490c757 00000000 43480000 448a5605 c4565d95 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f31af23 3f3dc6f0 3f31b003 3f4bdb53", + "c4b212fa 44465d7d 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f0f9c86 3f138568 3f0e6e89 3f06942f", + "c4a0e71a 44846b18 43770000 43917292 4292b29b 00000000 42200000 421f9458 44019de9 00000000 42a00000 c42a5a82 43904969 00000000 42f00000 c41f0af1 c433bcb0 00000000 43200000 44133f63 c47f9f80 00000000 43480000 44ab8d80 438a4153 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e85acf1 3ed696e9 3e87667d 3e549b04", + "c4ab4cf7 444cc9b2 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f14703f 3f223cf1 3f146e07 3f06942f", + "c37ef6a5 c4791563 43360000 439385c6 42593240 00000000 42200000 42d589da 43fe75db 00000000 42a00000 c4192560 43cf91de 00000000 42f00000 c447e777 c404cf31 00000000 43200000 4367aa89 c490a122 00000000 43480000 44abcfbb c3850413 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e61feb4 3f2a02de 3e61ffc0 3ee9973a", + "c47d656a c37f1d36 421c0000 433dce72 40ecffa4 00000000 4294284f 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 40000000 -> 3e99660b 3f939554 3e99660b 3d55d830", + "c3d4a59f 43827b56 42820000 44a4343c 42ab035c 00000000 42e1c542 444efca1 44db6154 00000000 42c5bb98 c3f96a8c 442d23c7 00000000 437aa16e c5171e3d c38fd21a 00000000 428a4bbe c41b3ddf c4be3e88 00000000 42ed6163 444e5459 c4803330 00000000 420728ca 4500a993 43b29c12 00000000 41fef24c 4413090f 44d3e0ff 00000000 43150051 c29e2657 42b05bb1 00000000 42bafc45 c50071a6 c3eb6bc2 00000000 425fec6c c289ffd6 c36f6f95 00000000 430fbd13 44bb04ed c4bb6228 00000000 437cdf51 4405cec1 43191d34 00000000 437fa09b 4409bbb1 4514f5e7 00000000 422c8f2a c42026ed 44102e00 00000000 43199f32 c42deae3 c36fde87 00000000 432e57cb c324d655 c46ac53e 00000000 436a527c 44e371ab c4b7c217 00000000 438c87d6 44f4aadd 44468aea 00000000 433c50af 437edfa7 4503b7b8 00000000 42c66018 c45fae75 4421c615 00000000 4363a9c4 c4b66009 c42b34b9 00000000 4376b564 c3187bb3 c50e25de 00000000 43945a2b 444cad75 c403fc29 00000000 4381b406 449c6688 4427c0c6 00000000 435fb461 41f10bc5 450b1aae 00000000 436289c7 c32efc1e 42c811fb 00000000 42a8a669 c49144ec c4306714 00000000 4218b46a 424bcbd0 c49fa66f 00000000 438ceda0 438ea185 c30f71b7 00000000 43184817 44dbf2d8 44962cff 00000000 4386a288 c3492027 45065ea7 00000000 4284f77e c38e05a4 42f89ca3 00000000 438fc98d c4af47cb c485efa6 00000000 42171483 4253f2e2 c3b3512a 00000000 436c977e 44ba786b c40bff74 00000000 4305d61b 4452a2bb 44338bd8 00000000 432f1eae c3b34d5f 44dd069a 00000000 42db7b78 c4f43c89 441a2939 00000000 41e5be9a c4d20873 c4c75818 00000000 42992796 439c2e53 c496b604 00000000 42594674 44a6dd70 c3ac10a6 00000000 433930f8 44829605 4489eb35 00000000 4327a554 c3c79a20 449d744b 00000000 425cf8b4 c426067a 4305da64 00000000 4383882f c43bc56b c45cd272 00000000 438874fa 43e94b91 c49acd8d 00000000 42f76eb5 448e002b c326722e 00000000 4327e32a 44a84595 44dcc3cc 00000000 4315e289 c4383de3 44d1d009 00000000 438f593e c448e4c2 42946675 00000000 42d06ed4 c484f2b1 c4c3386c 00000000 436d61df 431ecc7a c39d6d2e 00000000 431a2e97 4457a54f c2057d2c 00000000 431cba9a 442e7150 44900b9a 00000000 429a6c1c c3afc9d3 441951eb 00000000 4314bd97 c2ffc9c2 bff15745 00000000 438680f0 c492accd c5092506 00000000 435e9628 44020a5d c44921a8 00000000 42be1f1a 44b87132 42c96c4f 00000000 4330dc42 43f860e3 4484b4ae 00000000 4332faa3 c4983e33 44d1f8dc 00000000 42af20e5 c45e9b97 c2d98bce 00000000 435d5125 c45312e4 c50281ad 00000000 42071d58 4370161c c39437a4 00000000 428ddf6e 448d6045 4347eda9 00000000 42eaf883 4388aea8 4446fb5d 00000000 4391f3a1 c4bec4ea 44d36450 00000000 428ad94d c474a331 c363704d 00000000 4367c88e c3acfeb5 c497dfad 00000000 424dafa8 43d568ec c3d47c13 00000000 41ce1f4b 44bab366 43d82f06 00000000 41f14520 43af1bad 44c0235f 00000000 43936e56 c4d0acfc 44baadf2 00000000 4341b923 c46c3d81 c3a493e8 00000000 435bb21f c2ad08ac c3fb1628 00000000 434059b2 44d9cc45 c4aed600 00000000 4282af15 4497fcdd 43f8e677 00000000 435f80e1 4311d152 449ace27 00000000 432136c8 c46cc818 442a1ded 00000000 43002822 c4a93b63 c4202b47 00000000 42be8780 c27c969d c4771ee7 00000000 42e52138 44cc687a c482e6a6 00000000 4388a906 43cb3247 435b983a 00000000 41fad21a 41cc2770 4519842b 00000000 43793760 c44a9a58 43e5f5d1 00000000 433c5214 c4d32993 c4811eac 00000000 43157555 422213ea c46b55ad 00000000 430b50ac 4506a7e9 c4865cd3 00000000 43703dcb 44a51626 4462f5ef 00000000 42ec411f c348cc11 4501bf5d 00000000 42c2c3eb c4c4f179 442ae660 00000000 43052447 c2c960fb c29ae26b 00000000 4379facb 43335084 c49479a3 00000000 4274b1ee 448e8eed c3d40331 00000000 428d2eca 44a88e97 449098ac 00000000 438429cc c32b6068 444fe566 00000000 423e3e38 c4a3a783 43cc54ae 00000000 438dab3f c495f4dd c48f3974 00000000 42be5a7c 433d2b5e c43434fd 00000000 435af001 44fdac00 c40115ef 00000000 43812717 448bd920 4494a284 00000000 432fdbf4 c3957b42 44694888 00000000 43337674 c500927e 43cbf22c 00000000 430b8bf6 c4a51863 c4c36545 00000000 422934e3 442c1e0b c4e241bc 00000000 43559332 45089748 c39c9741 00000000 4239104f 44598b87 448fa370 00000000 42d36311 c41aa33a 44ae9afb 00000000 43915ff6 c45c027b 429cee84 00000000 438e7363 c423e3ac c4724a9b 00000000 41a868a7 4427b8f7 c4a4faf0 00000000 43745235 43c1e9b1 c15c7fdc 00000000 4318b82d 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000071 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3eb4a062 3f1f05c6 3eb4a062 3ec8c184", + "44073ea3 44419428 42820000 4395aee9 419be3e3 00000000 42200000 435ddcf5 43eb25ad 00000000 42a00000 c3d83f39 44161d45 00000000 42f00000 c46e51cd c2e2cfad 00000000 43200000 c3dee2bc c48891ed 00000000 43480000 445b6d3e c4885676 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e286a8c 3f129894 3e286a8c 3e579118", + "426b49a4 44b2993e 42d00000 44cab9d0 43294755 00000000 42536037 4286cf1c 43319159 00000000 430fb0ba c4d0cd71 44e41ff6 00000000 41e77809 c45a2457 c375a2af 00000000 42fff847 c351c3f9 c4869ab2 00000000 41b043d0 44f5b07a c4be5c34 00000000 42a23fae 449d630f 44160b8e 00000000 42a54dc4 41a3722c 44685263 00000000 43531fc9 c5024679 448a90df 00000000 42dcc09a c4161543 c3d4222c 00000000 437b9607 42e162f1 c43c6b11 00000000 437e7d53 448845cf c3b3a6ec 00000000 4386f716 4408a3fc 4408b42f 00000000 4274e61a c3c9a4ee 4498b77e 00000000 43042a02 c44c9566 42f3f2f4 00000000 4220d22e c394ff4d c3d30936 00000000 4390c501 442da862 c4a315f3 00000000 433724e7 44d4ef07 4218f484 00000000 4319b7af 447a7c31 450386fe 00000000 4385dc5a c4b79606 44ecb859 00000000 4307e816 c4d0dede c3a326d0 00000000 42922988 c38abd2a c476db9b 00000000 424e4cea 4466d3be c4531467 00000000 421f394c 43d1dc77 431f8c5f 00000000 435a7607 41d34413 437e25fe 00000000 423944b8 c4c82cee 44806680 00000000 42952cd5 c4b2e5a0 c4536755 00000000 4355e76d 42ee0327 c4de1ff8 00000000 4374151b 44c79b3f c428bfe4 00000000 42723f08 43b99fee 439da570 00000000 437fbf6f c3a35d1f 44a8e1b6 00000000 438cf67a c39131e8 4287b117 00000000 42e83d84 c4a86d62 c4c97727 00000000 41e70999 44232342 c4bcde83 00000000 438ff59c 44b2d3a9 c2a954df 00000000 43838788 446f61ac 44ce3581 00000000 42102c7a c4059e17 444ccb9f 00000000 4381186a c3efc17b c2565ae5 00000000 4230a208 c3ce1796 c48ac5ee 00000000 42dd5a0a 4439a2df c447de10 00000000 429d73ef 42c86fc6 41e80645 00000000 436ff904 4326b7ee 445e9aa3 00000000 429d1628 c42d0761 44040dd0 00000000 43930307 c43eb3a5 c3b93b8f 00000000 43856f9a c20240ae c50a928f 00000000 43838500 44def639 c468fe4b 00000000 436fb23c 44ba799a 4485d61a 00000000 4250b984 c3aadf75 45080d2e 00000000 4361092b c3a9d2e5 42da66e7 00000000 41ff0128 c40711c2 c4091e49 00000000 43116bc5 43b40a51 c48515b8 00000000 429199ec 43e7ad6a c2833955 00000000 42962b66 44030448 443c7907 00000000 4356409c c478e232 44e5ad0f 00000000 437414a5 c4ac5daf c224170c 00000000 433ff4bf c3c6313c c4541ca0 00000000 42efd593 448f8e42 c4b65742 00000000 438f373c 4501a1db 43d261df 00000000 436686f1 43cac989 44b99953 00000000 43844a67 c2e3aac4 42cd2947 00000000 4381b2f9 c4d500b6 c4258123 00000000 43697a03 c1d685ac c38ae0dd 00000000 43547dc8 43650deb c3109387 00000000 439195c7 44412481 43e80e1a 00000000 42b48838 c334aa5c 4517f721 00000000 430b96bb c50d7d82 446a627a 00000000 43069e46 c31d0d05 c3075d58 00000000 43911ab7 43efa6f3 c4f0115c 00000000 4377b461 44c53758 c3b23f08 00000000 426bbe29 44ad8a6b 44d2afb8 00000000 4343a835 c3390e8e 43d2054f 00000000 43232fe3 c469d001 424205c4 00000000 42be25cf c426e20c c4923460 00000000 430f3518 42fa5975 c33cd4a0 00000000 436c21ca 443c88ea 42b3b75a 00000000 425b84c1 430eb765 43c494ae 00000000 42aac02a c2cbc7ab 42d8372e 00000000 430ac148 c4dd4af0 c403971c 00000000 434dfb18 c2841fc3 c3b7d1f9 00000000 43167078 43a06250 c3711fe3 00000000 42f88faa 4457f5b2 43d5ac15 00000000 4335dfd2 4176433a 450227c7 00000000 4246c329 c4b48f08 443956fd 00000000 438d7c35 c42b8beb c3fa0e59 00000000 436ab920 42a3abf4 c3f8c864 00000000 41dc4daf 43b8a5af c2e788ce 00000000 4314f82d 429d15e9 42a1d067 00000000 43028dbc c412b3d1 44d3c7ae 00000000 429cd990 c48772a5 431162f5 00000000 4375d0aa c38e19e4 c3cfa240 00000000 4344ba18 448aaaac c4fb8794 00000000 43315913 4518921b 42b4e6d0 00000000 4380f3c2 43a81369 44375ac2 00000000 4364d38a c4215d5e 4449e9cd 00000000 4341c483 c423b2d1 c309d164 00000000 4255270a c3e40470 c4d6d825 00000000 42853498 42c61150 c2afe2f9 00000000 431ecfdc 442c6252 4388d8b1 00000000 4334024f 431afdc5 44d93c11 00000000 42afcdc7 c4ac0358 4455a6c7 00000000 43367ae5 c3ada907 c3541c69 00000000 42c8151d 42fbfabb c4c0e598 00000000 42b2cd27 42cf7d11 c228522a 00000000 43502949 43f3b812 43d52f0a 00000000 43431c78 c3e3652d 44dceacb 00000000 43256252 c42b2d16 43157830 00000000 42d43173 c4005d80 c41e2dc0 00000000 431e6c6b 43f51920 c4886024 00000000 43736cae 44c0e504 c289802a 00000000 4392b238 447a7f88 44df39e6 00000000 438676ca c446519d 44933de1 00000000 4355a07c c4aa0fb8 c32c2e7f 00000000 42077f6d c3942dfc c450d7fa 00000000 438f70f0 444aaf15 c453eefe 00000000 4322ad40 43c2070c 42ecee21 00000000 42660606 4366149c 44a70b25 00000000 4287f6e4 c3cf39e7 43996bbf 00000000 43388f94 c491ff06 c4131d15 00000000 43445d52 be58695f c5160633 00000000 435fed3e 44ed7193 c46f5ffa 00000000 43424bfe 4486dffa 4447a173 00000000 4369d79a c3bfe932 450b7c1d 00000000 435d0403 c5029313 441f8d34 00000000 4301b244 c4bcc6e9 c4c550ff 00000000 43255c9d 42817cad c3369bf8 00000000 431775c7 451678ec c39892b2 00000000 435a7f81 441e7226 446b2ed3 00000000 43646433 c2a8cc91 43167d3d 00000000 430e2f9e 00000080 43820000 3f333333 40800000 42f00000 3f800000 7149f2ca 71c9f2ca 40000000 -> 4003ddf7 401dde82 40098728 3eefc1a6", + "4423f477 c0bf4322 430f0000 44ba02e5 43564269 00000000 43956cbd 42a2b4ee 438af1da 00000000 4266675c c4aaa8cc 4493752d 00000000 4394c136 c4ecc8a6 c4596bed 00000000 437f0bc7 40b78de2 c5094bc8 00000000 426387c4 43fc3725 c36468de 00000000 42f7fa08 44bb1b72 44a36238 00000000 43711970 c4127116 44f559ec 00000000 428d5db8 c5113e5f 43a11cb0 00000000 422eb650 c49be224 c4f595e0 00000000 4317bd58 44651e95 c4afd75a 00000000 42841664 44fdf485 4399240c 00000000 43635013 439b125f 4487c190 00000000 43301908 c34641c8 43290555 00000000 438452c8 c47295a0 c3e2a78c 00000000 43764564 41940e42 c4fa5801 00000000 430351db 44e6705e c44d048d 00000000 42bcccd3 442135bc 440eaa14 00000000 435e2a87 c411c9ff 44ee79e0 00000000 42b830dc c3ee14b4 427b3b8d 00000000 4327da31 c3a192a1 c40128b1 00000000 43446a00 433601ba c389adf8 00000000 43359d90 44281225 42d3d3a0 00000000 42f8ce5c 4337d081 44250deb 00000000 4349162d c4e25d5b 44be680c 00000000 42f8d2e9 c50aff39 c4841f18 00000000 43916ac8 414e5d33 c44b29bf 00000000 42b2f0bf 44f2684c c453d3c4 00000000 4309b0c4 43c75806 43b2c824 00000000 42e59a7c 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000001d 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3f3a9e5f 3f817aec 3f3b6598 3f7aa33f", + "c4a2ece2 c3f1afdd 421c0000 44f9c16b 429bed30 00000000 4334422b 441f9be3 44949d9d 00000000 43184e5b c323e2a7 4386cc32 00000000 43019b2d c4d7ffb7 c1c72db3 00000000 438ba7d9 c4030a64 c466426a 00000000 42b8a023 42a63d34 c310a15f 00000000 421cce8f 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3ed22de4 3f0fce6e 3ed550b7 3f0839b1", + "c490e80d c461c778 42820000 4395aee9 419be3e3 00000000 42200000 435ddcf5 43eb25ad 00000000 42a00000 c3d83f39 44161d45 00000000 42f00000 c46e51cd c2e2cfad 00000000 43200000 c3dee2bc c48891ed 00000000 43480000 445b6d3e c4885676 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40325b84 4055af70 4034dfa6 3ec8f506", + "c1ec5299 c3dafd55 421c0000 4395e2cd 413b270d 00000000 42200000 437601ed 43e5103f 00000000 42a00000 c3c03207 441e153e 00000000 42f00000 c46ff9a0 c15d49a3 00000000 43200000 c411e921 c48031bc 00000000 43480000 442e65b0 c497ba62 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401ee1ea 4061c735 401ee1ea 3ece80b0", + "43e4b7d2 42a7a4cf 421c0000 4395e2cd 413b270d 00000000 42200000 437601ed 43e5103f 00000000 42a00000 c3c03207 441e153e 00000000 42f00000 c46ff9a0 c15d49a3 00000000 43200000 c411e921 c48031bc 00000000 43480000 442e65b0 c497ba62 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3ea1691d 3f34ccb2 3ea1691d 3ec47a12", + "c3c88386 c4ae8b7d 43290000 4393dcef 4249d606 00000000 42200000 42efed5f 43fcfc8d 00000000 42a00000 c414fba2 43db5ab6 00000000 42f00000 c44e8974 c3f47a9f 00000000 43200000 431c05e9 c4923478 00000000 43480000 44a8b2a8 c3ba2991 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401363df 402e91e8 4017b8fc 3f354648", + "c3130d45 431c6a3c 41d00000 42e3d03e 403d9560 00000000 433d1227 43b2fd44 441cbe30 00000000 42954d9e c2a7ddd8 43170ae0 00000000 42ad75f5 c49385a3 42318c09 00000000 43742503 c47c6fa8 c4bfa646 00000000 42898fa5 4466ca6a c4f2d5e6 00000000 43936724 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 40000000 -> 3ecb8cb0 3f7eb94d 3ecb8cb0 3ec1141a", + "c393f3e7 4451ca67 436a0000 4391e979 428b1f4a 00000000 42200000 4255709c 44015052 00000000 42a00000 c4276942 439d7610 00000000 42f00000 c4282b7a c42b3a47 00000000 43200000 44025535 c48452e4 00000000 43480000 44adb971 4328bad4 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f248890 3f2dab54 3f2474fb 3e90563c", + "447f0f95 43dfe78b 43770000 4500189e 44013279 00000000 432123d6 41407ae9 431c570e 00000000 4304e410 c41c93d6 43849e5f 00000000 4323b8ca c491a2cd c4a495f7 00000000 41cffd8f 4323c0bf c38e2361 00000000 43353409 44adc80b 438c0d1f 00000000 438daa5e 4248f721 43c7f289 00000000 438ad799 c4e26f2b 445a1410 00000000 4395dfef c4b713fa c4bbd5ad 00000000 41f5ab9c 448e9b77 c50ad876 00000000 4205d82d 443050f8 42d616c5 00000000 43394bc0 42eddc0a 4429fa6c 00000000 4223df6e c341e22f 42d24fba 00000000 43250299 c4b553d4 c4a8efbf 00000000 4299f5f9 441585fc c4a4a519 00000000 433fba89 44af179d 4310003d 00000000 433af605 43abec84 44befe77 00000000 438866d0 c3d5df4e 4381b3fd 00000000 423fb943 c3fdfa31 c3d6ba42 00000000 4371c2bf 4437e0b4 c4e77da7 00000000 435f0230 44f000fa 42d09010 00000000 436e2551 43d60fef 44c1b6d8 00000000 433b93ca c42c9740 43e8c9f4 00000000 41fbcc5e c3d2d306 c3a17e0e 00000000 42575aab 42ddd99d c3a1fde7 00000000 4394b438 451930dc 416e3847 00000000 42d78f58 4439030d 450ca4e0 00000000 4371c2f9 c4514a8f 441c5237 00000000 42b344d1 c413e7c9 c3ccc3da 00000000 438ed451 4383a173 c4636fc5 00000000 435eacc9 44e6f42d c29bb366 00000000 431c786f 43d78ae7 448ca225 00000000 431ae112 c305f019 42dcf43c 00000000 438f69ed c43d0952 c3eb9ca8 00000000 42a51a40 43dccb3c c4e8159d 00000000 4356f7e0 44f099e9 c32e4835 00000000 41fb0f92 438ca7c3 442003d6 00000000 42c15d38 c412983e 44054999 00000000 4319692d c50378a0 c492c59a 00000000 43494898 43b36091 c4ef3695 00000000 41b4ba6d 4461c4f9 c2fbbbee 00000000 434dcd43 431a4af1 439ad28a 00000000 4333b1bb c48f2b23 448f5ca1 00000000 42a9ab0c c4ba183f c438d469 00000000 43794a73 4334b741 c4a3b23c 00000000 438a87f7 450230bd c3c4b59b 00000000 42c88e27 440cec59 447ba9e3 00000000 4218880e c4d12451 44e6a60a 00000000 42c064a8 c44616bd c3ad7bc0 00000000 42741b31 4301edb2 c4b61f24 00000000 42ed4e03 44dbb8fb c3d24a60 00000000 438fdfc1 440211a6 44501682 00000000 43055133 c3cce7aa 43f91a40 00000000 438d74c6 c36c9b24 c2b494e9 00000000 435004f6 42553ac4 c4a3669d 00000000 438a69fd 443d1d93 c35c0396 00000000 433efedd 4397215b 43d9b327 00000000 42e877d1 c419207d 444d97bd 00000000 42191e65 c4733eca c39f4236 00000000 438699e6 c17dc188 c5057301 00000000 4373c151 4443021c c3861f8d 00000000 4322fcdd 448a24a5 44b3d6a6 00000000 437deced c4960d83 44df2707 00000000 43198914 c4ba14a6 c3cc8a9f 00000000 428f8946 c22a69ce c43f5258 00000000 41c4c7a3 43de3fb4 c3313b84 00000000 43785d15 433c3f7c 435e0bb0 00000000 4308d5ff c3d2c9de 442e5198 00000000 42fdeceb c445dd8a c330fbf4 00000000 435760b7 c2bf6995 c465af35 00000000 4356857d 43e49dd2 c3505d8a 00000000 43931ebf 441244e8 441c922a 00000000 4339bc7e c44014f5 44b1a613 00000000 42a95000 c3b06515 c274de9c 00000000 423ace7f c382f5c5 c4d5c26c 00000000 438c52dd 44f7b757 c47f460d 00000000 430c0bfe 44125aac 440e42dd 00000000 436b3ba2 c2befd3d 4346ff22 00000000 42986abe c428e748 c2a7e7fa 00000000 4328ece2 c38d2bf3 c4adf4eb 00000000 43660f35 4444ea51 c3e3918a 00000000 43850e32 4443e8b1 442ce127 00000000 431c5ebd c43adc83 44dd745e 00000000 4317e172 c4ab5530 c2cf355d 00000000 436955a3 c24e86d7 c34b9b1f 00000000 41a802e9 44cc79e0 c483aec0 00000000 435465ce 4489d785 445c9873 00000000 427bb22a c40ae1a2 44bd9cfb 00000000 42dca7d0 c40e15d9 c177f047 00000000 425900a6 c32c4151 c40cf0e9 00000000 4342a903 4448ae5d c40f5e43 00000000 4321beca 448502dc 44409acd 00000000 42ea371c c2f49f5a 43c3b581 00000000 43601d65 c4a7965f 41e0799e 00000000 42d62003 c3a5b5db c466c1fb 00000000 423cbec9 43ab1406 c3872068 00000000 436a0693 43be57b2 43789605 00000000 433a0a3c c3714370 4467aef0 00000000 42c9b038 c4bbbd3b 42cfed63 00000000 437bf405 c448cbdf c4f23c76 00000000 4281dfec 44a7b937 c4922175 00000000 42e98b9b 433cc484 42dd5a80 00000000 43512ad4 c2c84c04 43ef08c9 00000000 42980c00 c50996e4 4381b43e 00000000 4272a0e6 c33755d3 c3c2292e 00000000 435fc1b4 42a36382 c29cd1b5 00000000 42560ac5 44447a14 43cda175 00000000 438bab96 c31fd9cc 447a5351 00000000 437cb859 c4758d6a 4324093a 00000000 4204a07b c3e150af c45393aa 00000000 41e46999 44cd45a9 c4d8f56d 00000000 42a3466c 446daf7f 43dc4701 00000000 438ed393 c36ec3ef 4506f690 00000000 41aa6c96 c4aa5819 4393d7be 00000000 438f880f c480a63c c4d7db8f 00000000 42e7e96b 44982e80 c4b13768 00000000 42f56c2b 443856da 4395b6e1 00000000 4200ae3e c30f7253 4510904f 00000000 41d53eb1 c4906bb3 439ad211 00000000 437c6e9d c39651df c3e2a1e0 00000000 438c1393 44a3bf28 c4d266cc 00000000 42f84030 43f3d46c 432b29b8 00000000 4346feaf c08cbc03 439fe165 00000000 41cd874a c488992f 43af0b9e 00000000 42a412b5 c3b466e8 c3f57149 00000000 43275602 44a53c9b c4ead5bd 00000000 432ad1b2 44934825 43af663d 00000000 437484b3 41a412b3 4414da56 00000000 431a5192 00000080 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3f3c3e44 3f79f1e2 3f3f30ba 3ea9e556", + "44a08e09 c3e22114 41d00000 44fac88e 4250b2e6 00000000 4394b3cf 444a6808 44b13fe0 00000000 437c546e c3be1748 442b0a19 00000000 41a51786 c46f1070 420fdc40 00000000 42f9acaf c440fe61 c4928552 00000000 4382af12 43f244c7 c47ee99d 00000000 428ec2e2 44ba281a c31734ea 00000000 42040818 448ffec3 44bf0136 00000000 4382015c c444f2cb 44f688c2 00000000 4333185d c454c23f 430d83c7 00000000 4363a773 c3f37998 c40dc144 00000000 430b9f8c 43333bcd c408d98d 00000000 438779d4 449acc3a c38fea5c 00000000 437e54ba 444b9cf6 4450a7f4 00000000 4221dd26 c36eba2a 4467001e 00000000 41c88461 c31f93a0 423fd81b 00000000 42be4cda c4d5f53b c4c10919 00000000 41d2b070 433df8cb c477f674 00000000 43499712 448b1661 c3ce9808 00000000 4292b8f7 43b618c0 4390660f 00000000 42a2ccd4 c386dbe3 4505751a 00000000 4279feac c462e5b7 43ca3050 00000000 4351738d c324a7ea c2e49f40 00000000 43412342 42c64f02 c4c778e1 00000000 430d4f8c 43fb8d3b c383d69f 00000000 42b065d8 4501beeb 449cb2e8 00000000 4338eba6 3fb5b22e 4466c10e 00000000 42907424 c3787328 43171342 00000000 42f5b520 c4ddfb80 c466f1c2 00000000 4363e188 c26f824b c4658395 00000000 43115113 449378d2 c44e1c16 00000000 42c704e3 4303f451 42693a50 00000000 432703c9 4386ed8d 45024d8a 00000000 4281c80a c40fa30c 43e53e9a 00000000 4330a2fa c4c79ffd c412dc69 00000000 4247fe02 c34c9127 c4835208 00000000 434abf5e 444b67a9 c438a6de 00000000 423e560e 450574c3 441ea73c 00000000 4254220a 426aa387 4360321e 00000000 432614d8 c4bb275e 44c0f8e4 00000000 4383c328 c4149268 c308342d 00000000 41b898f3 c42d5555 c502fb28 00000000 424de5ca 430dbd25 c326135b 00000000 430eda51 450f2d88 43bad9ca 00000000 4361102b 445cde3f 4509034a 00000000 41ba6428 c4a179e8 44d791a3 00000000 435aedb7 c504f18d c3515cc2 00000000 43593e57 c4362f94 c4be2f0e 00000000 4333ec7e 4365ef5c c3afbdca 00000000 43809e86 450485df 42926f44 00000000 438569fc 43e7bfd3 444f0558 00000000 4218eb4c c46ef60a 44d2c347 00000000 423269ea c50415fa 4275de99 00000000 42d905b4 c38bb8a3 c3d82348 00000000 42b0de8f 43b32201 c43869c5 00000000 43909cad 44538dbb c29d482b 00000000 42bf94c1 44a5fecf 44e021f8 00000000 4318248e c37bb6f5 4419bb09 00000000 432d2d29 c484a072 43272824 00000000 4388d843 c4483f08 c46d3b6b 00000000 4302bdde 4353df82 c41d3b02 00000000 4329070a 44c0a1d5 c3ac2fcb 00000000 434b8e6c 43f32136 43fd6f3e 00000000 435645c2 c403119f 44f50420 00000000 435b4a9c c489f283 43a0ba7f 00000000 42d89807 c4e2d615 c4d0302d 00000000 429c4357 43a9fe69 c4d4189a 00000000 439233da 449d52dd c3e39a31 00000000 4274f064 4405e30c 43d8140a 00000000 437142d5 c2ca1e87 443b2e53 00000000 43614b7a c4293aa1 43935baf 00000000 4352b25a c4683c6e c4242d7e 00000000 43936d6c 42fad0e2 c4ddbfa1 00000000 4337ed78 44e69f86 c46cc05c 00000000 42fb1a21 44828798 4420b1c9 00000000 424fe3eb c05dce74 43f854d9 00000000 42a74a58 c454ebe2 43fe0046 00000000 43111d7f c4b6613f c441b551 00000000 437a0503 c28536e3 c492e9b2 00000000 424b98b7 44d9510c c4951fa6 00000000 4272e6c4 4497724b 4408efa0 00000000 43151818 4374472f 44fcce19 00000000 4393dac6 c4f073ad 44bc8d34 00000000 424568b1 c4b1a719 c4062471 00000000 438a1f15 c3dacbae c5131f21 00000000 42327838 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000055 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3f14601b 3f836513 3f14601b 3e736b1c", + "c37ef6a5 c4791563 43360000 439385c6 42593240 00000000 42200000 42d589da 43fe75db 00000000 42a00000 c4192560 43cf91de 00000000 42f00000 c447e777 c404cf31 00000000 43200000 4367aa89 c490a122 00000000 43480000 44abcfbb c3850413 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e61feb4 3f2a02de 3e61ffc0 3ee9973a", + "44ab14fc 43f850d7 43360000 4506b2a6 43c65088 00000000 430b80b0 430c0838 4426de11 00000000 42dceccb c3be7657 438112d8 00000000 43680da4 c4db54bf c491b744 00000000 42aa37f6 432d5585 c4586cde 00000000 4356753f 44d9fc6a c3a8c39d 00000000 4266e15a 44a3953e 44f9b0de 00000000 425f013b c3b26590 4401d159 00000000 43755f86 c5063a43 c3e87f33 00000000 43115910 c19ba944 c2db5cf9 00000000 433a7681 4503472a c4a6365f 00000000 438904d8 44625317 4420c43c 00000000 42fd8c45 c3e86e1d 44f97b53 00000000 432de50e c4bc6252 4373273b 00000000 43441d9d c3e0b0a8 c437c014 00000000 42380632 44878086 c4b895bf 00000000 4377f818 43e3fa45 42e375a8 00000000 4287f148 42d9fedf 443b7575 00000000 422fd1ac c4067601 439eb492 00000000 431b8982 c4d175b1 c49eda4c 00000000 42a2f1ca 433f90db c433fcfc 00000000 42f0e9d7 44bb9eab c3424f76 00000000 42ba6a19 43fff7bb 4460cf95 00000000 4285ac9c c4823aa0 44a642d6 00000000 43217637 c4a2a127 c3b80297 00000000 42ddcd77 c3437d6a c4d71452 00000000 434a9f5e 44b09f21 c441dcc7 00000000 42f28e7e 44a653c9 448685da 00000000 4390fa1c c202ca37 42da202a 00000000 43829024 c4a4fa27 43011e48 00000000 433c1f9b c3657f7c c3d90db2 00000000 429bf8ee 44b7fd21 c4dc5c96 00000000 42aaa923 451112b1 4437e50e 00000000 4385cbfb 4348ba8d 4518d2a1 00000000 436ef75d c4ef617a 44739ea1 00000000 426787d5 c48eb879 c475fd55 00000000 430128f2 43f902a1 c4ba4abf 00000000 436fdb69 445bf89b c269ad30 00000000 4345e7a6 43bde16a 44420302 00000000 42815b70 c4ce0d1b 44e7af53 00000000 43489408 c5037532 c438e3bf 00000000 4233e1b6 c190e378 c3b28272 00000000 4394f841 4476e09b c3e8234d 00000000 421db4df 43c7c16f 43b7519f 00000000 4371e12f c3e12077 44986b85 00000000 42d58f1f c391a4ec 412387ee 00000000 42f022c6 c47a703c c50ac15d 00000000 42ab2292 43222c76 c32b44cd 00000000 42150e84 4487be5d 43d22ead 00000000 42ef26f5 4176d390 44461a15 00000000 43217609 c3fb837e 43599745 00000000 43853d78 c494c3f9 c4915635 00000000 430031a4 442fba63 c4d8dd63 00000000 42ca6947 4341fd47 bf3f64b4 00000000 4380421d 428e8d9d 432c1a25 00000000 41f0afbc c4926878 44914142 00000000 43807819 c4fba914 c4552142 00000000 43833c04 41aa638d c4e26c0c 00000000 42229a46 439dd91a c2fa0569 00000000 438b2a1d 44b33e53 44ba659b 00000000 43887db9 c433e4f0 44cb81a0 00000000 42915d70 c4422ead c1aa1664 00000000 432c3cf7 c2a4f36c c35a2c08 00000000 42a838ed 44492d96 c43b7ff7 00000000 42fc2dc7 44d1dec2 444167e3 00000000 42bbe58f c1c0a49b 440bfa4c 00000000 4390c715 c500cba5 44399dfd 00000000 431c421a c4490bff c45e9445 00000000 41afbe88 43f8ccb8 c481a0b0 00000000 435dd860 44314dc2 4226661b 00000000 4259bd4e 425fc173 432333dc 00000000 42e62875 c4b42c4f 449db46f 00000000 4315e50f c4bd7260 c43d240f 00000000 42aacc9c 42bc82c6 c49e7c3a 00000000 424815af 44a0873d c3d0f167 00000000 439399aa 44c2b94a 44e5999d 00000000 4325dbf5 c41f6f0a 4499a4a2 00000000 42ffa1e3 c4fd0b24 c3364d34 00000000 4395cbd7 c3e22a69 c4b7713f 00000000 4248d2e8 442cb6fe c40de7aa 00000000 43229c6c 44f1a7db 44823551 00000000 434ce04e 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000051 43820000 3f333333 40800000 42f00000 3f800000 3f19999a 3f4ccccd 40000000 -> 3f0f8c76 3f24b911 3f14b308 3ea9e556", + "c3c88386 c4ae8b7d 43290000 4393dcef 4249d606 00000000 42200000 42efed5f 43fcfc8d 00000000 42a00000 c414fba2 43db5ab6 00000000 42f00000 c44e8974 c3f47a9f 00000000 43200000 431c05e9 c4923478 00000000 43480000 44a8b2a8 c3ba2991 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401363df 402e91e8 4017b8fc 3f354648", + "441a92a0 43cc3cd4 43290000 4478c40f 4329c905 00000000 434f1c99 43cc95f2 44d7b8ac 00000000 438442b6 c4424931 440f0729 00000000 430cde5e c4ddfcf4 c4836262 00000000 438523fe 43890705 c5006797 00000000 43637339 444b16c6 c3601d21 00000000 4382193a 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3ea6bc76 3f10bf4a 3ea97a34 3f4bdb53", + "c2f1e991 c388bfc0 429c0000 445e26de 428ae791 00000000 43013230 443e391c 44d7fe35 00000000 42b3cc5d c4180b52 44429dc8 00000000 42a52306 c517b6fb c3d0da20 00000000 4341868e c4426a64 c511807e 00000000 42b8aee0 43720a0a c38073f0 00000000 4357db08 44f828f0 4405875c 00000000 42ea26fe 43aadab5 44b670a8 00000000 43815fae c4c5e908 44ae8e54 00000000 43234b86 c488d42f c3cb07db 00000000 4332b950 c387391b c4f42cbe 00000000 42a7d979 44856fae c442bb74 00000000 436b2932 44a3c429 441d427a 00000000 4374adda 42329a15 4476f92a 00000000 43177c75 c3dd7a9f 4384260b 00000000 42b73248 c4889cc3 c423cad5 00000000 43585a7a 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 40000000 -> 3ed18475 3f10be17 3ed331ee 3ece80b0", + "41208310 c4882337 42820000 44924dae 42985ec7 00000000 42972172 4470b07a 44ff19c5 00000000 4331cdb6 c46d75a7 44a4d6f7 00000000 433ecb0c c34989c9 c1bfce5a 00000000 4303bab1 c42c7e35 c4d362a0 00000000 43791c25 446d63d1 c4937fb8 00000000 4392626e 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 40400000 40800000 3f800000 -> 3ea1c3d7 3ec95834 3ea1c438 3f0a267d", + "c497256a 42d4fa09 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 400c7731 408d0dc6 400c7731 3d55d830", + "434a8fca 448467f4 41d00000 44a6f460 420af002 00000000 4311038e 44642e6c 44c7d228 00000000 436b58f4 c401ed18 4469cf21 00000000 43666696 c4a7afc7 4249d0d3 00000000 41fa2d5d c451c3f1 c49f40fd 00000000 438c1efc 43de7762 c46a13a7 00000000 41b2dea0 4450a0a0 c2a9756e 00000000 425634f1 44611ad4 44954c05 00000000 42e0aa99 c45baccd 45097dc9 00000000 4264e4a4 c513502e 43c3f7e5 00000000 4368aacd c4c5fef4 c4e68d7b 00000000 436611f7 43941ec8 c4623013 00000000 434e8f76 44a2b0b7 c39740cf 00000000 43161a2a 43226fd4 432675be 00000000 434f29ea c3141b16 440f4fe9 00000000 4248daf4 c50df909 442aae41 00000000 436957fc 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3e22440d 3e890c8b 3e1e1db6 3c5a4ec0", + "445cdd52 c4497c63 42820000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3dd4c71b 3eca479c 3ddc30ac 3f4d16be", + "44aea818 44a0cab3 43020000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 3f800000 -> 3e3ec1a5 3f15edb8 3e3f2023 3f1bedef", + "4466ff05 448f270f 00000000 44f1ef93 00000000 00000000 423672cd 43029692 434b6108 00000000 42b63eaa c474fb99 4505d305 00000000 4356eeca c5044c87 4396debb 00000000 437ddd1f c44ef727 c46fa105 00000000 4393974b 43e40ffd c4c0bdfc 00000000 42215002 431734f6 c2300230 00000000 42912dfd 44c50dd5 44abb8eb 00000000 427f5513 c2867838 43e496af 00000000 438838ec c395d247 4307887b 00000000 42ab36aa c4a4af4a c4558cde 00000000 4342f6b0 40ac9e3b c4985b34 00000000 4316cc4b 44959ddc c43e453c 00000000 432a0b5a 44305e21 43a352ed 00000000 4341ee9d 431be531 448d2ccd 00000000 428871d2 c383e016 4361c4d3 00000000 41e3672a 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 00000000 42f00000 3d4ccccd 7149f2ca 71c9f2ca 3f800000 -> 3e9d9a9a 3eaf284d 3e9d63bd 3e8c2798", + "433b2c46 43d3d981 43500000 4392c452 4277cdda 00000000 42200000 42a05894 44007212 00000000 42a00000 c420c473 43b71276 00000000 42f00000 c439096c c418d825 00000000 43200000 43bdd9f4 c48ba7b0 00000000 43480000 44aee446 c244ff0a 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3f9d1e4b 40662a62 3f9d1e4b 3f44b788", + "c4b9eef1 c4bb2ea8 435d0000 43925a10 428385f4 00000000 42200000 42859400 4400ec59 00000000 42a00000 c42436d2 43aa656e 00000000 42f00000 c430d7a4 c422415c 00000000 43200000 43e1bc38 c48846f7 00000000 43480000 44aed6f2 426fb0b3 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401a409a 401f7a81 401957dd 3e191f94", + "c47f6ba3 445d4d82 42ea0000 4394f978 420c1475 00000000 42200000 432bd785 43f5648a 00000000 42a00000 c402222c 44037e14 00000000 42f00000 c46353fe c399e880 00000000 43200000 c315e9a8 c4924e08 00000000 43480000 44924467 c44027bd 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 406eccf2 407a5323 406f4f06 3e549b04", + "44949855 c4112339 43430000 4393283b 42688515 00000000 42200000 42bb016a 43ffc320 00000000 42a00000 c41d137d 43c37837 00000000 42f00000 c440bb23 c40f0528 00000000 43200000 43992a6a c48e716b 00000000 43480000 44ade158 c31e1f07 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e58e6ce 3f43f6e4 3e58e6ce 3e276124", + "4497cf87 437f7c67 43020000 441a4878 42a15d4e 00000000 43403ab5 4417a68a 44ec1081 00000000 438de382 c494a37d 448ae9fe 00000000 4334a1bf c42d4f34 c389cde2 00000000 426cb4bb c2c79939 c4c7b1cc 00000000 4339bba8 44c42611 c457f035 00000000 43050333 445d6457 442057ad 00000000 42a7b61c c344dd6f 4482c263 00000000 42d7bf22 c505c216 440b57b4 00000000 433b81a2 c4bda407 c4e32eb9 00000000 43421b12 427b978b c3078f2b 00000000 4286b1ee 4349aff8 bfa47480 00000000 433ee923 44290074 44b03403 00000000 438c9ef3 c463289a 448ba47f 00000000 4233b3b2 c5159731 c413b8b3 00000000 4330d916 c3de3fa9 c509ed42 00000000 434bbb90 44a1ed4d c470e681 00000000 43572ffa 446ba106 43fba1e6 00000000 43791dde c24c6d6f 44809095 00000000 42821f09 c4716f9f 43c722a6 00000000 432f2902 c39aeb52 c38d210a 00000000 41dd2981 4258c02b c3306355 00000000 43263c6d 45024852 c395cade 00000000 43865aca 448298f7 44c5cdf9 00000000 43116abe c34bbff0 43a77d2b 00000000 42de4678 c32205aa c18979b5 00000000 43922982 c4435ee9 c50c3eb8 00000000 42c67e12 4481d00b c47ec0e4 00000000 420663a1 44ace2e1 43ffa190 00000000 4289ac44 429b7d22 445f8f27 00000000 4358f9a1 c2ec7882 4289c406 00000000 428ce2c8 c3c1d36e c3854f7c 00000000 4218ebbc 438e6c19 c4da4af3 00000000 42064cba 44ead17a c4069870 00000000 435cb66b 44ab544a 44c3610c 00000000 433766ac c4679523 45052c3c 00000000 435d4889 c413b627 41912c14 00000000 4301603e c4109453 c48dc919 00000000 43950fb8 4380e824 c3a69c3e 00000000 4325a0c2 44ef18a5 43d38fb8 00000000 435e037e 42f044a8 44046220 00000000 424bab2c c4ee6762 44ba8465 00000000 434cd0a8 c49a4378 c41b36e9 00000000 438b5250 42361f33 c4e0c552 00000000 42eae46b 43bf4219 c328c0e6 00000000 42eec7ac 44022ced 43e1d4fc 00000000 429f4706 c40d25bd 44fb5bc4 00000000 43553bbe c4abb6b2 4367ab7f 00000000 438f64f8 c49cb462 c4e13aa1 00000000 4391d0c1 4481eb90 c4e1cb58 00000000 43707381 43bc2fbc 41f56f46 00000000 41e6c6d7 440c5e33 44bac3b5 00000000 432aacaf c4383057 443dbf3c 00000000 42d41dff c4e5cce3 c41d4a8b 00000000 43302b8a c35e530f c4f93615 00000000 4333f45a 44f4508c c4966a24 00000000 420af30e 445dd854 4410c24c 00000000 433f0a76 c338353d 44a69657 00000000 4388b0b6 c411b90e 43368380 00000000 431e68a4 c468d2ab c47cd2b0 00000000 436c1f63 43aca1ab c4548b9e 00000000 430adfbe 44bb8103 c2a54afb 00000000 43177a7a 43d8c71f 44486293 00000000 435bc269 c4a5a778 44e138f9 00000000 43241084 c50386f9 c3ce0995 00000000 432a15cb c2be7981 c3bc8356 00000000 4283b605 44aa5429 c48c1221 00000000 43943779 44af97ad 44261799 00000000 427b570f bf9f5d19 449e9bf1 00000000 430c2ce2 c4244ef2 439aa21d 00000000 42a6e51c c3b6b3b6 c396d917 00000000 427810f6 43b05f22 c4ad1faf 00000000 433127d6 448df1b5 c35c0d32 00000000 4294072b 44978ad7 44cee2b2 00000000 42a1ee38 c373f518 43e074a3 00000000 43457b63 c4ea1d57 c2d5c197 00000000 42fc0680 c3d7f516 c485b240 00000000 420d641b 4446e61c c45722d1 00000000 435583e0 448be704 43b06e28 00000000 427c47cf 429ca123 440fb9ce 00000000 4353fae6 c466ce5f 4415f66c 00000000 42b5ec7d c4bec049 c46be8bd 00000000 42b89304 43055262 c492d419 00000000 43664161 4463b8db c39adf72 00000000 430784be 429be65a 42a13c7a 00000000 42f4ea7e c3c301cc 4480f673 00000000 436f6af0 c4247aef 42515431 00000000 42d28da7 c4442748 c4ab3a83 00000000 4292be53 449cc3a3 c4e06041 00000000 41d3931d 4327da69 41e52ad0 00000000 42728afa 4417b3ed 45081a86 00000000 43504fdc c42ec7ea 4417022a 00000000 42a2101a c4e5bae8 c44bc5bf 00000000 4363b04b c22bd1ac c4e5e1e6 00000000 4346cf51 449c3397 c41c6600 00000000 438a0dff 44b04fd1 448a7f62 00000000 42e298d2 c31105c1 441e5e4a 00000000 43351871 c4f96fca 43daa97c 00000000 438853d0 c431ea84 c466e390 00000000 42cd92ce 43265f89 c3a25eb8 00000000 43550612 45033be9 4289361a 00000000 43042b17 43724572 440c120f 00000000 43757b7c c3cc4990 43e80b92 00000000 438fe397 c3d7897b c2f8eb51 00000000 42668535 c3375e0e c48e4826 00000000 42b761e1 44d55fec c492241d 00000000 430acc3d 43ac22c1 434979b7 00000000 420d8e72 c32fccb4 44f723de 00000000 4364782b c50602b5 4444f4eb 00000000 431ca00d c4575806 c454224f 00000000 435a9085 42572706 c31979c6 00000000 435dc51a 45084ea8 c362fe7e 00000000 42353a6a 445a2628 44b41eed 00000000 422eda8e c445adb4 44951116 00000000 434c3cdb c49f5422 c339bc0d 00000000 435bd9e6 c409faf9 c4e226f5 00000000 4335036f 44d405a8 c4c0632d 00000000 42e659eb 4443b353 43a24f49 00000000 431fe77e 426582d6 44964a16 00000000 432aa44e c2b91b9e 4244beda 00000000 437f1c7d c4996100 c4651dbf 00000000 43395194 42e72a75 c40e0590 00000000 42c75bcf 439e70c4 c29b23d8 00000000 42c595cc 43bd18e2 43e96b9a 00000000 428985d6 c458a4ed 44e0bea0 00000000 4218c970 c51b133e c1a575b3 00000000 438fde0b c45c15f2 c4ee62ee 00000000 43045684 4487d76b c4a2161a 00000000 424ea842 00000080 43820000 3f333333 00000000 42f00000 3d4ccccd 7149f2ca 71c9f2ca 3f800000 -> 3e353d3f 3ed711d6 3e353d3f 3e9eccd8", + "43d10881 4428b993 41d00000 44a55099 420992ac 00000000 42b16737 44249a6b 44902514 00000000 436fb1f7 c464d670 44cde721 00000000 42c801a8 c443a935 41eb7bd0 00000000 42f8644f c42e1e10 c48430a0 00000000 43424958 431f0258 c3a74ecb 00000000 430dfcea 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3ecb86b1 3eeb4ecd 3ec358e9 3f02cae2", + "c3b36ede 448a0355 430f0000 448c1203 4321577e 00000000 435e08bd 440c3f17 44ef8775 00000000 43639fdf c47b1dd5 4458f9fa 00000000 43517563 c402dfc2 c3705835 00000000 4391f126 40181ada c4638b71 00000000 430206ee 44f95918 c461d01a 00000000 430e99b8 438856eb 436e1b12 00000000 438f264a c3b1460c 449480f8 00000000 436cfffd c50451c9 4392c6a1 00000000 436b8a05 c415beb7 c46bea30 00000000 430c92e2 4432cb0f c48937b2 00000000 436e7d8a 44c44df0 436cc090 00000000 4317abc1 432690f0 4411d19a 00000000 42c990ac c3f5e4cc 43d1a200 00000000 4339dcc8 c50594a0 c4799e03 00000000 425d5107 418f548c c4f25a87 00000000 42b6f118 430a655d c27641dd 00000000 4341645f 43e188e1 43c796d9 00000000 41a7a6eb c4057709 44da511e 00000000 432113bc c2c714c7 4152141b 00000000 4248f251 c43ab855 c49542e6 00000000 42d83d0f 44a3903c c4f774c3 00000000 4393159d 44c2a98f 4375574a 00000000 428f5f42 41e8be22 42d0fd2e 00000000 431bb057 c320a62e 43072140 00000000 43777800 c3ccb686 c342963b 00000000 433e8930 41966839 c49412f8 00000000 438ef74e 445eee88 c3c2cef6 00000000 4349ec67 437fc057 43655ef5 00000000 42db365c c3cd07c4 44a3cc4b 00000000 42a4d906 c49211fe 4312444a 00000000 433dacbc c2b3dffd c311eeb3 00000000 429e625a 445f5aa5 c4a68ba1 00000000 43405578 44879aca 43324943 00000000 431d2cde 43f623f5 44e2d483 00000000 43180559 c333d534 43153e0c 00000000 42e93b35 c4db1f9d c453db7c 00000000 42d8fde3 42483f7d c50b07e6 00000000 4292218a 44f134bb c44efacd 00000000 434773c9 44c712c9 44b4ef7a 00000000 41db54ba c36f14c2 443aa6e0 00000000 43640a51 c4af3e8d 43260b9e 00000000 426054cd c49ee9a3 c502dc56 00000000 428001f2 448e909b c4d197ab 00000000 42204ab0 442fb790 42f09baa 00000000 4330aea8 44109bc3 4508d8aa 00000000 4303cbcc c4eb9f18 44c0eabb 00000000 436d9f85 c4bc9fc9 c43976be 00000000 438d7ce5 41b6a45e c443e382 00000000 4361fe36 4459eac0 c3b79534 00000000 4395f66c 44b2b3e9 44a498c0 00000000 4323d011 c4128502 44dfa8e4 00000000 4334cdba c4ee061f 4354bc2e 00000000 43749ab6 c487b05f c4e2d935 00000000 42683abb 43107334 c3515d69 00000000 42899952 44fd76e2 43b47523 00000000 4314f5f2 439762ec 449334e3 00000000 43211b0f c4e49f34 44b8ab30 00000000 4359b06a c358fff3 c2d8f280 00000000 43881ff2 41bc2855 c4245bba 00000000 43177bcb 44ecb9d1 c443be76 00000000 42e90b87 43f23a55 43e217c6 00000000 428e05b8 c3e8ee5a 44ade05b 00000000 434bcd36 c476a17e 42cf329e 00000000 4394ef3c c454d428 c4b49ce6 00000000 438e794a 44a2c101 c4e8946a 00000000 423d3fc0 4442c7e1 43100378 00000000 4381be4c 432ea3b6 442e9bab 00000000 436bfb55 c29d0432 427a3bfb 00000000 43921dfd c45d5d7f c3e0fed6 00000000 428b0277 421231d1 c4576f5d 00000000 434edc3d 42da1e69 c230fb66 00000000 422ae921 44ab08eb 44a1c763 00000000 430f9531 c43da363 450a8124 00000000 43177307 c5038166 434edeb6 00000000 438f68b8 c48abe14 c4ef1867 00000000 42ff1315 443d3984 c485505e 00000000 43859955 44070f53 42cf2187 00000000 430a916e 4335d33b 443b0d31 00000000 4330fbf7 c2af1c7d 4289a5ff 00000000 42404721 c47bb558 c4020635 00000000 4380965d 4274cf80 c49bf51f 00000000 42543eab 442d965c c38a2c72 00000000 435d4e51 43b93175 43b182db 00000000 433eb527 c363a067 4422b8ce 00000000 42854b90 c4df5385 4323b1e8 00000000 42319c34 c429cbf7 c49490a7 00000000 420e5002 4387aa33 c3bc7fed 00000000 42723944 445f0e1e 43312dfd 00000000 427bae95 438482f1 448c5f77 00000000 425f9417 c4b51548 448c693a 00000000 43884e3e c3cef6a3 c3594eea 00000000 43592ba9 4166f0e2 c3818cf4 00000000 4325bdcc 44b1ba6f c40abf7a 00000000 430592a8 4498ab62 44944a57 00000000 437dc1f8 c3d77cf6 4496d443 00000000 430f0f88 c516d60c 434d0092 00000000 42c048da c467d829 c4ce02fd 00000000 4317c90c 43a2da77 c3df2489 00000000 43868062 44fab29e 43ce0feb 00000000 41d610ba 4326952f 4435d92d 00000000 42ddc9d0 c3fd0d8e 43c18b5b 00000000 435058a1 c418d714 c3a31373 00000000 4371efb5 4305fca1 c5064adc 00000000 431154fa 44d87b2a c425b405 00000000 41ff9fd0 435a8c0d 43571d69 00000000 425cf9f9 c30636a2 43b804f7 00000000 4384b740 c47b1873 429d3b23 00000000 4327eeb4 c455e228 c4c108c9 00000000 436ce5ee 43052d49 c333f5c5 00000000 4365c787 43c33b62 42a5df94 00000000 436a9df7 43ffd8a2 451006a4 00000000 430705b1 c4ab7e31 44815f33 00000000 42bd2ac9 c3aa28bd c3387667 00000000 42b7ca85 42680815 c4521bab 00000000 4352bcf8 450c2850 c45250aa 00000000 43117493 4422ea3a 44227f07 00000000 4308305c c43c7c40 44fd3602 00000000 43034e40 c4d7751d 42f6dae6 00000000 431a8771 c40f4ab3 c4835f67 00000000 42c1583b 447e87f9 c4a99b66 00000000 427447ef 44d1e6b9 43b82915 00000000 43430653 43c77496 44e7d217 00000000 42f52567 c42d1b15 4400cc20 00000000 4235e7e2 c4f5d7e9 c4875eb7 00000000 42a20eaa 43143b31 c4f4d208 00000000 4307e4b9 44f79acb c43609de 00000000 4215b5b8 44c6940b 44c8b5f5 00000000 4320c69c 00000080 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3f000c97 3f592fa0 3f007123 3d9a89d0", + "444f8885 c3ed131c 41d00000 4395f306 40f99267 00000000 42200000 4380eaca 43e1c9d0 00000000 42a00000 c3b3b8d0 4421b5ab 00000000 42f00000 c46fd498 4210524a 00000000 43200000 c422418e c4765e9d 00000000 43480000 441638ab c49e0fb4 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3f3f393d 3f414493 3f3639b6 3f6c7d59", + "c49b1aba 43cf13b6 43770000 44f0317a 43f241fc 00000000 4359d927 412e9fbc 430dd62a 00000000 43934830 c4f6500d 44509f79 00000000 429f8a70 c40ecf2b c421642d 00000000 436dc7bb 43169dda c382bc5f 00000000 4392eab0 439d10f6 427d292f 00000000 42d9690e 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 42f00000 3f800000 7149f2ca 71c9f2ca 40000000 -> 3f636ca0 3f9dbba0 3f83c273 3f6031e3", + "c4993ad5 4497ad5a 429c0000 44aeafa1 42da738f 00000000 433ee7a8 439b5cdc 443068f9 00000000 432455a0 c412f413 443c19a1 00000000 41c12190 c5061484 c3b89378 00000000 431b0367 c3c4fd10 c4936d72 00000000 433c3aff 43321f67 c33d1037 00000000 41b2d7c5 44c117ea 43cfcc32 00000000 432ad603 42a6b60b 43b20411 00000000 43370ae6 c492ebbc 44819561 00000000 42222fb7 c5064b5f c4474521 00000000 42f6137f c3471b90 c4b3c424 00000000 423bf7c2 4344e642 c30fac93 00000000 4392f1ec 45023dbd 447a2215 00000000 43070ea8 413a8b8f 4380fa8b 00000000 42791771 c4bc8cdf 446100a0 00000000 41e83df8 c4b085b5 c453a482 00000000 42abf644 41209168 c3544690 00000000 4272bc66 449e8b63 c4176ffa 00000000 41ddfedf 44842539 4441b087 00000000 4293070d c36ae25b 44d0e11e 00000000 43913618 c51071af 4454f7ed 00000000 4360c1d1 c4c63daf c4af945a 00000000 428b1978 42029f76 c30a3043 00000000 4391bd33 4493702e c39d5af4 00000000 436dde84 44737504 4481be56 00000000 435f36fd c390e572 44576548 00000000 438fbc58 c4915312 43459341 00000000 435e8ce2 c40d0d1c c43551a9 00000000 4310e102 440fdb56 c4a26e50 00000000 42d0cad5 44be24c8 c2e76f86 00000000 438e5598 44a00992 44fa6229 00000000 435c0596 c473dd55 44da5b65 00000000 43106046 c515b28f c21dec70 00000000 437ca837 c489fe01 c505badd 00000000 431a473b 44affc76 c50027ce 00000000 422cfa00 438e9258 41f95f84 00000000 4309a956 43cbdff5 447c5a0f 00000000 438ea49f c42321f7 44440436 00000000 437cf55b c42e9bee c30e85af 00000000 43859c3a c42cd6e6 c5100260 00000000 438f457b 44d14eb6 c4d0d8a6 00000000 42c92e05 44b82571 43dec7e4 00000000 43910595 43aee06d 44d8aea1 00000000 4354f3d0 c4bf30b9 449e67a8 00000000 42dd26fe c4eb0cb6 c43f1a88 00000000 423dc173 c304997e c49ac612 00000000 4299b243 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000002e 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3eb15929 3f42f744 3eb15929 3f06023b", + "c4519dda c46b10b8 43360000 42ea9e5f 41acb6ad 00000000 43943d33 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 40000000 -> 3d819ba0 3eebbd12 3d828e17 3f494b28", + "c3eff4e3 41dd004b 42ea0000 440a6ff4 42822bff 00000000 434eea06 4397a4e3 44588cce 00000000 4347c54e c2911ebb 4292a2b4 00000000 434d17a9 c3b1c9b6 c2f0bc67 00000000 437bb616 c3711771 c4eb4a0d 00000000 42bdb55a 432dc795 c2e44c8d 00000000 4346a719 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 7149f2ca 71c9f2ca 3f800000 -> 3f082c00 3f1faaa3 3f082c00 3ea0608c", + "44a171fd c4911655 435d0000 4508bf11 43f5c836 00000000 43823058 43590a1e 44d179e8 00000000 436cbf94 c50339c0 44882a6f 00000000 438fe952 c4716e18 c45d83f3 00000000 426305ce 43a47435 c446901b 00000000 436dec0d 43e0c09f 419a0ee7 00000000 42c6e096 4439dd6b 45129475 00000000 42cd2345 c4e17994 44add4c5 00000000 4376b35d c4e527d6 c491053f 00000000 438fb6fa 43c12e27 c4ddc46d 00000000 42ef4bb5 43ea7445 c27f77f2 00000000 424d29ea 4440ed2c 44b6f96e 00000000 438f71c9 c3939f73 43a30879 00000000 42f7316f c4448eed c39fc62d 00000000 438622cb 429d4176 c5078a30 00000000 436c776c 439aa057 c2c88d73 00000000 4380a91e 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 00000000 42f00000 3d4ccccd 7149f2ca 71c9f2ca 3f800000 -> 3d8ef312 3ebcc00b 3d8ef312 3ec20d48", + "4414997d c4aab2dc 42500000 43ed9f52 41c5e153 00000000 4393afdd 44153bb7 449410dd 00000000 4391e77f c3585b8e 43a341a7 00000000 436926d4 c4d06a81 c2ddc588 00000000 42fd1fcf c487343a c50b18f4 00000000 4372edc2 4292cb97 c2d6bfd7 00000000 4383840f 4518e0c8 43461b97 00000000 4334e5e0 447e46f1 4507bd61 00000000 436eaa4f c3ae7775 43f77fd4 00000000 435a96a3 c4c95475 c319d597 00000000 4334b26f c4293b30 c4bbac6d 00000000 4340f78d 43dafa75 c416aa44 00000000 432c291a 44d88aca 433eadd0 00000000 42cf013f 4433e70f 44cf6eb0 00000000 4367d401 c4817e3c 44ace5e8 00000000 43350d66 c4fbe761 c37b4084 00000000 42cd922d c389d2a8 c425670a 00000000 434f9f56 43b0a1ec c3e4e3ad 00000000 42885748 44bee0a2 4354c4f1 00000000 43519474 444286d7 44f3448c 00000000 42fd0028 c48d54e2 44b1c9e9 00000000 438c6479 c50b34a9 c3ab8fc8 00000000 421a5058 c42c3d4c c4e0bc0f 00000000 42a675f8 44aca2b6 c4d2dbfa 00000000 4395979a 4438007a 42f88735 00000000 437df4f5 4306d48f 43b7ce6d 00000000 42cdb25c c4bcb1ac 44dfd0cb 00000000 425b1ee1 c4826482 c33f9d83 00000000 432ae2f8 c4161f24 c4d62572 00000000 4391763b 4400f8a9 c4149445 00000000 437a8732 4356106e 422a12ea 00000000 4387ba6f 440d8ca3 44d3a38f 00000000 4307f85a c4ce8fa9 44e726f0 00000000 435cb8d0 c4bf7a62 c3a3a27a 00000000 42d60913 c397dcab c46e6c55 00000000 436ff40c 43b440de c3c3f475 00000000 432968cc 45066b3b 43f5fe99 00000000 42b53132 441c7770 45013cd9 00000000 435bb0d5 c49d3059 44a60444 00000000 4299570e c4f04f68 c3ea8413 00000000 43146df8 c39ca4d6 c4887158 00000000 435c2c03 445d75f5 c4633f85 00000000 437ffd6a 448fdaa8 43953323 00000000 43226a5d 437d84fb 446975b9 00000000 4264b055 c4045b6e 4403f55b 00000000 434ce85d c49057da c39e9e12 00000000 43454874 c380bed0 c47b6269 00000000 41b2a474 4420a4bc c41b9c35 00000000 4378dafa 441c1061 433535e3 00000000 431b477d 4282be0f 4387c004 00000000 4200f2d8 c48f6bd5 4486fa05 00000000 432fa9d4 c4be4e6f c3e8e93b 00000000 431b767a c3b80f08 c4cbfac7 00000000 43389b18 444bab46 c43a37d6 00000000 4352f6f6 442f8d5e 4361f820 00000000 435460e8 43d49a63 44fc813e 00000000 43237497 c3cb1d7b 43b46862 00000000 437bb813 c47668c4 c3a6759b 00000000 42e33f33 c350608d c4853d64 00000000 43825010 44e3a1ce c4c4642e 00000000 431b3fd9 44608f69 439ef1f5 00000000 4319e83b 420cee25 43431cd2 00000000 435c322d c42a1e65 440e8c2b 00000000 432d2cf1 c3cf9151 c319af0a 00000000 4383b32a c3bce439 c50e766b 00000000 41fc3cf6 4474a4fd c447113b 00000000 42ace074 43bd906d 43129902 00000000 4362f6df 439e9e8c 450356f0 00000000 43849438 c37df317 4348a0e1 00000000 41a79809 c3ff0125 c34db2de 00000000 43833735 c22b1afd c39cf744 00000000 43524292 44d85431 c4a5e640 00000000 43372cb1 44f461a6 444d5d44 00000000 438e4b77 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000049 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 40000000 -> 3efd0846 3f03ff2e 3eec572f 3e4f40fc", + "c39990b6 44556770 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f0ba4ca 3f37821e 3f0ba4ca 3ec3cce4", + "440d448b c48847ce 43770000 44a1ee2a 43a35277 00000000 4388f13e 42114166 43ebf6f1 00000000 42494a79 c48677f4 43e3c915 00000000 432db7f6 c49f917b c4b454bc 00000000 42a5bb03 43929604 c3fe7977 00000000 4336bb08 447abeb4 434a1398 00000000 4310c204 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 40000000 -> 3f23c0a7 3f39a88c 3f23db80 3ea4ad00", + "c3a0f855 4403e29d 43020000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 40000000 -> 3f3f9bb6 3f4792ba 3f38b23a 3f30e753", + "436e8ffe c4396bbf 42ea0000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3e5d8a6f 3ea7460b 3e5bc4b3 3eddc9c6", + "441b7329 c3d125b6 431c0000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 40800000 42f00000 3f800000 3f19999a 3f4ccccd 40000000 -> 3ee784c0 3f180223 3f04aeb8 3f2b3e6f", + "c497256a 42d4fa09 430f0000 4394780c 422b0409 00000000 42200000 431219a9 43f986e4 00000000 42a00000 c40bfbdb 43f1e7ba 00000000 42f00000 c45a1c6a c3c84695 00000000 43200000 4045320c c4937fdf 00000000 43480000 449f6b1c c4105f15 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 400c7731 408d0dc6 400c7731 3d55d830", + "c490e80d c461c778 42820000 4395aee9 419be3e3 00000000 42200000 435ddcf5 43eb25ad 00000000 42a00000 c3d83f39 44161d45 00000000 42f00000 c46e51cd c2e2cfad 00000000 43200000 c3dee2bc c48891ed 00000000 43480000 445b6d3e c4885676 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40325b84 4055af70 4034dfa6 3ec8f506", + "c4ba6cb3 436ea026 436a0000 43a5ada8 429df801 00000000 43678c9e 438024e4 451b460e 00000000 43576908 c47f044d 43efdc2b 00000000 42976c80 c2b637c1 c2b987f2 00000000 43271d2a 42d0d9e8 c3540aa5 00000000 41eb6b54 44f266bc 436b6ea8 00000000 41b5a9fa 43e95065 4504eccb 00000000 42cde283 c4e04111 448a599e 00000000 4339257a c373577a c34545f9 00000000 438351b9 44345c8f c4fb6498 00000000 43028893 443edd41 40ba672e 00000000 427e5bd1 42959413 435af126 00000000 4330b354 c495a708 446b2a54 00000000 4350b2ba c4e1d430 c4901ff1 00000000 43680cf6 440aed8c c51382fe 00000000 4227e430 44c31a84 c3255ec3 00000000 437a6d98 430d2ec3 439508ec 00000000 4395ff3f c3a5c971 43a3ba42 00000000 4286854e c4b68e51 c4328efb 00000000 43089116 42b995b8 c443968e 00000000 42e4c2c1 433b5390 c226916c 00000000 428dd766 43da9ba9 44301580 00000000 427b1dca c3309505 435b0d2f 00000000 421dd7f6 c4a8b1ff c3eff628 00000000 42b145b4 3fb8d1be c3943cef 00000000 420b0fe8 443c9e1e c3820672 00000000 43025ea1 448c20b7 44b15660 00000000 433e44fb c3dd9acc 442ead3b 00000000 438e3e15 c4d8f36f c3c9ccb8 00000000 430f03e1 c21860a9 c3af2966 00000000 4367257c 4452d288 c3c9240a 00000000 42b6e784 447d021a 447ec7a4 00000000 4392f7cb c3f2b8d8 4479e679 00000000 438ee762 c50e62b7 c383eafa 00000000 43832f15 c2c37e9e c3d906a4 00000000 434f00e7 44fd5dae c49e3f51 00000000 4350504a 4491831f 44694787 00000000 432339ef c39ed5d2 44614b80 00000000 4239f0de c50609e1 c090c7d1 00000000 438845f8 c3cf3b08 c494f8bc 00000000 4326810a 4396bb02 c36f8fa6 00000000 433dbcd2 44b5fcca 44657953 00000000 438a39ed c3deb99f 44f27a3e 00000000 42a228bc c3b6582f 4222b2f2 00000000 431c8ad5 c43fe5de c4c7b68d 00000000 429c6ed6 445862e4 c458120a 00000000 4295f9e6 443ead04 43b7e681 00000000 432919e3 c38af3d0 4519afe5 00000000 436f44f7 c4c30488 43b1eea9 00000000 42de3aa3 c476cf76 c4c45f8e 00000000 425d67b1 43938969 c3b919f4 00000000 435512e2 43a215ae 42e288b0 00000000 4307eb49 3e5fcb7a 43a861ad 00000000 43411f8b c4f24851 442a042c 00000000 42981d7e c3dbbaf4 c4097906 00000000 429cc2db 432b2f74 c388983f 00000000 4373ad4a 4511d683 44044331 00000000 4336f0f8 43388eee 44c9c822 00000000 436399c2 c4a7cf1a 44226223 00000000 4347717f c3c594bf c3c4c7fa 00000000 4299cc1c 4463f7a2 c4ee0ae0 00000000 430b5a99 43faef76 425d452b 00000000 438d0320 43027a0f 440d35cc 00000000 436827b4 c44c6896 44013e68 00000000 420528be c4848b9a c4521918 00000000 43348ae5 43c8bbb4 c490e825 00000000 43276cb9 43fe9f89 bfde1e9d 00000000 42f0616f 43a3e470 4467825c 00000000 430c2ecc c47f90c8 444d666d 00000000 42ba6afb c4daba12 c488378b 00000000 4286d358 4369977c c482739c 00000000 43898b15 44257aa5 c29b0e1f 00000000 431cbf6c 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000048 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 40000000 -> 3ef93f4a 3f03387e 3eea5fee 3f7874c1", + "42bd4893 449232e1 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3feec8f0 40420905 3feec8f0 3c5a4ec0", + "42bd4893 449232e1 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3feec8f0 40420905 3feec8f0 3c5a4ec0", + "c41edf3e 442bfe40 42500000 44a885db 428c566a 00000000 4284bddd 438a2185 44090ce7 00000000 42e6ef40 c3c5e685 4415544b 00000000 436ab05f c4d775bc c2e54451 00000000 4351ea3b c44cbeb5 c4d2a416 00000000 43328566 4462dac1 c4a5ef49 00000000 433b4885 44191303 42465cae 00000000 429b6a06 438da36c 44173874 00000000 42da3afc c4958fdd 44d42b60 00000000 41cfe5a3 c4fb23f6 c33fe4e6 00000000 438bc9d8 c364c569 c3fdb3b4 00000000 43527de6 44980fc7 c4d13f77 00000000 43289b58 44a67779 43129599 00000000 43450318 433746d5 43d352a4 00000000 42c17c31 c4141081 4445b1c5 00000000 431be0ff c4810c24 c300b6a8 00000000 4347d7f1 c2cd7ec9 c3769de3 00000000 4346ba86 44ae2060 c4e1a454 00000000 42e5f169 4353956f 41ebd9b2 00000000 43195ce5 44548635 4504e32d 00000000 43466972 c3cd07ec 4400f5b6 00000000 43302b7b c4ea8c5f c3908851 00000000 432dbfe7 c28dac6f c338da56 00000000 43483b31 44538e4b c48132d0 00000000 43558112 42fb0495 41a985d5 00000000 4385ea3e 43272896 43e3e0a7 00000000 424ee8f6 c4950396 44b0bffc 00000000 42f238c2 c4ab5b32 c37bcff7 00000000 437f57ab c39981ab c45af989 00000000 43535877 44aa502b c4c434d1 00000000 4342eb3f 44c1a818 4399dc2f 00000000 43052184 43852e5c 44472084 00000000 42b61526 c3acb4c9 43c14446 00000000 43940b38 c4a710f2 c38ec5ca 00000000 433545f6 c37729fe c442060e 00000000 4387a4b5 43fdf34e c40a0928 00000000 42ea8028 43b02fa7 42a1372f 00000000 4282c598 43ffcbb0 44d347fc 00000000 43451969 c4c89c98 44d3e0cd 00000000 42c0021c c49aeea2 c397324e 00000000 43843466 c2d274d1 c3b750be 00000000 43149308 43feebd9 c402caa1 00000000 431bc46e 4454c5af 435cadc8 00000000 42c3f715 441620ba 450a3fc2 00000000 435a6445 c36f7c42 436ec391 00000000 421c063f c515d154 c424a223 00000000 42f3d26f c3ce7784 c4c99211 00000000 42c9202d 42d716b9 c2d0597e 00000000 437c150b 4427c21e 4342ca01 00000000 431ec947 4369f6fa 4472ed0d 00000000 420d5d4c c389afe5 43819484 00000000 438d73d5 c4799aad c398bdf8 00000000 424f9602 c3ad3013 c4bfee9e 00000000 4377b7d0 42a310ca c29517fb 00000000 4332b7ef 44ca5dc5 44023df6 00000000 4388ebd4 43eb1f37 450ba003 00000000 422273b1 c3d2f35b 43bb5e02 00000000 438f356a c49c1249 c3d2dd77 00000000 42801278 c2a885f6 c3d78360 00000000 437a8ce2 44dc7dcb c4be3b0c 00000000 43876a09 438158c1 42b71ad7 00000000 4379639b 435d173d 44990bc0 00000000 42a8b471 c4d94c45 44b61494 00000000 4388f94c c4cf5e59 c419894d 00000000 4379f14a c28fa7ee c3d8b10d 00000000 4383240c 4445a63f c420d3cf 00000000 430de0c4 450346f8 444b0b46 00000000 430dd642 438f0fac 44ecea19 00000000 428bdb98 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000044 43820000 3f333333 00000000 42f00000 3d4ccccd 40400000 40800000 3f800000 -> 3e24aeea 3f0305a0 3e24aeea 3f30e753", + "c480584c 442b583b 42d00000 43953085 41f9267a 00000000 42200000 43388af5 43f3137c 00000000 42a00000 c3f9d0b4 44087768 00000000 42f00000 c4670548 c3821194 00000000 43200000 c3619f04 c490c757 00000000 43480000 448a5605 c4565d95 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40116757 4043de7f 40125d15 3de35d40", + "c48021de 449db07d 43020000 43fc776c 428406f5 00000000 43581e6f 4416d196 44eac504 00000000 4382e1f9 c49fd3db 44955ef5 00000000 430b4d48 c4a993e9 c406d64d 00000000 431a1c37 c31931eb c51944c8 00000000 42ce1f6d 44846d23 c411c973 00000000 42839622 43f528d4 43b18e5a 00000000 435a0615 c28da111 43bc2479 00000000 428e8f2a c4879ea4 438d4827 00000000 43747729 c4595345 c4822c7d 00000000 4318ccdb 435cd67c c3edfa3c 00000000 436854a1 440db194 c06712a8 00000000 42e04ff8 430a26f8 43900a01 00000000 4394f455 c4bc3b03 44e76c93 00000000 4308f02d c4c1336d c3bec96f 00000000 435f53f1 c3c2226f c4f0f55d 00000000 42c7156b 4359f3cb c3221ffe 00000000 43939871 44cdeab2 445be6f6 00000000 43954c32 c11d6ff0 4346066b 00000000 42c3a357 c3f36ae2 4348c509 00000000 438ff8fb c4c9e248 c4b7e9c5 00000000 4308f48e 43ae52c7 c48ddc84 00000000 4314e5c5 44e1053a c3815bd7 00000000 43885156 44a1f7a3 44f55153 00000000 42838b57 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000018 43820000 3f333333 3fcccccd 42f00000 3eb33333 40400000 40800000 40000000 -> 3deef9df 3f135cdb 3def0355 3f7979ad", + "c4a62b95 c4817eac 43430000 4393283b 42688515 00000000 42200000 42bb016a 43ffc320 00000000 42a00000 c41d137d 43c37837 00000000 42f00000 c440bb23 c40f0528 00000000 43200000 43992a6a c48e716b 00000000 43480000 44ade158 c31e1f07 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f070907 3f2411b5 3f070907 3f4a4ed7", + "418e53ca c3128df8 42500000 44f3c498 42caff79 00000000 43569a0c 440b127c 4489fbfa 00000000 4276de89 c494f7a6 44e0cfd9 00000000 42b75451 c4a7d371 c2b29499 00000000 428bc0e7 c30c4255 c3904c52 00000000 42a78bdc 44ab677f c4fac014 00000000 4259a26c 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 42f00000 3f800000 7149f2ca 71c9f2ca 40000000 -> 3e9fecd1 3f15adb0 3ed3c718 3e5b6168", + "c480584c 442b583b 42d00000 43953085 41f9267a 00000000 42200000 43388af5 43f3137c 00000000 42a00000 c3f9d0b4 44087768 00000000 42f00000 c4670548 c3821194 00000000 43200000 c3619f04 c490c757 00000000 43480000 448a5605 c4565d95 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 40116757 4043de7f 40125d15 3de35d40", + "43a98812 c4691c62 430f0000 43640571 42035315 00000000 4370fb75 4231671e 43177e9a 00000000 4328964e c4c03a3e 44a617f6 00000000 432a90b8 c4b30691 c42462ed 00000000 43007f34 3fe15b91 c428907e 00000000 42dd951b 44910a24 c403598d 00000000 433924a9 44777c52 44581b4c 00000000 431b2b55 c3b43d69 4496fd18 00000000 435d8152 c4b2e8d3 434674be 00000000 42965c00 c49e0a8f c4f8fc2f 00000000 432aa230 448b822f c4d622ca 00000000 435aecee 440b0a9a 42a7b0ba 00000000 42bf8f63 44232fbd 450edc2c 00000000 436c9251 c4962584 4480014b 00000000 4242cbbd c38287a2 c2f3ea9a 00000000 4393cd06 4052d652 c3b23fed 00000000 436c1982 44f1277b c4568d0e 00000000 43372fa4 44994c1d 4487a97b 00000000 435390b2 c2e9b133 43bf21df 00000000 42dee905 c4927878 431a8fcc 00000000 43936034 c44070a1 c499d570 00000000 43594595 44aa6951 c500e881 00000000 43490746 44c82e7a 437c4c0c 00000000 432eabf2 43dbebb7 44c579c4 00000000 426e19c7 c3650d26 4340aa96 00000000 4386094a c4025738 c377c969 00000000 424939e2 41fe3f87 c4fa4dee 00000000 42240ca4 44674205 c3ca1590 00000000 42e891bc 448e88cc 447faa0e 00000000 4366f82f c3df75cc 44b28583 00000000 41e6f54c c50f637b 438f94da 00000000 43237e63 c3dcd661 c4332a4c 00000000 42b6ca5e 43ad1ef2 c40116b6 00000000 435cd5cc 44ead9bb 439a6284 00000000 438b3cca 440ad3a0 44ffdee8 00000000 4373d51d c492ed47 4473de26 00000000 42aaea75 c4d4d1a2 c44dc306 00000000 43906a1e 425b8d9e c5186f2f 00000000 4246613e 44d2876c c434a7da 00000000 432cec93 44969fd6 4488e694 00000000 4302fe8c c2fdfff0 43c64c87 00000000 4318f5a4 c311aa6d 418a04f8 00000000 4293c134 c480c7e9 c4d4188a 00000000 4395cf62 44ac36b3 c4fd2e48 00000000 4369a9d0 44113462 42c6d3e1 00000000 42ce36c4 429e83a5 43960176 00000000 42f7ff26 c4b68c30 44957658 00000000 43095a84 c359fa0e c2d6531c 00000000 4208c2f6 41f46dab c4831400 00000000 43616184 44822b9e c3db528e 00000000 438a51c0 44b9e28f 44ab3644 00000000 435d2ddb c37e92db 44424d20 00000000 42c6d710 c4467bc5 42b16547 00000000 43911c51 c3f8a245 c44fd61f 00000000 437d26b4 434163e1 c38c2631 00000000 42c1053b 44c3fe3d 438b8a43 00000000 42086c2b 42bd39db 43b8005d 00000000 428fda8a c4dbb901 44b17afa 00000000 43111efe c48f7ae3 c40f71fe 00000000 4252adac 422f7560 c49943f8 00000000 42a27d18 44d83abd c432cbc0 00000000 439466ef 44a6e14f 449bc39c 00000000 432cabb3 c40f9032 44d654ee 00000000 42a513fd c49e5566 430504a1 00000000 42df349b c48f7da5 c4f38a8e 00000000 438b6129 448154c7 c4b8d156 00000000 4394625c 43bb3ab8 428a6e29 00000000 435daae3 43b986bb 44b97e30 00000000 4307bd08 c3cc0cab 43a29856 00000000 436206c3 c4fc2bcd c480273c 00000000 4379b38d 4289f94e c4cb521e 00000000 4273df7b 44c3da6e c41eea6c 00000000 438c490d 449c2c71 4493b8cc 00000000 41f37048 c3666690 44284697 00000000 43309b6c c4a77ac8 4303baf4 00000000 433f8cc9 c4347abc c49b82a6 00000000 42c41c4a 43d4424c c4158acf 00000000 429dd6d2 44019e18 42c6c8d7 00000000 43776666 44137ae0 4517b81c 00000000 436713aa c490b4a0 44637ec8 00000000 421bfc12 c489fe9d c40e9121 00000000 41edfac6 42e502d0 c511e470 00000000 428a9b92 44a88ac6 c406285b 00000000 43455deb 44d32bdc 44ca6964 00000000 4302fee7 c3fa22bf 44b2d019 00000000 431c36bf c43ae125 4288fae0 00000000 43680556 c3991659 c405f1ea 00000000 4349c572 445a9b42 c497df1d 00000000 4339bf5a 445836ed 432bbef6 00000000 4370d2c2 43fb60ae 4505253f 00000000 4350de00 c4ef827b 44b9b6f8 00000000 438c288e c4e1a6ef c46cee59 00000000 42c93758 4259efff c474831c 00000000 430cd09b 44d61dd3 c42727c5 00000000 4388eb9a 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000005e 43820000 3f333333 00000000 42f00000 3d4ccccd 7149f2ca 71c9f2ca 3f800000 -> 3d6990ba 3f3ac5f5 3d6990ba 3f3002dd", + "c3e98ca7 4398cca3 43430000 44169bc9 42edf92a 00000000 431c4bed 43309fa0 44719025 00000000 41fcd6a3 c3944944 433887fb 00000000 43822b71 c4f39ceb c4b4c736 00000000 41e97ff6 436ec6fb c45e0fad 00000000 43741f4e 437a5726 c1e3a6d5 00000000 43402311 443cd7a4 44b174d5 00000000 43382cee c44d9321 44711b4e 00000000 429dec78 c50346a2 c433fdcc 00000000 4387a0bf c1768a82 c3a8ef13 00000000 432cfafe 4413128a c383d738 00000000 43486294 44b6b18a 44b27177 00000000 42634d0a c45cf95f 450374ee 00000000 41dc09c4 c506633b c23d8f79 00000000 4375bf1b c2bd9bbc c3805ba9 00000000 4380e30c 448dffe3 c47deda6 00000000 42fdf681 4439cf7e 43baa563 00000000 439339d4 c2b43dc8 447aa501 00000000 437ee83b c4852b4e 439cb9d2 00000000 437c1820 c461d175 c490e61f 00000000 424b7554 4498bad0 c5016ce8 00000000 436d0392 45125e35 43b9ace9 00000000 43327e5f 43553f2e 44700d61 00000000 424ae488 c41f0246 43d6eeb1 00000000 438fc8d7 c427b111 c3e5c6b4 00000000 4299fb9a 439b376f c4a9a4fa 00000000 42bd4b8c 44e6172a c38bf8d7 00000000 43736c76 43fb4d25 44581237 00000000 4333970b c485a016 44a94372 00000000 42ac35f3 c3c81dcb c2f10835 00000000 4226518e c11192d6 c2d9e58c 00000000 428372a8 4506c08b c4853a1d 00000000 431dddf9 43dd539c 43c86dd2 00000000 4352bf10 c394a69e 44456825 00000000 43497e52 c4162189 4116e660 00000000 43494a04 c43e4c9f c4e67e20 00000000 420d225a 441f1557 c4196d0c 00000000 439476bd 44ab640d 441c4138 00000000 43128838 c2b82f54 44dd93d5 00000000 42b0637a c4e4f2af 4419b8b8 00000000 4373c895 c498ace3 c4b560af 00000000 4387d74f 441d135c c4916072 00000000 4383a274 4451f47e 42c9b623 00000000 42def097 43d1c471 44c82144 00000000 4321f188 c49c95c8 44655546 00000000 43762eaf c3ce7725 c382495c 00000000 428f931a 43a4c648 c4d98f12 00000000 431e3401 43ae7615 c2853ec3 00000000 43731f59 44896bb3 44d907e0 00000000 431319a1 c40db1f0 44421eb2 00000000 43545739 c4f44da0 c3fe7672 00000000 434466e8 c3649593 c4eadff2 00000000 4349e7a0 447058b1 c402525e 00000000 431b7952 44e19396 44bd495c 00000000 4364a04c c340ac8d 441037bd 00000000 438b38e3 c508dc5d 42ea4c96 00000000 430d6a14 c40073dd c48c526d 00000000 42e2a110 4419eb47 c4201678 00000000 42459fde 44c11502 441eb834 00000000 4236a180 c0f2d73b 4405f3d1 00000000 43854478 c3283d93 427e8e33 00000000 4374d38b c30880e0 c3164509 00000000 43043882 440bc80a c48deddc 00000000 433d4828 446f198f 429cc718 00000000 437d4519 4420b9b7 4504b3da 00000000 437102f8 c49fae5b 447ceb4d 00000000 42b0a2b1 c4f0724f c48b54ca 00000000 422596fd 43b9ef4a c51a6b75 00000000 4254d458 43e2492a c2d0817e 00000000 438252ec 4428bd9d 44757c23 00000000 437b8adf c40f9d9e 445533c3 00000000 43886698 c445601a c32e0fdf 00000000 435307e7 c3b978c6 c510c499 00000000 435fe255 44c29be3 c4667531 00000000 42f35cf5 43c3f7b2 43983804 00000000 41a2f641 c2f87526 43d451de 00000000 435e6de9 c43b9bde 42893dc9 00000000 4319f432 c43bd12c c4ba42c3 00000000 43959042 447b04d8 c48cceeb 00000000 42e9e3f2 43e7a010 432a43f4 00000000 4376a3ef 41177c97 43c8be51 00000000 42479e50 c4f9e109 4452ed06 00000000 430a472c c40977a0 c40c4ee8 00000000 4343dabb 44107298 c4a1cce1 00000000 4302f842 44611af7 421eb12d 00000000 429d869e 44426a5b 450d16f4 00000000 43728604 c49aaf83 44844d59 00000000 42ee9dd5 c48de84c c4167423 00000000 42621190 4312e85c c4a3cd30 00000000 42f1f97d 4492bd26 c39ec08d 00000000 43681b45 44a753b1 44e0c38d 00000000 43954d8d c46063ad 44b4ef53 00000000 438563f9 c4cb2f3e c393458e 00000000 438a0203 c3ed748c c515131e 00000000 4305c068 446a40fc c416ec01 00000000 41a5a014 448baec2 4448915c 00000000 43759229 c3d82990 44d6704e 00000000 4348b4e2 c4dd0814 43653f85 00000000 42c4c816 c2be9b92 c32c82ae 00000000 4384301c 44276acb c44abbc3 00000000 42d44fc6 43fc09e7 4323f679 00000000 42d8e695 4126efa4 4329f0fe 00000000 438fbc26 c3434767 42b67dfa 00000000 42eadaf2 c35ec694 c352d7b5 00000000 438a7877 44659ce8 c50eda27 00000000 43268140 449f3bde 41003ece 00000000 42a6cb0a 4447f914 4501162a 00000000 4305cebf 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000006b 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 40000000 -> 3fb5885f 3fd750a3 3fb6485a 3ec8c184", + "43ea916a c485fc5c 41d00000 45183b31 427d5eae 00000000 42e18ffd 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 43820000 3f333333 00000000 42f00000 3d4ccccd 0e736390 8ea24260 3f800000 -> 3ea8f697 3eb33382 3ea74555 3f215d29", + "c499c341 43ca7b5f 41d00000 4516d174 427b049d 00000000 42801c06 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000001 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e96f746 3ef54fd4 3e96f746 3f4df960", + "c416fbc3 44762730 430f0000 43635161 4202eb62 00000000 430a0988 441eaa61 45077e63 00000000 4323bfa5 c41d6e53 4408071a 00000000 438b6b0b c4345124 c3a59278 00000000 435fed8f 40759363 c4b7afef 00000000 437f85f4 435cf818 c2c81cd2 00000000 423ca21c 42f1a7f6 42d30428 00000000 434a5eaa c2569252 4333bfa5 00000000 42e7b647 c4dbc58a 4373c854 00000000 42c30fa3 c4977c06 c4eea7bf 00000000 42b34692 4332a4f2 c3891a72 00000000 42bbfa47 44f10f87 43915d79 00000000 430d507c 441396b9 45013487 00000000 42bae1ac c4aec41a 4494fe77 00000000 437be055 c44fcd02 c3c227ad 00000000 42845806 41883571 c4e64fe3 00000000 42759286 448e3138 c3fd0327 00000000 432c1625 4490af8d 44800a88 00000000 435deb89 c2a2504a 4384c0d0 00000000 43790859 c476d137 430239ce 00000000 42a4f72e c4878696 c4d8acb6 00000000 42bb5a39 4324af2f c37926e3 00000000 42f8a6a7 432b3d6c 41d7d21b 00000000 432aa368 441dcf60 450db437 00000000 4321af59 c485f5f8 44615caf 00000000 42ab1c5e c427b85d c39f6c83 00000000 430e095e 42146e1e c51220b7 00000000 4207fae6 44d519a6 c43a3797 00000000 4371236f 449a9cae 448aa9fd 00000000 43168e5e c3fb3214 44c8ade7 00000000 41ffe3c0 c41035b0 42906758 00000000 43150cbf c4072b0f c45b52de 00000000 43059a79 435183d9 c39c39ec 00000000 43899eae 44c3d836 4380be49 00000000 431af61a 4263ce8e 4351ef51 00000000 42d89883 c40f2103 43ed9064 00000000 43853110 c4ff5272 c476db08 00000000 4351adae 41cf6a62 c49001da 00000000 437cd691 43f6127a c35327c8 00000000 43038a46 44454dc3 443353bb 00000000 42d90a0b c385935a 445090fb 00000000 42a1fd6e c4436972 42b92780 00000000 42473f48 c4922970 c4f0b8b1 00000000 42ca8715 43ad5aff c3fedbff 00000000 430b96f4 44fbbc6b 43ac59a3 00000000 43778537 42898dcc 43822ba3 00000000 433e2aef c3ba0eb1 43985600 00000000 42e10d6b c30a67be c2881618 00000000 42eba0b9 4280347e c50980e5 00000000 435192d4 44256dc6 c38b5d4f 00000000 425545ab 44d3c81e 44c31083 00000000 4313f256 c3ba4974 448e2e96 00000000 42a6d4bb c5162f6d 43863a95 00000000 43009c06 c430c058 c493bfb4 00000000 42b6ec16 445e8f0a c4a1499e 00000000 438845b6 44bff9b8 4388adfe 00000000 42b5434f 427b8eb3 43749ca3 00000000 42e82465 c4b1a1f2 448f7b74 00000000 439394a7 c3e820ee c368128a 00000000 42c57f7b 423ce203 c4a4fdec 00000000 437af57f 44cc9d93 c429314d 00000000 4293f7c8 449c974d 4492290f 00000000 42ac6197 c35a5a1a 4422fe56 00000000 434cf6e6 c4e39d39 433f38b8 00000000 43347dee c45422dd c4b40672 00000000 4233d741 44aba076 c4f54263 00000000 43213d03 43d75e94 429f3c6c 00000000 42c6e094 437fff79 447ff3b0 00000000 43834b08 c4bc460b 44960631 00000000 4212fd60 c3c31060 c346434c 00000000 432291d6 42a2a77e c4efb0b6 00000000 4390656e 44ee50a7 c4415e8c 00000000 4389145d 43d6664b 43cacbfb 00000000 43791df3 c3e3ab1c 44a647bc 00000000 43785ef0 c4c2da52 431942b2 00000000 41f95225 c382564c c3e09c3a 00000000 433a5dd0 4391e2e6 c3cd8fd0 00000000 430d24c9 4488cb12 4351ca12 00000000 435f14ac 43ea23f5 44f0dee2 00000000 42a39115 c4f15bbf 44bdb908 00000000 42d2eae7 c4bcccae c4430e24 00000000 43904366 4296ff0f c4c062b6 00000000 432642bd 45099eb3 c45b167e 00000000 42445a56 43849bd3 437e3741 00000000 436e5c60 c4437027 450bb627 00000000 43816f00 c41d7f87 4266e346 00000000 42508ec5 c35901b1 c3bddf28 00000000 4395ed63 43181d1e c3535acb 00000000 43623198 44768137 4343ce6e 00000000 436a1939 4222b9d3 432c613c 00000000 430b6eb4 c395e954 43687b35 00000000 4388c908 c505533b c48bfd3d 00000000 43402fd8 42ff40a4 c50f304a 00000000 42f2b665 44531b5a c3a4ce48 00000000 435a4b35 44c2454a 44bcb2c6 00000000 43505fca c2c74d49 438b7fee 00000000 432b3cd6 c38f42ea 41c2b515 00000000 437dee05 c48213c7 c4e72adc 00000000 4373b805 440decfe c44277b1 00000000 42cc3758 451374ec 43f267d0 00000000 42406c26 43c884a4 44dae4bf 00000000 436a01e5 c4d95fee 44a6419f 00000000 436834a5 c4e387b3 c472c498 00000000 42132688 4293f3d3 c4944a36 00000000 428696e2 44645759 c3aec809 00000000 4354235e 4426a9f1 44240be5 00000000 41ccb948 c33d45d8 4401c16b 00000000 432f6f02 c409daf8 422ca501 00000000 436918f8 c496f9c8 c508423f 00000000 4393f60c 4467dc77 c49ca7c6 00000000 43377738 44ed8e7b 43c9d551 00000000 4304e675 43f9d486 450ca3a7 00000000 42c07be6 c4c2b4da 4492e242 00000000 4352e716 c3253787 c2b31ad6 00000000 42d2dc7e 42034f0e c3edcddf 00000000 42bdfd55 446b1873 c3b06346 00000000 422e073e 44b35a05 44b2e402 00000000 438c7211 c41f571a 44d60eb5 00000000 42ed2d77 c337aa6c 41526e32 00000000 429a6d4a c470edfd c4dce391 00000000 43819f6e 44ab100e c4e3f9bd 00000000 428596b4 44611254 4345786e 00000000 4289efea 4338e34a 4456e3a5 00000000 42153a17 c43d5047 440cdb49 00000000 4326729e c4b4e3fa c4473596 00000000 422b375b 4318d727 c4fc6edf 00000000 42f985ad 44ccb1be c4167dae 00000000 42fbbe31 441de7b6 441f99cf 00000000 42d20ba8 00000080 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3efebf58 3f10f5b0 3ef7b5dc 3f64be4f", + "c483d194 c4b70646 430f0000 43a5de8c 423f0f02 00000000 42d5416b 434e34d9 44301774 00000000 42a1a87e c4077d8e 43ea23e6 00000000 437dec98 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000003 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3e9555ff 3f151e20 3e97b5b8 3f505dc2", + "439718ea c4a4aee7 43360000 44e7c551 43aa9dfd 00000000 438eaaad 43b9154f 44dc8d53 00000000 42e0e73b c489e652 443ae7c6 00000000 434c5d0d c36a48ed c31ba693 00000000 43166229 41a7263e c2d0b3fc 00000000 4303a063 44895557 c354a56b 00000000 433bc8e3 44167db0 4465b519 00000000 4321d5e4 c4229314 446c9bb1 00000000 42a1f4a3 c4cdfbfe c3b264cc 00000000 437cb749 c3a80478 c4ecc6ab 00000000 427dcf82 44110437 c3b79b58 00000000 43832ba0 4347f87d 430e0be1 00000000 43803d24 c294a2a4 439f8a20 00000000 43548606 c4fc3b27 43a2c802 00000000 42ef0b76 c280a007 c2d260b9 00000000 4290007c 44acd076 c4eb69ad 00000000 4358c187 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000010 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 3f800000 -> 3e0c20a9 3ea35fca 3e117f9f 3f7b69a3", + "41e91436 c1eefad5 42500000 45128319 42f40420 00000000 43450d47 43bc2262 443aa9a0 00000000 43832a7f c48a40e9 44d0a4af 00000000 434c1c58 c48a0560 c292dd96 00000000 42e0e06a c3ad8e91 c4328e07 00000000 4334ea8c 4440bd74 c48cfb3c 00000000 438b220e 450f1b57 43397215 00000000 4310c090 445a5d63 44e9233d 00000000 4384f8ec c4a0881b 44e3bb2a 00000000 438317c2 c42573e9 c27cd787 00000000 437b496b c45b8484 c4f370a7 00000000 435da065 442f855b c4718794 00000000 4378bf94 4497a657 43058982 00000000 435e224a 445902a4 44fa37f5 00000000 4289003c c4209d7f 445673ba 00000000 43701fb7 c5123a59 c391d97c 00000000 4381af4c c3a79063 c4491858 00000000 42bf2035 43bef16d c3f76f09 00000000 433f6065 44b26a26 4346e08a 00000000 42953c76 42a6c683 43509025 00000000 430e71e5 c3e75c6e 44118557 00000000 431a5ae5 c37fedb3 c21db512 00000000 430dcd18 c4163fd9 c4c40add 00000000 41b50f67 449d85de c4c06686 00000000 42c84c7e 448a721b 433aff0b 00000000 42a50bcc 44265d16 44e2cb3c 00000000 43076304 c46ccc69 448c6fd6 00000000 43536eb6 c4c999b1 c39420e1 00000000 42a121e7 c32d198e c3f6ec9f 00000000 431d214e 442d2802 c4477b50 00000000 421f388f 44f4bf96 43c273d5 00000000 42b1dfc6 4437fe82 45098ce3 00000000 4320dac8 c4870f01 44972321 00000000 435059c2 c4bc88a6 c3a11e58 00000000 4348c71d c3437dc6 c41975e9 00000000 429a7694 4412bd51 c41f858f 00000000 4355c3e5 44f9f37c 43e4b674 00000000 4373737c 43d06a24 44ac2544 00000000 42f66e1c c48f7623 449784b1 00000000 41ceeb61 c3e9b850 c2e415a9 00000000 4314186e c4219d7d c50cc5de 00000000 4336bbd5 44a51a0d c4a96a93 00000000 428db07b 43154d4f 421ad99d 00000000 432804c7 434cf221 443cbac6 00000000 43469073 c48e555c 448de798 00000000 41a58c9e c48a1695 c397be72 00000000 421d543e c3f9803c c4f39588 00000000 43935dda 44947049 c48fc9a8 00000000 41d1311a 44abc8f4 43c776f1 00000000 4331b075 43ecb859 44f5c970 00000000 4393f711 c444aa84 44391623 00000000 426e8cca c36826c4 c28e0fe3 00000000 42a44b01 c3f9a4c8 c50a54da 00000000 42201f7e 448ddcc7 c481b50e 00000000 436c52c8 43bf549c 42f64766 00000000 42c0da7d 43955239 44b15898 00000000 427e155a c427264a 44147684 00000000 438dc11b c3ca03f7 c3087839 00000000 429cfcdc c3791ca6 c49f494b 00000000 436439d3 446d31b2 c44ca41e 00000000 4245f7f2 4473434e 43ac2edd 00000000 4390da40 41c95756 430b5fe5 00000000 42a598ea c4ba5828 449c24ba 00000000 42b44cd9 c503d63f c4433994 00000000 437ce9f8 c2971505 c3e3e4aa 00000000 432a0d42 44c71ec6 c4a20631 00000000 423592d0 44126224 43626890 00000000 42891322 4201fd17 4357440a 00000000 437214c8 c4849e16 44518b58 00000000 4326f9d3 c431ce43 c38f6d30 00000000 438f2609 c39d5ac1 c51059ee 00000000 4323458d 4483c7df c44a1f16 00000000 42eefd1f 44853a6e 43dfea39 00000000 42c4f096 4361ee8d 44e8388b 00000000 4381c0b1 c4d56d4f 449ed826 00000000 430eb933 c49b1bc3 c407a32a 00000000 43770f02 c1fe2533 c3946bb3 00000000 4356cc59 449b58eb c4605ad1 00000000 4310a879 43b53891 4324bb2b 00000000 437ddbc2 42dab799 4493d6f7 00000000 434ae3fd c3d5f0b4 4395d8c1 00000000 436ad35f c4b3fbaa c429e77c 00000000 43392e0f c2babd41 c495b863 00000000 43181717 44f28402 c4a4b3ed 00000000 42804017 44fb91a6 447667cb 00000000 42e802c3 42dda0db 44da38df 00000000 43926b5e c47e5133 44276a77 00000000 43283ac3 c3e8a4c1 c36c3e31 00000000 4384bdf0 c267bdeb c493b8c5 00000000 434d5cc0 44d0e5aa c4853e30 00000000 431cc55d 44931e68 441ac416 00000000 41f9f762 42aaa667 451a287a 00000000 435b82a8 c2e05e61 428a9af2 00000000 41a6f9c2 c2d13bc0 c263dd59 00000000 4326c6be c1ef40a8 c4b959d8 00000000 433d12fb 44b6f55c c45ad419 00000000 435437dd 436d025d 430584d1 00000000 4342e9d6 4134aa15 44f503ca 00000000 4282e821 c4f1e75e 448bf8c7 00000000 438b1389 c4f32e2f c48da5f8 00000000 43918f59 410044d6 c467d3e1 00000000 43368b68 45038da0 c49338f4 00000000 4320a42a 44cbc2a4 44754eac 00000000 432d7ed7 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000067 43820000 3f333333 40800000 42f00000 3f800000 3f19999a 3f4ccccd 40000000 -> 3f1e4052 400b2c47 3f1e4052 3f64c232", + "c39990b6 44556770 42b60000 4395611d 41da1945 00000000 42200000 43451e70 43f0985d 00000000 42a00000 c3eefbcc 440d3b9b 00000000 42f00000 c46a16b0 c353c158 00000000 43200000 c3963036 c48ea41b 00000000 43480000 44819049 c46b45b8 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f0ba4ca 3f37821e 3f0ba4ca 3ec3cce4", + "44ae499b c486b7ec 43360000 42200000 c1f00000 40e00000 42b40000 42a00000 c2700000 40e00000 42b60000 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000000 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3ed4fe49 3ef4a9f0 3ece05b5 3f5d5ece", + "c3c88386 c4ae8b7d 43290000 4393dcef 4249d606 00000000 42200000 42efed5f 43fcfc8d 00000000 42a00000 c414fba2 43db5ab6 00000000 42f00000 c44e8974 c3f47a9f 00000000 43200000 431c05e9 c4923478 00000000 43480000 44a8b2a8 c3ba2991 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 401363df 402e91e8 4017b8fc 3f354648", + "c41ed54f 440275ba 430f0000 42c955dd 4167e921 00000000 43886261 4414d089 44fe29ae 00000000 43673642 c2c81a54 42ace5f4 00000000 439426a0 c49baee3 c40ef3e3 00000000 436a5d36 40abfc88 c500a4bb 00000000 4270fd48 450508c3 c470f483 00000000 42261132 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 0e736390 8ea24260 40000000 -> 3e835eaf 3f1c3d23 3e83da73 3f30e753", + "c4912430 c319be2d 43360000 439385c6 42593240 00000000 42200000 42d589da 43fe75db 00000000 42a00000 c4192560 43cf91de 00000000 42f00000 c447e777 c404cf31 00000000 43200000 4367aa89 c490a122 00000000 43480000 44abcfbb c3850413 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e96dbc2 3f6ae035 3e96dbc2 3d55d830", + "c48679bc c368162d 43290000 4393dcef 4249d606 00000000 42200000 42efed5f 43fcfc8d 00000000 42a00000 c414fba2 43db5ab6 00000000 42f00000 c44e8974 c3f47a9f 00000000 43200000 431c05e9 c4923478 00000000 43480000 44a8b2a8 c3ba2991 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3e3a5536 3f230518 3e3a5d5d 3f0c344c", + "c393f3e7 4451ca67 436a0000 4391e979 428b1f4a 00000000 42200000 4255709c 44015052 00000000 42a00000 c4276942 439d7610 00000000 42f00000 c4282b7a c42b3a47 00000000 43200000 44025535 c48452e4 00000000 43480000 44adb971 4328bad4 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f248890 3f2dab54 3f2474fb 3e90563c", + "43d0d786 c3b15929 431c0000 45177f16 43be9dc8 00000000 42e96160 43941c64 448bde40 00000000 432142b0 c4e4a17d 44b6797a 00000000 4395e41d c4be7d5f c447825f 00000000 437befae 43006cf1 c4ed126c 00000000 4348ba16 4499f0e8 c3decf37 00000000 4373b89b 446310f7 446df51f 00000000 43616394 c3e930fe 448c3849 00000000 43570ded c425f77f 415cbaca 00000000 4379e329 c37dab31 c40844b1 00000000 42121164 4405baec c41857e7 00000000 438eb001 43af5d9e 42dd526a 00000000 43736396 415498c8 42f27678 00000000 4305fa90 c4c73a52 44663dfc 00000000 4351e9e4 c4765a39 c434638d 00000000 42f48057 43d89d07 c4f55822 00000000 42f002b0 43b87622 c293b121 00000000 4344dd5f 4283b2b6 42bb7d98 00000000 428f0f3a c3e392c5 443c438c 00000000 42d66a92 c415f284 c29b6df8 00000000 438c93ac c39615fc c47f3f53 00000000 434bb095 43e7cf8e c3c38bb6 00000000 43797ec1 43d2d5a4 434e6e92 00000000 434b939d c2517709 44a1b021 00000000 425921d2 c3d0fa98 432432b0 00000000 4322d3d5 c43c4e1e c43ae79d 00000000 42c818b0 43885931 c43169f9 00000000 43367783 43988583 c16a17f9 00000000 41e9d2ca 43938797 4413df43 00000000 4347fc27 c44de9c1 4477d4bb 00000000 43275ff8 c4360b84 c3503165 00000000 43958e7a c3035d9f c46f6dd6 00000000 42ffb68b 44e3cc35 c48c0356 00000000 42747dfc 44b30c73 447790fc 00000000 43847af8 c3ae6426 44e2954b 00000000 42c5125d c471c2a6 435d07b4 00000000 438b4bea c469983e c49d08ce 00000000 42c2a43a 444f16b3 c4b65213 00000000 43473e1c 44e84e39 433da9ad 00000000 42cb7d94 43fd5fa9 44c3a953 00000000 42edf85d c4d4ffbd 44bdcf04 00000000 433cceb2 c49ccb02 c40f19ea 00000000 438fff72 42009e82 c516ef58 00000000 4322c8e9 4388aa20 c2e8148c 00000000 4329c2e4 44807843 44718a9d 00000000 43923c46 c44653b2 450c49f2 00000000 43530152 c5004da6 431a6828 00000000 435384d0 c445becc c4b96c93 00000000 43056080 43f996cd c41ec6e9 00000000 437b3d8f 4512fba5 4416f534 00000000 41afdf03 43c5e60a 4515fb96 00000000 434267b1 c45b63c7 440f314b 00000000 438317f4 c3b50cd4 c36c11c1 00000000 43198dd7 438b8cb9 c4d435b8 00000000 4395daa0 450c2294 c4103c3d 00000000 4310b851 43fabe3d 441f5733 00000000 438dda2e c492bdcc 4509c59a 00000000 426edada c4c50d95 c2eb820c 00000000 434fe262 c3ca8025 c48f0198 00000000 43051e0f 4449f67c c43e0eab 00000000 42e637d8 436b4625 42c77a3a 00000000 4276ed43 4144d627 445e3f43 00000000 43673823 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000003e 43820000 3f333333 40800000 42f00000 3f800000 40400000 40800000 40000000 -> 3f8c73ec 3fbbefbe 3f92298b 3f5bd7c3", + "44073ea3 44419428 42820000 4395aee9 419be3e3 00000000 42200000 435ddcf5 43eb25ad 00000000 42a00000 c3d83f39 44161d45 00000000 42f00000 c46e51cd c2e2cfad 00000000 43200000 c3dee2bc c48891ed 00000000 43480000 445b6d3e c4885676 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3e286a8c 3f129894 3e286a8c 3e579118", + "44727c07 43d9bda1 43770000 43917292 4292b29b 00000000 42200000 421f9458 44019de9 00000000 42a00000 c42a5a82 43904969 00000000 42f00000 c41f0af1 c433bcb0 00000000 43200000 44133f63 c47f9f80 00000000 43480000 44ab8d80 438a4153 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3fe16bae 3ff604c7 3fe1b695 3da8dc20", + "c3b1504b c4202840 42820000 44156de1 421ba029 00000000 434f00e7 445c3f41 44e96f35 00000000 431c8caa c499aabf 44d5585a 00000000 422d12e6 c4c2af93 c33948da 00000000 4240ba82 c422dd26 c4c795c4 00000000 41b300e8 44885651 c4a96c22 00000000 4350cbae 4380778e 423256a2 00000000 439449f1 444141dd 450b3e12 00000000 4386bac9 c4330ca9 4447aa04 00000000 43447e00 c50fdd2c c403d787 00000000 437a5a18 c35f23af c441943d 00000000 43475fa3 44745115 c474cae0 00000000 4311b440 446d34f5 4387b755 00000000 43659469 4364c9c5 4477701c 00000000 434fca38 c37d07db 4363cb9a 00000000 42ffd319 c4bb9e31 c40161ed 00000000 42f2cf35 c3a6538d c4ece433 00000000 42e11b9a 446b954b c43e5581 00000000 4372eb3d 44ae4a80 440d6f01 00000000 438c9a0e 431d801d 44a2ca8a 00000000 43937066 c48cb5c9 444b8844 00000000 42a7c0be c3817153 c2f307cb 00000000 42dc2934 c0f64bb7 c2e59a15 00000000 430d49c2 44e3425d c4928bf1 00000000 434447f8 443ab1bd 43c83ee7 00000000 431334e9 418e3837 44a42554 00000000 4355a6dd c4bfbb4c 445b37c3 00000000 43308cae c5049496 c4a0fe92 00000000 4332d74a 4185c2d5 c3d19267 00000000 42f70e88 43ab538f c32c4da5 00000000 42309a1c 44b81fe0 447b6e8c 00000000 438dc407 c116aa8f 42c9511b 00000000 42cb37a7 c46c8481 43cf0390 00000000 42dbcb8e c4e3dc35 c4ae1d16 00000000 436233f9 4346a9b7 c4a813a5 00000000 42722476 444314cd c3927675 00000000 431848ae 439893b8 43820e96 00000000 43907ac8 c31c11cb 44406306 00000000 4219e14b c4ad0684 43da6d06 00000000 429f4d2c c452c790 c4480d7a 00000000 438d1754 440c030f c5071bb9 00000000 43669170 4468f19a c37033f8 00000000 4348d8ed 44be13ac 44c8c00c 00000000 438bf450 c40093b2 44cada80 00000000 42988686 c45f6b59 43342019 00000000 43876a16 c488f2b7 c4a10da3 00000000 42a0b690 443529b8 c4f06bd7 00000000 43093a74 443f1603 c2dffb3b 00000000 433ae0fc 43c3eddd 44008666 00000000 437016ef c46b1f78 4505e0b8 00000000 4353dbfa c4a778a2 42f76c16 00000000 425a0f44 c346017c c3916021 00000000 428551da 434dbae3 c3cbf3c4 00000000 41ea213b 44b639f0 c2619a75 00000000 4361806a 43c3f43f 4421ceee 00000000 438bb21c c25ad087 42bed8c7 00000000 438acf91 c5114ba7 c20916cc 00000000 428dcb36 c387506c c3fd0b3e 00000000 438eecf0 444b24dc c49d1988 00000000 42ee8fbb 4487a9ad 4294271c 00000000 4314e800 4430bf76 44bcde67 00000000 435bb87a c41af08d 4455b0fc 00000000 4344143f c49bdd86 c318523e 00000000 4234def9 c41d4c77 c4c283d7 00000000 4359e291 44885422 c4a85334 00000000 43551010 4501fa86 43b7cf7f 00000000 436d95f1 437aba22 4436810e 00000000 43681686 c4388b1c 444c7e37 00000000 436a58cf c4c945be c3bb1f51 00000000 4293de80 c3b119a5 c49b7a4e 00000000 43808c48 442ba5ff c42ae77f 00000000 438cb89b 450b9e5c 4421aaa0 00000000 43074d09 43f8cd80 45087ffd 00000000 43640665 c413a2bd 440412d8 00000000 43453a3f c414f344 c34f889c 00000000 42e13733 c1b5b819 c303d844 00000000 43843bdb 4442b199 c41c4a09 00000000 43185bfa 43232fc1 42859eb1 00000000 4375958a 43572a30 44e46d3c 00000000 43194b4c c4b104cd 447e5c25 00000000 4211a892 c4622e75 c3d61197 00000000 438253a4 c1692a22 c3641e0e 00000000 43378b90 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000052 43820000 3f333333 00000000 42f00000 3d4ccccd 40400000 40800000 3f800000 -> 3ed38585 3efd08fe 3ed38585 3f2ddd54", + "43c9061d c4b347ad 42500000 4395cc18 41797ccf 00000000 42200000 436a03b0 43e82f0d 00000000 42a00000 c3cc6067 441a3747 00000000 42f00000 c46f7893 c27ed10d 00000000 43200000 c400f2f1 c484a98e 00000000 43480000 4445832e c49078e1 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 405ea9f8 40a107d2 405ea9f8 3e4c1fc4", + "44860440 43427874 421c0000 43a7e240 4151a010 00000000 435d82f2 446aec3b 44dabe01 00000000 43941ad7 c472bf7a 44c7a9bd 00000000 4362dd33 c4fcf299 c1e93fff 00000000 41d774ae c41c739b c4897490 00000000 42ebc8f9 44566377 c4ba8565 00000000 43912084 448549ee c12dc7fd 00000000 437606a3 446d7c54 44c534a9 00000000 433f4b18 c2bc12e4 432d5c2a 00000000 4287cd32 c4a4b7f7 423762fa 00000000 430ecce6 c4253a73 c481dddc 00000000 4320b77f 447bae74 c4f640cf 00000000 42e83826 445ad2c0 c2501c86 00000000 434e154b 43414272 438ff499 00000000 42552110 c46c7ea1 44f626a8 00000000 4370ff75 c3279083 4161a3c9 00000000 4342f07c c29f19bd c2e0de60 00000000 4376b146 43cd0c1a c463986d 00000000 42d6c9c0 43126ee1 c17f5835 00000000 4362cb6c 448be706 44bbc406 00000000 438e7411 c38b243f 44252c33 00000000 42ec597a c4772acb 43046c6b 00000000 43591bd7 c4afe8e5 c4e05b87 00000000 4259a9ca 443de0a0 c4f1dc09 00000000 437d35e2 448fe19c c33716b6 00000000 427ae77e 4425509f 44487d28 00000000 42630588 c43daa32 45021d55 00000000 430943ee c39f6ec6 426b2c4f 00000000 433ad1ba c4ad2566 c4c7c4aa 00000000 430ff4c4 4406e8dd c4c847a1 00000000 422154be 44c6f550 c3a71218 00000000 435328f7 439fd7f8 43af820d 00000000 4356f28e c380cd62 444ffcf5 00000000 4208b9e1 c510b43f 44087429 00000000 433a0cd9 c444d51f c44db962 00000000 4307c9d4 43cf008e c4b6efe8 00000000 42d11891 448987a8 c3900e24 00000000 433141c8 43bddcda 43bce950 00000000 425741ff c2cb10d6 43c5ea77 00000000 428aaa15 c48948ff 439e536d 00000000 42986e39 c4c010b8 c4b5ed21 00000000 42bf27fb 43c119e1 c4d17a98 00000000 435c7b67 447b845a c39e87b0 00000000 4387991e 44aee142 449dac4c 00000000 433b22f5 c3b65fa1 44debc7a 00000000 436e0108 c491f4ce 43c7e74f 00000000 43358fef c355e8b0 c33787bd 00000000 434e8ba1 4314eb2c c44fc1f8 00000000 4334cff2 4404df26 c344b664 00000000 4351c2b6 444547a3 44210324 00000000 43821f12 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000032 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 40000000 -> 3f1d126f 3fd2284a 3f1d126f 3e9eccd8", + "43c9061d c4b347ad 42500000 4395cc18 41797ccf 00000000 42200000 436a03b0 43e82f0d 00000000 42a00000 c3cc6067 441a3747 00000000 42f00000 c46f7893 c27ed10d 00000000 43200000 c400f2f1 c484a98e 00000000 43480000 4445832e c49078e1 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 405ea9f8 40a107d2 405ea9f8 3e4c1fc4", + "c393f3e7 4451ca67 436a0000 4391e979 428b1f4a 00000000 42200000 4255709c 44015052 00000000 42a00000 c4276942 439d7610 00000000 42f00000 c4282b7a c42b3a47 00000000 43200000 44025535 c48452e4 00000000 43480000 44adb971 4328bad4 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 00000000 42f00000 3d4ccccd 3f19999a 3f4ccccd 3f800000 -> 3f248890 3f2dab54 3f2474fb 3e90563c", + "c2c4eae7 43f506ec 41500000 42eee7f9 3fc6c7f7 00000000 43155d02 43aa791d 440ca969 00000000 42f4feab c2565feb 42d3f476 00000000 430f3de8 c44b36fd 42920b17 00000000 430abea2 c3fca6dd c42713ca 00000000 42ed6e5e 444508a1 c500abf5 00000000 434b32da 4510ada6 c3e13851 00000000 41c1b3b6 43db16fc 43eb2f77 00000000 436a7a27 c336f21f 4429dccc 00000000 433e040a c50aee9a 4428bb6f 00000000 43123f86 c4bca552 c4a4dcd0 00000000 43357154 41d39a42 c3237575 00000000 433e7571 44fc28f2 c453a970 00000000 43487300 43c1218b 43889b90 00000000 42d4b1ec c20508ab 440f9c15 00000000 430a84d7 c4534fef 43e6dc4e 00000000 43642f26 c43891f0 c3cff4cf 00000000 437695c9 c28322c8 c4b6fc6d 00000000 433fda4c 446b0795 c421ad0a 00000000 438e2abd 44a74cd6 44119ac1 00000000 43673587 43145807 4479dc02 00000000 4390362b c4874d0b 44665133 00000000 4379d91f c4628a9b c3900fe9 00000000 4364cf27 c29bb885 c3987f8c 00000000 432cbd03 44bba1db c4c435a7 00000000 438ca0ba 43815319 42576490 00000000 43446be8 4291e7ef 43464abc 00000000 41c47fbb c4a7c537 44d7f69b 00000000 430cd3f9 c48e2727 c2ea559b 00000000 4342a0cd c40dda54 c490ecf3 00000000 42f37a7b 43cf5092 c4261f10 00000000 439499c4 44209a47 3d42454e 00000000 4385c7ee 44a4446a 4503abb1 00000000 426556f0 c3cae7d1 444f3928 00000000 426384f0 c4919368 42ef9ff3 00000000 433f7ab0 c409980e c4312bff 00000000 42d42efd 42888a43 c3397ad8 00000000 42884f15 438505a0 c25d6398 00000000 437dbdbc 42e07479 42eac8f5 00000000 429b9b5f c32fc572 442c071e 00000000 425b0b59 c4aa9594 43d8d84b 00000000 433ecaeb c45e6166 c43d54c5 00000000 42bc6a60 430bdcac c46b5645 00000000 4360471b 44cb3f68 c430d1e3 00000000 42cd4326 44f271c4 44a6d41e 00000000 4269daa6 c1be4242 44044fbc 00000000 4376d497 c47fef4a 441021c3 00000000 4299c4ed c4869ae8 c4131be2 00000000 430102b0 c2d647c9 c4e7e898 00000000 434e9995 44d50443 c496a03b 00000000 42a3ddc6 4475ece6 43ce832b 00000000 439016bc 42580c4e 43a70c1a 00000000 42b47ae4 c4912868 447da3d4 00000000 43691077 c4b524bb c3dc1d23 00000000 43846a1a c419cae2 c50ee0aa 00000000 41eea9c8 4436eb69 c4444cbf 00000000 42a7d109 44721a85 433c96f0 00000000 42f85505 44364675 44ee2c6c 00000000 4350eb0f c4544c95 448c5994 00000000 43908968 c4aa9877 c2f59a64 00000000 42bb7a20 c4015a59 c47fe0eb 00000000 42057ef4 439197a8 c3f02f43 00000000 42d4ea57 448e7e55 c16a7013 00000000 4326302c 44920d37 44e3892a 00000000 437e81df c43f1763 44c9b81f 00000000 4353069e c3ab6b55 421f058f 00000000 42f15c9b c41d2dc2 c4451443 00000000 41ea0f77 44188e31 c4d7cc5f 00000000 433b36d7 44a1c3eb c38f5c73 00000000 4294c6c6 44944b29 44972898 00000000 433a4c6a c2cd10df 43d4193b 00000000 437a5f32 c45f3cb8 43944567 00000000 438896ce c4b29ebc c4942233 00000000 438f1dca 431b5106 c48f6605 00000000 4224f67c 446ec2c7 c3d71917 00000000 4372947e 44dceb32 4493d872 00000000 436c1188 c15b8bce 43d67718 00000000 433217e4 c4d67f77 4478f370 00000000 42eedc34 c4d5f28c c462b04c 00000000 43715c03 c3117b46 c5008e07 00000000 4228320e 44e4dc7d c4a64f00 00000000 436685b5 43edb885 43406f21 00000000 42bb0017 43c98feb 4510025c 00000000 42037722 c4c71af8 44b28a94 00000000 42e45c18 c4c784d8 c3e73882 00000000 429e4431 c3067825 c3ed90f4 00000000 42ec5e9f 44088311 c4165968 00000000 438cf348 43c2a417 428d31d6 00000000 433fc322 4423d105 44ce0844 00000000 42c96198 c45c0bea 449572cc 00000000 431b1b04 c3934212 c1b555c8 00000000 436f71be c4067849 c480d627 00000000 438909c0 4485d74e c4e360af 00000000 42e10fb9 441e6793 c182b42c 00000000 4377e0d8 43bf933c 4411119f 00000000 42f50dcb c45a3376 44ee3fe0 00000000 435d9dba c478fa0f 43008d5c 00000000 4337ebfd c48b8ee3 c4aa6b47 00000000 4300b9d4 44055f07 c4c4b7c0 00000000 42326b7a 4513e671 c40b1ea6 00000000 43540ccb 437305e6 43716547 00000000 4244da40 c3791ab9 44888732 00000000 428ecedc c4bea256 44041cd2 00000000 431e40ad c471197b c442be9e 00000000 4299001a 430cb168 c48fdc5b 00000000 428812d8 44be2c6c c4314673 00000000 43199e43 44006500 43a715fb 00000000 42e397ac c23e075f 451bd269 00000000 4253bd6f c434a82e 43d7f722 00000000 42bc316e c478edc8 c3ff9127 00000000 433cb3f8 c32d4310 c5015367 00000000 41f07783 4379ec40 c33a98eb 00000000 42c75d3c 446b61db 43b77ec5 00000000 4310539a 43e187ad 4515b50a 00000000 435b2e52 c3fb2b86 43e727bb 00000000 4361c3b4 c5113cd8 c4203458 00000000 433ea9f4 c3750f00 c44e43a6 00000000 4386bee6 4428377f c43e264e 00000000 4392ca80 446cd97b 431f3150 00000000 42b921d3 4391a70c 443081a6 00000000 42e8abe5 c49cc4ea 44dad062 00000000 41ce3d24 c477f0ba c27dc7bc 00000000 4225afd3 c4555d9e c4c623ca 00000000 42ee9309 44232402 c48ec44c 00000000 41fd8598 44bcc9e3 c269f325 00000000 4334fbf5 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000007d 43820000 3f333333 3fcccccd 42f00000 3eb33333 7149f2ca 71c9f2ca 40000000 -> 3f719f7c 401e9cc1 3f719f7c 3e90563c", + "433b2c46 43d3d981 43500000 4392c452 4277cdda 00000000 42200000 42a05894 44007212 00000000 42a00000 c420c473 43b71276 00000000 42f00000 c439096c c418d825 00000000 43200000 43bdd9f4 c48ba7b0 00000000 43480000 44aee446 c244ff0a 00000000 43700000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000006 43820000 3f333333 40800000 49742400 3f800000 3f19999a 3f4ccccd 40000000 -> 3f9d1e4b 40662a62 3f9d1e4b 3f44b788", + "c486ccb7 4464268f 42b60000 44088700 42475598 00000000 43258de7 44372289 44df86e2 00000000 43904267 42f00000 c2b40000 40e00000 42b80000 43200000 c2f00000 40e00000 42ba0000 43480000 c3160000 40e00000 42bc0000 43700000 c3340000 40e00000 42be0000 438c0000 c3520000 40e00000 42c00000 43a00000 c3700000 40e00000 42c20000 43b40000 c3870000 40e00000 42c40000 43c80000 c3960000 40e00000 42c60000 43dc0000 c3a50000 40e00000 42c80000 43f00000 c3b40000 40e00000 42ca0000 44020000 c3c30000 40e00000 42cc0000 440c0000 c3d20000 40e00000 42ce0000 44160000 c3e10000 40e00000 42d00000 44200000 c3f00000 40e00000 42d20000 442a0000 c3ff0000 40e00000 42d40000 44340000 c4070000 40e00000 42d60000 443e0000 c40e8000 40e00000 42d80000 44480000 c4160000 40e00000 42da0000 44520000 c41d8000 40e00000 42dc0000 445c0000 c4250000 40e00000 42de0000 44660000 c42c8000 40e00000 42e00000 44700000 c4340000 40e00000 42e20000 447a0000 c43b8000 40e00000 42e40000 44820000 c4430000 40e00000 42e60000 44870000 c44a8000 40e00000 42e80000 448c0000 c4520000 40e00000 42ea0000 44910000 c4598000 40e00000 42ec0000 44960000 c4610000 40e00000 42ee0000 449b0000 c4688000 40e00000 42f00000 44a00000 c4700000 40e00000 42f20000 44a50000 c4778000 40e00000 42f40000 44aa0000 c47f0000 40e00000 42f60000 44af0000 c4834000 40e00000 42f80000 44b40000 c4870000 40e00000 42fa0000 44b90000 c48ac000 40e00000 42fc0000 44be0000 c48e8000 40e00000 42fe0000 44c30000 c4924000 40e00000 43000000 44c80000 c4960000 40e00000 43010000 44cd0000 c499c000 40e00000 43020000 44d20000 c49d8000 40e00000 43030000 44d70000 c4a14000 40e00000 43040000 44dc0000 c4a50000 40e00000 43050000 44e10000 c4a8c000 40e00000 43060000 44e60000 c4ac8000 40e00000 43070000 44eb0000 c4b04000 40e00000 43080000 44f00000 c4b40000 40e00000 43090000 44f50000 c4b7c000 40e00000 430a0000 44fa0000 c4bb8000 40e00000 430b0000 44ff0000 c4bf4000 40e00000 430c0000 45020000 c4c30000 40e00000 430d0000 45048000 c4c6c000 40e00000 430e0000 45070000 c4ca8000 40e00000 430f0000 45098000 c4ce4000 40e00000 43100000 450c0000 c4d20000 40e00000 43110000 450e8000 c4d5c000 40e00000 43120000 45110000 c4d98000 40e00000 43130000 45138000 c4dd4000 40e00000 43140000 45160000 c4e10000 40e00000 43150000 45188000 c4e4c000 40e00000 43160000 451b0000 c4e88000 40e00000 43170000 451d8000 c4ec4000 40e00000 43180000 45200000 c4f00000 40e00000 43190000 45228000 c4f3c000 40e00000 431a0000 45250000 c4f78000 40e00000 431b0000 45278000 c4fb4000 40e00000 431c0000 452a0000 c4ff0000 40e00000 431d0000 452c8000 c5016000 40e00000 431e0000 452f0000 c5034000 40e00000 431f0000 45318000 c5052000 40e00000 43200000 45340000 c5070000 40e00000 43210000 45368000 c508e000 40e00000 43220000 45390000 c50ac000 40e00000 43230000 453b8000 c50ca000 40e00000 43240000 453e0000 c50e8000 40e00000 43250000 45408000 c5106000 40e00000 43260000 45430000 c5124000 40e00000 43270000 45458000 c5142000 40e00000 43280000 45480000 c5160000 40e00000 43290000 454a8000 c517e000 40e00000 432a0000 454d0000 c519c000 40e00000 432b0000 454f8000 c51ba000 40e00000 432c0000 45520000 c51d8000 40e00000 432d0000 45548000 c51f6000 40e00000 432e0000 45570000 c5214000 40e00000 432f0000 45598000 c5232000 40e00000 43300000 455c0000 c5250000 40e00000 43310000 455e8000 c526e000 40e00000 43320000 45610000 c528c000 40e00000 43330000 45638000 c52aa000 40e00000 43340000 45660000 c52c8000 40e00000 43350000 45688000 c52e6000 40e00000 43360000 456b0000 c5304000 40e00000 43370000 456d8000 c5322000 40e00000 43380000 45700000 c5340000 40e00000 43390000 45728000 c535e000 40e00000 433a0000 45750000 c537c000 40e00000 433b0000 45778000 c539a000 40e00000 433c0000 457a0000 c53b8000 40e00000 433d0000 457c8000 c53d6000 40e00000 433e0000 457f0000 c53f4000 40e00000 433f0000 4580c000 c5412000 40e00000 43400000 45820000 c5430000 40e00000 43410000 45834000 c544e000 40e00000 43420000 45848000 c546c000 40e00000 43430000 4585c000 c548a000 40e00000 43440000 45870000 c54a8000 40e00000 43450000 45884000 c54c6000 40e00000 43460000 45898000 c54e4000 40e00000 43470000 458ac000 c5502000 40e00000 43480000 458c0000 c5520000 40e00000 43490000 458d4000 c553e000 40e00000 434a0000 458e8000 c555c000 40e00000 434b0000 458fc000 c557a000 40e00000 434c0000 45910000 c5598000 40e00000 434d0000 45924000 c55b6000 40e00000 434e0000 45938000 c55d4000 40e00000 434f0000 4594c000 c55f2000 40e00000 43500000 45960000 c5610000 40e00000 43510000 45974000 c562e000 40e00000 43520000 45988000 c564c000 40e00000 43530000 4599c000 c566a000 40e00000 43540000 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 00000002 43820000 3f333333 3fcccccd 42f00000 3eb33333 00000000 00000000 3f800000 -> 3ef8c434 3f32636d 3efbcd58 3e549b04", + "c4b3e76c 444241a0 42500000 435b9579 4136dbcf 00000000 43945431 43041651 43830dcc 00000000 43652355 c48bf352 44d33444 00000000 434dc873 c3000002 c10833d3 00000000 433550ff c28b6e94 c30f7278 00000000 438d43a6 44a4de09 c4f12ff1 00000000 425a0d22 44d428d3 430976c5 00000000 434b973e 441d5713 44a7fc0b 00000000 438e7c40 c4ab19d7 44f2b987 00000000 41e038cc c455d2d5 c2a36170 00000000 43908b8d c3801d60 c40e138a 00000000 431363cc 43396792 c37f2156 00000000 437ac80c 439f85f6 420c7863 00000000 42150b58 4428e36e 44c2bb96 00000000 43837958 c47c7670 44a88b01 00000000 4294d48d c40641aa c285e8ba 00000000 4232d05c c40ca53f c4a8ca3a 00000000 4378763b 42cfefd3 c306ba40 00000000 430371e3 44b979fd 434ebfb9 00000000 43421a7a 42b44286 43616d19 00000000 43047467 c2892c2a 42ac8e8b 00000000 4332087f c4f373b1 c39604df 00000000 42b3908c c4071e02 c4b04c5b 00000000 4347459e 43fd006f c41a827e 00000000 4208fda6 44c75602 43869ead 00000000 42421b44 4351a83b 440ee820 00000000 42cc9909 c48345c8 449bb4d1 00000000 42125362 c4abe6d8 c37c9d2e 00000000 433a98a6 c43a8ecd c5050f9b 00000000 42b796d8 4488f948 c49dcc59 00000000 43638b9c 4518e99d 43f2fa58 00000000 4271681e 4436363e 450837cb 00000000 437c8686 c49f0216 44b1f01c 00000000 438026fe c4af2be6 c395b304 00000000 43814487 c3f349af c4befb18 00000000 428c07fa 4424afd0 c4330845 00000000 42decd7b 4513cf17 44073fe5 00000000 438a0efc 442d8bbd 450f5844 00000000 434b07a5 c493ef20 449c3dfb 00000000 437f587e c4222d07 c31e43fc 00000000 43128220 c4066f1d c4ea31b9 00000000 4340306c 43e81d81 c3ee2e59 00000000 4330577c 4514ae2d 441a3491 00000000 43869616 439ae709 448ea55a 00000000 43226a3e c4068e80 440626bb 00000000 430d975e c49c9b56 c3ac1805 00000000 42dea520 c4161f98 c5129034 00000000 42da3948 44400c36 c43a07ca 00000000 43826b94 44c6d8dc 43e6e324 00000000 438edae5 4396e0d8 449ca83c 00000000 43643dd5 c35d19fc 4350154a 00000000 430efc77 c485b6e4 c3a3a64d 00000000 4312ff68 c3cdea28 c4e43378 00000000 4385fba4 44224024 c4145936 00000000 435e4c43 43a49d73 42d3e418 00000000 438636f8 43ed8fd2 450d12ed 00000000 4210bc80 c2dcc99b 42c41aba 00000000 4299b2ee c50fdfe9 c44262e4 00000000 42fe5060 c3dac9b9 c50be58c 00000000 42f0366f 44ca1d48 c4ae6032 00000000 4382f138 4475cf34 43adfc47 00000000 420467d2 4383e7ac 44b69e10 00000000 42939fb6 c4a5b2bc 448ad7eb 00000000 41f43fa8 c461b848 c3a71faa 00000000 434a4234 c358c6a6 c4a37e3e 00000000 423c3b16 42ae5790 c28ddcb8 00000000 435f71b1 44586d7a 43a75f50 00000000 431dfe64 43126575 44726ffe 00000000 42e181b4 c3da9fe9 43acb878 00000000 436eefe3 c4efcdc3 c4416fe4 00000000 423c53dc c344a113 c4b46166 00000000 435ffd97 44553a65 c4238580 00000000 430092b5 4499e952 440156a4 00000000 430fbb25 42c9a36d 444f404d 00000000 4369e56c c43b5358 440b6b0e 00000000 41cf9cce c5087fe5 c46ebaa1 00000000 42caf529 c21191e4 c3aa0683 00000000 4344d73b 443ee95e c409dbcb 00000000 41f53bb8 44f6e532 44606df7 00000000 42aa10aa 433460d1 44f3d985 00000000 43582457 c48b83c0 44436f9c 00000000 4350ab77 c4098067 c381cd3a 00000000 41ad0134 c32c4d09 c50a24e7 00000000 4293fef2 44bb391d c47e4d73 00000000 432790ce 44ec7b40 4467a0ac 00000000 43470d71 420e374b 440c07c0 00000000 425deb6d c4911239 443effdb 00000000 4366654f c43619f1 c3b8eb31 00000000 434e068d c2a05b66 c4cc6faf 00000000 4291eb66 44b5dd54 c468003e 00000000 42acbd25 44cd3c28 4457e72d 00000000 433ac26f 41e50db8 444eeade 00000000 431d0e95 c3beb1b5 436b9aef 00000000 435bf745 c4afd8d7 c43f8161 00000000 435bc798 c10e3dc0 c3dc6413 00000000 42e0327b 448376b9 c41d3ced 00000000 439027f4 42ccb7fb 4266a7eb 00000000 42561b63 4107706a 44b7ae4c 00000000 4386c984 c49102da 4427d07c 00000000 43041b2c c48de2f6 c4254afa 00000000 42dc4d73 417fe3ca c4e73dfa 00000000 436e328f 44fdd280 c48e0708 00000000 435a40e7 44dfcd51 4486b7c0 00000000 437af18e c22ffde1 44ee8d5d 00000000 42ebac6a c445a9ae 43d5c9a6 00000000 43543326 c45fbee4 c40b1d1a 00000000 43507e5b 425680ee c4b2d793 00000000 432a871c 45066678 c48c65e4 00000000 438c4680 44501288 44059013 00000000 435e3b80 c2e08f5e 45072ba4 00000000 428609a6 c4a3143d 44246ade 00000000 4395e45b c4556a6b c40d5fe9 00000000 4321ff85 4206eb23 c3fe1841 00000000 42ab0018 43addb6e c3290c04 00000000 4308e930 43dc68f5 43969f8a 00000000 430610e6 c2126c9e 43e25da0 00000000 42ae86ef c4c4feae 4438935d 00000000 42ef05dd c486c228 c43def39 00000000 438f4904 4321a791 c4d3da54 00000000 433ab2f6 44c00026 c42d31f8 00000000 42db619b 44f338d9 44b0b3b2 00000000 42c2bff2 c2dd8512 447bddda 00000000 4313918c c505ea13 44685e96 00000000 4372ce6f 459b0000 c5688000 40e00000 43550000 459c4000 c56a6000 40e00000 43560000 459d8000 c56c4000 40e00000 43570000 459ec000 c56e2000 40e00000 43580000 45a00000 c5700000 40e00000 43590000 0000007b 43820000 3f333333 3fcccccd 42f00000 3eb33333 3f19999a 3f4ccccd 3f800000 -> 3f1796ad 3f2abc83 3f147ad8 3f6031e3" + ] } ] } diff --git a/packages/cultmath/tools/compile-glsl.ps1 b/packages/cultmath/tools/compile-glsl.ps1 index 45929cac..820feaf4 100644 --- a/packages/cultmath/tools/compile-glsl.ps1 +++ b/packages/cultmath/tools/compile-glsl.ps1 @@ -29,12 +29,21 @@ if ($Phacelle) { if ($Cycles) { $library += Get-Content -LiteralPath (Join-Path $repoRoot "shaders\CultMath.Cycles.glsl") -Raw } +# A parameter of a struct type the library declares is passed as that struct's constructor with each +# field's zero, read from its declaration (a field may be a struct itself); every other type is its zero. +$structs = @{} +foreach ($declaration in [regex]::Matches($library, '(?s)struct (\w+)\s*\{(.*?)\};')) { + $structs[$declaration.Groups[1].Value] = @([regex]::Matches($declaration.Groups[2].Value, '(?m)^\s*(\w+)\s+\w+\s*;') | ForEach-Object { $_.Groups[1].Value }) +} +function Get-Zero([string]$type) { + if ($structs.ContainsKey($type)) { return "$type($((@($structs[$type] | ForEach-Object { Get-Zero $_ })) -join ', '))" } + if ($type -eq 'int' -or $type -like 'ivec*') { return "$type(0)" } + if ($type -eq 'uint' -or $type -like 'uvec*') { return "$type(0u)" } + return "$type(0.0)" +} $calls = foreach ($match in [regex]::Matches($library, '(?m)^\w+\s+(cultmath_\w+)\s*\(([^)]*)\)')) { - $arguments = foreach ($parameter in ($match.Groups[2].Value -split ',')) { - $type = ($parameter.Trim() -split '\s+')[0] - if ($type -eq 'int' -or $type -like 'ivec*') { "$type(0)" } - elseif ($type -eq 'uint' -or $type -like 'uvec*') { "$type(0u)" } - else { "$type(0.0)" } + $arguments = foreach ($parameter in ($match.Groups[2].Value -split ',' | Where-Object { $_.Trim() })) { + Get-Zero (($parameter.Trim() -split '\s+')[0]) } " $($match.Groups[1].Value)($($arguments -join ', '));" } diff --git a/packages/cultmath/tools/compile-hlsl.ps1 b/packages/cultmath/tools/compile-hlsl.ps1 new file mode 100644 index 00000000..6e19ec82 --- /dev/null +++ b/packages/cultmath/tools/compile-hlsl.ps1 @@ -0,0 +1,42 @@ +param( + # The HLSL files to compile, each as a lib_6_3 library with its own directory as the include path. + # Default: both copies of CultMath.hlsl (the canonical one and the Unity package's byte copy). + # tools\compile-hlsl.ps1 -ShaderPath is the negative control. + [string[]]$ShaderPath = @(), + # The dxc to run. Default: the x64 install get-dxc.ps1 makes; it is never searched for, so a dxc + # that cannot launch (one built for another architecture) is an error, not a skipped check. + [string]$DxcPath = "" +) + +$ErrorActionPreference = "Stop" + +$repoRoot = Resolve-Path (Join-Path $PSScriptRoot "..") +if (-not $DxcPath) { + $DxcPath = Join-Path $repoRoot ".tools\dxc\current\bin\x64\dxc.exe" +} +if (-not $ShaderPath) { + $ShaderPath = @( + (Join-Path $repoRoot "shaders\CultMath.hlsl"), + (Join-Path $repoRoot "unity\org.gamecult.cultmath\Shaders\CultMath.hlsl")) +} +if (-not (Test-Path -LiteralPath $DxcPath)) { + throw "dxc not found (parameter DxcPath). Run tools\get-dxc.ps1 first or pass -DxcPath." +} + +$outputDirectory = Join-Path $repoRoot ".tools\hlsl" +New-Item -ItemType Directory -Force -Path $outputDirectory | Out-Null + +$index = 0 +foreach ($shader in $ShaderPath) { + $index++ + if (-not (Test-Path -LiteralPath $shader -PathType Leaf)) { + throw "shader not found (parameter ShaderPath, entry $index)." + } + $shaderFile = Get-Item -LiteralPath $shader + $output = Join-Path $outputDirectory "$index-$($shaderFile.BaseName).dxil" + & $DxcPath -T lib_6_3 -HV 2021 -WX -I $shaderFile.DirectoryName $shaderFile.FullName -Fo $output + if ($LASTEXITCODE -ne 0) { + throw "dxc failed with exit code $LASTEXITCODE (parameter ShaderPath, entry $index)." + } + Write-Host "compiled shader $index of $(@($ShaderPath).Count) (lib_6_3, -HV 2021, -WX)" +} diff --git a/packages/cultmath/tools/compile-hlsl.ps1.meta b/packages/cultmath/tools/compile-hlsl.ps1.meta new file mode 100644 index 00000000..d59a4297 --- /dev/null +++ b/packages/cultmath/tools/compile-hlsl.ps1.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3f6c1e7a9b2d4c58a0e4d7b1c95f2a86 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/packages/cultmath/tools/device/gen.py b/packages/cultmath/tools/device/gen.py new file mode 100644 index 00000000..52e074c7 --- /dev/null +++ b/packages/cultmath/tools/device/gen.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 +"""Spell one compute shader per work item, in HLSL and in GLSL ES 3.10. It compares and judges nothing. + +usage: gen.py + +/manifest.txt (written by GlslMirrorTests.WriteDeviceWork) has one tab-separated line per item: +tag, fixture index, glsl signature, n, words in, words out. For each item this writes .hlsl (cs_6_0, +includes CultMath.hlsl) and .comp (#version 310 es, the committed GLSL files, then the body). An item +reads n argument tuples of 32-bit words from binding 0 and writes n result tuples to binding 1. Struct +arguments and results are built and flattened in field order, from the struct definitions in the HLSL.""" +import glob +import os +import re +import sys + +HLSL_VEC = re.compile(r'(float|int|uint)([234])$') +GLSL_VEC = re.compile(r'(i|u|)vec([234])$') +KIND = {'float': 'f', 'int': 'i', 'uint': 'u'} +ARRAY = re.compile(r'(\w+)\[(\d+)\]$') # an array leaf, vec4[128]: N elements of one leaf type, N x its words + + +def structs(root): + """struct name -> [(field, type, hlsl)] from every shader's struct definitions, GLSL type names.""" + found = {} + for path in sorted(glob.glob(os.path.join(root, 'shaders', '*.hlsl'))): + for name, body in re.findall(r'(?m)^struct (\w+)\s*\{(.*?)\};', open(path).read(), re.S): + found[name] = [(f, t) for t, f in re.findall(r'(\w+)\s+(\w+);', body)] + return found + + +def leaves(t, defs, path=''): + """Flatten a type (GLSL spelling for scalars and vectors, HLSL for struct fields) to scalar leaves: + (accessor path, kind) in field order. A vector's components are path[i]; a mat3 is read row by row.""" + if t in KIND: + return [(path, KIND[t], None)] + m = HLSL_VEC.match(t) or GLSL_VEC.match(t) + if m: + k = {'float': 'f', 'int': 'i', 'uint': 'u', '': 'f', 'i': 'i', 'u': 'u'}[m.group(1)] + return [(path, k, i) for i in range(int(m.group(2)))] + if t in ('mat3', 'float3x3'): + return [(path, 'f', (i, j)) for i in range(3) for j in range(3)] + if t in defs: + out = [] + for field, ft in defs[t]: + out += leaves(ft, defs, path + '.' + field) + return out + raise SystemExit('unsupported type ' + t) + + +def access(leaf, glsl): + path, _, index = leaf + if index is None: + return path + if isinstance(index, tuple): # row i, column j; GLSL matrices index the column first + return '%s[%d][%d]' % ((path,) + ((index[1], index[0]) if glsl else index)) + return '%s[%d]' % (path, index) + + +def read(kind, glsl, word): + if glsl: + return {'f': 'uintBitsToFloat(%s)', 'i': 'int(%s)', 'u': '%s'}[kind] % word + return {'f': 'asfloat(%s)', 'i': 'asint(%s)', 'u': '%s'}[kind] % word + + +def write(kind, glsl, value): + if glsl: + return {'f': 'floatBitsToUint(%s)', 'i': 'uint(%s)', 'u': '%s'}[kind] % value + return {'f': 'asuint(%s)', 'i': 'asuint(%s)', 'u': '%s'}[kind] % value + + +def hlsl_type(t): + m = GLSL_VEC.match(t) + if m: + return {'': 'float', 'i': 'int', 'u': 'uint'}[m.group(1)] + m.group(2) + return 'float3x3' if t == 'mat3' else t + + +def body(sig, n, win, wout, defs, glsl): + m = re.fullmatch(r'(\w+)\s+(\w+)\((.*)\)', sig) + ret, name, params = m.group(1), m.group(2), [p.strip() for p in m.group(3).split(',') if p.strip()] + lines, offset, args = [], 0, [] + for j, p in enumerate(params): + array = ARRAY.match(p) + if array: + elem, size = array.group(1), int(array.group(2)) + words = leaves(elem, defs) + lines.append(' %s a%d[%d];' % (elem if glsl else hlsl_type(elem), j, size)) + lines.append(' for (uint e = 0u; e < %du; e++) {' % size) + for k, leaf in enumerate(words): + word = ('In.a[b + %du + e * %du]' if glsl else 'In[b + %du + e * %du]') % (offset + k, len(words)) + lines.append(' a%d[e]%s = %s;' % (j, access(leaf, glsl), read(leaf[1], glsl, word))) + lines.append(' }') + offset += size * len(words) + args.append('a%d' % j) + continue + ptype = p if glsl else hlsl_type(p) + lines.append(' %s a%d;' % (ptype, j)) + for leaf in leaves(p, defs): + word = ('In.a[b + %du]' if glsl else 'In[b + %d]') % offset + lines.append(' a%d%s = %s;' % (j, access(leaf, glsl), read(leaf[1], glsl, word))) + offset += 1 + args.append('a%d' % j) + rtype = ret if glsl else hlsl_type(ret) + lines.append(' %s r = %s(%s);' % (rtype, name, ', '.join(args))) + produced = leaves(ret, defs) + for k, leaf in enumerate(produced): + target = ('Out.a[o + %du]' if glsl else 'Out[o + %d]') % k + lines.append(' %s = %s;' % (target, write(leaf[1], glsl, 'r' + access(leaf, glsl)))) + if offset != win or len(produced) != wout: + raise SystemExit('%s: %d words in and %d out, the manifest says %d and %d' % (sig, offset, len(produced), win, wout)) + head = 'uint i = id.x; if (i >= %du) return; uint b = i * %du; uint o = i * %du;' % (n, win, wout) + return head, '\n'.join(lines) + + +def main(work, root): + defs = structs(root) + shaders = os.path.join(root, 'shaders') + built = os.environ.get('GLSL_DIR') + parts = [os.path.join(built, f) for f in ('core.glsl', 'cycles.glsl', 'phacelle.glsl')] if built else [os.path.join(shaders, f) for f in ('CultMath.glsl', 'CultMath.Cycles.glsl', 'CultMath.Phacelle.glsl')] + library = ''.join(open(p).read() for p in parts) + count = 0 + for line in open(os.path.join(work, 'manifest.txt')): + tag, _, sig, n, win, wout = line.rstrip('\n').split('\t') + n, win, wout = int(n), int(win), int(wout) + head, code = body(sig, n, win, wout, defs, False) + open(os.path.join(work, tag + '.hlsl'), 'w').write( + '#include "CultMath.hlsl"\n[[vk::binding(0)]] StructuredBuffer In;\n[[vk::binding(1)]] RWStructuredBuffer Out;\n' + '[numthreads(64, 1, 1)] void main(uint3 id : SV_DispatchThreadID) {\n %s\n%s\n}\n' % (head, code)) + head, code = body(sig, n, win, wout, defs, True) + open(os.path.join(work, tag + '.comp'), 'w').write( + '#version 310 es\nprecision highp float;\nprecision highp int;\n' + library + + 'layout(local_size_x = 64) in;\nlayout(std430, binding = 0) readonly buffer IB { uint a[]; } In;\n' + 'layout(std430, binding = 1) buffer OB { uint a[]; } Out;\n' + 'void main() {\n uint i = gl_GlobalInvocationID.x; %s\n%s\n}\n' % (head.replace('uint i = id.x; ', ''), code)) + count += 1 + print('generated', count, 'work items') + + +if __name__ == '__main__': + main(sys.argv[1], sys.argv[2]) diff --git a/packages/cultmath/tools/device/nocontract.py b/packages/cultmath/tools/device/nocontract.py new file mode 100644 index 00000000..26a200a7 --- /dev/null +++ b/packages/cultmath/tools/device/nocontract.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +"""The strict-form harness pass of the GLSL equality gate: decorates the result of every OpFMul, OpFAdd, OpFSub, +OpVectorTimesScalar and OpDot NoContraction, so the driver may not fuse them into a multiply-add. Binary, instruction +level, reusing spvedit.py's load and mk. It lives in the gate's job-local modules only, never in shipped GLSL. + +usage: nocontract.py prints the count of decorated results""" +import importlib.util, os, struct, sys + +here = os.path.dirname(os.path.abspath(__file__)) +spec = importlib.util.spec_from_file_location('spvedit', os.path.join(here, '..', 'glsl', 'spvedit.py')) +spvedit = importlib.util.module_from_spec(spec) +spec.loader.exec_module(spvedit) + +OP_DOT, OP_FADD, OP_FSUB, OP_FMUL, OP_VECTOR_TIMES_SCALAR = 148, 129, 131, 133, 142 +FLOAT_OPS = (OP_FADD, OP_FSUB, OP_FMUL, OP_VECTOR_TIMES_SCALAR, OP_DOT) +DECORATION_NO_CONTRACTION = 42 +FIRST_TYPE_OP, LAST_TYPE_OP = 19, 39 # OpTypeVoid .. OpTypeForwardPointer: the annotations end where types begin + + +def main(src, dst): + h, ins = spvedit.load(src) + done = {x[1] for x in ins if spvedit.op(x) == spvedit.OP_DECORATE and x[2] == DECORATION_NO_CONTRACTION} + ids = [x[2] for x in ins if spvedit.op(x) in FLOAT_OPS and x[2] not in done] + at = next((k for k, x in enumerate(ins) if FIRST_TYPE_OP <= spvedit.op(x) <= LAST_TYPE_OP), None) + if at is None: + sys.exit('refuse: no type section to place the decorations before') + ins[at:at] = [spvedit.mk(spvedit.OP_DECORATE, i, DECORATION_NO_CONTRACTION) for i in ids] + words = h + [v for x in ins for v in x] + open(dst, 'wb').write(struct.pack('<%dI' % len(words), *words)) + print('nocontract: %d results decorated' % len(ids)) + + +if __name__ == '__main__': + main(*sys.argv[1:3]) diff --git a/packages/cultmath/tools/device/run-lavapipe.sh b/packages/cultmath/tools/device/run-lavapipe.sh new file mode 100644 index 00000000..2cbb1aaa --- /dev/null +++ b/packages/cultmath/tools/device/run-lavapipe.sh @@ -0,0 +1,85 @@ +#!/usr/bin/env bash +# The lavapipe conforming run: every fixture family, through HLSL (dxc) and GLSL (glslang), on Mesa lavapipe, +# judged by GlslMirrorTests.DeviceResultsHoldFixture. This script spells, compiles and dispatches; the C# judge +# is the only thing that compares. +# +# Run from the CultLib root inside mcr.microsoft.com/dotnet/sdk:10.0 (Ubuntu 24.04), for example +# SUMMARY= tools/stopgap/ygg-verify.sh mcr.microsoft.com/dotnet/sdk:10.0 'bash packages/cultmath/tools/device/run-lavapipe.sh' +# GLSL_DIR= (the output of tools/glsl/build-glsl.sh) runs the built +# route instead of the committed one and skips the bounds judge: every lavapipe-glsl/.out must equal its +# lavapipe-hlsl/.out byte for byte, and a difference exits 1. It records no bounds. That compare is in strict form: +# dxc gets -Gis and nocontract.py decorates every float result of both modules NoContraction, so the two routes cannot +# differ by a fused multiply-add. +# WRITE_BOUNDS=1 re-records packages/cultmath/tests/CultMath.Tests/fixtures/device-bounds-lavapipe.txt and prints it +# between BOUNDS-BEGIN and BOUNDS-END, because the job's clone is discarded. +set -euo pipefail +ROOT=$(pwd) +CM=$ROOT/packages/cultmath +TESTS=$CM/tests/CultMath.Tests +DEV=$CM/tools/device +W=/tmp/device +SNAPSHOT=20261016T000000Z +DXC_URL=https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.9.2607/linux_dxc_2026_07_29.x86_x64.tar.gz +DXC_SHA=55665c87824051ed4774ff3280a79ccbbb7d39243b9736ca5e98222134112d54 +mkdir -p "$W/dxc" "$W/results/lavapipe-hlsl" "$W/results/lavapipe-glsl" + +export DEBIAN_FRONTEND=noninteractive +apt-get update -qq --snapshot "$SNAPSHOT" >/dev/null +apt-get install -y -qq --no-install-recommends mesa-vulkan-drivers libvulkan-dev glslang-tools spirv-tools gcc libc6-dev curl ca-certificates python3 >/dev/null + +curl -sL --fail -o "$W/dxc.tgz" "$DXC_URL" +echo "$DXC_SHA $W/dxc.tgz" | sha256sum -c - >/dev/null || { echo "dxc tarball sha256 differs from the pinned one"; exit 1; } +tar xzf "$W/dxc.tgz" -C "$W/dxc" +DXC=$(find "$W/dxc" -name dxc -type f | head -1) +export LD_LIBRARY_PATH=$(dirname "$DXC")/../lib:$(dirname "$DXC")${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +gcc -O2 -o "$W/vkrun" "$DEV/vkrun.c" -lvulkan + +dotnet build "$TESTS" -nologo -v q >/dev/null +GLSL_DIR=${GLSL_DIR:+$(realpath "$GLSL_DIR")}; export GLSL_DIR +export CULTMATH_DEVICE_WORK=$W/work +dotnet test "$TESTS" --no-build --filter "FullyQualifiedName~GlslMirrorTests.WriteDeviceWork" +python3 "$DEV/gen.py" "$W/work" "$CM" + +STRICT=(); [ -z "${GLSL_DIR:-}" ] || STRICT=(-Gis) +while IFS=$'\t' read -r tag _ _ n _ wout; do + in=$W/work/$tag.in + "$DXC" -T cs_6_0 -E main -HV 2021 "${STRICT[@]}" -spirv -fspv-target-env=vulkan1.2 -I "$CM/shaders" "$W/work/$tag.hlsl" -Fo "$W/work/$tag.h.spv" >"$W/work/$tag.h.log" 2>&1 \ + || { echo "dxc failed for $tag"; head -5 "$W/work/$tag.h.log"; exit 1; } + glslangValidator -V --target-env vulkan1.2 -o "$W/work/$tag.g.spv" "$W/work/$tag.comp" >"$W/work/$tag.g.log" 2>&1 \ + || { echo "glslang failed for $tag"; head -5 "$W/work/$tag.g.log"; exit 1; } + if [ -n "${GLSL_DIR:-}" ]; then + for m in h g; do + python3 "$DEV/nocontract.py" "$W/work/$tag.$m.spv" "$W/work/$tag.$m.nc.spv" >>"$W/nocontract.txt" + mv "$W/work/$tag.$m.nc.spv" "$W/work/$tag.$m.spv" + done + fi + "$W/vkrun" "$W/work/$tag.h.spv" "$in" "$W/results/lavapipe-hlsl/$tag.out" "$n" "$wout" >>"$W/device.txt" + "$W/vkrun" "$W/work/$tag.g.spv" "$in" "$W/results/lavapipe-glsl/$tag.out" "$n" "$wout" >>"$W/device.txt" +done <"$W/work/manifest.txt" + +if [ -n "${GLSL_DIR:-}" ]; then + total=0; equal=0 + for h in "$W"/results/lavapipe-hlsl/*.out; do + tag=$(basename "$h" .out); total=$((total + 1)) + if cmp -s "$h" "$W/results/lavapipe-glsl/$tag.out"; then equal=$((equal + 1)); else echo "differs: $tag"; fi + done + echo "strict form: $(wc -l <"$W/nocontract.txt") modules rewritten, $(awk '{n += $2} END {print n}' "$W/nocontract.txt") results decorated NoContraction" + echo "lavapipe-glsl equals lavapipe-hlsl: $equal/$total" + [ "$equal" = "$total" ] && [ "$total" -gt 0 ] + exit +fi + +RENDERER=$(sort -u "$W/device.txt") +[ "$(echo "$RENDERER" | wc -l)" = 1 ] || { echo "the runs saw more than one device: $RENDERER"; exit 1; } +export CULTMATH_DEVICE_NAME=${RENDERER#device=} +export CULTMATH_DEVICE_IDENTITY="$(dpkg-query -W -f='${Package} ${Version}; ' mesa-vulkan-drivers glslang-tools)dxc $("$DXC" --version | head -1); apt snapshot $SNAPSHOT" +export CULTMATH_DEVICE_RESULTS=$W/results +echo "outputs sha256: $(cd "$W/results" && find . -type f | sort | xargs sha256sum | sha256sum | cut -c1-64)" +echo "device: $CULTMATH_DEVICE_NAME" +echo "identity: $CULTMATH_DEVICE_IDENTITY" + +if [ "${WRITE_BOUNDS:-0}" = 1 ]; then + export CULTMATH_WRITE_DEVICE_BOUNDS=1 + trap 'echo BOUNDS-BEGIN; cat "$TESTS/fixtures/device-bounds-lavapipe.txt"; echo BOUNDS-END' EXIT +fi +dotnet test "$TESTS" --no-build --filter "FullyQualifiedName~GlslMirrorTests.DeviceResultsHoldFixture|FullyQualifiedName~GlslMirrorTests.CommittedShadersCarryNoReducedPrecisionQualifier" --logger "console;verbosity=detailed" diff --git a/packages/cultmath/tools/device/vkrun.c b/packages/cultmath/tools/device/vkrun.c new file mode 100644 index 00000000..0df21d8d --- /dev/null +++ b/packages/cultmath/tools/device/vkrun.c @@ -0,0 +1,83 @@ +// Vulkan compute host for the conforming run: one dispatch of a generated shader on the first Vulkan device, +// binding 0 = input words, binding 1 = output words. It prints the device's name on stdout and judges nothing. +// usage: vkrun +#include +#include +#include +#include +#define CK(x) do { VkResult r_ = (x); if (r_ != VK_SUCCESS) { fprintf(stderr, "FAIL %s = %d\n", #x, r_); exit(2); } } while (0) + +static void *slurp(const char *p, size_t *n) { + FILE *f = fopen(p, "rb"); if (!f) { perror(p); exit(2); } + fseek(f, 0, SEEK_END); *n = ftell(f); fseek(f, 0, SEEK_SET); + void *b = malloc(*n ? *n : 4); if (fread(b, 1, *n, f) != *n) exit(2); fclose(f); return b; +} + +int main(int argc, char **argv) { + if (argc != 6) { fprintf(stderr, "usage\n"); return 2; } + size_t spvn, inn; void *spv = slurp(argv[1], &spvn); void *in = slurp(argv[2], &inn); + unsigned ncases = atoi(argv[4]), ow = atoi(argv[5]); const char *entry = "main"; + size_t outn = (size_t)ncases * ow * 4; + + VkApplicationInfo ai = { VK_STRUCTURE_TYPE_APPLICATION_INFO, 0, "vkrun", 1, "vkrun", 1, VK_API_VERSION_1_2 }; + VkInstanceCreateInfo ici = { VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, 0, 0, &ai }; + VkInstance inst; CK(vkCreateInstance(&ici, 0, &inst)); + uint32_t np = 1; VkPhysicalDevice pd; vkEnumeratePhysicalDevices(inst, &np, &pd); if (!np) { fprintf(stderr, "no device\n"); return 2; } + VkPhysicalDeviceProperties props; + vkGetPhysicalDeviceProperties(pd, &props); + printf("device=%s\n", props.deviceName); + + float prio = 1; VkDeviceQueueCreateInfo qci = { VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, 0, 0, 0, 1, &prio }; + VkDeviceCreateInfo dci = { VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, 0, 0, 1, &qci }; + VkDevice dev; CK(vkCreateDevice(pd, &dci, 0, &dev)); VkQueue q; vkGetDeviceQueue(dev, 0, 0, &q); + + VkPhysicalDeviceMemoryProperties mp; vkGetPhysicalDeviceMemoryProperties(pd, &mp); + VkBuffer buf[2]; VkDeviceMemory mem[2]; size_t sz[2] = { inn, outn }; void *map[2]; + for (int i = 0; i < 2; i++) { + VkBufferCreateInfo bci = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, 0, 0, sz[i], VK_BUFFER_USAGE_STORAGE_BUFFER_BIT }; + CK(vkCreateBuffer(dev, &bci, 0, &buf[i])); VkMemoryRequirements mr; vkGetBufferMemoryRequirements(dev, buf[i], &mr); + uint32_t t = 0; VkMemoryPropertyFlags want = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + for (; t < mp.memoryTypeCount; t++) if ((mr.memoryTypeBits & (1u << t)) && (mp.memoryTypes[t].propertyFlags & want) == want) break; + VkMemoryAllocateInfo mai = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, 0, mr.size, t }; + CK(vkAllocateMemory(dev, &mai, 0, &mem[i])); CK(vkBindBufferMemory(dev, buf[i], mem[i], 0)); + CK(vkMapMemory(dev, mem[i], 0, sz[i], 0, &map[i])); + } + memcpy(map[0], in, inn); memset(map[1], 0xEE, outn); + + VkDescriptorSetLayoutBinding b[2] = { { 0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, VK_SHADER_STAGE_COMPUTE_BIT }, + { 1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, VK_SHADER_STAGE_COMPUTE_BIT } }; + VkDescriptorSetLayoutCreateInfo lci = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO, 0, 0, 2, b }; + VkDescriptorSetLayout dsl; CK(vkCreateDescriptorSetLayout(dev, &lci, 0, &dsl)); + VkPipelineLayoutCreateInfo plci = { VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, 0, 0, 1, &dsl }; + VkPipelineLayout pl; CK(vkCreatePipelineLayout(dev, &plci, 0, &pl)); + VkShaderModuleCreateInfo smci = { VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, 0, 0, spvn, spv }; + VkShaderModule sm; CK(vkCreateShaderModule(dev, &smci, 0, &sm)); + VkComputePipelineCreateInfo cpci = { VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO, 0, 0, + { VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, 0, 0, VK_SHADER_STAGE_COMPUTE_BIT, sm, entry }, pl }; + VkPipeline pipe; CK(vkCreateComputePipelines(dev, 0, 1, &cpci, 0, &pipe)); + + VkDescriptorPoolSize ps = { VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 2 }; + VkDescriptorPoolCreateInfo dpci = { VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO, 0, 0, 1, 1, &ps }; + VkDescriptorPool dp; CK(vkCreateDescriptorPool(dev, &dpci, 0, &dp)); + VkDescriptorSetAllocateInfo dsai = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO, 0, dp, 1, &dsl }; + VkDescriptorSet ds; CK(vkAllocateDescriptorSets(dev, &dsai, &ds)); + VkDescriptorBufferInfo dbi[2] = { { buf[0], 0, VK_WHOLE_SIZE }, { buf[1], 0, VK_WHOLE_SIZE } }; + VkWriteDescriptorSet w[2]; + for (int i = 0; i < 2; i++) { VkWriteDescriptorSet x = { VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, 0, ds, i, 0, 1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 0, &dbi[i] }; w[i] = x; } + vkUpdateDescriptorSets(dev, 2, w, 0, 0); + + VkCommandPoolCreateInfo cpi = { VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, 0, 0, 0 }; + VkCommandPool cp; CK(vkCreateCommandPool(dev, &cpi, 0, &cp)); + VkCommandBufferAllocateInfo cbai = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, 0, cp, VK_COMMAND_BUFFER_LEVEL_PRIMARY, 1 }; + VkCommandBuffer cb; CK(vkAllocateCommandBuffers(dev, &cbai, &cb)); + VkCommandBufferBeginInfo cbbi = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO }; + CK(vkBeginCommandBuffer(cb, &cbbi)); + vkCmdBindPipeline(cb, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); + vkCmdBindDescriptorSets(cb, VK_PIPELINE_BIND_POINT_COMPUTE, pl, 0, 1, &ds, 0, 0); + vkCmdDispatch(cb, (ncases + 63) / 64, 1, 1); + CK(vkEndCommandBuffer(cb)); + VkSubmitInfo si = { VK_STRUCTURE_TYPE_SUBMIT_INFO, 0, 0, 0, 0, 1, &cb }; + CK(vkQueueSubmit(q, 1, &si, 0)); CK(vkQueueWaitIdle(q)); + FILE *f = fopen(argv[3], "wb"); fwrite(map[1], 1, outn, f); fclose(f); + return 0; +} diff --git a/packages/cultmath/tools/glsl/build-glsl.sh b/packages/cultmath/tools/glsl/build-glsl.sh new file mode 100644 index 00000000..3281d545 --- /dev/null +++ b/packages/cultmath/tools/glsl/build-glsl.sh @@ -0,0 +1,146 @@ +#!/usr/bin/env bash +# Builds the library GLSL from the HLSL: dxc lib_6_3 -spirv -Od, one SPIR-V edit, a fixed spirv-opt pair, SPIRV-Cross, +# partition. Linux, run from the repository root: build-glsl.sh +# Writes core.glsl, cycles.glsl and phacelle.glsl bodies into ; the committed GLSL is untouched. +# Tools are cached in GLSL_TOOLS (default packages/cultmath/.tools/glsl, gitignored): the pinned dxc tarball and +# SPIRV-Cross, SPIRV-Tools, SPIRV-Headers at TAG built with cmake. +set -euo pipefail +OUT=$(realpath -m "${1:?usage: build-glsl.sh }") +ROOT=$(pwd) +CM=$ROOT/packages/cultmath +G=$CM/tools/glsl +TOOLS=$(realpath -m "${GLSL_TOOLS:-$CM/.tools/glsl}") +TAG=vulkan-sdk-1.4.363.0 +DXC_URL=https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.9.2607/linux_dxc_2026_07_29.x86_x64.tar.gz +DXC_SHA=55665c87824051ed4774ff3280a79ccbbb7d39243b9736ca5e98222134112d54 +W=$(mktemp -d) +mkdir -p "$TOOLS" "$OUT" + +export DEBIAN_FRONTEND=noninteractive +apt-get update -qq >/dev/null +apt-get install -y -qq --no-install-recommends ca-certificates curl git cmake g++ make python3 glslang-tools >/dev/null + +if [ ! -x "$TOOLS/dxc.ok" ]; then + curl -sL --fail -o "$TOOLS/dxc.tgz" "$DXC_URL" + echo "$DXC_SHA $TOOLS/dxc.tgz" | sha256sum -c - >/dev/null || { echo "dxc tarball sha256 differs from the pinned one"; rm -f "$TOOLS/dxc.tgz"; exit 1; } + rm -rf "$TOOLS/dxc"; mkdir -p "$TOOLS/dxc"; tar xzf "$TOOLS/dxc.tgz" -C "$TOOLS/dxc"; : >"$TOOLS/dxc.ok" +fi +DXC=$(find "$TOOLS/dxc" -name dxc -type f | head -1) +export LD_LIBRARY_PATH=$(dirname "$DXC")/../lib:$(dirname "$DXC")${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} + +if [ ! -x "$TOOLS/bin/spirv-cross" ]; then + git clone -q --depth 1 --branch $TAG https://github.com/KhronosGroup/SPIRV-Cross.git "$TOOLS/sc-src" + cmake -S "$TOOLS/sc-src" -B "$TOOLS/sc-build" -DCMAKE_BUILD_TYPE=Release -DSPIRV_CROSS_ENABLE_TESTS=OFF -DSPIRV_CROSS_CLI=ON >/dev/null + cmake --build "$TOOLS/sc-build" --target spirv-cross -j8 >/dev/null + mkdir -p "$TOOLS/bin"; cp "$TOOLS/sc-build/spirv-cross" "$TOOLS/bin/" +fi +if [ ! -x "$TOOLS/bin/spirv-opt" ]; then + git clone -q --depth 1 --branch $TAG https://github.com/KhronosGroup/SPIRV-Tools.git "$TOOLS/st-src" + git clone -q --depth 1 --branch $TAG https://github.com/KhronosGroup/SPIRV-Headers.git "$TOOLS/st-src/external/spirv-headers" + cmake -S "$TOOLS/st-src" -B "$TOOLS/st-build" -DCMAKE_BUILD_TYPE=Release -DSPIRV_SKIP_TESTS=ON -DSPIRV_WERROR=OFF >/dev/null + cmake --build "$TOOLS/st-build" --target spirv-opt spirv-val -j8 >/dev/null + mkdir -p "$TOOLS/bin"; cp "$TOOLS/st-build/tools/spirv-opt" "$TOOLS/st-build/tools/spirv-val" "$TOOLS/bin/" +fi +export PATH=$TOOLS/bin:$PATH +echo "dxc: $("$DXC" --version | head -1)"; echo "spirv-opt: $(spirv-opt --version | head -1)" + +pipeline() { # shaders dir, work dir, out dir: HLSL to partitioned GLSL; returns 1 at the first refusal + local sh=$1 w=$2 out=$3 + mkdir -p "$w" "$out" + python3 "$G/wrappers.py" "$sh" "$w/shw" || return 1 + "$DXC" -T lib_6_3 -HV 2021 -spirv -fspv-target-env=universal1.5 -Od -I "$w/shw" "$w/shw/cm_wrappers.hlsl" -Fo "$w/lib.spv" >"$w/dxc.log" 2>&1 || { head -20 "$w/dxc.log"; return 1; } + python3 "$G/spvedit.py" "$w/lib.spv" "$w/edited.spv" "$w/shw/wrappers.tsv" "$w/shw/capacity.tsv" || return 1 + spirv-val --target-env spv1.5 "$w/edited.spv" || return 1 + spirv-opt --target-env=spv1.5 --eliminate-local-single-store --eliminate-dead-code-aggressive "$w/edited.spv" -o "$w/opt.spv" || return 1 + spirv-val --target-env spv1.5 "$w/opt.spv" || return 1 + spirv-cross "$w/opt.spv" --es --version 310 --relax-nan-checks --output "$w/cross.glsl" || return 1 + python3 "$G/partition.py" "$sh" "$w/cross.glsl" "$out" || return 1 +} +pipeline "$CM/shaders" "$W" "$OUT" || exit 1 + +# Consumer checks: glslang ES 3.00 fragment compiles of every include combination, and a consumer calling overloads +# with an r-value argument. +CONSUMER='out highp vec4 c; +void main() { vec3 p = gl_FragCoord.xyz; c = vec4(cultmath_lerp(p, p.yzx, vec3(0.5)), cultmath_lerp(1.0, 2.0, p.x)) + cultmath_saturate(vec4(p, 1.0)) + vec4(cultmath_smootherstep(gl_FragCoord.x + 1.0)); }' +for combo in "core" "core cycles" "core phacelle" "core cycles phacelle"; do + f=$W/check.frag; printf '#version 300 es\nprecision highp float;\nprecision highp int;\n' >"$f" + for part in $combo; do cat "$OUT/$part.glsl" >>"$f"; done + printf '%s\n' "$CONSUMER" >>"$f" + glslangValidator "$f" >"$W/check.log" 2>&1 || { echo "ES 3.00 compile failed for [$combo]"; head -8 "$W/check.log"; exit 1; } + echo "ES 3.00 ok: $combo" +done + +# Capacity checks: a consumer's prior #define CULTMATH_MAX_SITES changes the array type through dxc, the committed GLSL +# and the built GLSL, and 128 still works with no define. +printf '#define CULTMATH_MAX_SITES 4\n#include "CultMath.hlsl"\nfloat4 cap4(float3 p, float4 s[4]) { return cultmath_power_border(p, s, 4); }\n' >"$W/shw/cap4.hlsl" +"$DXC" -T lib_6_3 -HV 2021 -Od -I "$W/shw" "$W/shw/cap4.hlsl" -Fo "$W/cap4.dxil" >"$W/cap4.log" 2>&1 || { echo "capacity (a) failed: dxc with CULTMATH_MAX_SITES 4"; head -8 "$W/cap4.log"; exit 1; } +echo "capacity (a) ok: dxc lib_6_3 with a prior define 4 takes float4 s[4]" +consume() { # label, expected (ok|fail), define lines, GLSL library file, main body + local f=$W/cap.frag + printf '#version 300 es +precision highp float; +precision highp int; +%s +' "$3" >"$f"; cat "$4" >>"$f" + printf 'out highp vec4 c; +void main() { %s } +' "$5" >>"$f" + local got=fail; glslangValidator "$f" >"$W/cap.log" 2>&1 && got=ok + [ "$got" = "$2" ] || { echo "capacity $1 failed: expected $2, got $got"; head -6 "$W/cap.log"; exit 1; } + echo "capacity $1 ok: $2" +} +cap_check() { # label, expected, define lines, GLSL library file, site array length + consume "$1" "$2" "$3" "$4" "vec4 s[$5]; for (int i = 0; i < $5; i++) s[i] = vec4(float(i)); c = cultmath_power_border(gl_FragCoord.xyz, s, 4);" +} +D4='#define CULTMATH_MAX_SITES 4' +cap_check "(b) built, define 4, vec4 s[4]" ok "$D4" "$OUT/core.glsl" 4 +cap_check "(c) built, define 4, vec4 s[128]" fail "$D4" "$OUT/core.glsl" 128 +cap_check "(d) built, no define, vec4 s[128]" ok "" "$OUT/core.glsl" 128 +cap_check "(e) committed, define 4, vec4 s[4]" ok "$D4" "$CM/shaders/CultMath.glsl" 4 +cap_check "(e) committed, define 4, vec4 s[128]" fail "$D4" "$CM/shaders/CultMath.glsl" 128 + +for part in core cycles phacelle; do + g=$OUT/$part.glsl + fn=$(grep -cE '^[A-Za-z_]\w* [A-Za-z_]\w*\(.*\)$' "$g" || true) + names=$(grep -oE '^[A-Za-z_]\w* [A-Za-z_]\w*\(' "$g" | awk '{print $2}' | sort -u | wc -l) + echo "$part: functions $fn, distinct names $names, lines $(wc -l <"$g"), bytes $(wc -c <"$g"), sha256 $(sha256sum "$g" | cut -c1-64)" +done +echo "suffixed ids: $(cat "$OUT"/*.glsl | grep -oE '\bcultmath_\w+_[0-9]+\(' | sort -u | wc -l); inout: $(cat "$OUT"/*.glsl | grep -c inout || true)" +# Build shape: the lowering leaves none of these, and the NaN-check option leaves no mix(mix( expansions. A literal +# [128] is not among them: the capacity is selected by name, so a library array of length 128 is legitimate output. +SHAPE='inout|param_var_|cmw[0-9]{3}_|export |mix\(mix\(|\b_cos\b|\b_sin\b' +shape_check() { # output directory; returns 1 when the shape fails + if cat "$1"/*.glsl | grep -Eq "$SHAPE"; then + echo "build shape failed:"; cat "$1"/*.glsl | grep -Eo "$SHAPE" | sort | uniq -c; return 1 + fi +} +shape_check "$OUT" || exit 1 +echo "build shape ok" + +# Tool refusals, and the capacity's reach: each variant appends one probe function to a scratch copy of CultMath.hlsl and +# runs the whole pipeline on it. +variant() { # label, probe HLSL; leaves the variant directory in VD + VD=$W/v/$1; rm -rf "$VD"; mkdir -p "$VD"; cp -r "$CM/shaders" "$VD/sh" + printf ' +%s +' "$2" >>"$VD/sh/CultMath.hlsl" + pipeline "$VD/sh" "$VD/w" "$VD/out" >"$VD/log" 2>&1 +} +expect_refused() { # label, probe HLSL, pattern the refusal prints + if variant "$1" "$2"; then echo "refusal $1 failed: the build passed"; exit 1; fi + grep -q "$3" "$VD/log" || { echo "refusal $1 failed: no '$3' in the log"; tail -5 "$VD/log"; exit 1; } + echo "refusal $1 ok" +} +SENTINEL=$(cut -f2 "$W/shw/capacity.tsv") +expect_refused macro-in-expression 'int cultmath_zz_probe(int n) { return n + CULTMATH_MAX_SITES; }' 'outside its guard' +# the sentinel spelled in hex: wrappers.py's scan reads decimal tokens, so only the length check can see it +expect_refused length-in-expression "uint cultmath_zz_probe(uint n) { return n + $(printf '0x%xu' "$SENTINEL"); }" 'also used by opcode' +# the sentinel as another element type's array length: not a capacity parameter type +expect_refused other-element-same-length "float3 cultmath_zz_probe(float3 x[$(printf '0x%x' "$SENTINEL")], int n) { return x[n]; }" 'not a capacity parameter type' +variant array-128 'float4 cultmath_zz_probe(float4 x[128], int n) { return x[n]; }' || { echo "array-128 failed: a library array of length 128 broke the build"; tail -5 "$VD/log"; exit 1; } +grep -Eq 'cultmath_zz_probe\(.*\[128\]' "$VD/out/core.glsl" || { echo "array-128 failed: the 128 array is not literal in core.glsl"; exit 1; } +shape_check "$VD/out" || { echo "array-128 failed: the shape check refused a library array of length 128"; exit 1; } +PROBE='vec4 x[128]; c = cultmath_zz_probe(x, 1);' +consume "(f) non-site array, define 4, vec4 x[128]" ok "$D4" "$VD/out/core.glsl" "$PROBE" +consume "(f) non-site array, define 4, vec4 x[4]" fail "$D4" "$VD/out/core.glsl" 'vec4 x[4]; c = cultmath_zz_probe(x, 1);' +consume "(g) consumer's own SPIRV_CROSS_CONSTANT_ID_0" ok '#define SPIRV_CROSS_CONSTANT_ID_0 7u' "$OUT/core.glsl" 'c = vec4(float(cultmath_max_sites));' diff --git a/packages/cultmath/tools/glsl/partition.py b/packages/cultmath/tools/glsl/partition.py new file mode 100644 index 00000000..415c9b2b --- /dev/null +++ b/packages/cultmath/tools/glsl/partition.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python3 +"""Partition the SPIRV-Cross GLSL of the whole library into the three files a consumer includes. + +usage: partition.py +Each top-level struct and function chunk goes to the file whose HLSL defines it (CultMath, Interval and Affine to core; +Cycles; Phacelle). The library-header prologue and any main are dropped. Writes core.glsl, cycles.glsl and +phacelle.glsl bodies, with the 13 `static const float` constants of the HLSL as `const float NAME = ;` at the +head of the file that defines them. core.glsl opens with the HLSL's own CULTMATH_MAX_SITES guard lines, one line mapping +SPIRV_CROSS_CONSTANT_ID_ (CultMath's own, 'CMS1') to uint(CULTMATH_MAX_SITES), and SPIRV-Cross's one spec-constant block. Licence lines, include guards and the #version contract belong to the caller. +Refuses: a static const line that is not `static const float CULTMATH_X = ;`, an unknown-origin chunk, a +duplicate chunk, an unexpected prologue line, a missing or other SPIRV_CROSS_CONSTANT_ID block, and a call from a non-core chunk into a different non-core origin.""" +import collections, os, re, sys +from spvedit import SPEC_ID + +OWNER = {'CultMath.hlsl': 'core', 'CultMath.Interval.hlsl': 'core', 'CultMath.Affine.hlsl': 'core', + 'CultMath.Cycles.hlsl': 'cycles', 'CultMath.Phacelle.hlsl': 'phacelle'} +CONST = re.compile(r'^static const float (CULTMATH_\w+) = (-?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?);$') +PROLOGUE = re.compile(r'^(#version |#extension |precision |#ifdef SPIRV_CROSS|#define SPIRV_CROSS|#endif)') +GUARD = re.compile(r'#ifndef CULTMATH_MAX_SITES\n#define CULTMATH_MAX_SITES (\d+)\n#endif\n') +ID = 'SPIRV_CROSS_CONSTANT_ID_%d' % SPEC_ID +SPEC = re.compile(r'#ifndef %s\n#define %s (\d+)u\n#endif\n' + r'const uint cultmath_max_sites = %s;\n?' % (ID, ID, ID)) +STRUCT, FUNC = re.compile(r'^struct (\w+)$'), re.compile(r'^\w+ (\w+)\(.*\)$') + + +def origins(shaders): + origin, consts = {}, collections.defaultdict(list) + for fn, o in OWNER.items(): + text = open(os.path.join(shaders, fn)).read() + for m in re.finditer(r'(?m)^\w+\s+(cultmath_\w+)\s*\(', text): + origin.setdefault(m.group(1), o) + for m in re.finditer(r'(?m)^struct\s+(\w+)', text): + origin.setdefault(m.group(1), o) + for line in text.splitlines(): + if line.startswith('static const'): + m = CONST.match(line) + if not m: + sys.exit('refuse: %s has a static const line that is not `static const float CULTMATH_X = ;`' % fn) + consts[o].append('const float %s = %s;' % m.groups()) + return origin, consts + + +def chunks(lines): + out, prologue, i = [], [], 0 + while i < len(lines): + m = STRUCT.match(lines[i]) or FUNC.match(lines[i]) + if not m: + if lines[i].strip(): + prologue.append(lines[i]) + i += 1 + continue + j = i + while lines[j] not in ('};', '}'): + j += 1 + if m.group(1) != 'main': + out.append((m.group(1), '\n'.join(lines[i:j + 1]))) + i = j + 1 + return out, prologue + + +def main(shaders, glsl, outdir): + origin, consts = origins(shaders) + guard = GUARD.search(open(os.path.join(shaders, 'CultMath.hlsl')).read().replace('\r\n', '\n')) + if not guard: + sys.exit('refuse: CultMath.hlsl has no CULTMATH_MAX_SITES guard') + parts, prologue = chunks(open(glsl).read().split('\n')) + joined = '\n'.join(prologue) + '\n' + spec = SPEC.search(joined) + text, found = SPEC.subn('', joined) + if found != 1 or spec.group(1) != guard.group(1): + sys.exit('refuse: expected exactly one spec-constant block defaulting to the guard value, found %d' % found) + odd = [l for l in text.split('\n') if l and (not PROLOGUE.match(l) or 'SPIRV_CROSS_CONSTANT_ID' in l)] + if odd: + sys.exit('refuse: %d unexpected prologue lines, first at %r' % (len(odd), odd[0][:60])) + seen = collections.Counter(b.split(chr(10))[0] for _, b in parts) # overloads share a name, never a signature + dup = sorted(n for n, c in seen.items() if c > 1) + if dup: + sys.exit('refuse: duplicate chunks %s' % dup[:6]) + unknown = sorted(n for n, _ in parts if n not in origin) + if unknown: + sys.exit('refuse: %d unknown-origin chunks %s' % (len(unknown), unknown[:8])) + files = collections.defaultdict(list) + for name, body in parts: + o = origin[name] + for callee in set(re.findall(r'\b(cultmath_\w+|[A-Z]\w+)\b', body)) - {name}: + co = origin.get(callee) + if o != 'core' and co and co != 'core' and co != o: + sys.exit('refuse: %s (%s) calls %s (%s)' % (name, o, callee, co)) + files[o].append(body) + os.makedirs(outdir, exist_ok=True) + for o in OWNER.values(): + head = [guard.group(0).rstrip('\n'), '#define %s uint(CULTMATH_MAX_SITES)' % ID, spec.group(0).rstrip('\n')] if o == 'core' else [] + text = '\n'.join(head + consts[o] + files[o]) + '\n' + open(os.path.join(outdir, o + '.glsl'), 'w').write(text) + print('partition:', {o: len(files[o]) for o in sorted(files)}, 'constants', sum(len(v) for v in consts.values())) + + +if __name__ == '__main__': + main(*sys.argv[1:4]) diff --git a/packages/cultmath/tools/glsl/spvedit.py b/packages/cultmath/tools/glsl/spvedit.py new file mode 100644 index 00000000..a5707518 --- /dev/null +++ b/packages/cultmath/tools/glsl/spvedit.py @@ -0,0 +1,241 @@ +#!/usr/bin/env python3 +"""The one instruction-level SPIR-V edit of the GLSL build. Binary, never text. + +usage: spvedit.py +1. Keeps only the capabilities Shader and Linkage and drops every OpExtension. +2. Deletes each wrapper function with its OpName and decorations, moves its LinkageAttributes Export to its callee, and + sets the callee's OpName to the source name. Refuses a wrapper that is not exactly one OpFunctionCall. +3. By-value lowering: dxc -Od passes every parameter as a Function pointer and the caller copies in, so a callee that + assigns its parameter comes out of SPIRV-Cross as `inout`. Each Function-pointer OpFunctionParameter becomes a value + parameter with a new id; the old id stays as an entry-block OpVariable stored from it (OpName copied to the new id); + OpTypeFunction is reused if the signature exists, else added; each OpFunctionCall loads the pointer it passed. +The header bound is last id + 1.""" +import struct, sys + +OP_NAME, OP_MEMBER_NAME, OP_CAPABILITY, OP_EXTENSION, OP_DECORATE, OP_MEMBER_DECORATE = 5, 6, 17, 10, 71, 72 +OP_TYPE_ARRAY, OP_CONSTANT, OP_SPEC_CONSTANT, DECORATION_SPEC_ID = 28, 43, 50, 1 +SPEC_ID = int.from_bytes(b'CMS1', 'big') # CultMath's own id: a consumer's SPIRV_CROSS_CONSTANT_ID_n macro cannot meet it +OP_TYPE_POINTER, OP_TYPE_FUNCTION, OP_FUNCTION, OP_PARAMETER, OP_FUNCTION_END = 32, 33, 54, 55, 56 +OP_CALL, OP_LABEL, OP_VARIABLE, OP_LOAD, OP_STORE = 57, 248, 59, 61, 62 +CAP_SHADER, CAP_LINKAGE, DECORATION_LINKAGE, LINKAGE_EXPORT, FUNCTION_STORAGE = 1, 5, 41, 41, 7 +TERMINATORS = (8, 317, 62, 246, 247, 249, 250, 253, 254, 252) + + +def load(path): + raw = open(path, 'rb').read() + words = list(struct.unpack('<%dI' % (len(raw) // 4), raw)) + ins, i = [], 5 + while i < len(words): + n = words[i] >> 16 + ins.append(words[i:i + n]) + i += n + return words[:5], ins + + +def op(x): return x[0] & 0xffff +def mk(o, *ws): return [((len(ws) + 1) << 16) | o, *ws] + + +def decode(ws): + b = struct.pack('<%dI' % len(ws), *ws) + return b[:b.index(0)].decode() + + +def encode(s): + b = s.encode() + b'\0' + b += b'\0' * (-len(b) % 4) + return list(struct.unpack('<%dI' % (len(b) // 4), b)) + + +def functions(ins): + """function id -> [first index, last index, callee ids, ids defined inside]""" + fs, cur = {}, None + for k, x in enumerate(ins): + o = op(x) + if o == OP_FUNCTION: + cur = x[2] + fs[cur] = [k, None, [], set()] + if cur is None: + continue + if o == OP_CALL: + fs[cur][2].append(x[3]) + if o == OP_LABEL: + fs[cur][3].add(x[1]) + elif o not in TERMINATORS and len(x) > 2: + fs[cur][3].add(x[2]) + if o == OP_FUNCTION_END: + fs[cur][1] = k + cur = None + return fs + + +def export_edit(h, ins, rows): + names = {x[1]: decode(x[2:]) for x in ins if op(x) == OP_NAME} + fs = functions(ins) + by_name = {v: k for k, v in names.items() if k in fs} + drop_k, drop_ids, set_name, retarget = set(), set(), {}, {} + callee_of = [] + for wn, name, _, _, _ in rows: + fid = by_name.get(wn) + callees = fs[fid][2] if fid else None + if not callees or len(callees) != 1: + sys.exit('refuse: wrapper %s is not exactly one OpFunctionCall' % wn) + a, b, _, ids = fs[fid] + drop_k.update(range(a, b + 1)) + drop_ids |= ids | {fid} + set_name[callees[0]] = name + retarget[fid] = callees[0] + callee_of.append(callees[0]) + out, named = [], set() + for k, x in enumerate(ins): + if k in drop_k: + continue + o = op(x) + if o == OP_CAPABILITY and x[1] not in (CAP_SHADER, CAP_LINKAGE): + continue + if o == OP_EXTENSION: + continue + if o == OP_NAME and x[1] in set_name: + x = mk(OP_NAME, x[1], *encode(set_name[x[1]])) + named.add(x[1]) + elif o in (OP_NAME, OP_MEMBER_NAME) and x[1] in drop_ids: + continue + if o == OP_DECORATE and x[1] in drop_ids: + if x[1] in retarget and x[2] == DECORATION_LINKAGE: + x = [x[0], retarget[x[1]]] + x[2:] + else: + continue + out.append(x) + for fid, name in set_name.items(): + if fid not in named: + out.insert(next(i for i, x in enumerate(out) if op(x) == OP_NAME), mk(OP_NAME, fid, *encode(name))) + return out, callee_of + + +def by_value(h, ins): + bound = h[3] + ptr = {x[1]: (x[2], x[3]) for x in ins if op(x) == OP_TYPE_POINTER} # id -> (storage, pointee) + ftype = {x[1]: x for x in ins if op(x) == OP_TYPE_FUNCTION} + fnparams, fntype, cur = {}, {}, None + for x in ins: # per function: which parameters are Function pointers + if op(x) == OP_FUNCTION: + cur = x[2] + fnparams[cur], fntype[cur] = [], x[4] + elif op(x) == OP_PARAMETER and cur is not None: + t = x[1] + conv = t in ptr and ptr[t][0] == FUNCTION_STORAGE + fnparams[cur].append((x[2], t, ptr[t][1] if conv else None, bound if conv else None)) + bound += conv + newid = {p[0]: p[3] for ps in fnparams.values() for p in ps if p[2]} + newtype, typeins = {}, [] + sig = {tuple(x[2:]): x[1] for x in ins if op(x) == OP_TYPE_FUNCTION} + for f, ps in fnparams.items(): + if any(p[2] for p in ps): + key = (ftype[fntype[f]][2], *[p[2] if p[2] else p[1] for p in ps]) + if key not in sig: + bound += 1 + sig[key] = bound + typeins.append(mk(OP_TYPE_FUNCTION, bound, *key)) + newtype[f] = sig[key] + out, cur, pend, need_stores, first, pc = [], None, [], False, True, 0 + for x in ins: + o = op(x) + if o == OP_FUNCTION and first: + out += typeins + first = False + if need_stores and o != OP_VARIABLE: + out += [mk(OP_STORE, p, q) for p, _, q in pend] + pend, need_stores = [], False + if o == OP_FUNCTION: + cur, pc = x[2], 0 + if cur in newtype: + x = x[:4] + [newtype[cur]] + x[5:] + elif o == OP_PARAMETER: + _, t, pointee, q = fnparams[cur][pc] + pc += 1 + if pointee: + out.append(mk(OP_PARAMETER, pointee, q)) + pend.append((x[2], t, q)) + continue + elif o == OP_LABEL and pend: + out.append(x) + out += [mk(OP_VARIABLE, t, p, FUNCTION_STORAGE) for p, t, _ in pend] + need_stores = True + continue + elif o == OP_CALL: + args = [] + for a, (_, _, pointee, _) in zip(x[4:], fnparams[x[3]]): + if pointee: + bound += 1 + out.append(mk(OP_LOAD, pointee, bound, a)) + args.append(bound) + else: + args.append(a) + x = mk(OP_CALL, *x[1:4], *args) + out.append(x) + if o == OP_NAME and x[1] in newid: + out.append([x[0], newid[x[1]]] + x[2:]) + h[3] = bound + 1 + return out, len(newtype), len(newid) + + +def capacity_edit(h, ins, rows, callee_of, default): + """Each capacity parameter (wrappers.tsv column 5) of each callee has an OpTypeArray type. Exactly one length id may + serve all of them, and nothing but OpTypeArray, OpName and decorations may use it. That OpConstant becomes an + OpSpecConstant with SpecId SPEC_ID named cultmath_max_sites, defaulting to the HLSL guard value. The constant is the + sentinel wrappers.py compiled the library with, so no array outside the capacity parameters shares its length id. + Returns the instructions and the spec constant id.""" + ftype = {x[1]: x for x in ins if op(x) == OP_TYPE_FUNCTION} + arrays = {x[1]: x for x in ins if op(x) == OP_TYPE_ARRAY} + params, cur = {}, None + for x in ins: + if op(x) == OP_FUNCTION: + cur = x[2] + params[cur] = [] + elif op(x) == OP_PARAMETER: + params[cur].append(x[1]) + lengths = set() + for row, fid in zip(rows, callee_of): + for i in [int(c) for c in row[4].split(',') if c]: + t = params[fid][i] + if t not in arrays: + sys.exit('refuse: capacity parameter %d of %s is not an array type' % (i, row[1])) + lengths.add(arrays[t][3]) + if len(lengths) != 1: + sys.exit('refuse: %d array length ids serve the capacity parameters, expected exactly one' % len(lengths)) + cap = lengths.pop() + site_types = {params[fid][int(c)] for row, fid in zip(rows, callee_of) for c in row[4].split(',') if c} + if {t for t, a in arrays.items() if a[3] == cap} != site_types: + sys.exit('refuse: an array type of the capacity length is not a capacity parameter type') + for x in ins: + o = op(x) + defines = o in (OP_CONSTANT, OP_SPEC_CONSTANT) and x[2] == cap + allowed = o in (OP_TYPE_ARRAY, OP_NAME, OP_DECORATE, OP_MEMBER_DECORATE) or defines + if cap in x[1:] and not allowed: + sys.exit('refuse: the capacity length id %d is also used by opcode %d' % (cap, o)) + out = [] + for x in ins: + if op(x) == OP_CONSTANT and x[2] == cap: + x = [(x[0] & 0xffff0000) | OP_SPEC_CONSTANT, x[1], x[2], default] + out.append(x) + first = next((k for k, x in enumerate(out) if op(x) in (OP_DECORATE, OP_MEMBER_DECORATE)), None) + if first is None: + sys.exit('refuse: no annotation section to decorate the capacity constant in') + out[first:first] = [mk(OP_NAME, cap, *encode('cultmath_max_sites')), mk(OP_DECORATE, cap, DECORATION_SPEC_ID, SPEC_ID)] + return out, cap + + +def main(src, dst, tsv, capacity): + h, ins = load(src) + rows = [l.split('\t') for l in open(tsv).read().splitlines() if l] + ins, callee_of = export_edit(h, ins, rows) + ins, changed, params = by_value(h, ins) + default = int(open(capacity).read().split()[0]) + ins, spec = capacity_edit(h, ins, rows, callee_of, default) + words = h + [v for x in ins for v in x] + open(dst, 'wb').write(struct.pack('<%dI' % len(words), *words)) + print('spvedit: %d wrappers dropped; by-value: %d functions changed, %d parameters; capacity spec constant id %d' % (len(rows), changed, params, spec)) + + +if __name__ == '__main__': + main(*sys.argv[1:5]) diff --git a/packages/cultmath/tools/glsl/wrappers.py b/packages/cultmath/tools/glsl/wrappers.py new file mode 100644 index 00000000..742881ac --- /dev/null +++ b/packages/cultmath/tools/glsl/wrappers.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 +"""Build-only export wrappers: one exported, uniquely named wrapper per top-level cultmath_ definition, so dxc keeps +every overload as its own function. The shaders are copied unchanged; the unique names exist only in . + +usage: wrappers.py +Writes /cm_wrappers.hlsl, /wrappers.tsv (wrapper, name, file, params, capacity) and +/capacity.tsv (the guard default, the sentinel). cm_wrappers.hlsl defines CULTMATH_MAX_SITES as the sentinel, +a number no shader file spells, so the site arrays get an array length id of their own and no other array shares it. An argument is the +parameter's declarator name with any [..] suffix removed; capacity lists the indices of the parameters declared +[CULTMATH_MAX_SITES]. Definitions with a Texture or Sampler parameter get no wrapper. Refuses a file where the +definition-looking lines differ from the parsed ones, and a file that names CULTMATH_MAX_SITES anywhere but its +#ifndef/#define/#endif guard and array declarators.""" +import os, re, shutil, sys + +FILES = ['CultMath.hlsl', 'CultMath.Interval.hlsl', 'CultMath.Affine.hlsl', 'CultMath.Cycles.hlsl', 'CultMath.Phacelle.hlsl'] +SIG = re.compile(r'(?m)^(\w+)[ \t]+(cultmath_\w+)[ \t]*\(([^)]*)\)') +LOOKS = re.compile(r'(?m)^\w+ cultmath_\w+\(') +GUARD = re.compile(r'#ifndef CULTMATH_MAX_SITES\n#define CULTMATH_MAX_SITES (\d+)\n#endif\n') +COMMENT = re.compile(r'//[^\n]*|/\*.*?\*/', re.S) +CAP = '[CULTMATH_MAX_SITES]' + + +def main(shaders, out): + shutil.copytree(shaders, out, dirs_exist_ok=True) + wrappers, rows, spelled, default = [], [], '', None + for fn in FILES: + text = open(os.path.join(shaders, fn)).read().replace('\r\n', '\n') + spelled += COMMENT.sub('', text) + default = default or GUARD.search(text) + stray = GUARD.sub('', COMMENT.sub('', text)).replace(CAP, '') + if 'CULTMATH_MAX_SITES' in stray: + sys.exit('refuse: %s names CULTMATH_MAX_SITES outside its guard and array declarators' % fn) + parsed = list(SIG.finditer(text)) + looks = len(LOOKS.findall(text)) + if looks != len(parsed): + sys.exit('refuse: %s has %d definition-looking lines but %d parsed' % (fn, looks, len(parsed))) + for m in parsed: + ret, name, ps = m.groups() + if re.search(r'Texture|Sampler', ps): + continue + params = [p.strip() for p in ps.split(',') if p.strip()] + args = [re.split(r'\s+', p)[-1].split('[')[0] for p in params] + cap = ','.join(str(i) for i, p in enumerate(params) if p.endswith(CAP)) + wn = 'cmw%03d_%s' % (len(rows), name) + call = '%s(%s)' % (name, ', '.join(args)) + wrappers.append('export %s %s(%s) { %s%s; }' % (ret, wn, ', '.join(params), '' if ret == 'void' else 'return ', call)) + rows.append('\t'.join([wn, name, fn, ', '.join(params), cap])) + if not default: + sys.exit('refuse: no shader file carries the CULTMATH_MAX_SITES guard') + sentinel = int(default.group(1)) + 1 + while re.search(r'(?`), RGB to BW, HSV conversion and `cycles_ramp_index`. + `CyclesOracleTests` holds the C# and the HLSL mirror to fixtures recorded from + Blender 5.2.2's CPU Cycles. +- `CultMath.Expr`: an immutable scalar SSA expression graph (`ExprGraph`, built by + `ExprBuilder` with substitution, validated by `ExprGraph.Create` on build and on + decode), parameter bindings (`ExprBindings`), an evaluator (`ExprEvaluator`) and + the op table (`ExprOps`). The package carries no serializer for it. +- Site cells: `math.power_score`, `multiplicative_score`, the `CultSiteCells` + accumulator (`site_cells_empty`, `site_cells_insert`, `site_cells_border`), the + exact power cell border (`power_border`, `power_border_step`) and + `gabriel_margin`, each with an HLSL twin (`cultmath_` prefix); the shader + `cultmath_power_border` takes a fixed-capacity site array of + `CULTMATH_MAX_SITES` (128 unless defined before the include). `power_cells`, + `multiplicative_cells` and `soft_gabriel_gate` are C# only. +- Weighted lattice cells: `math.weighted_lattice_cells` with an exact ring-exit + search and its four public steps (`lattice_site`, `lattice_weight`, + `lattice_distance`, `lattice_smooth_step`), the range constants + `LatticeMaxBoost`, `LatticeMaxStretch`, `LatticeMaxSmoothing` and + `LatticeMaxRing`, and the HLSL twins (`cultmath_weighted_lattice_cells`, + `cultmath_lattice_cell_distance`). +- Span stages: `math.span_fbm` and `span_ridged` over a `SpanPath` and a + `SpanStage` return `SpanNoise` (field, curvature and fold), widened by float + rounding allowances, with HLSL twins; `cultmath_span_rounding` and + `cultmath_span_slack` own the allowances. +- `math.snoise_hessian(float3)` (`float3x3`), the next-order bound + `SNOISE_THIRD` (535.8009), and the snoise read rounding constants + `CULTMATH_SNOISE_READ_VALUE` and `CULTMATH_SNOISE_READ_GRADIENT` in HLSL. +- `math.integral_clamp_linear(a, b, lo, hi, t0, t1)`, the integral of + `clamp(a + b t, lo, hi)` over `[t0, t1]` in closed form, with its HLSL twin. It + is finite for an infinite clamp bound, and `lo` above `hi` clamps to `hi` + everywhere, as `clamp` does. +- `math.segment_closest` and the out-free `distance_to_segment` for `float2` + and `float3`, with HLSL twins. + ## [0.4.1] ### Fixed diff --git a/packages/cultmath/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.dll b/packages/cultmath/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.dll index 9fd2defd..205d3f9b 100644 Binary files a/packages/cultmath/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.dll and b/packages/cultmath/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.dll differ diff --git a/packages/cultmath/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.pdb b/packages/cultmath/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.pdb index 0ac8b9ed..9f865c09 100644 Binary files a/packages/cultmath/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.pdb and b/packages/cultmath/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.pdb differ diff --git a/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.Affine.hlsl b/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.Affine.hlsl index 09616940..eee7a2de 100644 --- a/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.Affine.hlsl +++ b/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.Affine.hlsl @@ -12,9 +12,15 @@ // math.Affine.cs (SNOISE_HESSIAN). static const float CULTMATH_SNOISE_HESSIAN = 55.642143; +// The absolute rounding of one float32 read of cultmath_snoise_grad, value and gradient; the owner is +// math.Affine.cs (SNOISE_READ_VALUE, SNOISE_READ_GRADIENT), read here by cultmath_af_snoise and in +// CultMath.hlsl by cultmath_span_slack. +static const float CULTMATH_SNOISE_READ_VALUE = 6.103515625e-5; +static const float CULTMATH_SNOISE_READ_GRADIENT = 2.44140625e-4; + // An upper bound on the operator norm of the third-derivative tensor of cultmath_snoise(float3), the // next order after CULTMATH_SNOISE_HESSIAN; provenance in math.Span.cs (SNOISE_THIRD). -static const float CULTMATH_SNOISE_THIRD = 536.9152; +static const float CULTMATH_SNOISE_THIRD = 535.8009; float3 cultmath_af_point(float value) { return float3(value, 0.0, 0.0); } float3 cultmath_af_symbol(float x0, float a) { return float3(x0, a, 0.0); } @@ -87,7 +93,7 @@ float3 cultmath_af_snoise(float3 centre, float3 axis, float radius) float lipschitz = CULTMATH_SNOISE_LIPSCHITZ * reach; float a = dot(gradient, axis); float remainder = length(gradient) * radius + 0.5 * CULTMATH_SNOISE_HESSIAN * reach * reach; - float allowance = 6.103515625e-5 + 2.44140625e-4 * reach + float allowance = CULTMATH_SNOISE_READ_VALUE + CULTMATH_SNOISE_READ_GRADIENT * reach + CULTMATH_SNOISE_LIPSCHITZ * 9.5367431640625e-7 * (abs(centre.x) + abs(centre.y) + abs(centre.z) + reach); bool centred = abs(a) + remainder < lipschitz; float slope = centred ? a : 0.0; diff --git a/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.Phacelle.hlsl b/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.Phacelle.hlsl index c95aafc6..deb47813 100644 --- a/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.Phacelle.hlsl +++ b/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.Phacelle.hlsl @@ -14,8 +14,8 @@ // against CultMath.CultPhasor, same field order. struct CultPhasor { - float4 cos; - float4 sin; + float4 cosine; + float4 sine; }; // Johansen's Phacelle noise on 3D cells. See math.phacelle's comment (math.Phacelle.cs) for the stripe wave @@ -84,13 +84,13 @@ CultPhasor cultmath_phacelle(float3 p, float3 side, float offset, float normaliz float outCos = rawCos / rawLength; float outSin = rawSin / rawLength; float3 gradLength = (rawCos * gradRawCos + rawSin * gradRawSin) / rawLength; - result.cos = float4((gradRawCos - outCos * gradLength) / rawLength, outCos); - result.sin = float4((gradRawSin - outSin * gradLength) / rawLength, outSin); + result.cosine = float4((gradRawCos - outCos * gradLength) / rawLength, outCos); + result.sine = float4((gradRawSin - outSin * gradLength) / rawLength, outSin); } else { - result.cos = float4(gradRawCos / floorLength, rawCos / floorLength); - result.sin = float4(gradRawSin / floorLength, rawSin / floorLength); + result.cosine = float4(gradRawCos / floorLength, rawCos / floorLength); + result.sine = float4(gradRawSin / floorLength, rawSin / floorLength); } return result; diff --git a/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.hlsl b/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.hlsl index 8379b5f1..d3eea396 100644 --- a/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.hlsl +++ b/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.hlsl @@ -302,10 +302,10 @@ float3x3 cultmath_snoise_hessian(float3 value) // The integral over [t0, t1] of clamp(a + b t, lo, hi); see the C# math.integral_clamp_linear comment. float cultmath_integral_clamp_linear(float a, float b, float lo, float hi, float t0, float t1) { - if (b == 0.0) - return clamp(a, lo, hi) * (t1 - t0); - lo = min(lo, hi); + if (b == 0.0) + return t1 != t0 ? clamp(a, lo, hi) * (t1 - t0) : 0.0; + float direction = t1 < t0 ? -1.0 : 1.0; float start = min(t0, t1); float stop = max(t0, t1); @@ -315,7 +315,9 @@ float cultmath_integral_clamp_linear(float a, float b, float lo, float hi, float float leave = clamp(max(atLo, atHi), start, stop); float before = b > 0.0 ? lo : hi; float after = b > 0.0 ? hi : lo; - float total = before * (enter - start) + (a + b * (0.5 * (enter + leave))) * (leave - enter) + after * (stop - leave); + float held = enter > start ? before * (enter - start) : 0.0; + float kept = stop > leave ? after * (stop - leave) : 0.0; + float total = held + (a + b * (0.5 * (enter + leave))) * (leave - enter) + kept; return direction * total; } @@ -598,11 +600,373 @@ CultCellular cultmath_cellular(float3 p) return result; } +// Sites: a site is float4(position.xyz, weight). A shader function cannot take a span (design.md, "Sites"), so a span is a +// fixed-capacity array and a count (cultmath_power_border, below), or a loop over a per-site step: +// CultSiteCells cells = cultmath_site_cells_empty(); +// for (int i = 0; i < count; i++) +// cells = cultmath_site_cells_insert(cells, cultmath_power_score(p, sites[i]), i); +// The exact power cell border is cultmath_power_border, the second loop over the sites that skips the owner cells.nearestSite. +// The step trusts the owner: a p outside the owner's cell reports distance 0 with that plane's normal, not an error. +// Statement for statement with math.Sites.cs (power_score, multiplicative_score, site_cells_*, gabriel_margin). +struct CultSiteCells +{ + float4 nearest; + float4 second; + float nearestSite; + float secondSite; +}; + +float4 cultmath_power_score(float3 p, float4 site) +{ + float3 offset = p - site.xyz; + return float4(offset * 2.0, dot(offset, offset) - site.w * site.w); +} + +float4 cultmath_multiplicative_score(float3 p, float4 site) +{ + float3 offset = p - site.xyz; + float r = length(offset); + float3 gradient = r > 0.0 ? offset / (r * site.w) : float3(0.0, 0.0, 0.0); + return float4(gradient, r / site.w); +} + +CultSiteCells cultmath_site_cells_empty() +{ + CultSiteCells result; + result.nearest = float4(0.0, 0.0, 0.0, 1.0e30); + result.second = float4(0.0, 0.0, 0.0, 1.0e30); + result.nearestSite = -1.0; + result.secondSite = -1.0; + return result; +} + +CultSiteCells cultmath_site_cells_insert(CultSiteCells cells, float4 score, int index) +{ + CultSiteCells result = cells; + if (score.w < cells.nearest.w) + { + result.second = cells.nearest; + result.secondSite = cells.nearestSite; + result.nearest = score; + result.nearestSite = (float)index; + } + else if (score.w < cells.second.w) + { + result.second = score; + result.secondSite = (float)index; + } + + return result; +} + +float4 cultmath_site_cells_border(CultSiteCells cells) +{ + float3 n = cells.second.xyz - cells.nearest.xyz; + float len = length(n); + if (cells.secondSite < 0.0 || len <= 0.0) + return float4(0.0, 0.0, 0.0, 1.0e30); + return float4(n / len, (cells.second.w - cells.nearest.w) / len); +} + +float4 cultmath_power_border_step(float3 p, float4 owner, float4 other, float4 border) +{ + float3 d = other.xyz - owner.xyz; + float len = length(d); + if (len <= 0.0) + return border; + float plane = max((dot(owner.xyz - p, d) + 0.5 * (dot(d, d) + (owner.w - other.w) * (owner.w + other.w))) / len, 0.0); + return plane < border.w ? float4(-d / len, plane) : border; +} + +float cultmath_gabriel_margin(float3 a, float3 b, float3 other) +{ + float r = cultmath_distance(a, b) * 0.5; + if (r <= 0.0) + return -1.0; + return (cultmath_distance(other, (a + b) * 0.5) - r) / r; +} + +// Weighted lattice cells: the four per-cell steps of math.Lattice.cs, statement for statement; cultmath_weighted_lattice_cells, +// after them, is the whole function. +float3 cultmath_lattice_site(float2 cell, float time, float drift) +{ + int3 h = cultmath_pcg3d(int3((int)cell.x, (int)cell.y, 0)); + float2 phase = float2((float)((uint)h.x >> 8) * (1.0 / 16777216.0), (float)((uint)h.y >> 8) * (1.0 / 16777216.0)); + float2 site = cell + 0.5 + 0.5 * float2(sin(drift * time + CULTMATH_TAU * phase.x), sin(drift * time + CULTMATH_TAU * phase.y)); + return float3(site, 0.5 + 0.5 * ((float)((uint)h.z >> 8) * (1.0 / 16777216.0))); +} + +float cultmath_lattice_weight(float base_weight, float border, float boost, float falloff) +{ + float t = border / falloff; + return base_weight * (1.0 + boost * exp(-(t * t))); +} + +float cultmath_lattice_distance(float2 q, float2 site, float weight, float2 normal, float stretch) +{ + float2 v = site - q; + float a = dot(v, normal); + float c = v.x * normal.y - v.y * normal.x; + return weight * length(float2(stretch * a, c)); +} + +float cultmath_lattice_smooth_step(float m, float d, float f1, float smoothing) +{ + if (d >= f1 + 2.0 * smoothing) + return m; + float h = cultmath_smoothstep(0.0, 1.0, 0.5 + 0.5 * (m - d) / smoothing); + float next = m + (d - m) * h - h * (1.0 - h) * smoothing / (1.0 + 3.0 * smoothing); + return min(next, f1 + smoothing); +} + +// Sites by value: a shader function cannot take a span, so these take float4 sites[CULTMATH_MAX_SITES] and the count in use, with +// count in [0, CULTMATH_MAX_SITES]. A consumer defines CULTMATH_MAX_SITES before including this file to change the capacity; loops +// run to count, so the capacity costs uniform space, not iterations. A caller whose sites live in a buffer copies them into a local array first. +// The preconditions the C# functions throw for are the caller's in a shader: finite arguments, cellSize > 0, boost in [0, 4], +// falloff > 0, smoothing in (0, 1], stretch in [1, 2], p within 2^23 cells. A zero stretchNormal means (1, 0) and needs stretch == 1. +// cultmath_weighted_lattice_cells is math.weighted_lattice_cells: the ring pass is bounded by k <= 37 and exits as C# does, and the +// box pass recomputes each distance instead of caching it (a 75 x 75 private array is not a shader option), with the same values. +#ifndef CULTMATH_MAX_SITES +#define CULTMATH_MAX_SITES 128 +#endif + +float4 cultmath_power_border(float3 p, float4 sites[CULTMATH_MAX_SITES], int count) +{ + CultSiteCells cells = cultmath_site_cells_empty(); + for (int i = 0; i < count; i++) + cells = cultmath_site_cells_insert(cells, cultmath_power_score(p, sites[i]), i); + float4 border = float4(0.0, 0.0, 0.0, 1.0e30); + int owner = (int)cells.nearestSite; + if (owner < 0) + return border; + for (int k = 0; k < count; k++) + if (k != owner) + border = cultmath_power_border_step(p, sites[owner], sites[k], border); + return border; +} + +float cultmath_lattice_cell_distance(float2 q, float2 cell, float time, float drift, float4 bodies[CULTMATH_MAX_SITES], int count, + float cellSize, float boost, float falloff, float2 normal, float stretch) +{ + float3 site = cultmath_lattice_site(cell, time, drift); + float border = cultmath_power_border(float3((cell + 0.5) * cellSize, 0.0), bodies, count).w; + return cultmath_lattice_distance(q, site.xy, cultmath_lattice_weight(site.z, border, boost, falloff), normal, stretch); +} + +float4 cultmath_weighted_lattice_cells(float2 p, float time, float4 bodies[CULTMATH_MAX_SITES], int count, float cellSize, float drift, + float boost, float falloff, float smoothing, float2 stretchNormal, float stretch) +{ + float scale = max(abs(stretchNormal.x), abs(stretchNormal.y)); + float2 normal = float2(1.0, 0.0); + if (scale > 0.0) + { + normal = stretchNormal / scale; + normal = normal / length(normal); + } + float2 q = p / cellSize; + float2 origin = floor(q); + int cx0 = (int)origin.x; + int cz0 = (int)origin.y; + float f1 = 1.0e30; + float f2 = 1.0e30; + int reach = 0; + for (int k = 0; k <= 37; k++) + { + if (k > 1 && 0.5 * (float)(k - 1) >= max(f2, f1 + 2.0 * smoothing)) + break; + for (int dz = -k; dz <= k; dz++) + { + int step = dz == -k || dz == k || k == 0 ? 1 : 2 * k; + for (int dx = -k; dx <= k; dx += step) + { + float d = cultmath_lattice_cell_distance(q, float2(cx0 + dx, cz0 + dz), time, drift, bodies, count, cellSize, boost, falloff, normal, stretch); + if (d < f1) { f2 = f1; f1 = d; } + else if (d < f2) f2 = d; + } + } + reach = k; + } + float m = f1 + smoothing; + float best = 1.0e30; + float second = 1.0e30; + int winDx = 0; + int winDz = 0; + for (int dz = -reach; dz <= reach; dz++) + for (int dx = -reach; dx <= reach; dx++) + { + float d = cultmath_lattice_cell_distance(q, float2(cx0 + dx, cz0 + dz), time, drift, bodies, count, cellSize, boost, falloff, normal, stretch); + if (d < best) { second = best; best = d; winDx = dx; winDz = dz; } + else if (d < second) second = d; + m = cultmath_lattice_smooth_step(m, d, f1, smoothing); + } + int4 id = cultmath_pcg4d(int4(cx0 + winDx, cz0 + winDz, 0, 0)); + return float4(best, second, m, (float)((uint)id.w >> 8) * (1.0 / 16777216.0)); +} + +float2 cultmath_segment_closest(float2 point_value, float2 start, float2 end) +{ + float2 segment = end - start; + float segmentLengthSq = cultmath_lengthsq(segment); + if (segmentLengthSq <= 0.0) + return start; + + float t = cultmath_saturate(dot(point_value - start, segment) / segmentLengthSq); + return start + segment * t; +} + +float3 cultmath_segment_closest(float3 point_value, float3 start, float3 end) +{ + float3 segment = end - start; + float segmentLengthSq = cultmath_lengthsq(segment); + if (segmentLengthSq <= 0.0) + return start; + + float t = cultmath_saturate(dot(point_value - start, segment) / segmentLengthSq); + return start + segment * t; +} + +float cultmath_distance_to_segment(float2 point_value, float2 start, float2 end) +{ + return cultmath_distance(point_value, cultmath_segment_closest(point_value, start, end)); +} + +float cultmath_distance_to_segment(float3 point_value, float3 start, float3 end) +{ + return cultmath_distance(point_value, cultmath_segment_closest(point_value, start, end)); +} + #include "CultMath.Phacelle.hlsl" #include "CultMath.Interval.hlsl" #include "CultMath.Cycles.hlsl" #include "CultMath.Affine.hlsl" +// Span stages (invariant 8): the SpanPath, SpanStage and SpanNoise of math.Span.cs, field for field in +// C#'s order, and cultmath_span_stage, its octave stage, statement for statement so the text is a bit-for-bit +// mirror. They follow the includes because the bounds read CULTMATH_SNOISE_LIPSCHITZ, _HESSIAN and _THIRD. +// A shader caller builds a SpanStage itself (SpanStage(1.0, 1.0, vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0)) +// is the identity of math.SpanStage.Identity, which has no shader form); see math.span_stage's comments for +// the span, the transform, the bounds and the allowances. cultmath_span_rounding and cultmath_span_slack +// are math.span_rounding and math.span_slack, the owners of S_o and of the three allowances. +struct SpanPath +{ + float3 midpoint; + float3 velocity; + float speed; + float acceleration; + float halfLength; +}; + +struct SpanStage +{ + float frequency; + float stretch; + float3 axis; + float3 shift; + float3 offset; + float3 octaveStep; +}; + +struct SpanNoise +{ + float4 field; + float curvature; + float fold; +}; + +float cultmath_span_rounding(float scale, float3 mq, SpanStage stage, float3 octaveShift, float nu, float halfLength) +{ + return 9.5367431640625e-7 * (abs(scale) * (cultmath_csum(abs(mq)) + cultmath_csum(abs(stage.shift))) + cultmath_csum(abs(stage.offset)) + cultmath_csum(abs(octaveShift)) + 1.7320508 * nu * halfLength); +} + +float3 cultmath_span_slack(float rounding) +{ + return float3(CULTMATH_SNOISE_READ_VALUE + CULTMATH_SNOISE_LIPSCHITZ * rounding, + CULTMATH_SNOISE_READ_GRADIENT + CULTMATH_SNOISE_HESSIAN * rounding, + 9.765625e-4 + CULTMATH_SNOISE_THIRD * rounding); +} + +// The octave stage behind cultmath_span_fbm and cultmath_span_ridged, as math.span_stage is behind span_fbm +// and span_ridged. The Frobenius norm of the Hessian is written out in C#'s order (GLSL has no _mRC member +// access); the C# local named step is octaveShift here (it would shadow GLSL's step()). +SpanNoise cultmath_span_stage(bool ridged, SpanPath path, SpanStage stage, int octaves, float lacunarity, float gain) +{ + float3 q = path.midpoint; + float halfLength = path.halfLength; + octaves = clamp(octaves, 0, 16); + bool stretched = dot(stage.axis, stage.axis) > 0.0 && stage.stretch != 1.0; + float3 direction = stretched ? normalize(stage.axis) : float3(0.0, 0.0, 0.0); + float squeeze = stretched ? 1.0 / stage.stretch - 1.0 : 0.0; + float norm = abs(stage.frequency) * (stretched ? max(1.0, 1.0 / stage.stretch) : 1.0); + float3 mq = stretched ? stage.frequency * (q + squeeze * dot(direction, q) * direction) : stage.frequency * q; + float3 mv = stretched ? stage.frequency * (path.velocity + squeeze * dot(direction, path.velocity) * direction) : stage.frequency * path.velocity; + float amplitude = 1.0; + float scale = 1.0; + float value = 0.0; + float3 gradient = float3(0.0, 0.0, 0.0); + float curvature = 0.0; + float fold = 0.0; + for (int i = 0; i < octaves; i++) + { + float3 octaveShift = (float)i * stage.octaveStep; + float3 x = scale * (mq + stage.shift) + (stage.offset + octaveShift); + float4 n = cultmath_snoise_grad(x); + float3 g = float3(n.x, n.y, n.z); + float3 mg = stretched ? stage.frequency * (g + squeeze * dot(direction, g) * direction) : stage.frequency * g; + if (ridged) + { + float s = sign(n.w); + value += amplitude * (1.0 - abs(n.w)); + gradient += -amplitude * scale * s * mg; + } + else + { + value += amplitude * n.w; + gradient += amplitude * scale * mg; + } + + float weight = abs(amplitude); + float factor = abs(scale) * norm; + float nu = factor * path.speed; + float rounding = cultmath_span_rounding(scale, mq, stage, octaveShift, nu, halfLength); + float3 slack = cultmath_span_slack(rounding); + float valueSlack = slack.x; + float gradientSlack = slack.y; + float hessianSlack = slack.z; + float3x3 hm = cultmath_snoise_hessian(x); + float frobenius = sqrt(hm[0][0] * hm[0][0] + hm[0][1] * hm[0][1] + hm[0][2] * hm[0][2] + hm[1][0] * hm[1][0] + hm[1][1] * hm[1][1] + hm[1][2] * hm[1][2] + + hm[2][0] * hm[2][0] + hm[2][1] * hm[2][1] + hm[2][2] * hm[2][2]); + float hessianBound = min(CULTMATH_SNOISE_HESSIAN, frobenius + hessianSlack + CULTMATH_SNOISE_THIRD * nu * halfLength); + curvature += weight * factor * factor * hessianBound; + if (ridged) + { + float3 w = scale * mv; + float reach = hessianBound * nu * halfLength; + float gl = min(CULTMATH_SNOISE_LIPSCHITZ, length(g) + gradientSlack + reach); + float travel = (abs(dot(g, w)) + gradientSlack * length(w)) * halfLength + (hessianBound * nu * length(w) + gl * factor * path.acceleration) * (0.5 * halfLength * halfLength) + 2.0 * valueSlack; + fold += 2.0 * weight * max(travel - abs(n.w), 0.0); + } + + scale *= lacunarity; + amplitude *= gain; + } + + SpanNoise result; + result.field = float4(gradient, value); + result.curvature = curvature; + result.fold = fold; + return result; +} + +SpanNoise cultmath_span_fbm(SpanPath path, SpanStage stage, int octaves, float lacunarity, float gain) +{ + return cultmath_span_stage(false, path, stage, octaves, lacunarity, gain); +} + +SpanNoise cultmath_span_ridged(SpanPath path, SpanStage stage, int octaves, float lacunarity, float gain) +{ + return cultmath_span_stage(true, path, stage, octaves, lacunarity, gain); +} + float cultmath_value_noise(float2 position) { float2 cell = floor(position); diff --git a/packages/cultmath/unity/org.gamecult.cultmath/package.json b/packages/cultmath/unity/org.gamecult.cultmath/package.json index 04f90e59..20ffe196 100644 --- a/packages/cultmath/unity/org.gamecult.cultmath/package.json +++ b/packages/cultmath/unity/org.gamecult.cultmath/package.json @@ -1,7 +1,7 @@ { "name": "org.gamecult.cultmath", "displayName": "CultMath", - "version": "0.4.1", + "version": "0.5.0", "unity": "2021.3", "description": "Precompiled CultMath numeric primitives and matching HLSL semantics for GameCult Unity runtimes.", "license": "MIT AND MPL-2.0 AND Apache-2.0", diff --git a/packages/cultmesh-browser/CHANGELOG.md b/packages/cultmesh-browser/CHANGELOG.md new file mode 100644 index 00000000..0093ccf0 --- /dev/null +++ b/packages/cultmesh-browser/CHANGELOG.md @@ -0,0 +1,17 @@ +# Changelog + +All notable changes to `cultmesh-browser` are recorded here, following +[Keep a Changelog](https://keepachangelog.com/en/1.1.0/). + +## [0.4.0] + +### Added +- A verifying content reader: `fetchVerifiedContent` and `fetchVerifiedChunk` + read CultMesh CDN content over HTTP and release no byte that failed its chunk + or whole-body SHA-256. Failures are `CultMeshContentError` with a stable + `code`. The reader refuses every redirect, including https to https, while + the single-host content trust stands. + +### Changed +- Depends on `cultnet-ts` `^0.3.0`; the interop test uses `cultmesh-ts` + `^0.2.0` as a devDependency. diff --git a/packages/cultmesh-browser/README.md b/packages/cultmesh-browser/README.md index e130171c..ab29d65f 100644 --- a/packages/cultmesh-browser/README.md +++ b/packages/cultmesh-browser/README.md @@ -69,3 +69,36 @@ Run `scripts/verify-eve-browser-network.mjs --eve-root ` for the real Chromium + C# headless chronology. The witness publishes a lower-priority decoy endpoint owned by another runtime and proves that neither client connects to it before and after route rotation. + +## Verified content + +`fetchVerifiedContent(endpoint, manifest)` and +`fetchVerifiedChunk(endpoint, hash, size)` read CultMesh CDN content over HTTP. +The endpoint comes from CultMesh and never from content: a manifest carries no +URL. No byte is released that failed its chunk or whole-body SHA-256 (WebCrypto, +so a secure context in browsers). Only https is accepted, and http only on +loopback; a redirect is a `network` failure, and an endpoint spelling on which +.NET `UriBuilder` and WHATWG `URL` would build different request URLs (non-ASCII, +`'` `{` `}` `|` `^` `\` or a space, a stray `%`, an escaped unreserved character) +is `insecure-endpoint`. A size the runtime cannot allocate is `too-large`. Options: `maxConcurrentChunkRequests` (1 to 32, default 4), `maxBytes` +(default 256 MiB, checked before any request), `signal` (an abort rejects with +the signal's own reason). Failures are `CultMeshContentError` with a `code` +(`manifest-invalid`, `too-large`, `insecure-endpoint`, `webcrypto-unavailable`, +`network`, `http-status`, `length-mismatch`, `chunk-hash-mismatch`, +`content-hash-mismatch`); messages never carry the endpoint or body bytes. The +byte count actually received is judged, never a length header, because Fetch +decodes content codings. + +Browser floor: the reader needs `String.prototype.toWellFormed` (ES2024) and +WebCrypto `crypto.subtle`; without WebCrypto it fails with +`webcrypto-unavailable`. Redirects are refused, including https to https: the +endpoint CultMesh resolved is the only host the reader trusts. + +```ts +import { fetchVerifiedContent } from "cultmesh-browser"; + +const bytes = await fetchVerifiedContent(endpoint, manifest, { + signal: AbortSignal.timeout(30_000), + maxConcurrentChunkRequests: 8, +}); +``` diff --git a/packages/cultmesh-browser/package.json b/packages/cultmesh-browser/package.json index cd381854..6d52c9bf 100644 --- a/packages/cultmesh-browser/package.json +++ b/packages/cultmesh-browser/package.json @@ -1,6 +1,6 @@ { "name": "cultmesh-browser", - "version": "0.3.0", + "version": "0.4.0", "description": "Browser-safe CultMesh document leases and typed operations over CultNet WebSocket transport.", "type": "module", "main": "dist/index.js", @@ -20,7 +20,8 @@ "build": "node ../../node_modules/typescript/bin/tsc -p tsconfig.json", "prepack": "node ../../node_modules/typescript/bin/tsc -p tsconfig.json", "typecheck": "node ../../node_modules/typescript/bin/tsc -p tsconfig.json --pretty false", - "test": "node ../../node_modules/typescript/bin/tsc -p tsconfig.json && node ../../node_modules/typescript/bin/tsc -p tsconfig.test.json && node --test dist-test/test/*.test.js" + "test": "node ../../node_modules/typescript/bin/tsc -p tsconfig.json && node ../../node_modules/typescript/bin/tsc -p tsconfig.test.json && node --test dist-test/test/*.test.js", + "test:interop": "node ../../node_modules/typescript/bin/tsc -p tsconfig.json && node ../../node_modules/typescript/bin/tsc -p tsconfig.test.json && node --test --test-force-exit dist-test/test/interop/*.test.js" }, "keywords": [ "cultmesh", @@ -41,10 +42,11 @@ }, "dependencies": { "@gamecult/cultcache-ts": "^0.14.0", - "cultnet-ts": "^0.2.0" + "cultnet-ts": "^0.3.0" }, "devDependencies": { "@types/node": "^24.0.0", + "cultmesh-ts": "^0.2.0", "typescript": "^5.9.0" } } diff --git a/packages/cultmesh-browser/src/content.ts b/packages/cultmesh-browser/src/content.ts new file mode 100644 index 00000000..d9e09b4f --- /dev/null +++ b/packages/cultmesh-browser/src/content.ts @@ -0,0 +1,160 @@ +// Verified reads of CultMesh CDN content over HTTP(S). This module is the only place bytes are released to a caller, and it +// releases them after judging what it received: each chunk against its hash, then the whole body against the manifest's. +// The response's declared length and coding are never consulted (Fetch decodes codings; the bytes received are the evidence). +// Hashing, hex rules, record keys, the loopback rule and manifest validation belong to cultnet-ts and are only called here. + +import { EMPTY_SHA256, chunkRecordKey, parseSha256Hex, sha256Hex, validateManifest, type CultMeshCdnArtifactManifest } from "cultnet-ts/content"; +import { isLoopbackEndpoint } from "cultnet-ts/authority"; + +export type CultMeshContentErrorCode = + | "manifest-invalid" | "too-large" | "insecure-endpoint" | "webcrypto-unavailable" | "network" + | "http-status" | "length-mismatch" | "chunk-hash-mismatch" | "content-hash-mismatch"; + +const MESSAGES: Record = { + "manifest-invalid": "The CDN manifest or chunk description is invalid.", + "too-large": "The content is larger than maxBytes.", + "insecure-endpoint": "Content endpoints must be plain https, or http on loopback.", + "webcrypto-unavailable": "WebCrypto SHA-256 is unavailable.", + "network": "The content request failed.", + "http-status": "The content server did not answer 200.", + "length-mismatch": "The content body did not match the chunk size.", + "chunk-hash-mismatch": "A content chunk did not match its hash.", + "content-hash-mismatch": "The content did not match the manifest content hash.", +}; + +/** A refusal to release bytes. The message is fixed per code and never carries the endpoint or any body byte. */ +export class CultMeshContentError extends Error { + constructor(readonly code: CultMeshContentErrorCode, readonly chunkHash?: string, readonly status?: number, cause?: unknown) { + super(MESSAGES[code], cause === undefined ? undefined : { cause }); + this.name = "CultMeshContentError"; + } +} + +export interface CultMeshContentFetchOptions { + readonly signal?: AbortSignal; + /** Largest whole body, checked before any request. Default 256 MiB. */ + readonly maxBytes?: number; + /** Chunk requests in flight at once, an integer 1..32. Default 4. */ + readonly maxConcurrentChunkRequests?: number; + readonly fetch?: typeof globalThis.fetch; +} + +interface Resolved { readonly doFetch: typeof globalThis.fetch; readonly caller?: AbortSignal; readonly maxBytes: number; readonly concurrency: number } +interface Job { readonly url: string; readonly hash: string; readonly slot: Uint8Array } + +const fail = (code: CultMeshContentErrorCode, chunkHash?: string, status?: number, cause?: unknown) => new CultMeshContentError(code, chunkHash, status, cause); +const isByteCount = (value: number): boolean => Number.isSafeInteger(value) && value >= 0; + +// Uri.EscapeDataString: encodeURIComponent, plus the five characters it leaves bare. +const escapeData = (value: string): string => encodeURIComponent(value).replace(/[!'()*]/g, c => `%${c.charCodeAt(0).toString(16).toUpperCase()}`); + +// An endpoint the request URL of which is the same string in .NET `UriBuilder` and WHATWG `URL`. Both are free to rewrite what +// they dislike (`'` in a query, `{}|^\` and non-ASCII anywhere, a percent sign that is not an escape, an escaped unreserved +// character, an escaped byte past ASCII, an IDN host, an IPv6 literal that embeds an IPv4 address), and they rewrite it +// differently, which would split CDN cache entries between runtimes; so those spellings are refused instead of translated. +// A scheme not followed by exactly `//` and a host is no authority form: the C# connector refuses it, and `URL` repairs it. +const AUTHORITY_FORM = /^[A-Za-z][A-Za-z0-9+.-]*:\/\/[^/]/; +const PLAIN_ENDPOINT = /^(?:[A-Za-z0-9\-._~:/?#@!$&*()+,;=[\]]|%[0-9A-Fa-f]{2})*$/; +const ESCAPE_DIVERGES = /%(?:2[de]|3\d|4[1-9a-f]|5[0-9af]|6[1-9a-f]|7[0-9ae]|[89a-f][0-9a-f])/i; +const EMBEDS_IPV4 = /^\[::(?:ffff(?::0)?:)?[0-9a-f]{1,4}:[0-9a-f]{1,4}\]$/; +const isPlainEndpoint = (endpoint: string): boolean => + AUTHORITY_FORM.test(endpoint) && PLAIN_ENDPOINT.test(endpoint) && !ESCAPE_DIVERGES.test(endpoint) && !EMBEDS_IPV4.test(new URL(endpoint).hostname); + +/** `CultMeshHttpsContentTransportConnector.BuildChunkUri`: an existing query (even an empty one, leading `?`s trimmed) is kept and joined with `&`. */ +function chunkUrl(endpoint: string, hash: string, recordKey: string): string { + const url = new URL(endpoint); + const kept = url.href.split("#")[0]!.includes("?") ? `${url.search.replace(/^\?+/, "")}&` : ""; + url.search = `${kept}chunkHash=${escapeData(hash)}&recordKey=${escapeData(recordKey)}`; + return url.href; +} + +/** Options, caller abort and endpoint scheme: everything that can be refused without reading the manifest. */ +function resolve(endpoint: string, options: CultMeshContentFetchOptions): Resolved { + const { signal, maxBytes = 268435456, maxConcurrentChunkRequests: concurrency = 4, fetch } = options; + if (!Number.isInteger(concurrency) || concurrency < 1 || concurrency > 32) throw new RangeError("maxConcurrentChunkRequests must be an integer from 1 to 32."); + if (!isByteCount(maxBytes)) throw new RangeError("maxBytes must be a non-negative safe integer."); + if (signal?.aborted) throw signal.reason; + const secure = (() => { try { const { protocol } = new URL(endpoint); return isPlainEndpoint(endpoint) && (protocol === "https:" || (protocol === "http:" && isLoopbackEndpoint(endpoint))); } catch { return false; } })(); + if (!secure) throw fail("insecure-endpoint"); + return { doFetch: fetch ?? ((input, init) => globalThis.fetch(input, init)), caller: signal, maxBytes, concurrency }; +} + +/** The one private buffer. A size the runtime cannot allocate is an artifact too large for this reader, not a bad option. */ +function allocate(sizeBytes: number): Uint8Array { + try { return new Uint8Array(sizeBytes); } catch (cause) { throw fail("too-large", undefined, undefined, cause); } +} + +const requireWebCrypto = (): void => { if (!globalThis.crypto?.subtle) throw fail("webcrypto-unavailable"); }; + +/** One chunk: GET (a redirect is a failure: the endpoint gate cannot see where it would lead), status 200, the body streamed into its slot and cut at the first byte past the slot, then the chunk hash. */ +async function readChunk(r: Resolved, signal: AbortSignal, { url, hash, slot }: Job): Promise { + if (slot.length === 0) { if (hash !== EMPTY_SHA256) throw fail("chunk-hash-mismatch", hash); return; } + r.caller?.throwIfAborted(); + const network = (cause: unknown) => r.caller?.aborted ? r.caller.reason : fail("network", hash, undefined, cause); + const response = await r.doFetch(url, { method: "GET", credentials: "omit", redirect: "error", signal }).catch(cause => { throw network(cause); }); + if (response.status !== 200) { void response.body?.cancel().catch(() => {}); throw fail("http-status", hash, response.status); } + const reader = response.body?.getReader(); + let filled = 0; + try { + for (let part = await reader?.read(); part && !part.done; part = await reader!.read()) { + if (filled + part.value.length > slot.length) { void reader!.cancel().catch(() => {}); throw fail("length-mismatch", hash); } + slot.set(part.value, filled); + filled += part.value.length; + } + } catch (error) { throw error instanceof CultMeshContentError ? error : network(error); } + if (filled < slot.length) throw fail("length-mismatch", hash); + if (await sha256Hex(slot) !== hash) throw fail("chunk-hash-mismatch", hash); +} + +/** A sliding window of chunk reads. The first failure aborts every request still in flight and is thrown at once. */ +async function readChunks(r: Resolved, jobs: readonly Job[]): Promise { + const internal = new AbortController(); + const relay = () => internal.abort(r.caller!.reason); + r.caller?.addEventListener("abort", relay); + let next = 0; + const worker = async () => { + for (let job = jobs[next++]; job && !internal.signal.aborted; job = jobs[next++]) { + try { await readChunk(r, internal.signal, job); } catch (error) { internal.abort(error); } + } + }; + // The rejection waits for no worker: a fetch that ignores its signal must not hold a failure back. + const failed = new Promise((_, reject) => internal.signal.addEventListener("abort", () => reject(internal.signal.reason))); + try { await Promise.race([Promise.all(Array.from({ length: Math.min(r.concurrency, jobs.length) }, worker)), failed]); } + finally { r.caller?.removeEventListener("abort", relay); } +} + +/** The whole body of a manifest's artifact, returned only after every chunk and the whole-body hash verified. */ +export async function fetchVerifiedContent(endpoint: string, manifest: CultMeshCdnArtifactManifest, options: CultMeshContentFetchOptions = {}): Promise { + const r = resolve(endpoint, options); + let contentHash: string; + let planned: { hash: string; url: string; offset: number; size: number }[]; + try { + validateManifest(manifest); + contentHash = parseSha256Hex(manifest.contentHash, "contentHash"); + const refs = manifest.chunks; + if (refs.length > 1 && refs.some(ref => ref.sizeBytes === 0)) throw new Error("A zero-size chunk must be the only chunk."); + planned = refs.map(ref => { const hash = parseSha256Hex(ref.chunkHash, "chunkHash"); return { hash, url: chunkUrl(endpoint, hash, ref.recordKey ?? ""), offset: ref.offset, size: ref.sizeBytes }; }); + } catch (cause) { throw fail("manifest-invalid", undefined, undefined, cause); } + if (manifest.sizeBytes > r.maxBytes) throw fail("too-large"); + requireWebCrypto(); + const buffer = allocate(manifest.sizeBytes); + await readChunks(r, planned.map(({ hash, url, offset, size }) => ({ url, hash, slot: buffer.subarray(offset, offset + size) }))); + if (await sha256Hex(buffer) !== contentHash) throw fail("content-hash-mismatch"); + r.caller?.throwIfAborted(); + return buffer; +} + +/** One chunk by hash and size, over the same primitive; the record key is the one a packed manifest carries. */ +export async function fetchVerifiedChunk(endpoint: string, chunkHash: string, sizeBytes: number, options: CultMeshContentFetchOptions = {}): Promise { + const r = resolve(endpoint, options); + let hash: string; + try { + hash = parseSha256Hex(chunkHash, "chunkHash"); + if (!isByteCount(sizeBytes)) throw new Error("Size must be a safe integer."); + } catch (cause) { throw fail("manifest-invalid", undefined, undefined, cause); } + if (sizeBytes > r.maxBytes) throw fail("too-large"); + requireWebCrypto(); + const slot = allocate(sizeBytes); + await readChunks(r, [{ url: chunkUrl(endpoint, hash, chunkRecordKey(hash)), hash, slot }]); + return slot; +} diff --git a/packages/cultmesh-browser/src/index.ts b/packages/cultmesh-browser/src/index.ts index 5c20806c..beae9e36 100644 --- a/packages/cultmesh-browser/src/index.ts +++ b/packages/cultmesh-browser/src/index.ts @@ -32,6 +32,7 @@ import { type CultMeshAuthorityTrustPolicy, type CultMeshP256PublicKey, } from "cultnet-ts/authority"; +export * from "./content.js"; export type CultMeshBrowserIdentity = CultMeshAuthorityIdentity; export type CultMeshBrowserRoute = CultMeshAuthorityRouteView; diff --git a/packages/cultmesh-browser/test/content.test.ts b/packages/cultmesh-browser/test/content.test.ts new file mode 100644 index 00000000..cc0bb322 --- /dev/null +++ b/packages/cultmesh-browser/test/content.test.ts @@ -0,0 +1,596 @@ +// The verified content reader, rule by rule. Chunks and manifests come from cultnet-ts's own packContent, so the reader is +// judged against the shapes the provider will serve; the URL expectations are the .NET `BuildChunkUri` AbsoluteUri strings +// probed for the map (F5, F19), not a spelling of this module's own builder. + +import test from "node:test"; +import assert from "node:assert/strict"; +import { createServer, type IncomingMessage, type ServerResponse } from "node:http"; +import type { AddressInfo } from "node:net"; +import { readFileSync } from "node:fs"; +import { gzipSync } from "node:zlib"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; +import { build } from "esbuild"; +import { EMPTY_SHA256, packContent, sha256Hex, type CultMeshCdnArtifactManifest } from "cultnet-ts/content"; + +import { CultMeshContentError, fetchVerifiedChunk, fetchVerifiedContent, type CultMeshContentErrorCode } from "../src/content.js"; + +const ENDPOINT = "https://cdn.example/content"; +const body = (length: number): Uint8Array => Uint8Array.from({ length }, (_, index) => (index * 7 + 3) & 255); +const pack = (length: number, chunkSizeBytes: number) => packContent("art", body(length), { chunkSizeBytes, createdAtUtc: "2026-01-01T00:00:00.0000000+00:00" }); +const streamOf = (bytes: Uint8Array, onCancel?: () => void) => + new ReadableStream({ start(controller) { controller.enqueue(bytes); controller.close(); }, cancel: onCancel }); +const withChunk = (manifest: CultMeshCdnArtifactManifest, index: number, change: object): CultMeshCdnArtifactManifest => + ({ ...manifest, chunks: manifest.chunks.map((chunk, i) => i === index ? { ...chunk, ...change } : chunk) }); +const codeOf = (code: CultMeshContentErrorCode, extra: object = {}) => (error: unknown) => + error instanceof CultMeshContentError && error.code === code && Object.entries(extra).every(([key, value]) => (error as unknown as Record)[key] === value); + +/** A manifest-invalid rejection whose kept cause has a message matching `pattern`. */ +const causeIs = (pattern: RegExp) => (error: unknown) => { + const cause = (error as Error).cause; + return codeOf("manifest-invalid")(error) && cause instanceof Error && pattern.test(cause.message); +}; + +/** Fails a stalled promise with a timeout instead of letting the test runner wait for it forever. */ +const within = (promise: Promise, ms = 3000): Promise => { + let timer: NodeJS.Timeout; + const late = new Promise((_, reject) => { timer = setTimeout(() => reject(new Error(`did not settle within ${ms} ms`)), ms); }); + return Promise.race([promise, late]).finally(() => clearTimeout(timer)); +}; + +interface Call { url: string; init: RequestInit } +type Handler = (call: Call, index: number) => Response | Promise; + +/** A fetch double: records every call, counts requests in flight (the handler's lifetime) and their peak. */ +function double(handler: Handler) { + const calls: Call[] = []; + const state = { inflight: 0, peak: 0 }; + const fetch = (async (input: string | URL | Request, init?: RequestInit) => { + const call = { url: String(input), init: init ?? {} }; + const index = calls.push(call) - 1; + state.peak = Math.max(state.peak, ++state.inflight); + try { return await handler(call, index); } finally { state.inflight--; } + }) as typeof globalThis.fetch; + return { fetch, calls, state }; +} + +/** Serves each requested chunk by the `chunkHash` query parameter, after `delayMs`. */ +function chunkServer(chunks: { chunkHash: string; payload: Uint8Array }[], delayMs = 0) { + const byHash = new Map(chunks.map(chunk => [chunk.chunkHash, chunk.payload])); + return double(async call => { + if (delayMs) await new Promise(resolve => setTimeout(resolve, delayMs)); + const payload = byHash.get(new URL(call.url).searchParams.get("chunkHash")!); + return payload ? new Response(payload as BodyInit) : new Response(null, { status: 404 }); + }); +} + +/** A response that never settles until the request's signal aborts, as a real fetch rejects with the signal's reason. */ +const hangUntilAborted = (call: Call) => new Promise((_, reject) => { + const signal = call.init.signal!; + if (signal.aborted) reject(signal.reason); else signal.addEventListener("abort", () => reject(signal.reason), { once: true }); +}); + +test("request URLs equal the .NET BuildChunkUri AbsoluteUri for every probed endpoint shape", async () => { + const { manifest, chunks } = await pack(1, 4); + const hex = manifest.chunks[0]!.chunkHash!; + const cases: [string, string, string][] = [ + ["https://ygg.example/content", "mesh:cdn:chunk:" + hex, `https://ygg.example/content?chunkHash=${hex}&recordKey=mesh%3Acdn%3Achunk%3A${hex}`], + ["https://ygg.example/content?tenant=sp", "k", `https://ygg.example/content?tenant=sp&chunkHash=${hex}&recordKey=k`], + ["https://h", "k", `https://h/?chunkHash=${hex}&recordKey=k`], + ["https://h/", "k", `https://h/?chunkHash=${hex}&recordKey=k`], + ["https://h:443/x", "k", `https://h/x?chunkHash=${hex}&recordKey=k`], + ["https://H.Example/X/", "k", `https://h.example/X/?chunkHash=${hex}&recordKey=k`], + ["https://h/x#frag", "k", `https://h/x?chunkHash=${hex}&recordKey=k#frag`], + ["https://h/x?a=%20b+c", "k", `https://h/x?a=%20b+c&chunkHash=${hex}&recordKey=k`], + ["https://h/x?", "k", `https://h/x?&chunkHash=${hex}&recordKey=k`], + ["https://h/x??a=1", "k", `https://h/x?a=1&chunkHash=${hex}&recordKey=k`], + ["https://h/x???a=1", "k", `https://h/x?a=1&chunkHash=${hex}&recordKey=k`], + ["https://h/x?a=?b", "k", `https://h/x?a=?b&chunkHash=${hex}&recordKey=k`], + ["https://[::1]:8443/c", "k", `https://[::1]:8443/c?chunkHash=${hex}&recordKey=k`], + ["https://h/x", "", `https://h/x?chunkHash=${hex}&recordKey=`], + ["https://h/x", "k with space/ü&=?#", `https://h/x?chunkHash=${hex}&recordKey=k%20with%20space%2F%C3%BC%26%3D%3F%23`], + ["https://h/x", "!'()*~-._ +é𐐀", `https://h/x?chunkHash=${hex}&recordKey=%21%27%28%29%2A~-._%20%2B%C3%A9%F0%90%90%80`], + ]; + for (const [endpoint, recordKey, expected] of cases) { + const server = chunkServer(chunks); + await fetchVerifiedContent(endpoint, withChunk(manifest, 0, { recordKey }), { fetch: server.fetch }); + assert.equal(server.calls[0]!.url, expected, endpoint); + } + const absent = chunkServer(chunks); + await fetchVerifiedContent(ENDPOINT, withChunk(manifest, 0, { recordKey: undefined }), { fetch: absent.fetch }); + assert.equal(absent.calls[0]!.url, `${ENDPOINT}?chunkHash=${hex}&recordKey=`); +}); + +// test/fixtures/chunk-uri-dotnet.tsv holds, for each endpoint, the AbsoluteUri .NET 10 builds (or the exception UriBuilder throws); +// chunk-uri-dotnet.fsx produced it, and nothing in this file spells an expected URL by hand. The reader may refuse an endpoint +// on which the two runtimes could disagree, but one it accepts must request exactly the URL .NET does, and one .NET refuses it +// must refuse too. +const FIXTURE_HASH = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; +const DOTNET_ROWS = readFileSync(join(dirname(fileURLToPath(import.meta.url)), "..", "..", "test", "fixtures", "chunk-uri-dotnet.tsv"), "utf8") + .split(/\r?\n/).filter(line => line !== "").map(line => { const [endpoint, uri] = line.split("\t"); return { endpoint: endpoint!, uri: uri! }; }); + +test("request URLs equal what .NET builds for every endpoint the reader accepts, and endpoints .NET refuses are refused", async () => { + const { manifest, chunks } = await pack(1, 4); + const hex = manifest.chunks[0]!.chunkHash!; + const requested = (uri: string) => uri.replace(`chunkHash=${FIXTURE_HASH}`, `chunkHash=${hex}`); + let accepted = 0; + for (const { endpoint, uri } of DOTNET_ROWS) { + const viaContent = chunkServer(chunks); + const viaChunk = chunkServer(chunks); + const content = await fetchVerifiedContent(endpoint, withChunk(manifest, 0, { recordKey: "k" }), { fetch: viaContent.fetch }).then(() => null, (error: unknown) => error); + const chunk = await fetchVerifiedChunk(endpoint, hex, 1, { fetch: viaChunk.fetch }).then(() => null, (error: unknown) => error); + if (content === null && chunk === null) { + accepted++; + assert.notEqual(viaContent.calls.length, 0, endpoint); + assert.ok(!uri.startsWith("THROW"), `${endpoint} is refused by .NET but requested`); + assert.equal(viaContent.calls[0]!.url, requested(uri), endpoint); + assert.equal(viaChunk.calls[0]!.url, requested(uri).replace("recordKey=k", `recordKey=${encodeURIComponent(`mesh:cdn:chunk:${hex}`)}`), endpoint); + } else { + assert.ok(codeOf("insecure-endpoint")(content) && codeOf("insecure-endpoint")(chunk), `${endpoint} is refused for another reason`); + assert.equal(viaContent.calls.length + viaChunk.calls.length, 0, endpoint); + } + } + assert.ok(accepted >= 90, `only ${accepted} fixture endpoints are accepted`); +}); + +test("the spellings on which the reader once differed from .NET are rows of the fixture and are refused", async () => { + const { manifest, chunks } = await pack(1, 4); + const rows = new Map(DOTNET_ROWS.map(row => [row.endpoint, row.uri])); + const refused = [ + "https:h/x", "https:/h/x", "https:///h/x", "HTTPS:/evil.example/c", "https:////h/x", "https://[::FFFF:127.0.0.1]/x", "https://[::ffff:7f00:1]/x", + "https://[::7f00:1]/x", "https://[::ffff:0:7f00:1]/x", "https://[0:0:0:0:0:ffff:7f00:1]/x", "https://h/x?a=%e2%82%ac", "https://h/x?a=%c3%a9", "https://h/%c3%a9", + "https://h/%80", "https://h/x?a=%C3%A9", + ]; + for (const endpoint of refused) { + assert.ok(rows.has(endpoint), `${endpoint} is not a fixture row`); + const server = chunkServer(chunks); + await assert.rejects(fetchVerifiedContent(endpoint, manifest, { fetch: server.fetch }), codeOf("insecure-endpoint"), endpoint); + await assert.rejects(fetchVerifiedChunk(endpoint, manifest.chunks[0]!.chunkHash!, 1, { fetch: server.fetch }), codeOf("insecure-endpoint"), endpoint); + assert.equal(server.calls.length, 0, endpoint); + } +}); + +test("hash spellings are normalized into the URL: a prefixed upper-case manifest hash is requested as bare lower-case hex", async () => { + const { manifest, chunks } = await pack(5, 5); + const hex = manifest.chunks[0]!.chunkHash!; + const server = chunkServer(chunks); + const spelled = { ...withChunk(manifest, 0, { chunkHash: `SHA256:${hex.toUpperCase()}` }), contentHash: hex.toUpperCase() }; + assert.deepEqual(await fetchVerifiedContent(ENDPOINT, spelled, { fetch: server.fetch }), body(5)); + assert.equal(new URL(server.calls[0]!.url).searchParams.get("chunkHash"), hex); +}); + +test("a 5.5-chunk manifest returns the input bytes with one credential-free GET per chunk, whatever order the refs are listed in", async () => { + const { manifest, chunks } = await pack(55, 10); + assert.equal(manifest.chunks.length, 6); + for (const refs of [manifest.chunks, [...manifest.chunks].reverse()]) { + const server = chunkServer(chunks); + assert.deepEqual(await fetchVerifiedContent(ENDPOINT, { ...manifest, chunks: refs }, { fetch: server.fetch }), body(55)); + assert.equal(server.calls.length, 6); + assert.deepEqual(new Set(server.calls.map(call => new URL(call.url).searchParams.get("chunkHash"))), new Set(manifest.chunks.map(chunk => chunk.chunkHash))); + for (const call of server.calls) { assert.equal(call.init.method, "GET"); assert.equal(call.init.credentials, "omit"); } + } +}); + +test("with 10 chunks, maxConcurrentChunkRequests 3 peaks at exactly 3 in flight and the default at 4; bad bounds reject RangeError with no fetch", async () => { + const { manifest, chunks } = await pack(100, 10); + for (const [limit, peak] of [[3, 3], [undefined, 4], [1, 1], [32, 10]] as const) { + const server = chunkServer(chunks, 5); + assert.deepEqual(await fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch, maxConcurrentChunkRequests: limit }), body(100)); + assert.equal(server.state.peak, peak, `limit ${limit}`); + } + for (const maxConcurrentChunkRequests of [0, 33, 1.5, Number.NaN]) { + const server = chunkServer(chunks); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch, maxConcurrentChunkRequests }), RangeError); + await assert.rejects(fetchVerifiedChunk(ENDPOINT, manifest.chunks[0]!.chunkHash!, 10, { fetch: server.fetch, maxConcurrentChunkRequests }), RangeError); + assert.equal(server.calls.length, 0); + } + for (const maxBytes of [-1, 1.5, Number.NaN]) await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { maxBytes }), RangeError); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { maxConcurrentChunkRequests: 0 }), /maxConcurrentChunkRequests/); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { maxBytes: -1 }), /maxBytes/); +}); + +test("an empty artifact returns an empty array with no fetch, but still answers to its content hash", async () => { + const { manifest } = await pack(0, 4); + const server = double(() => { throw new Error("no request expected"); }); + const result = await fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch }); + assert.equal(result.length, 0); + await assert.rejects(fetchVerifiedContent(ENDPOINT, { ...manifest, contentHash: "ab".repeat(32) }, { fetch: server.fetch }), codeOf("content-hash-mismatch")); + await assert.rejects(fetchVerifiedContent(ENDPOINT, withChunk(manifest, 0, { chunkHash: "ab".repeat(32) }), { fetch: server.fetch }), codeOf("chunk-hash-mismatch", { chunkHash: "ab".repeat(32) })); + assert.equal(server.calls.length, 0); +}); + +test("a zero-size chunk beside others is manifest-invalid with no fetch", async () => { + const { manifest } = await pack(8, 4); + const [first, second] = manifest.chunks as [typeof manifest.chunks[number], typeof manifest.chunks[number]]; + const flood = { ...manifest, chunks: [first, { ...first, chunkHash: EMPTY_SHA256, offset: 4, sizeBytes: 0 }, second] }; + const server = double(() => { throw new Error("no request expected"); }); + await assert.rejects(fetchVerifiedContent(ENDPOINT, flood, { fetch: server.fetch }), causeIs(/^A zero-size chunk must be the only chunk\.$/)); + // two refs are enough, and the empty one may come last or first + const one = (await pack(4, 4)).manifest; + const empty = { ...one.chunks[0]!, chunkHash: EMPTY_SHA256, sizeBytes: 0 }; + for (const chunks of [[one.chunks[0]!, { ...empty, offset: 4 }], [{ ...empty, offset: 0 }, one.chunks[0]!], [{ ...empty, offset: 0 }, { ...empty, offset: 0 }]]) { + await assert.rejects(fetchVerifiedContent(ENDPOINT, { ...one, sizeBytes: chunks.reduce((sum, chunk) => sum + chunk.sizeBytes, 0), chunks }, { fetch: server.fetch }), codeOf("manifest-invalid")); + } + assert.equal(server.calls.length, 0); +}); + +test("the byte cap is checked before any request: one over maxBytes and one over the 256 MiB default are too-large, the cap itself is not", async () => { + const { manifest, chunks } = await pack(10, 5); + const server = chunkServer(chunks); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch, maxBytes: 9 }), codeOf("too-large")); + await assert.rejects(fetchVerifiedChunk(ENDPOINT, manifest.chunks[0]!.chunkHash!, 5, { fetch: server.fetch, maxBytes: 4 }), codeOf("too-large")); + assert.equal(server.calls.length, 0); + assert.deepEqual(await fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch, maxBytes: 10 }), body(10)); + assert.deepEqual(await fetchVerifiedChunk(ENDPOINT, manifest.chunks[0]!.chunkHash!, 5, { fetch: server.fetch, maxBytes: 5 }), body(5)); + const huge = (size: number) => ({ ...manifest, sizeBytes: size, chunks: [{ ...manifest.chunks[0]!, offset: 0, sizeBytes: size }] }); + const refuses = double(() => { throw new TypeError("offline"); }); + await assert.rejects(fetchVerifiedContent(ENDPOINT, huge(268435457), { fetch: refuses.fetch }), codeOf("too-large")); + assert.equal(refuses.calls.length, 0); + await assert.rejects(fetchVerifiedContent(ENDPOINT, huge(268435456), { fetch: refuses.fetch }), codeOf("network")); +}); + +test("https is required, http only on loopback; ftp and unparseable endpoints are insecure-endpoint with no fetch", async () => { + const { manifest, chunks } = await pack(5, 5); + for (const endpoint of ["http://example.com/c", "http://cdn.example:8080/c", "http://localhost.example/c", "http://127.0.0.1.example/c", "http://10.0.0.1:80/c", "ftp://127.0.0.1/c", "not a url", "", "//cdn.example/c"]) { + const server = chunkServer(chunks); + await assert.rejects(fetchVerifiedContent(endpoint, manifest, { fetch: server.fetch }), codeOf("insecure-endpoint"), endpoint); + await assert.rejects(fetchVerifiedChunk(endpoint, manifest.chunks[0]!.chunkHash!, 5, { fetch: server.fetch }), codeOf("insecure-endpoint"), endpoint); + assert.equal(server.calls.length, 0); + } + for (const endpoint of ["http://127.0.0.1:8080/c", "http://localhost/c", "http://[::1]:9/c", "https://cdn.example/c"]) { + const server = chunkServer(chunks); + assert.deepEqual(await fetchVerifiedContent(endpoint, manifest, { fetch: server.fetch }), body(5), endpoint); + } +}); + +test("non-hex hashes and a gapped manifest are manifest-invalid with no fetch, in both exports", async () => { + const { manifest, chunks } = await pack(10, 5); + const server = chunkServer(chunks); + const bad = [ + withChunk(manifest, 1, { chunkHash: "g".repeat(64) }), + { ...manifest, contentHash: "abc" }, + withChunk(manifest, 1, { offset: 6 }), + { ...manifest, sizeBytes: 11 }, + { ...manifest, sizeBytes: 10.5 }, + // fractional chunk sizes that still tile the manifest, and an infinite one: contiguous, so only a size check refuses them + { ...manifest, chunks: [{ ...manifest.chunks[0]!, sizeBytes: 4 }, { ...manifest.chunks[1]!, offset: 4, sizeBytes: 1.5 }, { ...manifest.chunks[1]!, offset: 5.5, sizeBytes: 4.5 }] }, + { ...manifest, sizeBytes: Infinity, chunks: [{ ...manifest.chunks[0]!, sizeBytes: Infinity }] }, + ]; + for (const candidate of bad) await assert.rejects(fetchVerifiedContent(ENDPOINT, candidate, { fetch: server.fetch }), codeOf("manifest-invalid")); + // the kept cause names which field was wrong + await assert.rejects(fetchVerifiedContent(ENDPOINT, bad[0]!, { fetch: server.fetch }), causeIs(/'chunkHash'/)); + await assert.rejects(fetchVerifiedContent(ENDPOINT, bad[1]!, { fetch: server.fetch }), causeIs(/'contentHash'/)); + await assert.rejects(fetchVerifiedChunk(ENDPOINT, "xyz", 5, { fetch: server.fetch }), causeIs(/'chunkHash'/)); + await assert.rejects(fetchVerifiedChunk(ENDPOINT, manifest.chunks[0]!.chunkHash!, 1.5, { fetch: server.fetch }), causeIs(/^Size must be a safe integer\.$/)); + for (const [hash, size] of [["xyz", 5], [manifest.chunks[0]!.chunkHash!, -1], [manifest.chunks[0]!.chunkHash!, 1.5], [manifest.chunks[0]!.chunkHash!, Number.NaN]] as const) { + await assert.rejects(fetchVerifiedChunk(ENDPOINT, hash, size, { fetch: server.fetch }), codeOf("manifest-invalid")); + } + assert.equal(server.calls.length, 0); +}); + +test("every status but 200 (404, 500, 206, 304 and each other 2xx and 3xx tried) is http-status carrying the status, and the body is cancelled", async () => { + const { manifest } = await pack(5, 5); + for (const status of [404, 500, 206, 304, 201, 202, 203, 204, 205, 299, 301]) { + let cancelled = false; + const bodyless = [204, 205, 304].includes(status); + const server = double(() => new Response(bodyless ? null : streamOf(body(5), () => { cancelled = true; }), { status })); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch }), codeOf("http-status", { status, chunkHash: manifest.chunks[0]!.chunkHash! })); + assert.equal(cancelled, !bodyless, String(status)); + } +}); + +test("wrong bytes of the right length are chunk-hash-mismatch naming the chunk; the other in-flight requests are aborted and nothing is returned", async () => { + const { manifest, chunks } = await pack(30, 10); + const signals: AbortSignal[] = []; + const server = double((call, index) => { + signals.push(call.init.signal!); + return index === 0 ? new Response(new Uint8Array(10).fill(9)) : hangUntilAborted(call); + }); + await assert.rejects(within(fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch, maxConcurrentChunkRequests: 3 })), + codeOf("chunk-hash-mismatch", { chunkHash: chunks[0]!.chunkHash! })); + assert.equal(signals.length, 3); + assert.deepEqual(signals.map(signal => signal.aborted), [true, true, true]); +}); + +test("chunks that each verify under a wrong contentHash are content-hash-mismatch", async () => { + const { manifest, chunks } = await pack(20, 10); + const server = chunkServer(chunks); + await assert.rejects(fetchVerifiedContent(ENDPOINT, { ...manifest, contentHash: await sha256Hex(body(21)) }, { fetch: server.fetch }), codeOf("content-hash-mismatch")); +}); + +test("an endless body is cancelled at the first byte past the chunk, a short body is refused at its end", async () => { + const { manifest } = await pack(10, 10); + let pulled = 0; + let cancelled = false; + const endless = double(() => new Response(new ReadableStream({ + pull(controller) { pulled++; controller.enqueue(Uint8Array.of(1)); }, cancel() { cancelled = true; }, + }, { highWaterMark: 0 }))); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: endless.fetch }), codeOf("length-mismatch")); + assert.ok(pulled <= 11, `pulled ${pulled}`); + assert.ok(cancelled); + for (const length of [0, 9]) { + const short = double(() => new Response(body(10).subarray(0, length) as BodyInit)); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: short.fetch }), codeOf("length-mismatch")); + } + const bodyless = double(() => new Response(null)); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: bodyless.fetch }), codeOf("length-mismatch")); +}); + +test("a fetch TypeError and a mid-body stream error are network, with the cause kept", async () => { + const { manifest } = await pack(10, 10); + const down = new TypeError("fetch failed"); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: double(() => { throw down; }).fetch }), (error: unknown) => codeOf("network")(error) && (error as Error).cause === down); + const boom = new Error("boom"); + const broken = double(() => new Response(new ReadableStream({ start(controller) { controller.enqueue(body(4)); controller.error(boom); } }))); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: broken.fetch }), (error: unknown) => codeOf("network")(error) && (error as Error).cause === boom); +}); + +test("a pre-aborted signal rejects with its reason and no fetch; an abort mid-flight rejects with the same reason and starts no further fetch", async () => { + const { manifest } = await pack(100, 10); + const reason = new Error("caller gave up"); + const server = double(hangUntilAborted); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch, signal: AbortSignal.abort(reason) }), (error: unknown) => error === reason); + await assert.rejects(fetchVerifiedChunk(ENDPOINT, manifest.chunks[0]!.chunkHash!, 10, { fetch: server.fetch, signal: AbortSignal.abort(reason) }), (error: unknown) => error === reason); + assert.equal(server.calls.length, 0); + const controller = new AbortController(); + const pending = fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch, signal: controller.signal, maxConcurrentChunkRequests: 2 }); + for (let waited = 0; server.calls.length < 2 && waited < 2000; waited++) await new Promise(resolve => setTimeout(resolve, 1)); + assert.equal(server.calls.length, 2, "two requests are in flight before the abort"); + controller.abort(reason); + await assert.rejects(within(pending), (error: unknown) => error === reason); + await new Promise(resolve => setTimeout(resolve, 10)); + assert.equal(server.calls.length, 2); +}); + +test("with crypto.subtle shadowed, both exports are webcrypto-unavailable before any fetch", async () => { + const { manifest, chunks } = await pack(5, 5); + const server = chunkServer(chunks); + const original = Object.getOwnPropertyDescriptor(globalThis, "crypto")!; + try { + for (const value of [{}, undefined]) { + Object.defineProperty(globalThis, "crypto", { value, configurable: true }); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch }), codeOf("webcrypto-unavailable")); + await assert.rejects(fetchVerifiedChunk(ENDPOINT, manifest.chunks[0]!.chunkHash!, 5, { fetch: server.fetch }), codeOf("webcrypto-unavailable")); + } + } finally { Object.defineProperty(globalThis, "crypto", original); } + assert.equal(server.calls.length, 0); +}); + +test("fetchVerifiedChunk sends the packed record key, verifies, sends nothing for size 0, and refuses wrong bytes", async () => { + const { manifest, chunks } = await pack(10, 10); + const hex = manifest.chunks[0]!.chunkHash!; + const server = chunkServer(chunks); + assert.deepEqual(await fetchVerifiedChunk(ENDPOINT, hex.toUpperCase(), 10, { fetch: server.fetch }), body(10)); + assert.equal(server.calls[0]!.url, `${ENDPOINT}?chunkHash=${hex}&recordKey=mesh%3Acdn%3Achunk%3A${hex}`); + assert.equal(server.calls[0]!.init.credentials, "omit"); + const none = double(() => { throw new Error("no request expected"); }); + assert.equal((await fetchVerifiedChunk(ENDPOINT, EMPTY_SHA256, 0, { fetch: none.fetch })).length, 0); + await assert.rejects(fetchVerifiedChunk(ENDPOINT, hex, 0, { fetch: none.fetch }), codeOf("chunk-hash-mismatch", { chunkHash: hex })); + assert.equal(none.calls.length, 0); + await assert.rejects(fetchVerifiedChunk(ENDPOINT, hex, 10, { fetch: double(() => new Response(new Uint8Array(10))).fetch }), codeOf("chunk-hash-mismatch", { chunkHash: hex })); +}); + +test("no error message contains the endpoint, its secret query, or a body byte", async () => { + const secret = "https://cdn.example/c?token=CANARYSECRET"; + const { manifest } = await pack(10, 10); + const canary = new TextEncoder().encode("BODYCANARY"); + const doubles: [CultMeshContentErrorCode, Handler | undefined][] = [ + ["http-status", () => new Response(canary, { status: 500 })], + ["chunk-hash-mismatch", () => new Response(canary)], + ["length-mismatch", () => new Response(new Uint8Array(40).fill(66))], + ["network", () => { throw new TypeError(`failed ${secret}`); }], + ["insecure-endpoint", undefined], + ]; + for (const [code, handler] of doubles) { + const server = double(handler ?? (() => new Response())); + const error = await fetchVerifiedContent(code === "insecure-endpoint" ? "http://example.com/c?token=CANARYSECRET" : secret, manifest, { fetch: server.fetch }).then(() => undefined, reason => reason); + assert.ok(codeOf(code)(error), code); + for (const text of [(error as Error).message, String(error)]) { assert.doesNotMatch(text, /CANARY|cdn\.example|token/); } + } +}); + +test("every error code has its own fixed message, and a cause only when one was given", () => { + const codes: CultMeshContentErrorCode[] = ["manifest-invalid", "too-large", "insecure-endpoint", "webcrypto-unavailable", "network", "http-status", "length-mismatch", "chunk-hash-mismatch", "content-hash-mismatch"]; + const messages = codes.map(code => new CultMeshContentError(code).message); + assert.equal(new Set(messages).size, codes.length); + assert.ok(messages.every(message => message.length > 0 && !/https?:/.test(message))); + assert.equal("cause" in new CultMeshContentError("network"), false); + assert.equal(new CultMeshContentError("network").name, "CultMeshContentError"); + assert.equal(new CultMeshContentError("network", undefined, undefined, 0).cause, 0); +}); + +test("the caller's abort listener is added once and removed again, after success and after failure", async () => { + const { manifest, chunks } = await pack(10, 5); + for (const handler of [undefined, () => new Response(null, { status: 500 })]) { + const controller = new AbortController(); + const added: unknown[] = []; + const removed: unknown[] = []; + const add = controller.signal.addEventListener.bind(controller.signal); + const remove = controller.signal.removeEventListener.bind(controller.signal); + controller.signal.addEventListener = ((type: string, listener: EventListener, options?: unknown) => { added.push([type, listener]); add(type, listener, options as AddEventListenerOptions); }) as typeof add; + controller.signal.removeEventListener = ((type: string, listener: EventListener) => { removed.push([type, listener]); remove(type, listener); }) as typeof remove; + const server = handler ? double(handler) : chunkServer(chunks); + await fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch, signal: controller.signal }).catch(() => undefined); + assert.equal(added.length, 1); + assert.deepEqual(removed, added); + assert.equal((added[0] as [string])[0], "abort"); + } +}); + +interface Stub { endpoint: string; close(): Promise } +async function stub(handler: (request: IncomingMessage, response: ServerResponse) => void): Promise { + const server = createServer(handler); + await new Promise(resolve => server.listen(0, "127.0.0.1", resolve)); + return { + endpoint: `http://127.0.0.1:${(server.address() as AddressInfo).port}/content`, + close: () => new Promise(resolve => { server.close(() => resolve()); server.closeAllConnections(); }), + }; +} + +test("stub server through the real global fetch: gzip verifies, a short body is network, an endless body is cut, 404 is http-status", async () => { + const { manifest, chunks } = await pack(1000, 1000); + const payload = chunks[0]!.payload; + const modes = new Map void>(); + const server = await stub((request, response) => modes.get(new URL(request.url!, "http://x").searchParams.get("tenant")!)!(request, response)); + const via = (tenant: string) => fetchVerifiedContent(`${server.endpoint}?tenant=${tenant}`, manifest); + try { + modes.set("gzip", (_, response) => { + const encoded = gzipSync(payload); + response.writeHead(200, { "content-encoding": "gzip", "content-length": encoded.length, "access-control-allow-origin": "*" }); + response.end(encoded); + }); + assert.deepEqual(await via("gzip"), payload); + + modes.set("short", (_, response) => { + response.writeHead(200, { "content-length": 1000 }); + response.write(payload.subarray(0, 400)); + setTimeout(() => response.socket!.destroy(), 20); + }); + await assert.rejects(via("short"), codeOf("network")); + + let sawClose!: () => void; + const closed = new Promise(resolve => { sawClose = resolve; }); + modes.set("endless", (_, response) => { + response.writeHead(200); + const timer = setInterval(() => response.write(new Uint8Array(1000)), 1); + response.on("close", () => { clearInterval(timer); sawClose(); }); + }); + await assert.rejects(via("endless"), codeOf("length-mismatch")); + await closed; + + modes.set("missing", (_, response) => { response.writeHead(404, { "access-control-allow-origin": "*" }); response.end("nope"); }); + await assert.rejects(via("missing"), codeOf("http-status", { status: 404 })); + } finally { await server.close(); } +}); + +const flipped = (bytes: Uint8Array, at: number): Uint8Array => { const copy = bytes.slice(); copy[at] ^= 1; return copy; }; + +test("wrong bytes of the right length are refused at every size, whichever byte differs: both exports, one chunk and several", async () => { + for (const size of [1, 999, 1000, 1001, 65537, 4 * 1024 * 1024 + 1]) { + const { manifest, chunks } = await pack(size, size); + const hash = manifest.chunks[0]!.chunkHash!; + for (const at of [0, size >> 1, size - 1]) { + const wrong = double(() => new Response(flipped(chunks[0]!.payload, at) as BodyInit)); + // no size may sit past a threshold that follows from an option: the cap equal to the size, and the least and most concurrency, are tried at every size + for (const options of [{}, { maxBytes: size }, { maxConcurrentChunkRequests: 1 }, { maxConcurrentChunkRequests: 32 }, { maxBytes: size, maxConcurrentChunkRequests: 1 }]) { + const label = `${size} byte ${at} ${JSON.stringify(options)}`; + await assert.rejects(fetchVerifiedChunk(ENDPOINT, hash, size, { fetch: wrong.fetch, ...options }), codeOf("chunk-hash-mismatch", { chunkHash: hash }), `chunk ${label}`); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: wrong.fetch, ...options }), codeOf("chunk-hash-mismatch", { chunkHash: hash }), `content ${label}`); + } + } + } + const { manifest, chunks } = await pack(4500, 1500); + const middle = manifest.chunks[1]!.chunkHash!; + const wrongMiddle = double(call => { + const asked = new URL(call.url).searchParams.get("chunkHash"); + const payload = chunks.find(chunk => chunk.chunkHash === asked)!.payload; + return new Response((asked === middle ? flipped(payload, 1499) : payload) as BodyInit); + }); + await assert.rejects(fetchVerifiedContent(ENDPOINT, manifest, { fetch: wrongMiddle.fetch }), codeOf("chunk-hash-mismatch", { chunkHash: middle })); +}); + +test("a body of the wrong length in one chunk of several is length-mismatch naming that chunk, whichever way it is wrong", async () => { + const { manifest, chunks } = await pack(30, 10); + const target = manifest.chunks[2]!.chunkHash!; + for (const length of [0, 9, 11, 20]) { + const server = double(call => { + const asked = new URL(call.url).searchParams.get("chunkHash"); + const payload = chunks.find(chunk => chunk.chunkHash === asked)!.payload; + return new Response((asked === target ? new Uint8Array(length).fill(payload[0]!) : payload) as BodyInit); + }); + await assert.rejects(within(fetchVerifiedContent(ENDPOINT, manifest, { fetch: server.fetch })), codeOf("length-mismatch", { chunkHash: target }), `length ${length}`); + } +}); + +/** Whether `promise` settles before a timer started now fires: rejection is judged where it is decided, not against a generous test timeout. */ +const settlesWithin = async (promise: Promise, ms: number): Promise => { + let timer: NodeJS.Timeout; + const late = new Promise(resolve => { timer = setTimeout(() => resolve(false), ms); }); + return Promise.race([promise.then(() => true, () => true), late]).finally(() => clearTimeout(timer)); +}; + +test("a failure is thrown at once, without waiting for a fetch whose body ignores the abort, and so is a caller abort; nothing is requested after either", async () => { + const { manifest } = await pack(100, 10); + const stalled = () => new Response(new ReadableStream({ start(controller) { controller.enqueue(body(3)); } })); + const firstWrong = double((_, index) => index === 0 ? new Response(new Uint8Array(10)) : stalled()); + const failing = fetchVerifiedContent(ENDPOINT, manifest, { fetch: firstWrong.fetch, maxConcurrentChunkRequests: 3 }); + assert.ok(await settlesWithin(failing, 100), "the first failure waited"); + await assert.rejects(failing, codeOf("chunk-hash-mismatch")); + await new Promise(resolve => setTimeout(resolve, 30)); + assert.equal(firstWrong.calls.length, 3, "a request started after the first failure"); + const reason = new Error("stop waiting"); + const never = double(() => new Promise(() => {})); + const early = new AbortController(); + const noResponse = fetchVerifiedContent(ENDPOINT, manifest, { fetch: never.fetch, signal: early.signal }); + early.abort(reason); + assert.ok(await settlesWithin(noResponse, 100), "the caller's abort waited"); + await assert.rejects(noResponse, (error: unknown) => error === reason); + const stalledBodies = double(stalled); + const late = new AbortController(); + const waiting = fetchVerifiedContent(ENDPOINT, manifest, { fetch: stalledBodies.fetch, signal: late.signal }); + for (let waited = 0; stalledBodies.calls.length < 4 && waited < 2000; waited++) await new Promise(resolve => setTimeout(resolve, 1)); + assert.equal(stalledBodies.calls.length, 4); + late.abort(reason); + assert.ok(await settlesWithin(waiting, 100), "the caller's abort waited for the stalled bodies"); + await assert.rejects(waiting, (error: unknown) => error === reason); + await new Promise(resolve => setTimeout(resolve, 30)); + assert.equal(stalledBodies.calls.length, 4, "a request started after the caller's abort"); +}); + +test("an abort that lands while the last bytes are hashed rejects with its reason: no success for a cancelled caller", async () => { + const { manifest, chunks } = await pack(10, 10); + const subtle = globalThis.crypto.subtle; + const digest = subtle.digest.bind(subtle); + const reason = new Error("cancelled late"); + const hash = manifest.chunks[0]!.chunkHash!; + try { + // digest 1 hashes the only chunk, digest 2 the whole body; fetchVerifiedChunk has no second digest + for (const [name, abortOnDigest, run] of [ + ["content", 1, (signal: AbortSignal) => fetchVerifiedContent(ENDPOINT, manifest, { fetch: chunkServer(chunks).fetch, signal })], + ["content", 2, (signal: AbortSignal) => fetchVerifiedContent(ENDPOINT, manifest, { fetch: chunkServer(chunks).fetch, signal })], + ["chunk", 1, (signal: AbortSignal) => fetchVerifiedChunk(ENDPOINT, hash, 10, { fetch: chunkServer(chunks).fetch, signal })], + ] as const) { + const controller = new AbortController(); + let digests = 0; + Object.defineProperty(subtle, "digest", { configurable: true, writable: true, value: (...args: Parameters) => { if (++digests === abortOnDigest) controller.abort(reason); return digest(...args); } }); + const outcome = await run(controller.signal).then(() => "resolved", error => error); + assert.equal(outcome, reason, `${name} abort on digest ${abortOnDigest}`); + } + } finally { delete (subtle as unknown as Record).digest; } +}); + +test("a size the runtime cannot allocate is too-large in both exports, not a RangeError, and nothing is requested", async () => { + const { manifest } = await pack(10, 10); + const size = Number.MAX_SAFE_INTEGER; + // chunks are ints, so a manifest this large is many of them: 32768 of 2147483647 bytes is about 64 TiB + const int32Max = 2 ** 31 - 1; + const count = 2 ** 15; + const huge = { ...manifest, sizeBytes: count * int32Max, chunks: Array.from({ length: count }, (_, index) => ({ ...manifest.chunks[0]!, offset: index * int32Max, sizeBytes: int32Max })) }; + const server = double(() => { throw new Error("no request expected"); }); + await assert.rejects(fetchVerifiedContent(ENDPOINT, huge, { fetch: server.fetch, maxBytes: size }), codeOf("too-large")); + await assert.rejects(fetchVerifiedChunk(ENDPOINT, manifest.chunks[0]!.chunkHash!, size, { fetch: server.fetch, maxBytes: size }), codeOf("too-large")); + assert.equal(server.calls.length, 0); +}); + +test("redirects are refused: the fetch is told so, and a real redirect to another origin is network with nothing requested there", async () => { + const { manifest, chunks } = await pack(10, 10); + const seen = chunkServer(chunks); + await fetchVerifiedContent(ENDPOINT, manifest, { fetch: seen.fetch }); + assert.equal(seen.calls[0]!.init.redirect, "error"); + let elsewhereCalls = 0; + const elsewhere = await stub((_, response) => { elsewhereCalls++; response.end(chunks[0]!.payload); }); + const here = await stub((_, response) => { response.writeHead(302, { location: `${elsewhere.endpoint}?x=1` }); response.end(); }); + try { + await assert.rejects(fetchVerifiedContent(here.endpoint, manifest), codeOf("network")); + await assert.rejects(fetchVerifiedChunk(here.endpoint, manifest.chunks[0]!.chunkHash!, 10), codeOf("network")); + assert.equal(elsewhereCalls, 0); + } finally { await here.close(); await elsewhere.close(); } +}); + +test("esbuild bundles dist/content.js with platform 'browser', and a node:crypto import fails the same bundle", async () => { + const entry = join(dirname(fileURLToPath(import.meta.url)), "..", "..", "dist", "content.js"); + const options = { bundle: true, platform: "browser", format: "esm", write: false, logLevel: "silent" } as const; + const result = await build({ ...options, entryPoints: [entry] }); + assert.ok(result.outputFiles[0]!.text.includes("CultMeshContentError")); + await assert.rejects(build({ ...options, stdin: { contents: `import "node:crypto"; import ${JSON.stringify(entry)};`, resolveDir: dirname(entry) } })); +}); diff --git a/packages/cultmesh-browser/test/fixtures/README.md b/packages/cultmesh-browser/test/fixtures/README.md new file mode 100644 index 00000000..37f1a976 --- /dev/null +++ b/packages/cultmesh-browser/test/fixtures/README.md @@ -0,0 +1,22 @@ +# Test fixtures + +`content-https-test-cert.pem` and `content-https-test-key.pem` are a loopback-only +test credential. They sign nothing real: the certificate is self-signed P-256, valid +for `127.0.0.1` and `localhost`, `CA:FALSE`, `serverAuth` only, and the key is public +on purpose. + +They exist for `interop/content-https.test.ts`. The TypeScript provider serves HTTPS +with this pair. The C# suite (`CultMeshHttpsContentInteropTests`) anchors the +certificate with `CustomRootTrust`, so chain and name validation stay on and no +other certificate is accepted. The TypeScript reader trusts it through +`NODE_EXTRA_CA_CERTS`, set on the reader's child process only. + +Regenerate (Git Bash needs the `MSYS_NO_PATHCONV=1` prefix); no test pins the bytes: + + openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes \ + -keyout content-https-test-key.pem -out content-https-test-cert.pem -days 36500 \ + -subj "/CN=cultmesh-content-https-tests" \ + -addext "subjectAltName=IP:127.0.0.1,DNS:localhost" \ + -addext "basicConstraints=critical,CA:FALSE" \ + -addext "keyUsage=critical,digitalSignature" \ + -addext "extendedKeyUsage=serverAuth" diff --git a/packages/cultmesh-browser/test/fixtures/chunk-uri-dotnet.fsx b/packages/cultmesh-browser/test/fixtures/chunk-uri-dotnet.fsx new file mode 100644 index 00000000..aae84e5c --- /dev/null +++ b/packages/cultmesh-browser/test/fixtures/chunk-uri-dotnet.fsx @@ -0,0 +1,21 @@ +// Regenerates chunk-uri-dotnet.tsv: for each endpoint in its first column, the AbsoluteUri .NET 10 builds for the chunk +// request (the body of CultMeshHttpsContentTransportConnector.BuildChunkUri; recordKey "k" and the empty-content hash), +// or "THROW " where UriBuilder refuses it. The expectations in content.test.ts are this file's output and +// nothing else; never edit the second column by hand. +// docker run --rm -v "$PWD":/w -w /w mcr.microsoft.com/dotnet/sdk:10.0 dotnet fsi packages/cultmesh-browser/test/fixtures/chunk-uri-dotnet.fsx +open System +open System.IO +let hex = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" +let path = Path.Combine(__SOURCE_DIRECTORY__, "chunk-uri-dotnet.tsv") +let rows = + File.ReadAllLines(path, Text.UTF8Encoding(false)) + |> Array.filter (fun line -> line <> "") + |> Array.map (fun line -> + let endpoint = line.Split('\t').[0] + try + let b = UriBuilder(endpoint) + let sep = if String.IsNullOrWhiteSpace(b.Query) then "" else b.Query.TrimStart('?') + "&" + b.Query <- sep + "chunkHash=" + Uri.EscapeDataString(hex) + "&recordKey=" + Uri.EscapeDataString("k") + endpoint + "\t" + b.Uri.AbsoluteUri + with e -> endpoint + "\tTHROW " + e.GetType().Name) +File.WriteAllText(path, String.Join("\n", rows) + "\n", Text.UTF8Encoding(false)) diff --git a/packages/cultmesh-browser/test/fixtures/chunk-uri-dotnet.tsv b/packages/cultmesh-browser/test/fixtures/chunk-uri-dotnet.tsv new file mode 100644 index 00000000..26e1663d --- /dev/null +++ b/packages/cultmesh-browser/test/fixtures/chunk-uri-dotnet.tsv @@ -0,0 +1,201 @@ +https://h/x?a=%2F https://h/x?a=%2F&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%2f https://h/x?a=%2f&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/a%2fb https://h/a%2fb?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/a%2Fb https://h/a%2Fb?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%3A https://h/x?a=%3A&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://H/X https://h/X?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h:443/x https://h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h:0443/x https://h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h:/x https://h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h:65535/x https://h:65535/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/./a/../b https://h/b?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h//x https://h//x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x? https://h/x?&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x??a https://h/x?a&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=[b] https://h/x?a=[b]&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/[x] https://h/[x]?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x;p https://h/x;p?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x@y https://h/x@y?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://u@h/x https://u@h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://u:p@h/x https://u:p@h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://0x7f.1/x https://127.0.0.1/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://2130706433/x https://127.0.0.1/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://127.1/x https://127.0.0.1/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::FFFF:127.0.0.1]/x https://[::ffff:127.0.0.1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[0:0:0:0:0:0:0:1]/x https://[::1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::1]:443/x https://[::1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h./x https://h./x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://xn--nxasmq6b.com/x https://xn--nxasmq6b.com/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +HTTPS://h/x https://h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https:h/x THROW UriFormatException +https:/h/x http://https/h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https:///h/x THROW UriFormatException +https://h/x?a=%e2%82%ac https://h/x?a=%E2%82%AC&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%E2%82%AC https://h/x?a=%E2%82%AC&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%E2%82%AC https://h/%E2%82%AC?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%5e https://h/x?a=%5e&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%5E https://h/x?a=%5E&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%60 https://h/x?a=%60&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%60 https://h/%60?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%22 https://h/x?a=%22&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%00 https://h/x?a=%00&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%0A https://h/x?a=%0A&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=* https://h/x?a=*&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=(b) https://h/x?a=(b)&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=$ https://h/x?a=$&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=b?c https://h/x?a=b?c&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x# https://h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k# +https://h/x?# https://h/x?&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k# +https://h/x#f?g https://h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k#f?g +https://h/x?a=b#c https://h/x?a=b&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k#c +https://h/x?a=b#c#d https://h/x?a=b&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k#c#d +https://h/x?a=%25 https://h/x?a=%25&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=b&&c https://h/x?a=b&&c&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?& https://h/x?&&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%41 https://h/A?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%3d https://h/x?a=%3d&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%26 https://h/x?a=%26&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%2B https://h/x?a=%2B&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=+ https://h/x?a=+&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=! https://h/x?a=!&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=,; https://h/x?a=,;&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x/? https://h/x/?&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h:8443/x https://h:8443/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h:8443 https://h:8443/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h https://h/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h?a https://h/?a&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h#f https://h/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k#f +https://h/x?a=%7B https://h/x?a=%7B&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%7b https://h/x?a=%7b&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=:@/? https://h/x?a=:@/?&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/:@!$&()*+,;= https://h/:@!$&()*+,;=?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=~-._ https://h/x?a=~-._&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%c3%a9 https://h/x?a=%C3%A9&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%c3%a9 https://h/%C3%A9?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%ff https://h/x?a=%ff&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%e2%82 https://h/x?a=%e2%82&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%C3 https://h/x?a=%C3&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%c3 https://h/x?a=%c3&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%ff https://h/%ff?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::ffff:7f00:1]/x https://[::ffff:127.0.0.1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[2001:DB8::1]/x https://[2001:db8::1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[2001:db8:0:0:0:0:0:1]/x https://[2001:db8::1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::]/x https://[::]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a='b https://h/x?a='b&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a={b}|^ https://h/x?a=%7Bb%7D%7C%5E&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a="<>` https://h/x?a=%22%3C%3E%60&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=b c https://h/x?a=b%20c&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%7e https://h/x?a=~&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=é https://h/x?a=%C3%A9&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/{x} https://h/%7Bx%7D?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/a|b https://h/a%7Cb?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/a^b https://h/a%5Eb?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/a'b https://h/a'b?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=b#f?g https://h/x?a=b&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k#f?g +https://h/x?#f https://h/x?&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k#f +https://ex%41mple.com/ THROW UriFormatException +https://Bücher.de/ https://bücher.de/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%7e https://h/~?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%zz https://h/x?a=%25zz&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=\b https://h/x?a=%5Cb&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/a\b https://h/a/b?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=1&& https://h/x?a=1&&&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x? https://h/x?&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?%3F https://h/x?%3F&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::7f00:1]/x https://[::127.0.0.1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::127.0.0.1]/x https://[::127.0.0.1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[64:ff9b::7f00:1]/x https://[64:ff9b::7f00:1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[64:ff9b::127.0.0.1]/x https://[64:ff9b::7f00:1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::ffff:0:7f00:1]/x https://[::ffff:0:127.0.0.1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[0:0:0:0:0:ffff:7f00:1]/x https://[::ffff:127.0.0.1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::ffff:1.2.3.4]/x https://[::ffff:1.2.3.4]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::FFFF:1.2.3.4]/x https://[::ffff:1.2.3.4]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::ffff:102:304]/x https://[::ffff:1.2.3.4]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[2001:db8::1.2.3.4]/x https://[2001:db8::102:304]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[fe80::1%25eth0]/x https://[fe80::1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::1]:8443/c https://[::1]:8443/c?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[1::]/x https://[1::]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::2]/x https://[::2]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[0::0]/x https://[::]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[2001:0db8:0000:0000:0000:0000:0000:0001]/x https://[2001:db8::1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[2001:db8:0:0:1:0:0:1]/x https://[2001:db8::1:0:0:1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[1:0:0:2:0:0:0:3]/x https://[1:0:0:2::3]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[1:0:0:2:0:0:3:4]/x https://[1::2:0:0:3:4]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +HTTPS:/evil.example/c http://https/evil.example/c?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https:////h/x THROW UriFormatException +https:/\/h/x THROW UriFormatException +https: http://https/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https:/ http://https/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https:// THROW UriFormatException +https:/// THROW UriFormatException +https://h:80/x https://h:80/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +http://h:80/x http://h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +http://h:443/x http://h:443/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://@h/x https://h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://:@h/x https://h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://u@h https://u@h/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%e2%82%ac https://h/%E2%82%AC?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%f0%90%90%80 https://h/x?a=%F0%90%90%80&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%F0%90%90%80 https://h/x?a=%F0%90%90%80&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%C3%A9 https://h/x?a=%C3%A9&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%7f https://h/x?a=%7f&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%80 https://h/x?a=%80&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%80 https://h/%80?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +http://localhost:80/x http://localhost/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +http://LOCALHOST/x http://localhost/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +http://127.0.0.1:80 http://127.0.0.1/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +http://[::1]:80/x http://[::1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +http://[::1]:8080/x?a=1 http://[::1]:8080/x?a=1&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%e2%82%ac%c3%a9 https://h/x?a=%E2%82%AC%C3%A9&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%E2%82%ac https://h/x?a=%E2%82%AC&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/a;b=c,d https://h/a;b=c,d?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/a!$&()*+,;=:@b https://h/a!$&()*+,;=:@b?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a!$()*+,;=:@/? https://h/x?a!$()*+,;=:@/?&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x/ https://h/x/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://H:443 https://h/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://1.2.3.4/x https://1.2.3.4/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://127.1/ https://127.0.0.1/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a# https://h/x?a&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k# +https://h/x?a=1#f https://h/x?a=1&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k#f +https://h/a/./b https://h/a/b?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/a/../../b https://h/b?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%2F https://h/%2F?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/a%20b https://h/a%20b?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/a%25b https://h/a%25b?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[::1]/x https://[::1]/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://[2001:DB8::1]:8443/x https://[2001:db8::1]:8443/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=b%3Dc https://h/x?a=b%3Dc&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/-._~ https://h/-._~?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?= https://h/x?=&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a&&b https://h/x?a&&b&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +http://127.0.0.1:80/x http://127.0.0.1/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +http://127.0.0.1:8080 http://127.0.0.1:8080/?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%40/x https://h/%40/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%5B%5D https://h/x?a=%5B%5D&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%7B%7D https://h/x?a=%7B%7D&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%2F%3A%2C https://h/x?a=%2F%3A%2C&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%2c%5b%7b https://h/x?a=%2c%5b%7b&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h:99999/x THROW UriFormatException +https://h/x#a b https://h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k#a%20b +https://h/x#é https://h/x?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k#%C3%A9 +https://h/%50 https://h/P?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%5A https://h/x?a=Z&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%5f https://h/x?a=_&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%61 https://h/x?a=a&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%6F https://h/o?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%7a https://h/z?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%7E https://h/x?a=~&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%30 https://h/0?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%39 https://h/x?a=9&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%2d https://h/-?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%2E https://h/x?a=.&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%4z https://h/x?a=%254z&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%4 https://h/%254?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?% https://h/x?%25&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/% https://h/%25?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/%g0 https://h/%25g0?chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%a https://h/x?a=%25a&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https://h/x?a=%%41 https://h/x?a=%25A&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https:h/x?a=b://c THROW UriFormatException +https:/h/x?u=http://z http://https/h/x?u=http://z&chunkHash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&recordKey=k +https:h/x#a://b THROW UriFormatException diff --git a/packages/cultmesh-browser/test/fixtures/content-https-test-cert.pem b/packages/cultmesh-browser/test/fixtures/content-https-test-cert.pem new file mode 100644 index 00000000..635b3ca5 --- /dev/null +++ b/packages/cultmesh-browser/test/fixtures/content-https-test-cert.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIIB5TCCAYugAwIBAgIUYu2AT96reiPh11v9xCTtZyIk3F4wCgYIKoZIzj0EAwIw +JzElMCMGA1UEAwwcY3VsdG1lc2gtY29udGVudC1odHRwcy10ZXN0czAgFw0yNjEw +MTkxNzM3MzlaGA8yMTI2MDkyNTE3MzczOVowJzElMCMGA1UEAwwcY3VsdG1lc2gt +Y29udGVudC1odHRwcy10ZXN0czBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLrV +DZdr7rly5z4D6XCzEFnL3njGBw/XSfGJBqsvtnLv7biP++PUx/otGhk2FpfJCa8s +RSS6tr1KlJAinDwQfT+jgZIwgY8wHQYDVR0OBBYEFHNEAAq4I/qya72ulYoItVKu +AV8TMB8GA1UdIwQYMBaAFHNEAAq4I/qya72ulYoItVKuAV8TMBoGA1UdEQQTMBGH +BH8AAAGCCWxvY2FsaG9zdDAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAT +BgNVHSUEDDAKBggrBgEFBQcDATAKBggqhkjOPQQDAgNIADBFAiAhM5txvdC+43aZ +EbHYftYUY2BnJuOV9fdDyJF3jgyLGgIhALS6Zq5/KQyBWaYzdExrlpuXyl60eSz5 +aQVLg5FGjIpX +-----END CERTIFICATE----- diff --git a/packages/cultmesh-browser/test/fixtures/content-https-test-key.pem b/packages/cultmesh-browser/test/fixtures/content-https-test-key.pem new file mode 100644 index 00000000..7f76b6b4 --- /dev/null +++ b/packages/cultmesh-browser/test/fixtures/content-https-test-key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgBpkdByjhxCucHa5P +jvQD6psI8I1cTwOqBKefGsyP8SehRANCAAS61Q2Xa+65cuc+A+lwsxBZy954xgcP +10nxiQarL7Zy7+24j/vj1Mf6LRoZNhaXyQmvLEUkura9SpSQIpw8EH0/ +-----END PRIVATE KEY----- diff --git a/packages/cultmesh-browser/test/interop/content-https-provider.ts b/packages/cultmesh-browser/test/interop/content-https-provider.ts new file mode 100644 index 00000000..50b5f223 --- /dev/null +++ b/packages/cultmesh-browser/test/interop/content-https-provider.ts @@ -0,0 +1,51 @@ +// The TypeScript content provider in its own process, for content-https.test.ts. Argv: . +// Protocol, stdout JSON lines only: ready, one line per request ({phase, mount, url}), one per server fault ({phase, mount, fault}). +// Stdin: "phase " sets the phase and is answered {ack}; stdin ending closes the server and exits, so no orchestrator crash orphans it. +import { readFileSync } from "node:fs"; +import { createServer } from "node:https"; +import type { AddressInfo } from "node:net"; +import { createInterface } from "node:readline"; +import { chunkRecordKey } from "cultnet-ts/content"; +import { createContentChunkHandler, createDirectoryChunkStore, toNodeListener, type ContentChunkAnswer, type ContentChunkRequest } from "cultmesh-ts/content"; + +const [storeDir, corruptDir, keyPem, certPem, escapeKey] = process.argv.slice(2) as [string, string, string, string, string]; +const say = (line: object): void => { process.stdout.write(`${JSON.stringify(line)}\n`); }; +let phase = "start"; + +const handlerFor = (mount: string, dir: string) => + createContentChunkHandler(createDirectoryChunkStore(dir), { onServerFault: fault => say({ phase, mount, fault: fault.kind }) }); + +const honest = handlerFor("honest", storeDir); +// In flight, after the provider verified the bytes: a 200 with a body comes back with byte 0 flipped and the headers unchanged. +const tampered = async (request: ContentChunkRequest): Promise => { + const answer = await honest(request); + if (answer.status !== 200 || !answer.body?.length) return answer; + const body = answer.body.slice(); + body[0]! ^= 1; + return { ...answer, body }; +}; +// The one non-canonical record key the fixtures carry (escapeKey) is answered as its canonical key, so the real handler serves the chunk +// and the request line above, logged before this runs, is what each consumer actually sent. Every other recordKey reaches the handler untouched. +const honestEscape = async (request: ContentChunkRequest): Promise => { + const url = new URL(request.url, "http://provider.invalid"); + if (url.searchParams.get("recordKey") !== escapeKey) return honest(request); + url.searchParams.set("recordKey", chunkRecordKey(url.searchParams.get("chunkHash"))); + return honest({ ...request, url: `${url.pathname}${url.search}` }); +}; +const mounts = { honest: toNodeListener(honestEscape), tampered: toNodeListener(tampered), corrupt: toNodeListener(handlerFor("corrupt", corruptDir)) }; + +const server = createServer({ key: readFileSync(keyPem), cert: readFileSync(certPem) }, (req, res) => { + const mount = /^\/(honest|tampered|corrupt)\//.exec(req.url ?? "")?.[1] as keyof typeof mounts | undefined; + if (!mount) { res.writeHead(404).end(); return; } + say({ phase, mount, url: req.url }); + mounts[mount](req, res); +}); + +await new Promise(resolve => server.listen(0, "127.0.0.1", resolve)); +const port = (server.address() as AddressInfo).port; +say({ status: "ready", endpoints: Object.fromEntries(Object.keys(mounts).map(mount => [mount, `https://127.0.0.1:${port}/${mount}/content`])) }); + +createInterface({ input: process.stdin }).on("line", line => { + const name = /^phase (.+)$/.exec(line)?.[1]; + if (name) { phase = name; say({ ack: name }); } +}).on("close", () => { server.closeAllConnections(); server.close(() => process.exit(0)); }); diff --git a/packages/cultmesh-browser/test/interop/content-https-reader.ts b/packages/cultmesh-browser/test/interop/content-https-reader.ts new file mode 100644 index 00000000..693b22a8 --- /dev/null +++ b/packages/cultmesh-browser/test/interop/content-https-reader.ts @@ -0,0 +1,32 @@ +// The TypeScript reader in its own process, for content-https.test.ts. Argv: [only case]. +// One stdout line per case: {case, ok:true, sha256} (hashed here by node:crypto, not by the reader) or {case, ok:false, code, status}. +import { createHash } from "node:crypto"; +import { readFileSync } from "node:fs"; +import { join } from "node:path"; +import { decodeManifest } from "cultnet-ts/content"; +import { fetchVerifiedChunk, fetchVerifiedContent, CultMeshContentError } from "../../src/content.js"; + +const [endpointsJson, manifestsDir, only] = process.argv.slice(2) as [string, string, string | undefined]; +const endpoints = JSON.parse(endpointsJson) as Record<"honest" | "tampered" | "corrupt", string>; +const manifest = (name: string) => decodeManifest(readFileSync(join(manifestsDir, `${name}.manifest`))); +const single = manifest("single"); + +const cases: Record Promise> = { + "honest-multi": () => fetchVerifiedContent(endpoints.honest, manifest("multi")), + "honest-single": () => fetchVerifiedContent(endpoints.honest, single), + "honest-empty": () => fetchVerifiedContent(endpoints.honest, manifest("empty")), + "honest-escape": () => fetchVerifiedContent(endpoints.honest, manifest("escape")), + "honest-single-chunk": () => fetchVerifiedChunk(endpoints.honest, single.chunks[0]!.chunkHash!, single.chunks[0]!.sizeBytes), + "tampered-multi": () => fetchVerifiedContent(endpoints.tampered, manifest("multi")), + "corrupt-single": () => fetchVerifiedContent(endpoints.corrupt, single), +}; + +for (const [name, run] of Object.entries(cases)) { + if (only && only !== name) continue; + try { + console.log(JSON.stringify({ case: name, ok: true, sha256: createHash("sha256").update(await run()).digest("hex") })); + } catch (error) { + const e = error as CultMeshContentError; + console.log(JSON.stringify({ case: name, ok: false, code: e.code, status: e.status })); + } +} diff --git a/packages/cultmesh-browser/test/interop/content-https.test.ts b/packages/cultmesh-browser/test/interop/content-https.test.ts new file mode 100644 index 00000000..c86cf6ae --- /dev/null +++ b/packages/cultmesh-browser/test/interop/content-https.test.ts @@ -0,0 +1,159 @@ +// https-shape-parity across three OS processes. The TS provider (content-https-provider) serves over TLS; the TS reader +// (content-https-reader) and the C# transfer service over the unmodified HTTPS connector (CultMeshHttpsContentInteropTests) +// each fetch from it. Each consumer decides its own acceptance; this file only observes outcomes and judges what the provider saw. +// The provider's source is the cultmesh-ts package, so cultmesh-ts must be built first (scripts/run-typescript-workspaces.mjs order). + +import test from "node:test"; +import assert from "node:assert/strict"; +import { execFile, execFileSync, spawn } from "node:child_process"; +import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs"; +import { createInterface } from "node:readline"; +import { tmpdir } from "node:os"; +import { dirname, join, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; +import { promisify } from "node:util"; +import { EMPTY_SHA256, encodeManifest, packContent } from "cultnet-ts/content"; + +const execFileAsync = promisify(execFile); +const here = dirname(fileURLToPath(import.meta.url)); // dist-test/test/interop +const packageRoot = resolve(here, "../../.."); +const repoRoot = resolve(packageRoot, "../.."); +const fixtures = join(packageRoot, "test/fixtures"); +const keyPem = join(fixtures, "content-https-test-key.pem"); +const certPem = join(fixtures, "content-https-test-cert.pem"); +// A chunk recordKey with every character Uri.EscapeDataString treats specially: ! ' ( ) * (which encodeURIComponent leaves bare), a space, +// a non-ASCII character and a lone percent sign. RecordKey is a free string on a chunk ref, and the connector sends it verbatim into the query. +const escapeKey = "k!'()* é%41+~"; +const escapedKey = "k%21%27%28%29%2A%20%C3%A9%2541%2B~"; +const dotnet = process.env.DOTNET ?? "dotnet"; + +const haveDotnet = (() => { try { execFileSync(dotnet, ["--version"], { stdio: "ignore" }); return true; } catch { return false; } })(); +const skip = !haveDotnet && !process.env.CI; + +/** xorshift32 with a fixed seed: non-periodic, so every chunk of a multi-chunk body has its own hash (map F32). */ +function xorshiftBytes(length: number, seed: number): Uint8Array { + const bytes = new Uint8Array(length); + let state = seed >>> 0; + for (let i = 0; i < length; i++) { state ^= state << 13; state >>>= 0; state ^= state >>> 17; state ^= state << 5; state >>>= 0; bytes[i] = state & 255; } + return bytes; +} + +type Line = { phase?: string; mount?: string; url?: string; fault?: string; status?: string; endpoints?: Record; ack?: string }; +type ReaderResult = { case: string; ok: boolean; sha256?: string; code?: string; status?: number }; + +function startProvider(args: string[]) { + const child = spawn(process.execPath, [join(here, "content-https-provider.js"), ...args], { stdio: ["pipe", "pipe", "inherit"] }); + const lines: Line[] = []; + const waiting: Array<() => void> = []; + createInterface({ input: child.stdout }).on("line", text => { lines.push(JSON.parse(text) as Line); waiting.splice(0).forEach(wake => wake()); }); + const exited = new Promise(resolveExit => child.once("exit", code => resolveExit(code))); + const next = async (match: (line: Line) => boolean, what: string): Promise => { + const deadline = Date.now() + 30_000; + for (;;) { + const found = lines.find(match); + if (found) return found; + if (Date.now() > deadline) throw new Error(`provider did not report ${what} in 30 s`); + await new Promise(wake => { waiting.push(wake); setTimeout(wake, 250); }); + } + }; + return { child, lines, exited, next }; +} + +async function runDotnetTestFilter(projectPath: string, testName: string, env: NodeJS.ProcessEnv): Promise { + try { + const { stdout } = await execFileAsync(dotnet, ["test", projectPath, "--filter", `FullyQualifiedName~${testName}`, "--logger", "console;verbosity=normal", "-nologo"], + { cwd: repoRoot, env: { ...process.env, ...env }, timeout: 600_000 }); + return stdout; + } catch (error) { + const failure = error as { stdout?: string; stderr?: string; message: string }; + throw new Error(`dotnet test ${testName} failed.\nstdout:\n${failure.stdout ?? ""}\nstderr:\n${failure.stderr ?? failure.message}`); + } +} + +test("the TS provider serves both consumers: parity, refusal and the fault log", { skip, timeout: 900_000 }, async () => { + const root = mkdtempSync(join(tmpdir(), "cultmesh-content-https-")); + const store = join(root, "store"), corrupt = join(root, "corrupt"), manifests = join(root, "manifests"); + for (const dir of [store, corrupt, manifests]) mkdirSync(dir); + const createdAtUtc = "2026-10-19T00:00:00.0000000+00:00"; + const multi = await packContent("c4/multi", xorshiftBytes(229_376, 0x9e3779b9), { chunkSizeBytes: 65_536, createdAtUtc }); + const single = await packContent("c4/single", xorshiftBytes(10_000, 0x85ebca6b), { createdAtUtc }); + const empty = await packContent("c4/empty", new Uint8Array(0), { createdAtUtc }); + const escaped = await packContent("c4/escape", xorshiftBytes(5_000, 0xc2b2ae35), { createdAtUtc }); + const escapeManifest = { ...escaped.manifest, chunks: escaped.manifest.chunks.map(chunk => ({ ...chunk, recordKey: escapeKey })) }; + const escapeHash = escaped.chunks[0]!.chunkHash; + const multiHashes = multi.chunks.map(chunk => chunk.chunkHash); + assert.equal(multi.chunks.length, 4); + assert.equal(new Set(multiHashes).size, 4, "a parity fixture needs four distinct chunk hashes"); + for (const chunk of [...multi.chunks, ...single.chunks, ...empty.chunks, ...escaped.chunks]) writeFileSync(join(store, chunk.chunkHash), chunk.payload); + const flipped = single.chunks[0]!.payload.slice(); + flipped[0]! ^= 1; + writeFileSync(join(corrupt, single.chunks[0]!.chunkHash), flipped); + for (const [name, manifest] of Object.entries({ multi: multi.manifest, single: single.manifest, empty: empty.manifest, escape: escapeManifest })) writeFileSync(join(manifests, `${name}.manifest`), encodeManifest(manifest)); + + const provider = startProvider([store, corrupt, keyPem, certPem, escapeKey]); + try { + const endpoints = (await provider.next(line => line.status === "ready", "ready")).endpoints!; + const endpointsJson = JSON.stringify(endpoints); + const setPhase = async (name: string) => { provider.child.stdin!.write(`phase ${name}\n`); await provider.next(line => line.ack === name, `ack ${name}`); }; + const requests = (phase: string, mount: string) => provider.lines.filter(line => line.phase === phase && line.mount === mount && line.url); + const faults = (phase: string, mount: string) => provider.lines.filter(line => line.phase === phase && line.mount === mount && line.fault); + const runReader = async (env: NodeJS.ProcessEnv, only?: string): Promise> => { + const { stdout } = await execFileAsync(process.execPath, [join(here, "content-https-reader.js"), endpointsJson, manifests, ...(only ? [only] : [])], { env }); + return Object.fromEntries(stdout.trim().split("\n").map(text => JSON.parse(text) as ReaderResult).map(result => [result.case, result])); + }; + const trusted: NodeJS.ProcessEnv = { ...process.env, NODE_EXTRA_CA_CERTS: certPem }; + delete trusted.NODE_TLS_REJECT_UNAUTHORIZED; + const untrusted: NodeJS.ProcessEnv = { ...trusted }; + delete untrusted.NODE_EXTRA_CA_CERTS; + + await setPhase("reader"); + const read = await runReader(trusted); + for (const [name, packed] of [["honest-multi", multi], ["honest-single", single], ["honest-empty", empty]] as const) { + assert.deepEqual(read[name], { case: name, ok: true, sha256: packed.manifest.contentHash?.replace(/^sha256:/i, "") }, name); + } + assert.deepEqual(read["honest-escape"], { case: "honest-escape", ok: true, sha256: escaped.manifest.contentHash?.replace(/^sha256:/i, "") }, "honest-escape"); + assert.deepEqual(read["honest-single-chunk"], { case: "honest-single-chunk", ok: true, sha256: single.manifest.contentHash?.replace(/^sha256:/i, "") }); + assert.equal(read["tampered-multi"]?.ok, false); + assert.equal(read["tampered-multi"]?.code, "chunk-hash-mismatch"); + assert.equal(read["corrupt-single"]?.ok, false); + assert.equal(read["corrupt-single"]?.code, "http-status"); + assert.equal(read["corrupt-single"]?.status, 500); + + await setPhase("untrusted"); + const refused = await runReader(untrusted, "honest-multi"); + assert.equal(refused["honest-multi"]?.ok, false); + assert.equal(refused["honest-multi"]?.code, "network"); + assert.equal(provider.lines.filter(line => line.phase === "untrusted" && line.url).length, 0, "TLS refused the reader before any HTTP request"); + + await setPhase("dotnet"); + const out = await runDotnetTestFilter("tests/GameCult.Mesh.Tests/GameCult.Mesh.Tests.csproj", "CultMeshHttpsContentInteropTests", { + CULTMESH_HTTPS_CONTENT_ENDPOINT: endpoints.honest!, CULTMESH_HTTPS_CONTENT_TAMPERED_ENDPOINT: endpoints.tampered!, + CULTMESH_HTTPS_CONTENT_CORRUPT_ENDPOINT: endpoints.corrupt!, CULTMESH_HTTPS_CONTENT_MANIFESTS: manifests, CULTMESH_HTTPS_CONTENT_CA_PEM: certPem, + }); + assert.match(out, /Test Run Successful\./); + assert.match(out, /Passed:\s*3/); + assert.doesNotMatch(out, /Skipped:\s*[1-9]/); + + // (a) both consumers asked for the same four chunk URLs on the honest mount + const multiUrls = (phase: string) => new Set(requests(phase, "honest").map(line => line.url!).filter(url => multiHashes.some(hash => url.includes(`chunkHash=${hash}`)))); + assert.equal(multiUrls("reader").size, 4); + assert.deepEqual([...multiUrls("dotnet")].sort(), [...multiUrls("reader")].sort()); + // (a2) the escape chunk: the C# connector's URL and the TS reader's URL are the same bytes, and they are the RFC 3986 escaping of escapeKey + const escapeUrls = (phase: string) => requests(phase, "honest").map(line => line.url!).filter(url => url.includes(`chunkHash=${escapeHash}`)); + assert.deepEqual(escapeUrls("reader"), [`/honest/content?chunkHash=${escapeHash}&recordKey=${escapedKey}`]); + assert.deepEqual(escapeUrls("dotnet"), escapeUrls("reader")); + // (b) F30: C# asks for the empty chunk; the reader verifies it locally + assert.ok(requests("dotnet", "honest").some(line => line.url!.includes(`chunkHash=${EMPTY_SHA256}`))); + assert.ok(!requests("reader", "honest").some(line => line.url!.includes(`chunkHash=${EMPTY_SHA256}`))); + // (c) the provider refused the corrupt store for both consumers + for (const phase of ["reader", "dotnet"]) assert.ok(faults(phase, "corrupt").some(line => line.fault === "hash-mismatch"), `${phase} hit the corrupt chunk`); + // (d) no fault where the store is honest + for (const phase of ["reader", "untrusted", "dotnet"]) for (const mount of ["honest", "tampered"]) assert.equal(faults(phase, mount).length, 0, `${phase} ${mount}`); + } finally { + provider.child.stdin!.end(); + const killer = setTimeout(() => provider.child.kill(), 5_000); + await provider.exited; + clearTimeout(killer); + rmSync(root, { recursive: true, force: true }); + } +}); diff --git a/packages/cultmesh-rs/Cargo.lock b/packages/cultmesh-rs/Cargo.lock index 945bc65b..8dfc33ed 100644 --- a/packages/cultmesh-rs/Cargo.lock +++ b/packages/cultmesh-rs/Cargo.lock @@ -200,7 +200,7 @@ dependencies = [ [[package]] name = "cultmesh-rs" -version = "0.1.0" +version = "0.2.0" dependencies = [ "anyhow", "cultcache-rs", @@ -213,7 +213,7 @@ dependencies = [ [[package]] name = "cultnet-rs" -version = "0.1.0" +version = "0.2.0" dependencies = [ "aes-gcm", "anyhow", diff --git a/packages/cultmesh-rs/Cargo.toml b/packages/cultmesh-rs/Cargo.toml index 820050c3..af75e419 100644 --- a/packages/cultmesh-rs/Cargo.toml +++ b/packages/cultmesh-rs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cultmesh-rs" -version = "0.1.0" +version = "0.2.0" edition = "2024" license = "MIT" publish = false diff --git a/packages/cultmesh-ts/CHANGELOG.md b/packages/cultmesh-ts/CHANGELOG.md index efde2509..5e4d8c20 100644 --- a/packages/cultmesh-ts/CHANGELOG.md +++ b/packages/cultmesh-ts/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +All notable changes to `cultmesh-ts` are recorded here, following +[Keep a Changelog](https://keepachangelog.com/en/1.1.0/). + ## Unreleased - Needs the cultcache-ts release that ships with this change (its manifest range moves with that release): it imports `schemaIdentityOf` and `SchemaConflictError`, which 0.14.x does not export. + +## [0.2.0] + +### Added +- `cultmesh-ts/content`: an HTTPS content provider. `createContentChunkHandler` + serves CDN chunks from a `ContentChunkStore` (`createDirectoryChunkStore` for + a directory of chunks) with bounded reads, and `toNodeListener` mounts the + handler on a Node HTTP server. + +### Changed +- Depends on `cultnet-ts` `^0.3.0`. diff --git a/packages/cultmesh-ts/README.md b/packages/cultmesh-ts/README.md index 738c4d34..2f9eda51 100644 --- a/packages/cultmesh-ts/README.md +++ b/packages/cultmesh-ts/README.md @@ -530,3 +530,31 @@ negotiation, watch callbacks, and latest-frame cursor contracts for non-C# clients. The native C# path owns shared-memory rings and GPU-handle integration points. CultCache page append/readback remains the durable recording or nonlocal fallback. + +## Content Chunks over HTTP(S) + +`cultmesh-ts/content` answers the C# HTTPS connector's request, `GET` or `HEAD` +`?chunkHash=&recordKey=`. The mount path is the host's; the +handler reads only the query. Every chunk is hashed against its name before a +byte is sent, so a corrupt or swapped file answers 500 and never leaves the +process, and chunks are never served by path. + +The directory store reads a flat `/` layout. The publisher writes it +from `packContent`'s chunks (an artifact of one chunk is the file named by its +content hash). The store never writes, lists or caches. TLS and concurrency +bounds belong to the host: memory is at most two buffers of `maxChunkBytes` per +in-flight request (the store's, and the private copy that is hashed and sent, so a +host store may reuse its buffer). `onServerFault` reports every 500 (`hash-mismatch`, `too-large`, +`store-error`) for health. + +```ts +import { readFileSync } from "node:fs"; +import { createServer } from "node:https"; +import { createContentChunkHandler, createDirectoryChunkStore, toNodeListener } from "cultmesh-ts/content"; + +const handler = createContentChunkHandler(createDirectoryChunkStore("/srv/content"), { + onServerFault: fault => console.error("chunk fault", fault.kind, fault.chunkHash), +}); +createServer({ key: readFileSync("key.pem"), cert: readFileSync("cert.pem") }, toNodeListener(handler)) + .listen(8443, "127.0.0.1"); +``` diff --git a/packages/cultmesh-ts/package.json b/packages/cultmesh-ts/package.json index b53555be..f6559fba 100644 --- a/packages/cultmesh-ts/package.json +++ b/packages/cultmesh-ts/package.json @@ -1,6 +1,6 @@ { "name": "cultmesh-ts", - "version": "0.1.1", + "version": "0.2.0", "description": "CultMesh local typed state and mesh catalog primitives for TypeScript runtimes.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -9,6 +9,11 @@ "types": "./dist/index.d.ts", "require": "./dist/index.js", "default": "./dist/index.js" + }, + "./content": { + "types": "./dist/content.d.ts", + "require": "./dist/content.js", + "default": "./dist/content.js" } }, "files": [ @@ -44,7 +49,7 @@ }, "dependencies": { "@gamecult/cultcache-ts": "^0.14.0", - "cultnet-ts": "^0.2.0", + "cultnet-ts": "^0.3.0", "koffi": "3.3.0" }, "devDependencies": { diff --git a/packages/cultmesh-ts/src/content.ts b/packages/cultmesh-ts/src/content.ts new file mode 100644 index 00000000..a0f3f06d --- /dev/null +++ b/packages/cultmesh-ts/src/content.ts @@ -0,0 +1,112 @@ +import { constants } from "node:fs"; +import { open } from "node:fs/promises"; +import type { IncomingMessage, ServerResponse } from "node:http"; +import { join } from "node:path"; +import { DEFAULT_CHUNK_SIZE_BYTES, EMPTY_SHA256, chunkRecordKey, isNullOrWhiteSpaceCSharp, parseSha256Hex, sha256Hex } from "cultnet-ts/content"; + +/** What the provider reads of a request. The path and the headers are never read: the route is the query alone. */ +export interface ContentChunkRequest { method: string; url: string; } +export interface ContentChunkAnswer { status: number; headers: Readonly>; body?: Uint8Array; } + +/** The port a host implements. Whatever it returns is hashed before a byte is served. `chunkHash` is canonical lowercase hex. */ +export interface ContentChunkStore { readChunk(chunkHash: string, maxBytes: number): Promise; } + +export interface ContentChunkHandlerOptions { + /** Largest chunk served, and the most memory one in-flight request holds. Defaults to the packer's chunk size. */ + maxChunkBytes?: number; + /** Called for every 500 answer; a throwing hook leaves the answer unchanged. */ + onServerFault?: (fault: { chunkHash: string; kind: "hash-mismatch" | "too-large" | "store-error"; error?: unknown }) => void; +} + +/** A store's refusal to read a chunk larger than `maxBytes`. */ +export class ContentChunkTooLargeError extends Error { + constructor(readonly sizeBytes: number) { super("Chunk exceeds the size bound."); } +} + +const errorHeaders = { "Content-Type": "text/plain; charset=utf-8", "X-Content-Type-Options": "nosniff", "Cache-Control": "no-store", "Access-Control-Allow-Origin": "*" }; +const reasons: Record = { 400: "invalid chunk request", 404: "chunk not found", 405: "method not allowed", 500: "chunk unavailable" }; + +function refusal(status: number, extra: Record = {}): ContentChunkAnswer { + const body = new TextEncoder().encode(reasons[status]); + return { status, headers: { ...errorHeaders, ...extra, "Content-Length": String(body.length) }, body }; +} + +const chunkAnswer = (body: Uint8Array): ContentChunkAnswer => ({ + status: 200, + headers: { + "Content-Length": String(body.length), + "Content-Type": "application/octet-stream", + "X-Content-Type-Options": "nosniff", + "Cache-Control": "public, max-age=31536000, immutable, no-transform", + "Access-Control-Allow-Origin": "*", + }, + body, +}); + +/** + * The HTTP answer to `?chunkHash=&recordKey=`, as the C# connector asks it. Every chunk is hashed against its + * name before the first byte is sent, GET and HEAD alike, and nothing is cached between requests. + */ +export function createContentChunkHandler(store: ContentChunkStore, options: ContentChunkHandlerOptions = {}): (request: ContentChunkRequest) => Promise { + const maxChunkBytes = options.maxChunkBytes ?? DEFAULT_CHUNK_SIZE_BYTES; + if (!Number.isInteger(maxChunkBytes) || maxChunkBytes < 1 || maxChunkBytes > 2147483647) throw new RangeError("maxChunkBytes must be an integer in 1..2147483647."); + + const fault = (chunkHash: string, kind: "hash-mismatch" | "too-large" | "store-error", error?: unknown): ContentChunkAnswer => { + try { options.onServerFault?.({ chunkHash, kind, error }); } catch { /* a hook cannot change the answer */ } + return refusal(500); + }; + + const serve = async (url: string): Promise => { + let hex: string; + try { + const query = new URL(url, "http://provider.invalid").searchParams; + const [hash, ...otherHashes] = query.getAll("chunkHash"); + const [key = "", ...otherKeys] = query.getAll("recordKey"); + hex = parseSha256Hex(hash ?? ""); + if (otherHashes.length || otherKeys.length || (!isNullOrWhiteSpaceCSharp(key) && key !== chunkRecordKey(hex))) return refusal(400); + } catch { return refusal(400); } + if (hex === EMPTY_SHA256) return chunkAnswer(new Uint8Array()); + let bytes: Uint8Array | undefined; + try { bytes = await store.readChunk(hex, maxChunkBytes); } + catch (error) { return fault(hex, error instanceof ContentChunkTooLargeError ? "too-large" : "store-error", error); } + if (!bytes) return refusal(404); + if (bytes.length > maxChunkBytes) return fault(hex, "too-large"); + // The copy is the provider's own: the bytes hashed are exactly the bytes sent, whatever the store does with its buffer afterwards. + const owned = new Uint8Array(bytes); + return await sha256Hex(owned) === hex ? chunkAnswer(owned) : fault(hex, "hash-mismatch"); + }; + + return async ({ method, url }) => { + if (method !== "GET" && method !== "HEAD") return refusal(405, { Allow: "GET, HEAD" }); + const { body, ...answer } = await serve(url); + return method === "GET" ? { ...answer, body } : answer; + }; +} + +/** A read-only flat directory (opened non-blocking, so a FIFO named by a hash is refused by fstat instead of holding a thread): the chunk whose hash is `` lives in `/`. It writes, lists and caches nothing. */ +export function createDirectoryChunkStore(root: string): ContentChunkStore { + return { + async readChunk(chunkHash, maxBytes) { + if (parseSha256Hex(chunkHash) !== chunkHash) throw new Error("chunkHash must be canonical lowercase hex."); + const file = await open(join(root, chunkHash), constants.O_RDONLY | constants.O_NONBLOCK).catch(error => { if (error?.code === "ENOENT") return undefined; throw error; }); + if (!file) return undefined; + try { + const stat = await file.stat(); + if (!stat.isFile()) throw new Error("Chunk is not a regular file."); + if (stat.size > maxBytes) throw new ContentChunkTooLargeError(stat.size); + const bytes = new Uint8Array(stat.size); + const { bytesRead } = await file.read(bytes, 0, stat.size, 0); + return bytes.subarray(0, bytesRead); + } finally { await file.close(); } + }, + }; +} + +/** Mounts a handler on `node:http` or `node:https`: method and URL in, status, headers and body out. A server request always has both. */ +export const toNodeListener = (handler: (request: ContentChunkRequest) => Promise) => + (req: IncomingMessage, res: ServerResponse): void => { + handler({ method: req.method!, url: req.url! }).catch(() => refusal(500)).then(({ status, headers, body }) => { + res.writeHead(status, headers); + res.end(body); + }); + }; diff --git a/packages/cultmesh-ts/test/content.test.ts b/packages/cultmesh-ts/test/content.test.ts new file mode 100644 index 00000000..9662bb86 --- /dev/null +++ b/packages/cultmesh-ts/test/content.test.ts @@ -0,0 +1,389 @@ +import assert from "node:assert/strict"; +import fsp from "node:fs/promises"; +import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises"; +import { createServer, type Server } from "node:http"; +import type { AddressInfo } from "node:net"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import test, { mock } from "node:test"; +import { execFileSync } from "node:child_process"; + +import { EMPTY_SHA256, chunkRecordKey, packContent, sha256Hex } from "cultnet-ts/content"; +import { closeSync, constants as fsConstants, openSync, symlinkSync } from "node:fs"; + +import { + ContentChunkTooLargeError, + createContentChunkHandler, + createDirectoryChunkStore, + toNodeListener, + type ContentChunkAnswer, + type ContentChunkHandlerOptions, + type ContentChunkStore, +} from "../src/content"; + +// Chunks come from the packer, so the hashes are the ones a publisher writes. +const packed = async (text: string) => (await packContent("a", new TextEncoder().encode(text))).chunks[0]!; +const decode = (answer: ContentChunkAnswer) => new TextDecoder().decode(answer.body ?? new Uint8Array()); +const OK_HEADERS = { + "Content-Type": "application/octet-stream", + "X-Content-Type-Options": "nosniff", + "Cache-Control": "public, max-age=31536000, immutable, no-transform", + "Access-Control-Allow-Origin": "*", +}; + +function spyStore(chunks: Record): ContentChunkStore & { calls: string[] } { + const calls: string[] = []; + return { calls, readChunk: async hash => { calls.push(hash); return chunks[hash]; } }; +} +const ask = (store: ContentChunkStore, url: string, method = "GET", options?: ContentChunkHandlerOptions) => + createContentChunkHandler(store, options)({ method, url }); + +test("GET of a stored chunk answers 200 with exactly its bytes and the 200 header set", async () => { + const chunk = await packed("hello chunk"); + const answer = await ask(spyStore({ [chunk.chunkHash]: chunk.payload }), `/c?chunkHash=${chunk.chunkHash}`); + assert.equal(answer.status, 200); + assert.deepEqual(answer.body, chunk.payload); + assert.deepEqual(answer.headers, { ...OK_HEADERS, "Content-Length": String(chunk.payload.length) }); +}); + +test("HEAD answers the same status and headers as GET with no body, and HEAD of a corrupt chunk answers 500", async () => { + const chunk = await packed("hello chunk"); + const url = `/c?chunkHash=${chunk.chunkHash}`; + const get = await ask(spyStore({ [chunk.chunkHash]: chunk.payload }), url); + const head = await ask(spyStore({ [chunk.chunkHash]: chunk.payload }), url, "HEAD"); + assert.equal(head.status, 200); + assert.deepEqual(head.headers, get.headers); + assert.equal(head.body, undefined); + const corrupt = await ask(spyStore({ [chunk.chunkHash]: new TextEncoder().encode("hello chunK") }), url, "HEAD"); + assert.equal(corrupt.status, 500); + assert.equal(corrupt.body, undefined); +}); + +test("chunkHash 'SHA256: ' answers like the canonical hash; recordKey absent, empty or exact answers 200", async () => { + const chunk = await packed("hello chunk"); + const store = spyStore({ [chunk.chunkHash]: chunk.payload }); + const hash = encodeURIComponent(`SHA256:${chunk.chunkHash.toUpperCase()} `); + const keys = ["", "&recordKey=", "&recordKey=%20%20", `&recordKey=${encodeURIComponent(chunkRecordKey(chunk.chunkHash))}`]; + for (const key of keys) { + const answer = await ask(store, `/c?chunkHash=${hash}${key}`); + assert.equal(answer.status, 200, key); + assert.deepEqual(answer.body, chunk.payload); + } + assert.deepEqual(new Set(store.calls), new Set([chunk.chunkHash])); +}); + +test("a recordKey for another hash, a repeated recordKey, a missing or repeated chunkHash, 63 hex, non-hex, '../x' and '%2e%2e%2f' answer 400 and the store is never called", async () => { + const chunk = await packed("hello chunk"); + const other = await packed("another"); + const store = spyStore({ [chunk.chunkHash]: chunk.payload }); + const h = chunk.chunkHash; + const key = encodeURIComponent(chunkRecordKey(h)); + const urls = [ + `/c?chunkHash=${h}&recordKey=${encodeURIComponent(chunkRecordKey(other.chunkHash))}`, + `/c?chunkHash=${h}&recordKey=x`, + `/c?chunkHash=${h}&recordKey=${key}&recordKey=${key}`, + `/c?recordKey=${key}`, + "/c", + `/c?chunkHash=${h}&chunkHash=${h}`, + `/c?chunkHash=${h.slice(1)}`, + `/c?chunkHash=${"g".repeat(64)}`, + "/c?chunkHash=../x", + "/c?chunkHash=%2e%2e%2f", + "/c?chunkHash=", + ]; + for (const url of urls) { + const answer = await ask(store, url); + assert.equal(answer.status, 400, url); + assert.equal(answer.headers["Cache-Control"], "no-store"); + assert.equal(answer.headers["Content-Type"], "text/plain; charset=utf-8"); + assert.equal(decode(answer), "invalid chunk request"); + } + assert.deepEqual(store.calls, []); +}); + +test("a valid unknown hash answers 404 with Cache-Control: no-store", async () => { + const chunk = await packed("hello chunk"); + const answer = await ask(spyStore({}), `/c?chunkHash=${chunk.chunkHash}`); + assert.equal(answer.status, 404); + assert.equal(answer.headers["Cache-Control"], "no-store"); + assert.equal(decode(answer), "chunk not found"); +}); + +test("the empty hash answers 200 with Content-Length 0 from a store that throws when called", async () => { + const store: ContentChunkStore = { readChunk: async () => { throw new Error("must not be called"); } }; + const answer = await ask(store, `/c?chunkHash=${EMPTY_SHA256}`); + assert.equal(answer.status, 200); + assert.equal(answer.headers["Content-Length"], "0"); + assert.equal(answer.body?.length, 0); +}); + +test("stored bytes that do not hash to their name answer 500, the body holds none of them, and onServerFault gets hash-mismatch; a throwing hook still yields 500", async () => { + const chunk = await packed("hello chunk"); + const canary = "CANARY-corrupt-bytes"; + const store = spyStore({ [chunk.chunkHash]: new TextEncoder().encode(canary) }); + const faults: unknown[] = []; + const answer = await ask(store, `/c?chunkHash=${chunk.chunkHash}`, "GET", { onServerFault: f => faults.push(f) }); + assert.equal(answer.status, 500); + assert.equal(decode(answer), "chunk unavailable"); + assert.equal(JSON.stringify(answer).includes(canary), false); + assert.deepEqual(faults, [{ chunkHash: chunk.chunkHash, kind: "hash-mismatch", error: undefined }]); + const throwing = await ask(store, `/c?chunkHash=${chunk.chunkHash}`, "GET", { onServerFault: () => { throw new Error("hook"); } }); + assert.equal(throwing.status, 500); +}); + +test("a valid 17-byte chunk with maxChunkBytes 16 answers 500 too-large, a store rejection answers 500 store-error, and maxChunkBytes 0, 2^31 and 1.5 throw RangeError", async () => { + const chunk = await packed("0123456789abcdefg"); + assert.equal(chunk.payload.length, 17); + const kinds: string[] = []; + const options = { maxChunkBytes: 16, onServerFault: (f: { kind: string }) => kinds.push(f.kind) }; + const url = `/c?chunkHash=${chunk.chunkHash}`; + assert.equal((await ask(spyStore({ [chunk.chunkHash]: chunk.payload }), url, "GET", options)).status, 500); + const refusing: ContentChunkStore = { readChunk: async () => { throw new ContentChunkTooLargeError(17); } }; + assert.equal((await ask(refusing, url, "GET", options)).status, 500); + const failing: ContentChunkStore = { readChunk: async () => { throw new Error("disk"); } }; + assert.equal((await ask(failing, url, "GET", options)).status, 500); + assert.deepEqual(kinds, ["too-large", "too-large", "store-error"]); + assert.equal((await ask(spyStore({ [chunk.chunkHash]: chunk.payload }), url, "GET", { maxChunkBytes: 17 })).status, 200); + for (const bad of [0, 2 ** 31, 1.5, Number.NaN]) assert.throws(() => createContentChunkHandler(spyStore({}), { maxChunkBytes: bad }), RangeError, String(bad)); + assert.throws(() => createContentChunkHandler(spyStore({}), { maxChunkBytes: 0 }), /maxChunkBytes/); + const one = await packed("x"); + assert.equal((await ask(spyStore({ [one.chunkHash]: one.payload }), `/c?chunkHash=${one.chunkHash}`, "GET", { maxChunkBytes: 1 })).status, 200); + assert.doesNotThrow(() => createContentChunkHandler(spyStore({}), { maxChunkBytes: 2 ** 31 - 1 })); +}); + +test("POST, PUT, DELETE and OPTIONS answer 405 with Allow: GET, HEAD", async () => { + const chunk = await packed("hello chunk"); + const store = spyStore({ [chunk.chunkHash]: chunk.payload }); + for (const method of ["POST", "PUT", "DELETE", "OPTIONS", ""]) { + const answer = await ask(store, `/c?chunkHash=${chunk.chunkHash}`, method); + assert.equal(answer.status, 405, method); + assert.equal(answer.headers.Allow, "GET, HEAD"); + assert.equal(decode(answer), "method not allowed"); + assert.equal(answer.headers["Access-Control-Allow-Origin"], "*"); + } + assert.deepEqual(store.calls, []); +}); + +test("'/anything/../etc/passwd?chunkHash=' answers exactly as '/?chunkHash=', and '/' with no query answers 400", async () => { + const chunk = await packed("hello chunk"); + const store = spyStore({ [chunk.chunkHash]: chunk.payload }); + const plain = await ask(store, `/?chunkHash=${chunk.chunkHash}`); + assert.deepEqual(await ask(store, `/anything/../etc/passwd?chunkHash=${chunk.chunkHash}`), plain); + assert.equal((await ask(store, `/${chunk.chunkHash}`)).status, 400); +}); + +test("error answers carry ACAO * and never echo the request's hash or key", async () => { + const canary = "CANARY-request-input"; + const chunk = await packed("hello chunk"); + const urls = [`/c?chunkHash=${canary}`, `/c?chunkHash=${chunk.chunkHash}&recordKey=${canary}`, `/${canary}?chunkHash=${chunk.chunkHash}`]; + for (const url of urls) { + for (const answer of [await ask(spyStore({}), url), await ask(spyStore({}), url, "POST")]) { + assert.equal(answer.headers["Access-Control-Allow-Origin"], "*"); + assert.equal(answer.headers["X-Content-Type-Options"], "nosniff"); + assert.equal(answer.headers["Content-Length"], String(answer.body?.length)); + assert.equal(JSON.stringify(answer).includes(canary), false); + } + } +}); + +test("directory store reads canonical hex and rejects non-canonical names, a directory and an oversized file", async () => { + const root = await mkdtemp(join(tmpdir(), "cm-content-")); + try { + const chunk = await packed("0123456789abcdefg"); + const store = createDirectoryChunkStore(root); + await writeFile(join(root, chunk.chunkHash), chunk.payload); + assert.deepEqual(await store.readChunk(chunk.chunkHash, 17), chunk.payload); + assert.equal(await store.readChunk(await sha256Hex(new Uint8Array([1])), 17), undefined); + // The root does not exist for these, so only the name check can reject them before a filesystem call. + const nowhere = createDirectoryChunkStore(join(root, "missing")); + await assert.rejects(nowhere.readChunk(chunk.chunkHash.toUpperCase(), 17), /canonical/); + for (const name of [chunk.chunkHash.toUpperCase(), `sha256:${chunk.chunkHash}`, `../${chunk.chunkHash}`, chunk.chunkHash.slice(1), ` ${chunk.chunkHash}`]) { + await assert.rejects(nowhere.readChunk(name, 17), name); + } + await assert.rejects(store.readChunk(chunk.chunkHash, 16), (error: unknown) => error instanceof ContentChunkTooLargeError && error.sizeBytes === 17); + const dirHash = await sha256Hex(new Uint8Array([2])); + await mkdir(join(root, dirHash)); + await assert.rejects(store.readChunk(dirHash, 1 << 20), process.platform === "win32" ? Error : /regular file/); + // Only a missing file is "not found": a root that is a file is a store fault (ENOTDIR on POSIX; Windows reports ENOENT). + if (process.platform !== "win32") await assert.rejects(createDirectoryChunkStore(join(root, chunk.chunkHash)).readChunk(chunk.chunkHash, 17), { code: "ENOTDIR" }); + // Through the handler: a file whose bytes do not match its name is a 500, and the right bytes are a 200. + const wrongHash = await sha256Hex(new Uint8Array([3])); + await writeFile(join(root, wrongHash), chunk.payload); + const handler = createContentChunkHandler(store); + assert.equal((await handler({ method: "GET", url: `/?chunkHash=${wrongHash}` })).status, 500); + assert.equal((await handler({ method: "GET", url: `/?chunkHash=${chunk.chunkHash}` })).status, 200); + assert.equal((await handler({ method: "GET", url: `/?chunkHash=${dirHash}` })).status, 500); + } finally { await rm(root, { recursive: true, force: true }); } +}); + +test("over node:http through toNodeListener: GET with Range and Accept-Encoding: gzip gets 200 with the full identity body; HEAD carries Content-Length; a handler rejection answers 500", async () => { + const chunk = await packed("hello chunk over http"); + const handler = createContentChunkHandler(spyStore({ [chunk.chunkHash]: chunk.payload })); + const serve = async (listener: ReturnType, run: (base: string) => Promise) => { + const server: Server = createServer(listener); + await new Promise(resolve => server.listen(0, "127.0.0.1", resolve)); + try { await run(`http://127.0.0.1:${(server.address() as AddressInfo).port}`); } + finally { await new Promise(resolve => { server.close(() => resolve()); server.closeAllConnections(); }); } + }; + await serve(toNodeListener(handler), async base => { + const url = `${base}/mount?chunkHash=${chunk.chunkHash}`; + const get = await fetch(url, { headers: { Range: "bytes=2-5", "Accept-Encoding": "gzip" } }); + assert.equal(get.status, 200); + assert.equal(get.headers.get("content-encoding"), null); + assert.equal(get.headers.get("accept-ranges"), null); + assert.deepEqual(new Uint8Array(await get.arrayBuffer()), chunk.payload); + const head = await fetch(url, { method: "HEAD" }); + assert.equal(head.status, 200); + assert.equal(head.headers.get("content-length"), String(chunk.payload.length)); + assert.equal((await head.arrayBuffer()).byteLength, 0); + }); + await serve(toNodeListener(async () => { throw new Error("boom"); }), async base => { + const response = await fetch(`${base}/`); + assert.equal(response.status, 500); + assert.equal(await response.text(), "chunk unavailable"); + }); +}); + +test("directory store closes every handle it opens, whether it returns bytes, finds a directory or refuses an oversized file", async () => { + const root = await mkdtemp(join(tmpdir(), "cm-content-")); + const opened: Awaited>[] = []; + const original = fsp.open; + const spy = mock.method(fsp, "open", async (...args: Parameters) => { const handle = await original(...args); opened.push(handle); return handle; }); + try { + const chunk = await packed("0123456789abcdefg"); + const dirHash = await sha256Hex(new Uint8Array([2])); + await writeFile(join(root, chunk.chunkHash), chunk.payload); + await mkdir(join(root, dirHash)); + const store = createDirectoryChunkStore(root); + await store.readChunk(chunk.chunkHash, 17); + await assert.rejects(store.readChunk(chunk.chunkHash, 16)); + await store.readChunk(dirHash, 17).catch(() => undefined); + assert.ok(opened.length >= 2, "the store opened its files through node:fs/promises open"); + assert.deepEqual(opened.map(handle => handle.fd), opened.map(() => -1)); + } finally { spy.mock.restore(); await rm(root, { recursive: true, force: true }); } +}); + +test("a recordKey is compared exactly: padded and re-cased forms of the right key answer 400, tab and newline keys are blank and answer 200", async () => { + const chunk = await packed("hello chunk"); + const store = spyStore({ [chunk.chunkHash]: chunk.payload }); + const key = chunkRecordKey(chunk.chunkHash); + const q = (value: string) => `/c?chunkHash=${chunk.chunkHash}&recordKey=${encodeURIComponent(value)}`; + for (const forged of [` ${key}`, `${key} `, `\t${key}`, key.toUpperCase(), key.replace("mesh", "Mesh"), "\uFEFF", `\uFEFF${key}`]) { + assert.equal((await ask(store, q(forged))).status, 400, JSON.stringify(forged)); + } + assert.deepEqual(store.calls, []); + // U+0085 is white space to C# and not to JS trim(); U+FEFF is the reverse: the blank rule is C#'s, not the platform's. + for (const blank of ["\t", "\n", "\r\n", " \t ", "\u0085", "\u00A0", " \u0085 "]) assert.equal((await ask(store, q(blank))).status, 200, JSON.stringify(blank)); + assert.equal((await ask(store, q(key))).status, 200); +}); + +test("only the empty chunk's own hash is answered without the store: hashes sharing its prefix or differing in the last digit reach the store", async () => { + const flipped = EMPTY_SHA256.slice(0, -1) + (EMPTY_SHA256.endsWith("5") ? "6" : "5"); + const prefixed = EMPTY_SHA256.slice(0, 8) + "0".repeat(56); + for (const hash of [flipped, prefixed]) { + assert.equal(hash.length, 64); + const store = spyStore({}); + const answer = await ask(store, `/c?chunkHash=${hash}`); + assert.equal(answer.status, 404, hash); + assert.deepEqual(store.calls, [hash]); + } +}); + +test("a GET reads the store once and serves the bytes it hashed, not a later read", async () => { + const first = await packed("first read"); + const second = await packed("second read"); + const reads: Uint8Array[] = [first.payload, second.payload]; + const store: ContentChunkStore = { readChunk: async () => reads.shift() }; + const answer = await ask(store, `/c?chunkHash=${first.chunkHash}`); + assert.equal(answer.status, 200); + assert.deepEqual(answer.body, first.payload); + assert.equal(reads.length, 1, "the store was read exactly once"); +}); + +test("a store that reuses its buffer cannot change the bytes after the hash: the answer is the hashed content, from a private copy", async () => { + const chunk = await packed("hello chunk"); + const shared = Buffer.from(chunk.payload); + // The overwrite lands in a microtask chain that runs after the handler resumes and has started hashing, before the digest resolves. + const store: ContentChunkStore = { + readChunk: async () => { + let hops = 0; + const hop = (): void => { if (++hops < 4) queueMicrotask(hop); else shared.fill(0x58); }; + queueMicrotask(hop); + return shared; + }, + }; + const answer = await ask(store, `/c?chunkHash=${chunk.chunkHash}`); + assert.equal(shared[0], 0x58, "the store's buffer was overwritten while the request was in flight"); + assert.equal(answer.status, 200); + assert.deepEqual(answer.body, chunk.payload); + assert.notEqual(answer.body?.buffer, shared.buffer); +}); + +test("a store that overwrites its buffer on any microtask hop never gets other bytes served under the chunk's name", async () => { + const chunk = await packed("hello chunk"); + const outcomes = new Set(); + for (let overwriteAt = 0; overwriteAt <= 10; overwriteAt += 1) { + const shared = Buffer.from(chunk.payload); + const store: ContentChunkStore = { + readChunk: async () => { + let hops = 0; + const hop = (): void => { if (hops++ < overwriteAt) queueMicrotask(hop); else shared.fill(0x58); }; + queueMicrotask(hop); + return shared; + }, + }; + const answer = await ask(store, `/c?chunkHash=${chunk.chunkHash}`); + outcomes.add(answer.status); + const served = answer.status === 200 && Buffer.from(answer.body ?? new Uint8Array()).equals(Buffer.from(chunk.payload)); + assert.ok(served || answer.status === 500, `overwrite after ${overwriteAt} hops answered ${answer.status} with ${decode(answer)}`); + } + assert.deepEqual([...outcomes].sort(), [200, 500], "the sweep covers an overwrite before the copy and one after the hash"); +}); + +test("a FIFO named by a hash is refused as not a regular file at once and holds no thread: other chunks are still served", { skip: process.platform === "win32" }, async () => { + const root = await mkdtemp(join(tmpdir(), "cm-content-")); + let fifoPath: string | undefined; + const started: Promise[] = []; + try { + const chunk = await packed("hello chunk"); + await writeFile(join(root, chunk.chunkHash), chunk.payload); + const fifoHash = await sha256Hex(new Uint8Array([9])); + fifoPath = join(root, fifoHash); + execFileSync("mkfifo", [fifoPath]); + const store = createDirectoryChunkStore(root); + const within = async (work: Promise): Promise => { + started.push(work.catch(() => undefined)); + let timer: NodeJS.Timeout | undefined; + try { return await Promise.race([work, new Promise((_, reject) => { timer = setTimeout(() => reject(new Error("blocked")), 3000); })]); } + finally { clearTimeout(timer); } + }; + // More than the libuv pool (4) so a blocking open would starve the pool. + const refusals = Array.from({ length: 8 }, () => within(store.readChunk(fifoHash, 1 << 20)).then(() => "read", (error: Error) => error.message)); + assert.deepEqual(await Promise.all(refusals), Array(8).fill("Chunk is not a regular file.")); + assert.deepEqual(await within(store.readChunk(chunk.chunkHash, 1 << 20)), chunk.payload); + assert.equal((await within(createContentChunkHandler(store)({ method: "GET", url: `/?chunkHash=${fifoHash}` }))).status, 500); + } finally { + // A reverted non-blocking open leaves pool threads waiting for a writer, which would keep the process alive past the failure. + // A read-write open (synchronous: hashing and async fs calls queue behind the full pool) is a writer; held until every + // started read has settled, it releases the queued opens too, so the revert fails the test in seconds instead of hanging. + const writer = fifoPath ? openSync(fifoPath, fsConstants.O_RDWR | fsConstants.O_NONBLOCK) : undefined; + try { await Promise.all(started); } finally { if (writer !== undefined) closeSync(writer); } + await rm(root, { recursive: true, force: true }); + } +}); + +test("a character device named by a hash is refused as not a regular file, whatever the user id", { skip: process.platform === "win32" }, async () => { + const root = await mkdtemp(join(tmpdir(), "cm-content-")); + try { + const store = createDirectoryChunkStore(root); + for (const [index, device] of ["/dev/null", "/dev/zero"].entries()) { + const hash = await sha256Hex(new Uint8Array([index])); + symlinkSync(device, join(root, hash)); + await assert.rejects(store.readChunk(hash, 1 << 20), { message: "Chunk is not a regular file." }, device); + const seen: string[] = []; + const answer = await createContentChunkHandler(store, { onServerFault: fault => seen.push(fault.kind) })({ method: "GET", url: `/?chunkHash=${hash}` }); + assert.equal(answer.status, 500, device); + assert.deepEqual(seen, ["store-error"], device); + } + } finally { await rm(root, { recursive: true, force: true }); } +}); diff --git a/packages/cultnet-rs/Cargo.toml b/packages/cultnet-rs/Cargo.toml index f87af6cb..13d87867 100644 --- a/packages/cultnet-rs/Cargo.toml +++ b/packages/cultnet-rs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cultnet-rs" -version = "0.1.0" +version = "0.2.0" edition = "2024" publish = false license = "MIT" diff --git a/packages/cultnet-rs/README.md b/packages/cultnet-rs/README.md index 7ade81dc..48ac2dd3 100644 --- a/packages/cultnet-rs/README.md +++ b/packages/cultnet-rs/README.md @@ -11,9 +11,9 @@ The contract is intentionally boring: - `gamecult.networking.v0` maps the legacy C# union shape explicitly. - schema discovery uses explicit catalog request/response messages; no inbound auto-detect sludge. -- document put/delete/snapshot messages move typed CultCache entries. -- raw document put/snapshot messages preserve canonical MessagePack payload - bytes for bit-compatible neighbors. +- put and snapshot travel only as raw messages that carry the canonical + MessagePack payload bytes; the receiver decodes them through registered + types. Delete carries ids. - hello messages advertise `supportedMutationContracts`, so callers discover which document types are read-only, which accept typed intents, which authority owns the mutation, and which receipt documents prove the outcome. @@ -41,7 +41,6 @@ The initial tests prove: - legacy `gamecult.networking.v0` login mapping - schema discovery catalog responses with canonical JSON schema hashes - shard catalog request/response filtering and response application -- CultCache snapshot replication through registered typed documents - raw snapshot replication that preserves the original payload bytes - raw snapshot replication into a local same-schema Rust alias type - document mutation contract advertisement through hello frames and registries @@ -164,7 +163,7 @@ cadence and flushes changed state back through the typed cache. `update(...)`, wants a more explicit Rust shape. When a canonical document put arrives while local state is dirty, -`apply_document_put_message(...)` or `apply_raw_document_put_message(...)` +`apply_raw_document_put_message(...)` records a `CultNetReactiveDocumentReconciliation`: the canonical value, the predicted local value, and a delta that can be smoothed by the caller. CultCache payloads serialize by numeric field slot, so Rust tuple-backed deltas use slot diff --git a/packages/cultnet-rs/contracts/cultnet/cultnet.document-put.schema.json b/packages/cultnet-rs/contracts/cultnet/cultnet.document-put.schema.json deleted file mode 100644 index 2b92051a..00000000 --- a/packages/cultnet-rs/contracts/cultnet/cultnet.document-put.schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/GameCult/CultLib/contracts/cultnet/cultnet.document-put.schema.json", - "title": "CultNet Document Put Message", - "type": "object", - "required": [ - "schemaVersion", - "messageId", - "document" - ], - "additionalProperties": false, - "properties": { - "schemaVersion": { "const": "cultnet.document_put.v0" }, - "messageId": { "type": "string", "minLength": 1 }, - "document": { - "$ref": "./cultnet.document-record.schema.json" - } - } -} diff --git a/packages/cultnet-rs/contracts/cultnet/cultnet.snapshot-response.schema.json b/packages/cultnet-rs/contracts/cultnet/cultnet.snapshot-response.schema.json deleted file mode 100644 index 87daf147..00000000 --- a/packages/cultnet-rs/contracts/cultnet/cultnet.snapshot-response.schema.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/GameCult/CultLib/contracts/cultnet/cultnet.snapshot-response.schema.json", - "title": "CultNet Snapshot Response Message", - "type": "object", - "required": [ - "schemaVersion", - "messageId", - "documents" - ], - "additionalProperties": false, - "properties": { - "schemaVersion": { "const": "cultnet.snapshot_response.v0" }, - "messageId": { "type": "string", "minLength": 1 }, - "documents": { - "type": "array", - "items": { - "$ref": "./cultnet.document-record.schema.json" - } - } - } -} diff --git a/packages/cultnet-rs/src/contracts.rs b/packages/cultnet-rs/src/contracts.rs index 6d9a2d77..e4f67164 100644 --- a/packages/cultnet-rs/src/contracts.rs +++ b/packages/cultnet-rs/src/contracts.rs @@ -1,10 +1,11 @@ +use anyhow::Context; use anyhow::Result; use anyhow::anyhow; +use anyhow::bail; use base64::Engine; use base64::engine::general_purpose::URL_SAFE_NO_PAD; use serde::Deserialize; use serde::Serialize; -use serde_json::Value; use crate::{Edge, RawDocumentHeader, Selection, SelectionDocumentRecord}; @@ -30,23 +31,6 @@ pub enum CultNetRawPayloadEncoding { Messagepack, } -#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct CultNetDocumentRecord { - pub schema_id: String, - pub record_key: String, - pub stored_at: String, - pub payload: TPayload, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub source_runtime_id: Option, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub source_agent_id: Option, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub source_role: Option, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub tags: Option>, -} - #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub enum CultNetDocumentOperation { @@ -284,7 +268,7 @@ impl CultNetErrorCode { "reference_outside_target" => Ok(Self::ReferenceOutsideTarget), "variant_unsupported" => Ok(Self::VariantUnsupported), "unowned_schema" => Ok(Self::UnownedSchema), - other => Err(anyhow!("ErrorMessage.Code {other:?} is not a recognized cultnet.error.v0 code")), + _ => Err(anyhow!("ErrorMessage.Code is not a recognized cultnet.error.v0 code")), } } } @@ -353,11 +337,11 @@ pub enum CultNetMessage { // R-N (docs/cultnet-selection-cut.md, fix batch 3): `code`/`details` mirror the landed C# // reference (CultNetSchemaMessages.cs) exactly, including its always-five-key map shape // (`schemaVersion`, `error`, `routingHint`, `code`, `details`, every optional key nil rather - // than omitted). `Error` is therefore encoded/decoded through the raw - // `cultnet.schema.v0` path (parse_raw_cultnet_schema_message/encode_raw_cultnet_schema_message) - // like the other messages that need exact wire control, not through this derive - the derive - // attributes below exist only so the enum as a whole still compiles and round-trips through the - // generic `serde_json::Value` path other tooling may still reach for. + // than omitted). `Error` is read and written only by the raw `cultnet.schema.v0` path + // (parse_raw_cultnet_schema_message/encode_raw_cultnet_schema_message): `skip_deserializing` + // makes the derive unable to decode it, so the raw reader is its one decoder and the derive + // attributes describe `Serialize` only. + #[serde(skip_deserializing)] #[serde(rename = "cultnet.error.v0", rename_all = "camelCase")] Error { error: String, @@ -370,17 +354,13 @@ pub enum CultNetMessage { SampleChangeName { name: String }, #[serde(rename = "cultnet.sample.chat.v0", rename_all = "camelCase")] SampleChat { text: String }, - #[serde(rename = "cultnet.document_put.v0", rename_all = "camelCase")] - DocumentPut { - message_id: String, - document: CultNetDocumentRecord, - }, #[serde(rename = "cultnet.document_delete.v0", rename_all = "camelCase")] DocumentDelete { message_id: String, schema_id: String, record_key: String, }, + #[serde(skip_deserializing)] #[serde(rename = "cultnet.document_put_raw.v0", rename_all = "camelCase")] DocumentPutRaw { message_id: String, @@ -394,11 +374,7 @@ pub enum CultNetMessage { #[serde(default, skip_serializing_if = "Option::is_none")] record_keys: Option>, }, - #[serde(rename = "cultnet.snapshot_response.v0", rename_all = "camelCase")] - SnapshotResponse { - message_id: String, - documents: Vec>, - }, + #[serde(skip_deserializing)] #[serde(rename = "cultnet.snapshot_response_raw.v0", rename_all = "camelCase")] SnapshotResponseRaw { message_id: String, @@ -430,10 +406,10 @@ pub enum CultNetMessage { #[serde(default, skip_serializing_if = "Option::is_none")] supported_body_transports: Option>, }, - /// `cultnet.snapshot_response_raw.v1` (section 2: `SelectionPage`). Binary payload, so this is - /// carried through `encode_raw_cultnet_schema_message`/`parse_raw_cultnet_schema_message` like - /// `SnapshotResponseRaw` above - a JSON intermediate cannot losslessly carry `documents[].payload` - /// or `edges[].payload`. Mirrors `CultNetSnapshotResponseRawV1Message`. + /// `cultnet.snapshot_response_raw.v1` (section 2: `SelectionPage`). Decoded by the derive from + /// the message bytes in one pass (rows and scalars, a duplicated key refused); encoded by + /// `encode_raw_cultnet_schema_message` for the reference's fixed nil-keyed shape. Mirrors + /// `CultNetSnapshotResponseRawV1Message`. #[serde(rename = "cultnet.snapshot_response_raw.v1", rename_all = "camelCase")] SnapshotResponseRawV1 { message_id: String, @@ -515,6 +491,7 @@ pub enum CultNetMessage { source_runtime_id: Option, }, /// `cultmesh.content_chunk_request.v1`. Mirrors `CultMeshContentChunkRequestMessage`; raw path. + #[serde(skip_deserializing)] #[serde(rename = "cultmesh.content_chunk_request.v1", rename_all = "camelCase")] ContentChunkRequest { message_id: String, @@ -524,6 +501,7 @@ pub enum CultNetMessage { }, /// `cultmesh.content_chunk_response.v1`. Mirrors `CultMeshContentChunkResponseMessage`. `payload` /// is `bin`, so it travels the raw path; the serde attribute never runs on the wire. + #[serde(skip_deserializing)] #[serde(rename = "cultmesh.content_chunk_response.v1", rename_all = "camelCase")] ContentChunkResponse { message_id: String, @@ -544,33 +522,6 @@ fn true_default() -> bool { true } -pub fn parse_cultnet_message( - wire_value: &rmpv::Value, - contract: CultNetWireContract, -) -> Result { - match contract { - CultNetWireContract::CultNetSchemaV0 => { - let message = match schema_version_from_wire_value(wire_value)? { - Some( - "cultnet.document_put_raw.v0" - | "cultnet.snapshot_response_raw.v0" - | "cultnet.snapshot_response_raw.v1" - | "cultmesh.content_chunk_request.v1" - | "cultmesh.content_chunk_response.v1" - | "cultnet.error.v0", - ) => parse_raw_cultnet_schema_message(wire_value)?, - _ => { - let json_value: Value = rmp_serde::from_slice(&rmp_serde::to_vec(wire_value)?)?; - serde_json::from_value(json_value)? - } - }; - validate_message(&message)?; - Ok(message) - } - CultNetWireContract::GameCultNetworkingV0 => parse_gamecult_networking_message(wire_value), - } -} - pub fn encode_cultnet_message_for_wire( message: &CultNetMessage, contract: CultNetWireContract, @@ -584,7 +535,7 @@ pub fn encode_cultnet_message_for_wire( | CultNetMessage::ContentChunkRequest { .. } | CultNetMessage::ContentChunkResponse { .. } | CultNetMessage::Error { .. } => encode_raw_cultnet_schema_message(message), - _ => Ok(rmp_serde::from_slice(&rmp_serde::to_vec( + _ => Ok(cultcache_rs::decode_payload(&rmp_serde::to_vec( &serde_json::to_value(message)?, )?)?), }, @@ -605,7 +556,25 @@ pub fn decode_cultnet_message_from_slice( contract: CultNetWireContract, ) -> Result { let wire_value: rmpv::Value = cultcache_rs::decode_payload(bytes)?; - parse_cultnet_message(&wire_value, contract) + match contract { + CultNetWireContract::CultNetSchemaV0 => { + let message = match schema_version_from_wire_value(&wire_value)? { + Some( + "cultnet.document_put_raw.v0" + | "cultnet.snapshot_response_raw.v0" + | "cultmesh.content_chunk_request.v1" + | "cultmesh.content_chunk_response.v1" + | "cultnet.error.v0", + ) => parse_raw_cultnet_schema_message(&wire_value) + .with_context(|| received_version_label(&wire_value))?, + _ => cultcache_rs::decode_payload::(bytes) + .with_context(|| received_version_label(&wire_value))?, + }; + validate_message(&message)?; + Ok(message) + } + CultNetWireContract::GameCultNetworkingV0 => parse_gamecult_networking_message(&wire_value), + } } fn validate_message(message: &CultNetMessage) -> Result<()> { @@ -669,13 +638,6 @@ fn validate_message(message: &CultNetMessage) -> Result<()> { CultNetMessage::Error { error, code: _, details: _ } => require_non_empty(error, "error")?, CultNetMessage::SampleChangeName { name } => require_non_empty(name, "name")?, CultNetMessage::SampleChat { text } => require_non_empty(text, "text")?, - CultNetMessage::DocumentPut { - message_id, - document, - } => { - require_non_empty(message_id, "messageId")?; - validate_document_record(document)?; - } CultNetMessage::DocumentDelete { message_id, schema_id, @@ -701,15 +663,6 @@ fn validate_message(message: &CultNetMessage) -> Result<()> { require_optional_string_vec(schema_ids.as_deref(), "schemaIds")?; require_optional_string_vec(record_keys.as_deref(), "recordKeys")?; } - CultNetMessage::SnapshotResponse { - message_id, - documents, - } => { - require_non_empty(message_id, "messageId")?; - for document in documents { - validate_document_record(document)?; - } - } CultNetMessage::SnapshotResponseRaw { message_id, documents, @@ -874,17 +827,6 @@ fn validate_mutation_contract(contract: &CultNetDocumentMutationContract) -> Res Ok(()) } -fn validate_document_record(document: &CultNetDocumentRecord) -> Result<()> { - require_non_empty(&document.schema_id, "schemaId")?; - require_non_empty(&document.record_key, "recordKey")?; - require_non_empty(&document.stored_at, "storedAt")?; - require_optional_non_empty(document.source_runtime_id.as_deref(), "sourceRuntimeId")?; - require_optional_non_empty(document.source_agent_id.as_deref(), "sourceAgentId")?; - require_optional_non_empty(document.source_role.as_deref(), "sourceRole")?; - require_optional_string_vec(document.tags.as_deref(), "tags")?; - Ok(()) -} - fn validate_raw_document_record(document: &CultNetRawDocumentRecord) -> Result<()> { require_non_empty(&document.schema_id, "schemaId")?; require_non_empty(&document.record_key, "recordKey")?; @@ -976,10 +918,52 @@ fn schema_version_from_wire_value(input: &rmpv::Value) -> Result> { })) } +/// True for a name shaped like a schema version (`cultnet.hello.v0`): a received value is named +/// in a refusal only when it cannot be anything else. +fn looks_like_schema_name(candidate: &str) -> bool { + let mut parts = candidate.split('.'); + let segment = |part: &str| !part.is_empty() && part.bytes().all(|b| b.is_ascii_lowercase() || b.is_ascii_digit() || b == b'_'); + let first_ok = parts.next().is_some_and(|first| { + first.bytes().next().is_some_and(|b| b.is_ascii_lowercase()) && segment(first) + }); + let rest: Vec<&str> = parts.collect(); + first_ok && !rest.is_empty() && rest.iter().all(|part| segment(*part)) && candidate.len() <= 96 +} + +/// What a refusal says of the message it refused: its `schemaVersion` when that is shaped like a +/// schema name, else only the shape of what arrived. Never a received value that could be text. +fn received_version_label(wire_value: &rmpv::Value) -> String { + match schema_version_from_wire_value(wire_value) { + Ok(Some(version)) if looks_like_schema_name(version) => { + format!("cultnet.schema.v0 message {version} refused") + } + Ok(Some(version)) => format!( + "cultnet.schema.v0 message whose schemaVersion is not a schema name ({} bytes)", + version.len() + ), + _ => "cultnet.schema.v0 message with no schemaVersion".to_string(), + } +} + +/// Refuses a map that spells a string key twice, so no reader resolves a duplicate by position. +/// Names the context, never the key (it is received text). +fn refuse_duplicate_keys(object: &[(rmpv::Value, rmpv::Value)], context: &str) -> Result<()> { + let mut seen = std::collections::HashSet::new(); + for (key, _) in object { + if let Some(name) = key.as_str() { + if !seen.insert(name) { + bail!("{context} spells a key twice"); + } + } + } + Ok(()) +} + fn parse_raw_cultnet_schema_message(input: &rmpv::Value) -> Result { let object = input .as_map() .ok_or_else(|| anyhow!("cultnet.schema.v0 raw messages must be objects"))?; + refuse_duplicate_keys(object, "cultnet.schema.v0 raw message")?; let get = |name: &str| -> Option<&rmpv::Value> { object.iter().find_map(|(key, value)| { @@ -1011,69 +995,6 @@ fn parse_raw_cultnet_schema_message(input: &rmpv::Value) -> Result { - let headers = get("headers") - .filter(|value| !value.is_nil()) - .map(|value| { - value - .as_array() - .ok_or_else(|| anyhow!("headers must be an array"))? - .iter() - .enumerate() - .map(|(index, value)| { - require_typed::(Some(value), &format!("headers[{index}]")) - }) - .collect::>>() - }) - .transpose()?; - let documents = get("documents") - .filter(|value| !value.is_nil()) - .map(|value| { - value - .as_array() - .ok_or_else(|| anyhow!("documents must be an array"))? - .iter() - .enumerate() - .map(|(index, value)| { - require_typed::( - Some(value), - &format!("documents[{index}]"), - ) - }) - .collect::>>() - }) - .transpose()?; - let edges = get("edges") - .filter(|value| !value.is_nil()) - .map(|value| { - value - .as_array() - .ok_or_else(|| anyhow!("edges must be an array"))? - .iter() - .enumerate() - .map(|(index, value)| { - require_typed::(Some(value), &format!("edges[{index}]")) - }) - .collect::>>() - }) - .transpose()?; - - Ok(CultNetMessage::SnapshotResponseRawV1 { - message_id: require_legacy_string(get("messageId"), "messageId")?, - matched: require_legacy_u32(get("matched"), "matched")?, - as_of: require_legacy_u64(get("asOf"), "asOf")?, - next: require_legacy_optional_string(get("next"), "next")?, - headers, - documents, - edges, - shard_id: require_legacy_optional_string(get("shardId"), "shardId")?, - shard_epoch: require_legacy_optional_i64(get("shardEpoch"), "shardEpoch")?, - shard_log_sequence: require_legacy_optional_i64( - get("shardLogSequence"), - "shardLogSequence", - )?, - }) - } "cultmesh.content_chunk_request.v1" => Ok(CultNetMessage::ContentChunkRequest { message_id: legacy_string_or_nil(get("messageId"), "messageId")?, chunk_hash: legacy_string_or_nil(get("chunkHash"), "chunkHash")?, @@ -1109,7 +1030,7 @@ fn parse_raw_cultnet_schema_message(input: &rmpv::Value) -> Result Err(anyhow!( - "Unsupported raw cultnet.schema.v0 schemaVersion {schema_version}" + "Unsupported raw cultnet.schema.v0 message" )), } } @@ -1127,6 +1048,7 @@ fn require_error_details( let object = value .as_map() .ok_or_else(|| anyhow!("{field_name} must be an object"))?; + refuse_duplicate_keys(object, field_name)?; let get = |name: &str| -> Option<&rmpv::Value> { object.iter().find_map(|(key, value)| { key.as_str() @@ -1368,6 +1290,7 @@ fn require_raw_document_record( let object = value .and_then(rmpv::Value::as_map) .ok_or_else(|| anyhow!("{field_name} must be an object"))?; + refuse_duplicate_keys(object, field_name)?; let get = |name: &str| -> Option<&rmpv::Value> { object.iter().find_map(|(key, value)| { @@ -1390,7 +1313,7 @@ fn require_raw_document_record( "messagepack" => CultNetRawPayloadEncoding::Messagepack, _ => { return Err(anyhow!( - "{field_name}.payloadEncoding has unsupported value {payload_encoding}" + "{field_name}.payloadEncoding names an encoding other than messagepack" )); } }, @@ -1469,41 +1392,16 @@ fn encode_raw_document_record(document: &CultNetRawDocumentRecord) -> rmpv::Valu ]) } -// R-M: `SelectionDocumentRecord`, `RawDocumentHeader`, `Edge` and `RecordRef` already derive -// `Serialize`/`Deserialize` (selection.rs) with the same camelCase field names this hand-written -// codec used to spell out by hand - about 335 lines duplicating what those derives already do. -// -// `rmpv::ext::to_value`/`from_value` looked like the natural generic bridge, but they serialize a -// struct positionally (`serialize_struct` as a MessagePack array, one slot per field in -// declaration order, breaking as soon as a `skip_serializing_if` field is actually skipped) - -// wrong for these types twice over: it is not the named-map encoding this wire always uses -// (section 10's rule; `rmp_serde::to_vec_named` elsewhere in this crate), and it does not -// round-trip at all once a field is omitted. These two helpers instead go through -// `rmp_serde::to_vec_named`/`from_slice` (named-map bytes, proven both ways by -// `tests/selection.rs`'s `snapshot_response_raw_v1_round_trips_*` tests) and hand the bytes to -// `rmpv::Value`'s own `Serialize`/`Deserialize` (already used throughout this file, e.g. to decode -// the outer message envelope) to shuttle to/from the `rmpv::Value` tree the rest of this codec -// builds by hand. - -fn require_typed( - value: Option<&rmpv::Value>, - field_name: &str, -) -> Result { - let value = value.ok_or_else(|| anyhow!("{field_name} is required"))?; - let bytes = rmp_serde::to_vec(value).map_err(|err| anyhow!("{field_name}: {err}"))?; - rmp_serde::from_slice(&bytes).map_err(|err| anyhow!("{field_name}: {err}")) -} +// R-M: `SelectionDocumentRecord`, `RawDocumentHeader`, `Edge` and `RecordRef` derive +// `Serialize`/`Deserialize` (selection.rs) with the camelCase field names this wire uses. +// `encode_typed` goes through `rmp_serde::to_vec_named` (the named-map encoding this wire always +// uses; `rmpv::ext::to_value` would write a struct positionally) and reads the bytes back into the +// `rmpv::Value` tree the rest of this codec builds by hand, through the decode door. Received rows +// are never re-encoded to become typed: the enum's derive reads them from the original bytes. fn encode_typed(value: &T) -> rmpv::Value { let bytes = rmp_serde::to_vec_named(value).expect("selection wire types always encode to MessagePack"); - rmp_serde::from_slice(&bytes).expect("named-map MessagePack bytes always decode into rmpv::Value") -} - -fn require_legacy_u32(value: Option<&rmpv::Value>, field_name: &str) -> Result { - let number = value - .and_then(rmpv::Value::as_u64) - .ok_or_else(|| anyhow!("{field_name} must be a non-negative integer"))?; - u32::try_from(number).map_err(|_| anyhow!("{field_name} does not fit in u32")) + cultcache_rs::decode_payload(&bytes).expect("named-map MessagePack bytes always decode into rmpv::Value") } fn require_legacy_i32(value: Option<&rmpv::Value>, field_name: &str) -> Result { @@ -1513,28 +1411,6 @@ fn require_legacy_i32(value: Option<&rmpv::Value>, field_name: &str) -> Result, field_name: &str) -> Result { - value - .and_then(rmpv::Value::as_u64) - .ok_or_else(|| anyhow!("{field_name} must be a non-negative integer")) -} - -fn require_legacy_optional_i64( - value: Option<&rmpv::Value>, - field_name: &str, -) -> Result> { - let Some(value) = value else { - return Ok(None); - }; - if value.is_nil() { - return Ok(None); - } - value - .as_i64() - .map(Some) - .ok_or_else(|| anyhow!("{field_name} must be an integer")) -} - fn parse_gamecult_networking_message(input: &rmpv::Value) -> Result { let items = input.as_array().ok_or_else(|| { anyhow!("gamecult.networking.v0 messages must be a 2-element union array") @@ -1613,7 +1489,7 @@ fn parse_gamecult_networking_message(input: &rmpv::Value) -> Result Err(anyhow!( - "Unsupported gamecult.networking.v0 union tag {tag}" + "Unsupported gamecult.networking.v0 union tag" )), } } @@ -1782,7 +1658,7 @@ fn require_legacy_optional_schema_kind_array( "wire_message" => Ok(CultNetSchemaKind::WireMessage), "document_payload" => Ok(CultNetSchemaKind::DocumentPayload), "shared_contract" => Ok(CultNetSchemaKind::SharedContract), - _ => Err(anyhow!("{field_name} has unsupported schema kind {value}")), + _ => Err(anyhow!("{field_name} has an unsupported schema kind")), }) .collect::>>() .map(Some) @@ -1811,6 +1687,7 @@ fn require_legacy_schema_descriptor( let object = value .as_map() .ok_or_else(|| anyhow!("{field_name} must be an object in gamecult.networking.v0"))?; + refuse_duplicate_keys(object, field_name)?; let get = |name: &str| -> Option<&rmpv::Value> { object.iter().find_map(|(key, value)| { @@ -1844,7 +1721,7 @@ fn require_legacy_schema_descriptor( "shared_contract" => CultNetSchemaKind::SharedContract, _ => { return Err(anyhow!( - "{field_name}.Kind has unsupported schema kind {kind}" + "{field_name}.Kind is not a supported schema kind" )); } }; diff --git a/packages/cultnet-rs/src/idunn_lifecycle_brake.rs b/packages/cultnet-rs/src/idunn_lifecycle_brake.rs index 86eefa64..cd28cf2f 100644 --- a/packages/cultnet-rs/src/idunn_lifecycle_brake.rs +++ b/packages/cultnet-rs/src/idunn_lifecycle_brake.rs @@ -68,7 +68,7 @@ impl IdunnLifecycleBrakeRecord { if messagepack_array_len(payload) != Some(9) { bail!("lifecycle brake is not the 9-field positional contract"); } - let value: Self = rmp_serde::from_slice(payload)?; + let value: Self = cultcache_rs::decode_payload(payload)?; value.validate()?; if rmp_serde::to_vec(&value)? != payload { bail!("lifecycle brake encoding is not canonical"); diff --git a/packages/cultnet-rs/src/provider_health_contracts.rs b/packages/cultnet-rs/src/provider_health_contracts.rs index 632c74f2..8764f651 100644 --- a/packages/cultnet-rs/src/provider_health_contracts.rs +++ b/packages/cultnet-rs/src/provider_health_contracts.rs @@ -123,7 +123,7 @@ impl IdunnSignedDaemonHealthRecord { pub fn decode_canonical_signed_payload(payload: &[u8]) -> Result<(Self, Vec)> { match messagepack_array_len(payload) { Some(18) => { - let statement: Self = rmp_serde::from_slice(payload) + let statement: Self = cultcache_rs::decode_payload(payload) .context("decoding generic signed daemon health")?; if rmp_serde::to_vec(&statement)? != payload { bail!("signed daemon health payload is not canonical positional MessagePack"); @@ -133,7 +133,7 @@ impl IdunnSignedDaemonHealthRecord { Ok((statement, rmp_serde::to_vec(&unsigned)?)) } Some(17) => { - let legacy: LegacyIdunnSignedDaemonHealthWire = rmp_serde::from_slice(payload) + let legacy: LegacyIdunnSignedDaemonHealthWire = cultcache_rs::decode_payload(payload) .context("decoding legacy generic signed daemon health")?; if rmp_serde::to_vec(&legacy)? != payload { bail!("signed daemon health payload is not canonical positional MessagePack"); @@ -643,6 +643,11 @@ mod tests { rmp_serde::from_slice::(&encoded)?, health ); + let (decoded, unsigned) = + IdunnSignedDaemonHealthRecord::decode_canonical_signed_payload(&encoded)?; + assert_eq!(decoded, health); + assert_eq!(&unsigned[..3], &[0xdc, 0, 18]); + assert_ne!(unsigned, encoded, "the signed payload excludes the signature"); assert_eq!( rmp_serde::from_slice::(&rmp_serde::to_vec( &anchor diff --git a/packages/cultnet-rs/src/replication.rs b/packages/cultnet-rs/src/replication.rs index 6fac884f..743a28fd 100644 --- a/packages/cultnet-rs/src/replication.rs +++ b/packages/cultnet-rs/src/replication.rs @@ -1,4 +1,3 @@ -use anyhow::Context; use anyhow::Result; use anyhow::anyhow; use cultcache_rs::CultCache; @@ -19,7 +18,6 @@ use std::thread::JoinHandle; use std::time::Duration; use crate::CultNetDocumentMutationContract; -use crate::CultNetDocumentRecord; use crate::CultNetMessage; use crate::CultNetRawDocumentRecord; use crate::CultNetRawPayloadEncoding; @@ -172,33 +170,6 @@ impl CultNetDocumentRegistry { .collect() } - pub fn create_document_put_message( - &self, - message_id: impl Into, - record_key: impl Into, - value: &T, - options: CultNetDocumentPutOptions, - ) -> Result - where - T: DatabaseEntry + Serialize + DeserializeOwned, - { - let binding = self.require_binding(T::TYPE)?; - let payload = serde_json::to_value(round_trip_typed(value)?)?; - Ok(CultNetMessage::DocumentPut { - message_id: message_id.into(), - document: CultNetDocumentRecord { - schema_id: binding.schema_id.clone(), - record_key: record_key.into(), - stored_at: options.stored_at.unwrap_or_else(now_utc_second), - payload, - source_runtime_id: options.source_runtime_id, - source_agent_id: options.source_agent_id, - source_role: options.source_role, - tags: options.tags, - }, - }) - } - pub fn create_document_delete_message( &self, message_id: impl Into, @@ -250,38 +221,6 @@ impl CultNetDocumentRegistry { }) } - pub fn create_snapshot_response( - &self, - cache: &CultCache, - message_id: impl Into, - schema_ids: Option<&[String]>, - record_keys: Option<&[String]>, - ) -> Result { - let requested_schema_ids = schema_ids.map(|items| items.iter().collect::>()); - let requested_record_keys = record_keys.map(|items| items.iter().collect::>()); - let mut documents = Vec::new(); - for envelope in cache.snapshot() { - let binding = self.require_binding(&envelope.r#type)?; - if requested_schema_ids - .as_ref() - .is_some_and(|ids| !ids.contains(&binding.schema_id)) - { - continue; - } - if requested_record_keys - .as_ref() - .is_some_and(|keys| !keys.contains(&envelope.key)) - { - continue; - } - documents.push(self.document_record_from_envelope(&envelope)?); - } - Ok(CultNetMessage::SnapshotResponse { - message_id: message_id.into(), - documents, - }) - } - pub fn create_raw_snapshot_response( &self, cache: &CultCache, @@ -314,36 +253,6 @@ impl CultNetDocumentRegistry { }) } - pub fn apply_document_put_message( - &self, - cache: &mut CultCache, - message: &CultNetMessage, - ) -> Result - where - T: DatabaseEntry + Serialize + DeserializeOwned, - { - let CultNetMessage::DocumentPut { document, .. } = message else { - return Err(anyhow!("expected cultnet.document_put.v0")); - }; - let binding = self.require_binding(T::TYPE)?; - if document.schema_id != binding.schema_id { - return Err(anyhow!( - "schema id {:?} does not match registered Rust type {:?} schema {:?}", - document.schema_id, - T::TYPE, - binding.schema_id - )); - } - let value: T = serde_json::from_value(document.payload.clone()).with_context(|| { - format!( - "failed to decode CultNet payload schema {:?} as {}", - binding.schema_id, - T::SCHEMA_NAME - ) - })?; - cache.put(&document.record_key, &value) - } - pub fn apply_document_delete_message( &self, cache: &mut CultCache, @@ -401,68 +310,6 @@ impl CultNetDocumentRegistry { }) } - pub fn apply_snapshot_response( - &self, - cache: &mut CultCache, - response: &CultNetMessage, - ) -> Result> - where - T: DatabaseEntry + Serialize + DeserializeOwned, - { - let CultNetMessage::SnapshotResponse { documents, .. } = response else { - return Err(anyhow!("expected cultnet.snapshot_response.v0")); - }; - let mut applied = Vec::new(); - let binding = self.require_binding(T::TYPE)?; - for document in documents { - if document.schema_id != binding.schema_id { - continue; - } - applied.push(self.apply_document_put_message::( - cache, - &CultNetMessage::DocumentPut { - message_id: "snapshot-apply".to_string(), - document: document.clone(), - }, - )?); - } - Ok(applied) - } - - pub fn sync_document_from_snapshot_response( - &self, - cache: &mut CultCache, - response: &CultNetMessage, - record_key: &str, - ) -> Result - where - T: DatabaseEntry + Serialize + DeserializeOwned, - { - let CultNetMessage::SnapshotResponse { documents, .. } = response else { - return Err(anyhow!("expected cultnet.snapshot_response.v0")); - }; - let binding = self.require_binding(T::TYPE)?; - let document = documents - .iter() - .find(|document| { - document.schema_id == binding.schema_id && document.record_key == record_key - }) - .ok_or_else(|| { - anyhow!( - "No CultNet snapshot document for schema {:?} and record key {:?}", - binding.schema_id, - record_key - ) - })?; - self.apply_document_put_message::( - cache, - &CultNetMessage::DocumentPut { - message_id: "snapshot-sync".to_string(), - document: document.clone(), - }, - ) - } - pub fn apply_raw_snapshot_response( &self, cache: &mut CultCache, @@ -537,29 +384,6 @@ impl CultNetDocumentRegistry { CultNetReactiveDocument::new(self.clone(), cache, record_key, options) } - fn document_record_from_envelope( - &self, - envelope: &CultCacheEnvelope, - ) -> Result> { - let binding = self.require_binding(&envelope.r#type)?; - let payload: Value = cultcache_rs::decode_payload(&envelope.payload).with_context(|| { - format!( - "failed to decode CultCache envelope {:?} at {:?} as generic CultNet payload", - envelope.r#type, envelope.key - ) - })?; - Ok(CultNetDocumentRecord { - schema_id: binding.schema_id.clone(), - record_key: envelope.key.clone(), - stored_at: envelope.stored_at.clone(), - payload, - source_runtime_id: None, - source_agent_id: None, - source_role: None, - tags: None, - }) - } - pub fn raw_document_record_from_envelope( &self, envelope: &CultCacheEnvelope, @@ -752,18 +576,6 @@ where flush_reactive_document::(&self.cache, &self.current, &self.state, &self.record_key) } - pub fn apply_document_put_message(&self, message: &CultNetMessage) -> Result { - let canonical = { - let mut cache = self - .cache - .lock() - .map_err(|_| anyhow!("CultCache mutex poisoned"))?; - self.registry - .apply_document_put_message::(&mut cache, message)? - }; - self.apply_canonical_value(canonical) - } - pub fn apply_raw_document_put_message(&self, message: &CultNetMessage) -> Result { let canonical = { let mut cache = self @@ -1022,13 +834,6 @@ fn numeric_delta(predicted: &Value, canonical: &Value) -> Option { serde_json::Number::from_f64(predicted - canonical).map(Value::Number) } -fn round_trip_typed(value: &T) -> Result -where - T: Serialize + DeserializeOwned, -{ - Ok(rmp_serde::from_slice(&rmp_serde::to_vec(value)?)?) -} - fn now_utc_second() -> String { chrono::Utc::now().to_rfc3339_opts(chrono::SecondsFormat::Secs, true) } diff --git a/packages/cultnet-rs/src/runtime_authority_contracts.rs b/packages/cultnet-rs/src/runtime_authority_contracts.rs index 426be1fb..0549a5c1 100644 --- a/packages/cultnet-rs/src/runtime_authority_contracts.rs +++ b/packages/cultnet-rs/src/runtime_authority_contracts.rs @@ -390,7 +390,7 @@ impl IdunnExpectedIncarnationRecord { bail!("expected incarnation is not the 18-field positional contract"); } let expected: Self = - rmp_serde::from_slice(payload).context("decoding expected incarnation")?; + cultcache_rs::decode_payload(payload).context("decoding expected incarnation")?; if rmp_serde::to_vec(&expected)? != payload { bail!("expected incarnation is not canonical positional MessagePack"); } @@ -629,7 +629,7 @@ impl OdinRuntimeTopologyCorrelationRecord { bail!("topology correlation is not the 21-field positional contract"); } let receipt: Self = - rmp_serde::from_slice(payload).context("decoding runtime topology correlation")?; + cultcache_rs::decode_payload(payload).context("decoding runtime topology correlation")?; if rmp_serde::to_vec(&receipt)? != payload { bail!("topology correlation is not canonical positional MessagePack"); } @@ -1173,7 +1173,7 @@ pub fn authenticate_runtime_presence_claim( bail!("runtime presence payload is not the 24-field positional contract"); } let presence: GameCultRuntimePresenceHealthRecord = - rmp_serde::from_slice(canonical_presence).context("decoding runtime presence health")?; + cultcache_rs::decode_payload(canonical_presence).context("decoding runtime presence health")?; if rmp_serde::to_vec(&presence)? != canonical_presence { bail!("runtime presence payload is not canonical positional MessagePack"); } @@ -1470,7 +1470,7 @@ impl IdunnRuntimeActivationRecord { bail!("runtime activation is not the 10-field positional contract"); } let activation: Self = - rmp_serde::from_slice(payload).context("decoding runtime activation")?; + cultcache_rs::decode_payload(payload).context("decoding runtime activation")?; if rmp_serde::to_vec(&activation)? != payload { bail!("runtime activation is not canonical positional MessagePack"); } @@ -1604,7 +1604,7 @@ impl IdunnProcessWriteLeaseRecord { if messagepack_array_len(payload) != Some(14) { bail!("process write lease is not the 14-field positional contract"); } - let lease: Self = rmp_serde::from_slice(payload).context("decoding process write lease")?; + let lease: Self = cultcache_rs::decode_payload(payload).context("decoding process write lease")?; if rmp_serde::to_vec(&lease)? != payload { bail!("process write lease is not canonical positional MessagePack"); } diff --git a/packages/cultnet-rs/src/schema_discovery.rs b/packages/cultnet-rs/src/schema_discovery.rs index 43211c3c..e061d5f9 100644 --- a/packages/cultnet-rs/src/schema_discovery.rs +++ b/packages/cultnet-rs/src/schema_discovery.rs @@ -284,13 +284,6 @@ pub fn builtin_schema_registry() -> Result { Some("cultnet.sample.chat.v0"), None, )?, - schema_registration( - include_str!("../contracts/cultnet/cultnet.document-put.schema.json"), - CultNetSchemaKind::WireMessage, - vec![CultNetWireContract::CultNetSchemaV0], - Some("cultnet.document_put.v0"), - None, - )?, schema_registration( include_str!("../contracts/cultnet/cultnet.document-delete.schema.json"), CultNetSchemaKind::WireMessage, @@ -319,13 +312,6 @@ pub fn builtin_schema_registry() -> Result { Some("cultnet.snapshot_request.v0"), None, )?, - schema_registration( - include_str!("../contracts/cultnet/cultnet.snapshot-response.schema.json"), - CultNetSchemaKind::WireMessage, - vec![CultNetWireContract::CultNetSchemaV0], - Some("cultnet.snapshot_response.v0"), - None, - )?, schema_registration( include_str!("../contracts/cultnet/cultnet.snapshot-response-raw.schema.json"), CultNetSchemaKind::WireMessage, diff --git a/packages/cultnet-rs/src/service_identity.rs b/packages/cultnet-rs/src/service_identity.rs index 3d37adfa..63ec29f6 100644 --- a/packages/cultnet-rs/src/service_identity.rs +++ b/packages/cultnet-rs/src/service_identity.rs @@ -285,11 +285,10 @@ pub fn open_service_identity_credential_reader( pub fn open_service_identity_credential_bytes( bytes: &[u8], ) -> Result> { - let mut decoder = rmp_serde::Deserializer::new(std::io::Cursor::new(bytes)); - let entries = Vec::::deserialize(&mut decoder) + let entries = cultcache_rs::decode_payload::>(bytes) .context("immutable service identity credential is malformed MessagePack")?; - if decoder.position() != bytes.len() as u64 { - bail!("immutable service identity credential contains trailing data"); + if Zeroizing::new(rmp_serde::to_vec(&entries)?).as_slice() != bytes { + bail!("immutable service identity credential is not its canonical encoding"); } open_service_identity_envelopes::

(&entries) } @@ -769,6 +768,37 @@ mod tests { Ok(()) } + #[test] + fn a_same_length_credential_spelled_with_a_str_payload_is_refused() -> Result<()> { + let temp = tempfile::tempdir()?; + let path = temp.path().join("idunn.ccmp"); + enroll_service_identity_at::(&path)?; + let bytes = std::fs::read(path)?; + open_service_identity_credential_bytes::(&bytes)?; + + // The envelope's payload spelled as a MessagePack str of the same bytes (bin8 -> str8, bin16 -> + // str16): same length, same decoded entries, a different encoding. + let envelopes: Vec = rmp_serde::from_slice(&bytes)?; + let payload = &envelopes[0].payload; + let at = bytes + .windows(payload.len()) + .position(|window| window == payload.as_slice()) + .expect("the payload is in the credential"); + let mut forged = bytes.clone(); + let (bin, str_marker, header) = if payload.len() <= 0xff { (0xc4, 0xd9, 2) } else { (0xc5, 0xda, 3) }; + assert_eq!(forged[at - header], bin, "payload spelled bin"); + forged[at - header] = str_marker; + assert_eq!(forged.len(), bytes.len()); + let reread: Vec = rmp_serde::from_slice(&forged)?; + assert_eq!(reread, envelopes, "the forgery decodes to identical entries"); + + let error = open_service_identity_credential_bytes::(&forged) + .err() + .expect("a differently spelled credential is refused"); + assert!(format!("{error:#}").contains("canonical encoding"), "{error:#}"); + Ok(()) + } + #[test] fn immutable_credential_reader_opens_without_a_path_and_retains_signing_authority() -> Result<()> { diff --git a/packages/cultnet-rs/tests/cultnet.rs b/packages/cultnet-rs/tests/cultnet.rs index 2f644aaa..64c57aaf 100644 --- a/packages/cultnet-rs/tests/cultnet.rs +++ b/packages/cultnet-rs/tests/cultnet.rs @@ -1780,7 +1780,7 @@ fn document_registry_advertises_mutation_contracts_with_bindings() -> Result<()> } #[test] -fn a_stored_payload_nested_past_the_bound_is_not_replicated_as_a_document() -> Result<()> { +fn a_replicated_payload_nested_past_the_bound_is_refused_typed_on_apply() -> Result<()> { let temp = tempfile::tempdir()?; let store = temp.path().join("foreign.msgpack"); let limit = cultcache_rs::MAX_PAYLOAD_DEPTH; @@ -1803,9 +1803,10 @@ fn a_stored_payload_nested_past_the_bound_is_not_replicated_as_a_document() -> R cache.add_generic_backing_store(SingleFileMessagePackBackingStore::new(&store))?; cache.pull_all_backing_stores()?; - let at_limit = registry.create_snapshot_response(&cache, "at", None, None)?; - let CultNetMessage::SnapshotResponse { documents, .. } = at_limit else { - panic!("expected a snapshot response"); + // The raw lane copies payload bytes without decoding; the receiver's apply is the door. + let at_limit = registry.create_raw_snapshot_response(&cache, "at", None, None)?; + let CultNetMessage::SnapshotResponseRaw { documents, .. } = &at_limit else { + panic!("expected a raw snapshot response"); }; assert_eq!(documents.len(), 1); @@ -1814,7 +1815,12 @@ fn a_stored_payload_nested_past_the_bound_is_not_replicated_as_a_document() -> R cache.register_entry_type::()?; cache.add_generic_backing_store(SingleFileMessagePackBackingStore::new(&store))?; cache.pull_all_backing_stores()?; - let error = registry.create_snapshot_response(&cache, "past", None, None).unwrap_err(); + let past = registry.create_raw_snapshot_response(&cache, "past", None, Some(&["past".to_string()]))?; + let mut target = CultCache::new(); + target.register_entry_type::()?; + let error = registry + .apply_raw_snapshot_response::(&mut target, &past) + .unwrap_err(); assert_eq!( error.downcast_ref::(), Some(&cultcache_rs::PayloadTooDeep { depth: limit + 1, limit }) @@ -1844,15 +1850,15 @@ fn document_registry_replicates_typed_cultcache_state() -> Result<()> { origin.pull_all_backing_stores()?; origin.put("epiphany.persona", &payload)?; - let snapshot = registry.create_snapshot_response(&origin, "snapshot-1", None, None)?; + let snapshot = registry.create_raw_snapshot_response(&origin, "snapshot-1", None, None)?; let mut target = CultCache::new(); target.register_entry_type::()?; target.add_generic_backing_store(SingleFileMessagePackBackingStore::new(&target_store))?; target.pull_all_backing_stores()?; let applied = - registry.apply_snapshot_response::(&mut target, &snapshot)?; - let synced = registry.sync_document_from_snapshot_response::( + registry.apply_raw_snapshot_response::(&mut target, &snapshot)?; + let synced = registry.sync_raw_document_from_snapshot_response::( &mut target, &snapshot, "epiphany.persona", @@ -1864,7 +1870,7 @@ fn document_registry_replicates_typed_cultcache_state() -> Result<()> { payload ); - let direct_put = registry.create_document_put_message( + let direct_put = registry.create_raw_document_put_message( "put-1", "epiphany.persona", &GhostlightAgentStateFixture { @@ -1874,7 +1880,7 @@ fn document_registry_replicates_typed_cultcache_state() -> Result<()> { CultNetDocumentPutOptions::default(), )?; let updated = registry - .apply_document_put_message::(&mut target, &direct_put)?; + .apply_raw_document_put_message::(&mut target, &direct_put)?; assert_eq!(updated.display_name, "Persona Prime"); Ok(()) } @@ -2314,7 +2320,7 @@ fn reactive_document_tracks_canonical_reconciliation_delta() -> Result<()> { note.body = "local-prediction".to_string(); note.revision = 2; })?; - let authoritative = registry.create_document_put_message( + let authoritative = registry.create_raw_document_put_message( "put-authoritative", "note:reconcile", &GhostlightReactiveNoteFixture { @@ -2324,7 +2330,7 @@ fn reactive_document_tracks_canonical_reconciliation_delta() -> Result<()> { CultNetDocumentPutOptions::default(), )?; - reactive.apply_document_put_message(&authoritative)?; + reactive.apply_raw_document_put_message(&authoritative)?; let current = reactive.current(); let current = current.lock().expect("reactive current mutex").clone(); diff --git a/packages/cultnet-rs/tests/decode_door.rs b/packages/cultnet-rs/tests/decode_door.rs new file mode 100644 index 00000000..fd5bab6a --- /dev/null +++ b/packages/cultnet-rs/tests/decode_door.rs @@ -0,0 +1,717 @@ +//! Every MessagePack byte cultnet-rs receives decodes once through `cultcache_rs::decode_payload`: +//! a message, the row arrays of `snapshot_response_raw.v1`, a raw document payload applied to a cache, +//! and an immutable identity credential. Each test decodes in a child test process on a thread of a +//! stated size, so an abort fails one named test; values are built, encoded and compared on a large +//! thread, and only the decode runs on the small one. + +use anyhow::Result; +use cultcache_rs::CultCache; +use cultcache_rs::CultSlots; +use cultcache_rs::DatabaseEntry; +use cultcache_rs::MAX_PAYLOAD_DEPTH; +use cultcache_rs::PayloadTooDeep; +use cultnet_rs::*; + +const CHILD_MARKER: &str = "CULTNET_DECODE_DOOR_CHILD"; +const SMALL: usize = 256 * 1024; +const BIG: usize = 64 * 1024 * 1024; +/// A five-byte MessagePack string standing where a test wants its nested value spliced in. +const SENTINEL: [u8; 5] = [0xa4, b'D', b'E', b'E', b'P']; + +#[derive(Clone, Debug, PartialEq, CultSlots)] +struct Wide32 { + #[cultcache(key = 0)] + a0: [u64; 32], + #[cultcache(key = 1)] + a1: [u64; 32], + #[cultcache(key = 2)] + a2: [u64; 32], + #[cultcache(key = 3)] + a3: [u64; 32], + #[cultcache(key = 4)] + a4: [u64; 32], + #[cultcache(key = 5)] + a5: [u64; 32], + #[cultcache(key = 6)] + a6: [u64; 32], + #[cultcache(key = 7)] + a7: [u64; 32], + #[cultcache(key = 8)] + a8: [u64; 32], + #[cultcache(key = 9)] + a9: [u64; 32], + #[cultcache(key = 10)] + a10: [u64; 32], + #[cultcache(key = 11)] + a11: [u64; 32], + #[cultcache(key = 12)] + a12: [u64; 32], + #[cultcache(key = 13)] + a13: [u64; 32], + #[cultcache(key = 14)] + a14: [u64; 32], + #[cultcache(key = 15)] + a15: [u64; 32], + #[cultcache(key = 16)] + a16: [u64; 32], + #[cultcache(key = 17)] + a17: [u64; 32], + #[cultcache(key = 18)] + a18: [u64; 32], + #[cultcache(key = 19)] + a19: [u64; 32], + #[cultcache(key = 20)] + a20: [u64; 32], + #[cultcache(key = 21)] + a21: [u64; 32], + #[cultcache(key = 22)] + a22: [u64; 32], + #[cultcache(key = 23)] + a23: [u64; 32], + #[cultcache(key = 24)] + a24: [u64; 32], + #[cultcache(key = 25)] + a25: [u64; 32], + #[cultcache(key = 26)] + a26: [u64; 32], + #[cultcache(key = 27)] + a27: [u64; 32], + #[cultcache(key = 28)] + a28: [u64; 32], + #[cultcache(key = 29)] + a29: [u64; 32], + #[cultcache(key = 30)] + a30: [u64; 32], + #[cultcache(key = 31)] + a31: [u64; 32], + #[cultcache(key = 32)] + next: Option>, +} + +#[derive(Clone, Debug, PartialEq, DatabaseEntry)] +#[cultcache(type = "cultnet.decode-door.wide", schema = "DecodeDoorWide")] +struct WideDocument { + #[cultcache(key = 0)] + chain: Wide32, +} + +fn on_stack(bytes: usize, body: impl FnOnce() -> R + Send + 'static) -> R { + std::thread::Builder::new().stack_size(bytes).spawn(body).unwrap().join().unwrap() +} + +/// Runs `body` in a child process that runs only the test `name`; the parent passes when the child +/// exits cleanly having run exactly that one test. An abort in the child fails the parent. +fn in_child(name: &str, body: impl FnOnce()) { + if std::env::var_os(CHILD_MARKER).is_some() { + body(); + return; + } + let output = std::process::Command::new(std::env::current_exe().unwrap()) + .args([name, "--exact", "--nocapture", "--test-threads=1"]) + .env(CHILD_MARKER, "1") + .output() + .unwrap(); + let stdout = String::from_utf8_lossy(&output.stdout); + let stderr = String::from_utf8_lossy(&output.stderr); + assert!( + output.status.success() && stdout.contains("1 passed"), + "child {name} failed: {:?}\n{stdout}\n{stderr}", + output.status + ); +} + +/// `levels` one-element arrays around a nil, from marker bytes: the encoders recurse too. +fn nested(levels: usize) -> Vec { + let mut bytes = vec![0x91; levels]; + bytes.push(0xc0); + bytes +} + +/// Swaps the one sentinel string in `bytes` for `with`. +fn splice(bytes: Vec, with: &[u8]) -> Vec { + let at = bytes + .windows(SENTINEL.len()) + .position(|window| window == SENTINEL) + .expect("sentinel present"); + [&bytes[..at], with, &bytes[at + SENTINEL.len()..]].concat() +} + +fn map_with_sentinel(mut entries: Vec<(rmpv::Value, rmpv::Value)>) -> Vec { + entries.push(("x".into(), "DEEP".into())); + rmp_serde::to_vec(&rmpv::Value::Map(entries)).unwrap() +} + +fn hello_with(unknown: &[u8]) -> Vec { + splice( + map_with_sentinel(vec![ + ("schemaVersion".into(), "cultnet.hello.v0".into()), + ("runtimeId".into(), "rt".into()), + ("runtimeKind".into(), "test".into()), + ]), + unknown, + ) +} + +fn decode_message(bytes: Vec, stack: usize) -> Result { + *on_stack(stack, move || { + Box::new(decode_cultnet_message_from_slice(&bytes, CultNetWireContract::CultNetSchemaV0)) + }) +} + +#[test] +fn generic_message_with_deep_unknown_key_decodes_on_a_small_thread() { + in_child("generic_message_with_deep_unknown_key_decodes_on_a_small_thread", || { + let plain = decode_message(hello_with(&nested(0)), SMALL).unwrap(); + let deep = decode_message(hello_with(&nested(MAX_PAYLOAD_DEPTH - 2)), SMALL).unwrap(); + assert_eq!(deep, plain); + }); +} + +#[test] +fn a_decoded_message_that_fails_validation_is_refused() { + let bytes = splice( + map_with_sentinel(vec![ + ("schemaVersion".into(), "cultnet.hello.v0".into()), + ("runtimeId".into(), "".into()), + ("runtimeKind".into(), "test".into()), + ]), + &nested(0), + ); + let error = decode_message(bytes, BIG).unwrap_err(); + assert!(format!("{error:#}").contains("runtimeId"), "{error:#}"); +} + +#[test] +fn message_past_the_bound_is_refused_typed() { + in_child("message_past_the_bound_is_refused_typed", || { + let error = decode_message(hello_with(&nested(MAX_PAYLOAD_DEPTH + 1)), SMALL).unwrap_err(); + let refusal = error.downcast_ref::().expect("typed refusal"); + assert_eq!(refusal.limit, MAX_PAYLOAD_DEPTH); + }); +} + +fn raw_v1_bytes(header_unknown: Option<&[u8]>) -> Vec { + let mut header: Vec<(rmpv::Value, rmpv::Value)> = vec![ + ("schemaId".into(), "s".into()), + ("recordKey".into(), "k".into()), + ("storedAt".into(), "2026-10-16T00:00:00Z".into()), + ]; + if header_unknown.is_some() { + header.push(("x".into(), "DEEP".into())); + } + let message = rmpv::Value::Map(vec![ + ("schemaVersion".into(), "cultnet.snapshot_response_raw.v1".into()), + ("messageId".into(), "m".into()), + ("matched".into(), 1.into()), + ("asOf".into(), 7.into()), + ("headers".into(), rmpv::Value::Array(vec![rmpv::Value::Map(header)])), + ]); + let bytes = rmp_serde::to_vec(&message).unwrap(); + match header_unknown { + Some(nested) => splice(bytes, nested), + None => bytes, + } +} + +#[test] +fn raw_v1_rows_with_deep_unknown_key_decode_on_a_small_thread() { + in_child("raw_v1_rows_with_deep_unknown_key_decode_on_a_small_thread", || { + let plain = decode_message(raw_v1_bytes(None), SMALL).unwrap(); + // The message map, the headers array and the header map sit above the unknown key. + let deep = decode_message(raw_v1_bytes(Some(&nested(MAX_PAYLOAD_DEPTH - 3))), SMALL).unwrap(); + let CultNetMessage::SnapshotResponseRawV1 { headers: Some(rows), .. } = &deep else { + panic!("expected raw v1 rows"); + }; + assert_eq!(rows.len(), 1); + assert_eq!(rows[0].record_key, "k"); + assert_eq!(deep, plain); + }); +} + +fn wide_chain(levels: usize) -> Wide32 { + let mut chain: Option> = None; + for level in (0..levels).rev() { + let mut node = Wide32 { next: chain, ..empty_wide() }; + node.a0[0] = level as u64; + chain = Some(Box::new(node)); + } + *chain.unwrap() +} + +fn empty_wide() -> Wide32 { + Wide32 { + a0: [0; 32], + a1: [0; 32], + a2: [0; 32], + a3: [0; 32], + a4: [0; 32], + a5: [0; 32], + a6: [0; 32], + a7: [0; 32], + a8: [0; 32], + a9: [0; 32], + a10: [0; 32], + a11: [0; 32], + a12: [0; 32], + a13: [0; 32], + a14: [0; 32], + a15: [0; 32], + a16: [0; 32], + a17: [0; 32], + a18: [0; 32], + a19: [0; 32], + a20: [0; 32], + a21: [0; 32], + a22: [0; 32], + a23: [0; 32], + a24: [0; 32], + a25: [0; 32], + a26: [0; 32], + a27: [0; 32], + a28: [0; 32], + a29: [0; 32], + a30: [0; 32], + a31: [0; 32], + next: None, + } +} + +fn registry() -> CultNetDocumentRegistry { + let mut registry = CultNetDocumentRegistry::new(); + registry.register(CultNetDocumentBinding::for_entry::("cultnet.decode-door.wide".to_string())); + registry +} + +/// The wire bytes of a raw put of a `levels`-deep Wide32 document, built on a large thread. +fn raw_put_bytes(levels: usize) -> Vec { + on_stack(BIG, move || { + let document = WideDocument { chain: wide_chain(levels) }; + let message = registry() + .create_raw_document_put_message("m", "k", &document, CultNetDocumentPutOptions::default()) + .unwrap(); + encode_cultnet_message_to_vec(&message, CultNetWireContract::CultNetSchemaV0).unwrap() + }) +} + +/// Receives and applies on the small thread; the applied record is boxed there. +fn receive_and_apply(bytes: Vec) -> Result { + *on_stack(SMALL, move || { + Box::new((|| { + let message = decode_cultnet_message_from_slice(&bytes, CultNetWireContract::CultNetSchemaV0)?; + let mut cache = CultCache::new(); + cache.register_entry_type::()?; + registry().apply_raw_document_put_message::(&mut cache, &message) + })()) + }) +} + +#[test] +fn raw_put_of_a_wide32_chain_applies_on_a_small_thread() { + in_child("raw_put_of_a_wide32_chain_applies_on_a_small_thread", || { + let levels = MAX_PAYLOAD_DEPTH - 2; + let applied = receive_and_apply(raw_put_bytes(levels)).unwrap(); + on_stack(BIG, move || assert!(applied.chain == wide_chain(levels))); + let error = receive_and_apply(raw_put_bytes(levels + 1)).unwrap_err(); + assert!(error.downcast_ref::().is_some(), "typed refusal"); + }); +} + +#[test] +fn retired_dynamic_put_is_refused_typed() { + in_child("retired_dynamic_put_is_refused_typed", || { + let document = rmpv::Value::Map(vec![ + ("schemaId".into(), "s".into()), + ("recordKey".into(), "k".into()), + ("storedAt".into(), "2026-10-16T00:00:00Z".into()), + ("payload".into(), "DEEP".into()), + ]); + let bytes = splice( + rmp_serde::to_vec(&rmpv::Value::Map(vec![ + ("schemaVersion".into(), "cultnet.document_put.v0".into()), + ("messageId".into(), "m".into()), + ("document".into(), document), + ])) + .unwrap(), + &nested(253), + ); + let error = decode_message(bytes, SMALL).unwrap_err(); + // The refusal names the schema the sender spelled, shaped like one, and nothing else of it. + assert!(format!("{error:#}").contains("cultnet.document_put.v0"), "{error:#}"); + }); +} + +#[test] +fn identity_credential_with_deep_key_is_refused_on_a_small_thread() { + in_child("identity_credential_with_deep_key_is_refused_on_a_small_thread", || { + let temp = tempfile::tempdir().unwrap(); + let path = temp.path().join("identity.cc"); + enroll_service_identity_at::(&path).unwrap(); + let mut envelopes: rmpv::Value = rmp_serde::from_slice(&std::fs::read(path).unwrap()).unwrap(); + let rmpv::Value::Array(items) = &mut envelopes else { + panic!("credential is an array"); + }; + // The writer encodes an envelope positionally; the reader also takes the named map form, + // where an unknown key is skipped, so the test spells the envelope that way plus one key. + let rmpv::Value::Array(slots) = std::mem::replace(&mut items[0], rmpv::Value::Nil) else { + panic!("envelope is a positional array"); + }; + let mut named: Vec<(rmpv::Value, rmpv::Value)> = ["key", "type", "payload", "storedAt", "schemaId"] + .into_iter() + .map(rmpv::Value::from) + .zip(slots) + .collect(); + named.push(("zz".into(), "DEEP".into())); + items[0] = rmpv::Value::Map(named); + let credential = rmp_serde::to_vec(&envelopes).unwrap(); + for levels in [1000, 250] { + let bytes = splice(credential.clone(), &nested(levels)); + let refused = on_stack(SMALL, move || { + open_service_identity_credential_bytes::(&bytes).is_err() + }); + assert!(refused, "{levels} levels deep"); + } + }); +} + +type Entries = Vec<(rmpv::Value, rmpv::Value)>; + +fn pairs(entries: &[(&str, rmpv::Value)]) -> Entries { + entries.iter().map(|(key, value)| ((*key).into(), value.clone())).collect() +} + +fn encoded(entries: Entries) -> Vec { + rmp_serde::to_vec(&rmpv::Value::Map(entries)).unwrap() +} + +/// The refusal text of a message built from `entries`, as every receiver prints it. +fn refusal(entries: Entries) -> String { + format!("{:#}", decode_message(encoded(entries), BIG).unwrap_err()) +} + +fn wire_record(extra: &[(&str, rmpv::Value)]) -> rmpv::Value { + let mut entries = pairs(&[ + ("schemaId", "s".into()), + ("recordKey", "k".into()), + ("storedAt", "2026-10-16T00:00:00Z".into()), + ("payloadEncoding", "messagepack".into()), + ("payload", rmpv::Value::Binary(vec![0x90])), + ]); + entries.extend(pairs(extra)); + rmpv::Value::Map(entries) +} + +fn raw_record() -> CultNetRawDocumentRecord { + CultNetRawDocumentRecord { + schema_id: "s".into(), + record_key: "k".into(), + stored_at: "2026-10-16T00:00:00Z".into(), + payload_encoding: CultNetRawPayloadEncoding::Messagepack, + payload: vec![0x90], + source_runtime_id: None, + source_agent_id: None, + source_role: None, + tags: None, + } +} + +fn sv(name: &str) -> (&str, rmpv::Value) { + ("schemaVersion", rmpv::Value::from(name)) +} + +/// One valid message of every family the hand reader owns. +fn raw_family_messages() -> Vec { + vec![ + CultNetMessage::DocumentPutRaw { message_id: "m".into(), document: raw_record() }, + CultNetMessage::SnapshotResponseRaw { message_id: "m".into(), documents: vec![raw_record()] }, + CultNetMessage::ContentChunkRequest { + message_id: "m".into(), + chunk_hash: "h".into(), + record_key: "k".into(), + expected_size_bytes: 1, + }, + CultNetMessage::ContentChunkResponse { + message_id: "m".into(), + found: true, + chunk_hash: "h".into(), + size_bytes: 1, + payload: vec![1], + error: String::new(), + }, + CultNetMessage::Error { error: "e".into(), code: None, details: None }, + ] +} + +#[test] +fn every_raw_family_has_exactly_one_decoder() { + for message in raw_family_messages() { + let bytes = encode_cultnet_message_to_vec(&message, CultNetWireContract::CultNetSchemaV0).unwrap(); + // The derive cannot decode a raw-owned family: only the hand reader can. + assert!(cultcache_rs::decode_payload::(&bytes).is_err(), "{message:?}"); + let decoded = decode_cultnet_message_from_slice(&bytes, CultNetWireContract::CultNetSchemaV0).unwrap(); + assert_eq!(decoded, message); + } + // v1 belongs to the derive alone: it decodes the bytes, and the door returns the same message. + let v1 = CultNetMessage::SnapshotResponseRawV1 { + message_id: "m".into(), + matched: 1, + as_of: 7, + next: None, + headers: Some(vec![]), + documents: None, + edges: None, + shard_id: None, + shard_epoch: None, + shard_log_sequence: None, + }; + let bytes = encode_cultnet_message_to_vec(&v1, CultNetWireContract::CultNetSchemaV0).unwrap(); + assert_eq!(cultcache_rs::decode_payload::(&bytes).unwrap(), v1); + assert_eq!( + decode_cultnet_message_from_slice(&bytes, CultNetWireContract::CultNetSchemaV0).unwrap(), + v1 + ); +} + +#[test] +fn a_duplicated_key_is_refused_in_every_family() { + let bases: Vec<(&str, Vec<(&str, rmpv::Value)>)> = vec![ + ("put_raw", vec![sv("cultnet.document_put_raw.v0"), ("messageId", "m".into()), ("document", wire_record(&[]))]), + ( + "snapshot_raw", + vec![ + sv("cultnet.snapshot_response_raw.v0"), + ("messageId", "m".into()), + ("documents", rmpv::Value::Array(vec![wire_record(&[])])), + ], + ), + ( + "chunk_request", + vec![ + sv("cultmesh.content_chunk_request.v1"), + ("messageId", "m".into()), + ("chunkHash", "h".into()), + ("recordKey", "k".into()), + ("expectedSizeBytes", 1.into()), + ], + ), + ( + "chunk_response", + vec![ + sv("cultmesh.content_chunk_response.v1"), + ("messageId", "m".into()), + ("found", true.into()), + ("chunkHash", "h".into()), + ("sizeBytes", 1.into()), + ("payload", rmpv::Value::Binary(vec![1])), + ("error", "".into()), + ], + ), + ("error", vec![sv("cultnet.error.v0"), ("error", "e".into())]), + ( + "v1", + vec![ + sv("cultnet.snapshot_response_raw.v1"), + ("messageId", "m".into()), + ("matched", 1.into()), + ("asOf", 7.into()), + ("headers", rmpv::Value::Array(vec![])), + ], + ), + ("hello", vec![sv("cultnet.hello.v0"), ("runtimeId", "rt".into()), ("runtimeKind", "test".into())]), + ]; + for (label, base) in &bases { + decode_message(encoded(pairs(base)), BIG).unwrap_or_else(|error| panic!("{label} control: {error:#}")); + // Each key in turn spelled a second time, with a different value. + for index in 0..base.len() { + let mut doubled = base.clone(); + doubled.push((base[index].0, "second".into())); + let text = refusal(pairs(&doubled)); + assert!( + text.contains("twice") || text.contains("duplicate field"), + "{label} {}: {text}", + base[index].0 + ); + } + } + // A key spelled twice one level down: in a document record (both record lanes) and in error details. + let doubled_record = wire_record(&[("schemaId", "t".into())]); + for entries in [ + pairs(&[sv("cultnet.document_put_raw.v0"), ("messageId", "m".into()), ("document", doubled_record.clone())]), + pairs(&[ + sv("cultnet.snapshot_response_raw.v0"), + ("messageId", "m".into()), + ("documents", rmpv::Value::Array(vec![doubled_record.clone()])), + ]), + ] { + let text = refusal(entries); + assert!(text.contains("twice"), "{text}"); + } + let error_with = |details: Entries| { + pairs(&[ + sv("cultnet.error.v0"), + ("error", "e".into()), + ("code", "selection_invalid".into()), + ("details", rmpv::Value::Map(details)), + ]) + }; + decode_message(encoded(error_with(pairs(&[("field", "f".into())]))), BIG).unwrap(); + let text = refusal(error_with(pairs(&[("field", "f".into()), ("field", "g".into())]))); + assert!(text.contains("twice"), "{text}"); + // v1 rows come from the derive, which refuses a key spelled twice inside a row. + let v1_header = |extra: &[(&str, rmpv::Value)]| { + let mut header = pairs(&[ + ("schemaId", "s".into()), + ("recordKey", "k".into()), + ("storedAt", "2026-10-16T00:00:00Z".into()), + ]); + header.extend(pairs(extra)); + pairs(&[ + sv("cultnet.snapshot_response_raw.v1"), + ("messageId", "m".into()), + ("matched", 1.into()), + ("asOf", 7.into()), + ("headers", rmpv::Value::Array(vec![rmpv::Value::Map(header)])), + ]) + }; + decode_message(encoded(v1_header(&[])), BIG).unwrap(); + let text = refusal(v1_header(&[("recordKey", "second".into())])); + assert!(text.contains("duplicate field"), "{text}"); +} + +#[test] +fn the_schema_version_spelled_twice_is_refused_whichever_family_comes_first() { + for versions in [["cultnet.hello.v0", "cultnet.error.v0"], ["cultnet.error.v0", "cultnet.hello.v0"]] { + let entries = pairs(&[ + sv(versions[0]), + sv(versions[1]), + ("runtimeId", "rt".into()), + ("runtimeKind", "test".into()), + ("error", "e".into()), + ]); + decode_message(encoded(entries), BIG).unwrap_err(); + } +} + +#[test] +fn receive_errors_name_schema_never_values() { + let canary = "CANARY-5e1f"; + let hello = |extra: &[(&str, rmpv::Value)]| { + let mut entries = vec![sv("cultnet.hello.v0"), ("runtimeKind", "test".into())]; + entries.extend(extra.iter().cloned()); + pairs(&entries) + }; + let cases: Vec<(&str, Entries, &str)> = vec![ + ("unknown schema", pairs(&[sv("cultnet.bogus.v0"), ("messageId", "m".into())]), "cultnet.bogus.v0"), + ("missing runtimeId", hello(&[]), "runtimeId"), + ( + "mistyped bool", + hello(&[("runtimeId", "rt".into()), ("supportsSchemaCatalog", canary.into())]), + "cultnet.hello.v0", + ), + ( + "login without auth", + pairs(&[sv("cultnet.login.v0"), ("nonce", "n".into()), ("password", canary.into())]), + "auth", + ), + ( + "unrecognized error code", + pairs(&[sv("cultnet.error.v0"), ("error", "e".into()), ("code", canary.into())]), + "cultnet.error.v0", + ), + ( + "unknown payload encoding", + pairs(&[ + sv("cultnet.document_put_raw.v0"), + ("messageId", "m".into()), + ( + "document", + rmpv::Value::Map(pairs(&[ + ("schemaId", "s".into()), + ("recordKey", "k".into()), + ("storedAt", "2026-10-16T00:00:00Z".into()), + ("payloadEncoding", canary.into()), + ("payload", rmpv::Value::Binary(vec![0x90])), + ])), + ), + ]), + "payloadEncoding", + ), + ("schemaVersion that is no schema name", pairs(&[sv(canary), ("messageId", "m".into())]), "schemaVersion"), + ]; + for (label, entries, names) in cases { + let text = refusal(entries); + assert!(text.contains(names), "{label}: {text}"); + assert!(!text.contains("CANARY") && !text.contains("canary"), "{label}: {text}"); + } + // A message with no schemaVersion at all says so. + assert!(refusal(pairs(&[("messageId", "m".into())])).contains("no schemaVersion")); +} + +#[test] +fn a_networking_schema_descriptor_with_a_repeated_key_is_refused_and_a_bad_kind_is_not_quoted() { + let canary = "CANARY-8c2d"; + let descriptor = |extra: &[(&str, rmpv::Value)]| { + let mut entries = pairs(&[("schemaId", "s".into()), ("kind", "wire_message".into()), ("contentHash", "h".into())]); + entries.extend(pairs(extra)); + rmpv::Value::Map(entries) + }; + let response = |descriptor: rmpv::Value| { + let union = rmpv::Value::Array(vec![ + 8.into(), + rmpv::Value::Array(vec!["m".into(), rmpv::Value::Array(vec![descriptor])]), + ]); + rmp_serde::to_vec(&union).unwrap() + }; + let decode = |bytes: Vec| { + on_stack(BIG, move || { + decode_cultnet_message_from_slice(&bytes, CultNetWireContract::GameCultNetworkingV0) + .map_err(|error| format!("{error:#}")) + }) + }; + decode(response(descriptor(&[]))).expect("the control decodes"); + let text = decode(response(descriptor(&[("schemaId", "t".into())]))).unwrap_err(); + assert!(text.contains("twice"), "{text}"); + let bad_kind = rmpv::Value::Map(pairs(&[("schemaId", "s".into()), ("kind", canary.into()), ("contentHash", "h".into())])); + let text = decode(response(bad_kind)).unwrap_err(); + assert!(text.contains("Kind") && !text.contains("CANARY"), "{text}"); +} + +#[test] +fn a_networking_catalog_request_with_a_bad_kind_element_is_refused_without_quoting_it() { + let union = rmpv::Value::Array(vec![ + 7.into(), + rmpv::Value::Array(vec![ + "m".into(), + false.into(), + rmpv::Value::Nil, + rmpv::Value::Array(vec!["CANARY-s2x".into()]), + ]), + ]); + let bytes = rmp_serde::to_vec(&union).unwrap(); + let text = on_stack(BIG, move || { + decode_cultnet_message_from_slice(&bytes, CultNetWireContract::GameCultNetworkingV0) + .map_err(|error| format!("{error:#}")) + }) + .unwrap_err(); + assert!(text.contains("Kinds") && !text.contains("CANARY"), "{text}"); +} + +#[test] +fn a_schema_version_that_is_not_shaped_like_a_schema_name_is_described_by_length() { + let long = format!("cultnet.{}.v0", "a".repeat(100)); + for version in [ + "CANARY-5e1f", + "1canary.v0", + "cultnet.CANARY.v0", + "cultnet..v0", + "canary", + "cultnet.canary-x.v0", + long.as_str(), + ] { + let text = refusal(pairs(&[sv(version), ("messageId", "m".into())])); + assert!(text.contains(&format!("is not a schema name ({} bytes)", version.len())), "{version}: {text}"); + assert!(!text.contains(version), "{version}: {text}"); + } + // Shaped like a schema name, it is named (the sender spelled a schema, not data). + let text = refusal(pairs(&[sv("cultnet.x_y9.v10"), ("messageId", "m".into())])); + assert!(text.contains("cultnet.x_y9.v10 refused"), "{text}"); +} diff --git a/packages/cultnet-ts/CHANGELOG.md b/packages/cultnet-ts/CHANGELOG.md index e05c9b10..116be002 100644 --- a/packages/cultnet-ts/CHANGELOG.md +++ b/packages/cultnet-ts/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +All notable changes to `cultnet-ts` are recorded here, following +[Keep a Changelog](https://keepachangelog.com/en/1.1.0/). + ## Unreleased - Needs the cultcache-ts release that ships with this change (its manifest range moves with that release): the Idunn runtime authority reader calls `readSingleFileStore`, which 0.14.x does not export. An absent authority file is now a plain `Error` without a code. + +## [0.3.0] + +### Added +- `cultnet-ts/content`: the CultMesh CDN content plane. Manifest and chunk + types, canonical manifest encode and decode, `packContent`, SHA-256 helpers, + and the chunk and artifact record keys, with wire parity to the C# reference. + +### Changed +- Depends on `@gamecult/cultcache-ts` `^0.14.1`, which exports + `checkPayloadDepth`. diff --git a/packages/cultnet-ts/README.md b/packages/cultnet-ts/README.md index 75e77b88..ca0db88d 100644 --- a/packages/cultnet-ts/README.md +++ b/packages/cultnet-ts/README.md @@ -126,6 +126,34 @@ Current wire-contract options: So the transport can stay developer-friendly while the binary stops freelancing away from the C# lineage. +## Content + +`cultnet-ts/content` owns the TypeScript shapes of the CultMesh CDN +(`src/content.ts`, the twin of `CultMeshCdn.cs`): the artifact manifest and chunk +reference, their MessagePack form, hash normalization, both record-key grammars, +SHA-256 hashing through WebCrypto, and `packContent`. It is browser-safe: it +imports no `node:` module, so a browser bundle can take it. + +- A manifest names its chunks by hash and carries no endpoint. Where the bytes + are fetched from is the caller's to resolve through CultMesh. +- Metadata is an ordered list of `[key, value]` entries, never an object: a JS + object reorders integer-like keys, and the entry order is the wire bytes. + Duplicate keys, integers a JS number cannot hold exactly, and payloads nested + past the shared depth limit are refused. +- The decoder reads what MessagePack-CSharp reads and refuses what it refuses: + nil in a string, tag or metadata slot is `null` and is written back as nil, + a missing trailing slot takes the reference's default, extra slots and trailing + bytes are skipped, a float-encoded integer is refused, and invalid UTF-8 + decodes to U+FFFD. A nil `chunks` is refused, as the reference's + `ValidateManifest` refuses it. `content-acceptance-vectors.json` is the + reference's own verdict on each of those shapes. +- Bytes and keys are held to files the C# reference writes + (`contracts/cultmesh/content-vectors.cs-written.json`, + `cdn-record-key-vectors.json`, `content-acceptance-vectors.json`) and to `content-vectors.rs-written.json`. + The TypeScript-written `content-vectors.ts-written.json` is judged by the C# + reference. Regenerate it with `npm run build --workspace packages/cultnet-ts` + and `node scripts/write-cultmesh-content-vectors.mjs`; never edit it by hand. + ## Local Fast Lane For direct-pipe neighbors that already share the same CultCache formatter diff --git a/packages/cultnet-ts/package.json b/packages/cultnet-ts/package.json index 9147d4ea..1fc6abed 100644 --- a/packages/cultnet-ts/package.json +++ b/packages/cultnet-ts/package.json @@ -1,6 +1,6 @@ { "name": "cultnet-ts", - "version": "0.2.0", + "version": "0.3.0", "description": "CultNet-style typed direct-pipe messaging and state replication for TypeScript runtimes.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -29,6 +29,11 @@ "types": "./dist/cultmesh-authority.d.ts", "require": "./dist/cultmesh-authority.js", "default": "./dist/cultmesh-authority.js" + }, + "./content": { + "types": "./dist/content.d.ts", + "require": "./dist/content.js", + "default": "./dist/content.js" } }, "files": [ @@ -68,7 +73,7 @@ "dependencies": { "@msgpack/msgpack": "^3.1.3", "ajv": "^8.17.1", - "@gamecult/cultcache-ts": "^0.14.0" + "@gamecult/cultcache-ts": "^0.14.1" }, "devDependencies": { "@types/node": "^24.0.0", diff --git a/packages/cultnet-ts/src/content.ts b/packages/cultnet-ts/src/content.ts new file mode 100644 index 00000000..6ff1e107 --- /dev/null +++ b/packages/cultnet-ts/src/content.ts @@ -0,0 +1,317 @@ +// The one TypeScript owner of the CultMesh CDN shapes: the manifest and chunk reference, their MessagePack form, hash +// normalization, both record-key grammars, SHA-256 hashing and packing. The C# reference is +// `src/GameCult.Mesh/CultMeshCdn.cs`; `contracts/cultmesh/content-vectors.*.json` and `cdn-record-key-vectors.json` pin +// the bytes and the keys. +// +// Browser-safe by construction: `crypto.subtle`, `TextEncoder`, `Uint8Array` and the codecs this package already ships. +// No `node:` import. A manifest names its chunks by hash and carries no address: where bytes are fetched from is the +// caller's to resolve through CultMesh. + +import { encode } from "@msgpack/msgpack"; +import { checkPayloadDepth } from "@gamecult/cultcache-ts/document"; +import { isNullOrWhiteSpaceCSharp, trimCSharp } from "./cultmesh-authority"; +import { wellFormed } from "./utf8-bound"; + +/** C#'s `string.IsNullOrWhiteSpace`, the one blank rule every consumer of the content shapes shares. */ +export { isNullOrWhiteSpaceCSharp }; + +export const CULTMESH_CDN_MANIFEST_SCHEMA = "gamecult.mesh.cdn_artifact_manifest.v1"; +export const DEFAULT_CHUNK_SIZE_BYTES = 4 * 1024 * 1024; +export const EMPTY_SHA256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; + +// The reference's value model: a string, the tag array and the metadata map are reference types there, so MessagePack +// nil reads as null and writes back as nil. `chunks` is the exception: `ValidateManifest` refuses a nil one. +export interface CultMeshCdnChunkRef { + readonly chunkHash: string | null; + readonly offset: number; + readonly sizeBytes: number; + readonly recordKey: string | null; +} + +// Metadata is ordered entries, never an object: a JS object reorders integer-like keys, and the entry order is wire bytes. +export interface CultMeshCdnArtifactManifest { + readonly artifactId: string | null; + readonly kind: string | null; + readonly version: string | null; + readonly contentHash: string | null; + readonly sizeBytes: number; + readonly mimeType: string | null; + readonly createdAtUtc: string | null; + readonly chunks: readonly CultMeshCdnChunkRef[]; + readonly tags: readonly (string | null)[] | null; + readonly metadata: readonly (readonly [string, string | null])[] | null; +} + +export interface CultMeshCdnPackOptions { + readonly kind?: string; + readonly version?: string; + readonly mimeType?: string; + readonly createdAtUtc?: string; + readonly chunkSizeBytes?: number; + readonly tags?: readonly string[]; + readonly metadata?: readonly (readonly [string, string])[]; +} + +export interface CultMeshCdnPackedChunk { + readonly chunkHash: string; + readonly payload: Uint8Array; +} + +// ---- hashes and keys ------------------------------------------------------------------------------------------------- + +// `ToLowerInvariant`: each character on its own, so no context rule applies (a final sigma stays `σ`), and a character +// whose lower case is not a single character (`İ`) stays as it is. +const lowerInvariant = (text: string): string => + Array.from(text, character => { const lower = character.toLowerCase(); return Array.from(lower).length === 1 ? lower : character; }).join(""); + +/** `CultMeshCdn.NormalizeHash`: a case-insensitive `sha256:` prefix is stripped before the trim, and nothing checks for hex. */ +export function normalizeHash(hash: string | null | undefined, parameterName = "hash"): string { + if (isNullOrWhiteSpaceCSharp(hash)) throw new Error(`Hash must be non-empty. (Parameter '${parameterName}')`); + return lowerInvariant(trimCSharp(hash!.slice(0, 7).toLowerCase() === "sha256:" ? hash!.slice(7) : hash!)); +} + +/** The hash a file name or a fetch may rest on: `normalizeHash`, then exactly 64 lowercase hexadecimal digits. */ +export function parseSha256Hex(hash: string | null | undefined, parameterName = "hash"): string { + const hex = normalizeHash(hash, parameterName); + if (!/^[0-9a-f]{64}$/.test(hex)) throw new Error(`Hash must be 64 hexadecimal digits. (Parameter '${parameterName}')`); + return hex; +} + +export async function sha256Hex(bytes: Uint8Array): Promise { + const subtle = globalThis.crypto?.subtle; + if (!subtle) throw new Error("WebCrypto SHA-256 is unavailable."); + return Array.from(new Uint8Array(await subtle.digest("SHA-256", bytes as BufferSource)), byte => byte.toString(16).padStart(2, "0")).join(""); +} + +export const chunkRecordKey = (chunkHash: string | null | undefined): string => `mesh:cdn:chunk:${normalizeHash(chunkHash, "chunkHash")}`; + +// `CultMeshCdn.StableToken`, unit by unit: a letter or decimal digit, `-`, `_` and `.` survive, anything else (a lone +// surrogate included) becomes `-`, and a token that is empty after the trim falls back to the hash of the original. +async function stableToken(value: string): Promise { + const token = lowerInvariant(trimCSharp(value)).split("").map(unit => /[\p{L}\p{Nd}\-_.]/u.test(unit) ? unit : "-").join("").replace(/^-+|-+$/g, ""); + return token || sha256Hex(new TextEncoder().encode(value)); +} + +export async function artifactRecordKey(artifactId: string | null, version: string | null, contentHash: string | null): Promise { + if (isNullOrWhiteSpaceCSharp(artifactId)) throw new Error("Value must be non-empty. (Parameter 'artifactId')"); + const versioned = isNullOrWhiteSpaceCSharp(version) ? "unversioned" : await stableToken(version!); + return `mesh:cdn:artifact:${await stableToken(artifactId!)}:${versioned}:${normalizeHash(contentHash, "contentHash")}`; +} + +// ---- validation ------------------------------------------------------------------------------------------------------ + +const INT32_MAX = 2 ** 31 - 1; + +/** + * `ValidateManifestShape`, in its order and with its messages, then the metadata keys a dictionary could not hold twice. + * Sizes are the reference's types: the manifest total and every offset a `long` (held here below 2^53, the largest integer a + * number keeps exact) and a chunk size an `int`. A fraction, NaN, Infinity or a size past those bounds cannot exist on the wire + * and is refused here, once, whether it was decoded or hand-built. + */ +export function validateManifest(manifest: CultMeshCdnArtifactManifest): void { + if (manifest.sizeBytes < 0) throw new Error("CDN artifact manifest has a negative size."); + if (!Number.isSafeInteger(manifest.sizeBytes)) throw new Error("CDN artifact manifest size is not a whole number below 2^53."); + let expectedOffset = 0; + for (const reference of [...manifest.chunks].sort((a, b) => a.offset - b.offset)) { + if (reference.offset !== expectedOffset) throw new Error("CDN artifact chunks are not contiguous."); + if (reference.sizeBytes < 0) throw new Error("CDN artifact chunk has a negative size."); + if (!Number.isSafeInteger(reference.sizeBytes)) throw new Error("CDN artifact chunk size is not a whole number below 2^53."); + if (reference.sizeBytes > INT32_MAX) throw new Error("CDN artifact chunk size is larger than 2147483647."); + expectedOffset += reference.sizeBytes; + } + if (expectedOffset !== manifest.sizeBytes) throw new Error("CDN artifact chunk sizes do not sum to the manifest size."); + const metadata = manifest.metadata ?? []; + if (new Set(metadata.map(([key]) => key)).size !== metadata.length) { + throw new Error("CDN artifact manifest metadata has a duplicate key."); + } +} + +// ---- MessagePack ----------------------------------------------------------------------------------------------------- + +const concat = (parts: readonly Uint8Array[]): Uint8Array => { + const bytes = new Uint8Array(parts.reduce((sum, part) => sum + part.length, 0)); + parts.reduce((offset, part) => (bytes.set(part, offset), offset + part.length), 0); + return bytes; +}; + +const mapHeader = (count: number): Uint8Array => + count < 16 ? Uint8Array.of(0x80 | count) + : count < 0x10000 ? Uint8Array.of(0xde, count >> 8, count & 0xff) + : Uint8Array.of(0xdf, count >>> 24, (count >> 16) & 0xff, (count >> 8) & 0xff, count & 0xff); + +/** A string slot is written as C# writes it: a lone surrogate has no UTF-8 encoding and becomes U+FFFD at every length. */ +const text = (field: T): T => (typeof field === "string" ? wellFormed(field) : field) as T; + +/** The positional ten-array of the C# `[MessagePackObject]`: chunk references are four-arrays, metadata a map in entry order. */ +export function encodeManifest(manifest: CultMeshCdnArtifactManifest): Uint8Array { + const { artifactId, kind, version, contentHash, sizeBytes, mimeType, createdAtUtc, chunks, tags, metadata } = manifest; + return concat([ + Uint8Array.of(0x9a), + ...[artifactId, kind, version, contentHash, sizeBytes, mimeType, createdAtUtc].map(field => encode(text(field))), + encode(chunks.map(c => [text(c.chunkHash), c.offset, c.sizeBytes, text(c.recordKey)])), + encode(tags === null ? null : tags.map(text)), + ...(metadata === null ? [encode(null)] : [mapHeader(metadata.length), ...metadata.flatMap(([key, value]) => [encode(text(key)), encode(text(value))])]), + ]); +} + +const wrongType = (field: string): never => { throw new Error(`CDN artifact manifest field '${field}' has the wrong type.`); }; + +// MessagePack-CSharp's reader for the manifest, family by family: the integer rule must see the wire family (a float +// encoding of 0 is not an integer there), a string is `str` or nil, an array header is an array, and the invalid UTF-8 +// of a string decodes to U+FFFD as .NET decodes it. `ignoreBOM` keeps a leading U+FEFF, as `Encoding.GetString` does. +const utf8 = new TextDecoder("utf-8", { ignoreBOM: true }); +const SAFE = BigInt(Number.MAX_SAFE_INTEGER); +// Payload size after the code byte, or the width of the length that precedes a variable payload. +const FIXED: Readonly> = { 0xca: 4, 0xcb: 8, 0xcc: 1, 0xcd: 2, 0xce: 4, 0xcf: 8, 0xd0: 1, 0xd1: 2, 0xd2: 4, 0xd3: 8, 0xd4: 2, 0xd5: 3, 0xd6: 5, 0xd7: 9, 0xd8: 17 }; +const BYTES: Readonly> = { 0xc4: 1, 0xc5: 2, 0xc6: 4, 0xd9: 1, 0xda: 2, 0xdb: 4 }; +const EXT: Readonly> = { 0xc7: 1, 0xc8: 2, 0xc9: 4 }; +const ARRAY: Readonly> = { 0xdc: 2, 0xdd: 4 }; +const MAP: Readonly> = { 0xde: 2, 0xdf: 4 }; + +class Reader { + position = 0; + private readonly view: DataView; + constructor(private readonly bytes: Uint8Array) { + this.view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); + } + + private take(count: number): number { + const start = this.position; + if (count > this.bytes.length - start) throw new Error("CDN artifact manifest ends before its last field."); + this.position += count; + return start; + } + + private code(): number { return this.bytes[this.take(1)]!; } + + private width(size: number): number { + const at = this.take(size); + return size === 1 ? this.view.getUint8(at) : size === 2 ? this.view.getUint16(at) : this.view.getUint32(at); + } + + nil(): boolean { + if (this.bytes[this.position] !== 0xc0) return false; + this.position += 1; + return true; + } + + array(field: string): number { + const code = this.code(); + return code >= 0x90 && code <= 0x9f ? code & 0x0f : ARRAY[code] ? this.width(ARRAY[code]!) : wrongType(field); + } + + map(field: string): number { + const code = this.code(); + return code >= 0x80 && code <= 0x8f ? code & 0x0f : MAP[code] ? this.width(MAP[code]!) : wrongType(field); + } + + string(field: string): string | null { + if (this.nil()) return null; + const code = this.code(); + const length = code >= 0xa0 && code <= 0xbf ? code & 0x1f : code === 0xd9 || code === 0xda || code === 0xdb ? this.width(BYTES[code]!) : wrongType(field); + const start = this.take(length); + return utf8.decode(this.bytes.subarray(start, start + length)); + } + + // Any integer family; a 64-bit value a JS number cannot hold exactly is refused, never silently rounded. + integer(field: string): number { + const code = this.code(); + if (code <= 0x7f) return code; + if (code >= 0xe0) return code - 0x100; + const at = (code >= 0xcc && code <= 0xd3) ? this.take(FIXED[code]!) : wrongType(field); + const big = code === 0xcf ? this.view.getBigUint64(at) : code === 0xd3 ? this.view.getBigInt64(at) : undefined; + if (big !== undefined) return big >= -SAFE && big <= SAFE ? Number(big) : wrongType(field); + return code === 0xcc ? this.view.getUint8(at) : code === 0xcd ? this.view.getUint16(at) : code === 0xce ? this.view.getUint32(at) + : code === 0xd0 ? this.view.getInt8(at) : code === 0xd1 ? this.view.getInt16(at) : this.view.getInt32(at); + } + + // `MessagePackReader.Skip`: one value of any family, nested containers included (the depth rule has already bounded them). + skip(): void { + for (let pending = 1; pending > 0; pending -= 1) { + const code = this.code(); + if (code <= 0x7f || code >= 0xe0 || code === 0xc0 || code === 0xc2 || code === 0xc3) continue; + if (code <= 0x8f) pending += 2 * (code & 0x0f); + else if (code <= 0x9f) pending += code & 0x0f; + else if (code <= 0xbf) this.take(code & 0x1f); + else if (FIXED[code]) this.take(FIXED[code]!); + else if (BYTES[code]) this.take(this.width(BYTES[code]!)); + else if (EXT[code]) this.take(this.width(EXT[code]!) + 1); + else if (ARRAY[code]) pending += this.width(ARRAY[code]!); + else if (MAP[code]) pending += 2 * this.width(MAP[code]!); + else wrongType("manifest"); + } + } +} + +/** The reference's reader then `validateManifest`: depth first, then the positional array as MessagePack-CSharp reads it. */ +export function decodeManifest(bytes: Uint8Array): CultMeshCdnArtifactManifest { + checkPayloadDepth(bytes, "CDN artifact manifest"); + const reader = new Reader(bytes); + // A slot the array does not reach keeps the property initialiser; a slot past the tenth is skipped. Trailing bytes are not read. + const count = reader.array("manifest"); + let index = 0; + const slot = (read: () => T, initial: T): T => index++ < count ? read() : initial; + const manifest: CultMeshCdnArtifactManifest = { + artifactId: slot(() => reader.string("artifactId"), ""), + kind: slot(() => reader.string("kind"), "asset"), + version: slot(() => reader.string("version"), ""), + contentHash: slot(() => reader.string("contentHash"), ""), + sizeBytes: slot(() => reader.integer("sizeBytes"), 0), + mimeType: slot(() => reader.string("mimeType"), "application/octet-stream"), + createdAtUtc: slot(() => reader.string("createdAtUtc"), ""), + chunks: slot(() => Array.from({ length: reader.array("chunks") }, () => readChunkRef(reader)), []), + tags: slot(() => reader.nil() ? null : Array.from({ length: reader.array("tags") }, () => reader.string("tags")), []), + metadata: slot(() => reader.nil() ? null : Array.from({ length: reader.map("metadata") }, () => + [reader.string("metadata") ?? wrongType("metadata"), reader.string("metadata")] as const), []), + }; + for (; index < count; index += 1) reader.skip(); + validateManifest(manifest); + return manifest; +} + +function readChunkRef(reader: Reader): CultMeshCdnChunkRef { + const count = reader.array("chunks"); + let index = 0; + const slot = (read: () => T, initial: T): T => index++ < count ? read() : initial; + const chunk = { + chunkHash: slot(() => reader.string("chunks.chunkHash"), ""), + offset: slot(() => reader.integer("chunks.offset"), 0), + // The reference's `int`. + sizeBytes: slot(() => { const size = reader.integer("chunks.sizeBytes"); return size >= -(2 ** 31) && size < 2 ** 31 ? size : wrongType("chunks.sizeBytes"); }, 0), + recordKey: slot(() => reader.string("chunks.recordKey"), ""), + }; + for (; index < count; index += 1) reader.skip(); + return chunk; +} + +// ---- packing --------------------------------------------------------------------------------------------------------- + +/** `CultMeshCdn.PackArtifact`: content-addressed chunks and the manifest that names them. An empty body is one empty chunk. */ +export async function packContent( + artifactId: string, + bytes: Uint8Array, + options: CultMeshCdnPackOptions = {}, +): Promise<{ manifest: CultMeshCdnArtifactManifest; chunks: CultMeshCdnPackedChunk[] }> { + if (isNullOrWhiteSpaceCSharp(artifactId)) throw new Error("Artifact id must be non-empty. (Parameter 'artifactId')"); + const size = options.chunkSizeBytes ?? DEFAULT_CHUNK_SIZE_BYTES; + if (!Number.isInteger(size) || size < 1 || size > INT32_MAX) throw new Error("ChunkSizeBytes must be between 1 and 2147483647."); + const offsets = bytes.length === 0 ? [0] : Array.from({ length: Math.ceil(bytes.length / size) }, (_, index) => index * size); + const chunks = await Promise.all(offsets.map(async offset => { + const payload = bytes.slice(offset, offset + size); + return { chunkHash: await sha256Hex(payload), payload }; + })); + const manifest: CultMeshCdnArtifactManifest = { + artifactId, + kind: isNullOrWhiteSpaceCSharp(options.kind) ? "asset" : options.kind!, + version: options.version ?? "", + contentHash: await sha256Hex(bytes), + sizeBytes: bytes.length, + mimeType: isNullOrWhiteSpaceCSharp(options.mimeType) ? "application/octet-stream" : options.mimeType!, + createdAtUtc: options.createdAtUtc ?? `${new Date().toISOString().slice(0, 23)}0000+00:00`, + chunks: chunks.map(({ chunkHash, payload }, index) => ({ chunkHash, offset: offsets[index]!, sizeBytes: payload.length, recordKey: chunkRecordKey(chunkHash) })), + tags: options.tags ?? [], + metadata: options.metadata ?? [], + }; + validateManifest(manifest); + return { manifest, chunks }; +} diff --git a/packages/cultnet-ts/src/utf8-bound.ts b/packages/cultnet-ts/src/utf8-bound.ts index d21ee849..008c1657 100644 --- a/packages/cultnet-ts/src/utf8-bound.ts +++ b/packages/cultnet-ts/src/utf8-bound.ts @@ -8,13 +8,18 @@ * A value is therefore in bounds exactly when this returns it unchanged. */ export function truncateUtf8Bytes(value: string, maxBytes: number): string { - const wellFormed = (value as string & { toWellFormed(): string }).toWellFormed(); + const text = wellFormed(value); let bytes = 0; let end = 0; - for (const char of wellFormed) { + for (const char of text) { bytes += Buffer.byteLength(char, "utf8"); if (bytes > maxBytes) break; end += char.length; } - return wellFormed.slice(0, end); + return text.slice(0, end); +} + +/** `value` with every lone surrogate replaced by U+FFFD: the one spelling every TypeScript writer puts on a wire. */ +export function wellFormed(value: string): string { + return (value as string & { toWellFormed(): string }).toWellFormed(); } diff --git a/packages/cultnet-ts/test/content.test.ts b/packages/cultnet-ts/test/content.test.ts new file mode 100644 index 00000000..3ff58d48 --- /dev/null +++ b/packages/cultnet-ts/test/content.test.ts @@ -0,0 +1,448 @@ +// The shared CultMesh CDN shapes, pinned rule by rule. +// +// Wire bytes and record keys are judged against files the C# reference and Rust write +// (`contracts/cultmesh/content-vectors.cs-written.json`, `.rs-written.json`, `cdn-record-key-vectors.json`); a fixture +// authored on this side alone would only agree with itself. The TypeScript-written file is judged here from its own +// declared inputs and by the C# reference in `CultMeshContentVectorTests`. + +import test from "node:test"; +import assert from "node:assert/strict"; +import { readFileSync } from "node:fs"; +import { join } from "node:path"; +import { build } from "esbuild"; +import { encode } from "@msgpack/msgpack"; +import { CultCachePayloadDepthError } from "@gamecult/cultcache-ts/document"; + +import { + CULTMESH_CDN_MANIFEST_SCHEMA, + DEFAULT_CHUNK_SIZE_BYTES, + EMPTY_SHA256, + artifactRecordKey, + chunkRecordKey, + decodeManifest, + encodeManifest, + normalizeHash, + packContent, + parseSha256Hex, + sha256Hex, + validateManifest, + type CultMeshCdnArtifactManifest, +} from "../src/content"; + +const CONTRACTS = join(__dirname, "..", "..", "..", "..", "contracts", "cultmesh"); +const vectors = (name: string): { vectors: { label: string; kind: string; messagePackBase64: string }[] } => + JSON.parse(readFileSync(join(CONTRACTS, name), "utf8")); +const manifestVectors = (name: string) => vectors(name).vectors.filter(v => v.kind === "manifest") + .map(v => ({ label: v.label, bytes: new Uint8Array(Buffer.from(v.messagePackBase64, "base64")) })); +const csManifest = (label: string) => manifestVectors("content-vectors.cs-written.json").find(v => v.label === label)!.bytes; + +// The C# fixture: byte i is i % 251, 262,144-byte chunks, and the options its test passes. +const FIXTURE_BODY = Uint8Array.from({ length: 1_315_551 }, (_, i) => i % 251); +const FIXTURE_OPTIONS = { + chunkSizeBytes: 262_144, + version: "1", + mimeType: "application/x-cultnet-vector", + createdAtUtc: "2026-09-22T00:00:00.0000000+00:00", +}; +const FIXTURE_HASH = "f4ae2a7c95f4d966058f75c13185aa0ab6a91fc5afad886296ef2aee755a2af1"; +const HASH = "a".repeat(64); + +const manifestOf = (over: Partial = {}): CultMeshCdnArtifactManifest => ({ + artifactId: "id", kind: "asset", version: "1", contentHash: HASH, sizeBytes: 4, mimeType: "text/plain", createdAtUtc: "t", + chunks: [{ chunkHash: HASH, offset: 0, sizeBytes: 4, recordKey: `mesh:cdn:chunk:${HASH}` }], tags: ["t"], metadata: [["k", "v"]], + ...over, +}); +// Wire bytes of a ten-array with any field replaced, metadata as a plain object (no integer-like keys). +const fieldsOf = (over: Record = {}) => { + const m = manifestOf(); + const fields: unknown[] = [m.artifactId, m.kind, m.version, m.contentHash, m.sizeBytes, m.mimeType, m.createdAtUtc, + m.chunks.map(c => [c.chunkHash, c.offset, c.sizeBytes, c.recordKey]), m.tags, { k: "v" }]; + for (const [index, value] of Object.entries(over)) fields[Number(index)] = value; + return fields; +}; +const wire = (over: Record = {}) => encode(fieldsOf(over), { useBigInt64: true, maxDepth: 1000 }); +const refusal = (bytes: Uint8Array) => assert.throws(() => decodeManifest(bytes), /./); + +test("each C# manifest vector decodes and re-encodes byte-identically", () => { + const vs = manifestVectors("content-vectors.cs-written.json"); + assert.deepEqual(vs.map(v => v.label), ["manifest", "manifest_out_of_order", "manifest_metadata_order", "manifest_empty_body"]); + for (const { label, bytes } of vs) assert.deepEqual(encodeManifest(decodeManifest(bytes)), bytes, label); +}); + +test("the Rust-written manifests decode and re-encode byte-identically", () => { + const vs = manifestVectors("content-vectors.rs-written.json"); + assert.ok(vs.length >= 4); + for (const { label, bytes } of vs) assert.deepEqual(encodeManifest(decodeManifest(bytes)), bytes, label); +}); + +test("packContent of the C# fixture body and options equals the cs-written manifest, and of an empty body manifest_empty_body", async () => { + const { manifest, chunks } = await packContent("eureka/content-vector", FIXTURE_BODY, FIXTURE_OPTIONS); + assert.deepEqual(encodeManifest(manifest), csManifest("manifest")); + assert.equal(manifest.contentHash, FIXTURE_HASH); + assert.equal(chunks.length, 6); + const empty = await packContent("eureka/content-vector", new Uint8Array(0), FIXTURE_OPTIONS); + assert.deepEqual(encodeManifest(empty.manifest), csManifest("manifest_empty_body")); + assert.equal(empty.chunks.length, 1, "an empty artifact packs one chunk"); + assert.equal(empty.chunks[0]!.payload.length, 0); + assert.equal(empty.chunks[0]!.chunkHash, EMPTY_SHA256); +}); + +test("the packed chunks are copies that rejoin to the body, each named by the hash of its bytes", async () => { + const body = Uint8Array.from({ length: 10 }, (_, i) => i); + const { manifest, chunks } = await packContent("x", body, { chunkSizeBytes: 4 }); + body.fill(9); + assert.deepEqual(chunks.map(c => c.payload.length), [4, 4, 2]); + assert.deepEqual(Array.from(chunks.flatMap(c => Array.from(c.payload))), [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); + for (const [i, c] of chunks.entries()) { + assert.equal(c.chunkHash, await sha256Hex(c.payload)); + assert.deepEqual(manifest.chunks[i], { chunkHash: c.chunkHash, offset: i * 4, sizeBytes: c.payload.length, recordKey: chunkRecordKey(c.chunkHash) }); + } + const twins = await packContent("x", new Uint8Array(8), { chunkSizeBytes: 4 }); + assert.equal(twins.manifest.chunks[0]!.chunkHash, twins.manifest.chunks[1]!.chunkHash, "equal chunks share a hash"); +}); + +test("pack defaults: kind asset, mime octet-stream, empty version, tags and metadata", async () => { + const bare = (await packContent("x", new Uint8Array(3))).manifest; + assert.deepEqual([bare.kind, bare.mimeType, bare.version, bare.tags, bare.metadata], ["asset", "application/octet-stream", "", [], []]); + const blank = (await packContent("x", new Uint8Array(3), { kind: " ", mimeType: "" })).manifest; + assert.deepEqual([blank.kind, blank.mimeType], ["asset", "application/octet-stream"]); + const given = (await packContent("x", new Uint8Array(3), { kind: "build", mimeType: "text/plain", version: "2", tags: ["a"], metadata: [["k", "v"]] })).manifest; + assert.deepEqual([given.kind, given.mimeType, given.version, given.tags, given.metadata], ["build", "text/plain", "2", ["a"], [["k", "v"]]]); + assert.equal(given.artifactId, "x"); +}); + +test("packContent refuses a blank artifact id, a chunk size outside 1..2147483647 and duplicate metadata keys", async () => { + for (const id of ["", " ", "\u0085\u00a0"]) await assert.rejects(packContent(id, new Uint8Array(1)), /Artifact id must be non-empty/); + for (const chunkSizeBytes of [0, -1, 2 ** 31, 1.5, NaN]) await assert.rejects(packContent("x", new Uint8Array(1), { chunkSizeBytes }), /ChunkSizeBytes/); + await packContent("x", new Uint8Array(1), { chunkSizeBytes: 2 ** 31 - 1 }); + await assert.rejects(packContent("x", new Uint8Array(1), { metadata: [["a", "1"], ["a", "2"]] }), /duplicate key/); +}); + +test("default createdAtUtc matches the C# round-trip 'O' format", async () => { + const { manifest } = await packContent("x", new Uint8Array(1)); + assert.match(manifest.createdAtUtc!, /^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d\.\d{7}\+00:00$/); + assert.ok(Math.abs(Date.parse(manifest.createdAtUtc!.replace(/(\.\d{3})\d{4}\+00:00$/, "$1Z")) - Date.now()) < 60_000); +}); + +test("manifest_out_of_order decodes and validates, and its chunks keep wire order", () => { + const decoded = decodeManifest(csManifest("manifest_out_of_order")); + assert.deepEqual(decoded.chunks.map(c => c.offset / 262_144), [3, 0, 5, 1, 4, 2]); +}); + +test("metadata is ordered entries, immune to JS integer-key ordering", () => { + assert.deepEqual(decodeManifest(csManifest("manifest_metadata_order")).metadata, [["zeta", "1"], ["alpha", "2"], ["mid", "3"]]); + const metadata = [["10", "a"], ["alpha", "b"], ["2", "c"]] as const; + const bytes = encodeManifest(manifestOf({ metadata })); + assert.deepEqual(decodeManifest(bytes).metadata, metadata); + assert.deepEqual(encodeManifest(decodeManifest(bytes)), bytes); +}); + +test("a manifest with a duplicated metadata key is refused, in decode and in validate", () => { + const metadata = [["a", "1"], ["b", "x"], ["a", "2"]] as const; + assert.throws(() => decodeManifest(encodeManifest(manifestOf({ metadata }))), /duplicate key/); + assert.throws(() => validateManifest(manifestOf({ metadata })), /duplicate key/); + validateManifest(manifestOf({ metadata: [["a", "1"], ["b", "1"]] })); +}); + +test("a metadata key that is not a string is refused", () => { + const withMap = (...entry: Uint8Array[]) => Uint8Array.from([...wire().slice(0, -5), 0x81, ...entry.flatMap(part => Array.from(part))]); + decodeManifest(withMap(encode("k"), encode("v"))); + refusal(withMap(encode(5), encode("v"))); + refusal(withMap(encode(new Uint8Array(2)), encode("v"))); +}); + +test("an integer field accepts any width and refuses what a JS number cannot hold exactly", () => { + const empty = { 4: 0, 7: [] as unknown[] }; + // Past the integer rule, a size nothing sums to fails the sum check; a refused integer fails the type check first. + assert.throws(() => decodeManifest(wire({ ...empty, 4: 2n ** 53n - 1n })), /do not sum/); + assert.throws(() => decodeManifest(wire({ ...empty, 4: 2n ** 53n })), /wrong type/); + assert.throws(() => decodeManifest(wire({ ...empty, 4: 2n ** 53n + 1n })), /wrong type/); + assert.throws(() => decodeManifest(wire({ ...empty, 4: 2 ** 53 })), /wrong type/); + assert.throws(() => decodeManifest(wire({ ...empty, 4: -(2n ** 53n) })), /wrong type/); + assert.throws(() => decodeManifest(wire({ ...empty, 4: 0.5 })), /wrong type/); + // A 64-bit encoding of a small value is the same value. + const marked = wire({ 4: 0xdeadbeef, 7: [[HASH, 0, 4, "k"]] }); + const at = marked.findIndex((_, i) => marked[i] === 0xce && marked[i + 1] === 0xde && marked[i + 4] === 0xef); + const wide = Uint8Array.from([...marked.slice(0, at), 0xcf, 0, 0, 0, 0, 0, 0, 0, 4, ...marked.slice(at + 5)]); + assert.equal(decodeManifest(wide).sizeBytes, 4); +}); + +test("a chunk size outside int32 is refused as the reference's int cannot hold it", () => { + const chunk = (size: number) => decodeManifest(wire({ 4: size, 7: [[HASH, 0, size, "k"]] })); + assert.equal(chunk(2 ** 31 - 1).chunks[0]!.sizeBytes, 2 ** 31 - 1); + assert.throws(() => chunk(2 ** 31), /chunks\.sizeBytes.*wrong type/); + assert.throws(() => decodeManifest(wire({ 4: -(2n ** 31n) - 1n, 7: [[HASH, 0, -(2n ** 31n) - 1n, "k"]] })), /chunks\.sizeBytes.*wrong type/); + assert.throws(() => decodeManifest(wire({ 4: 0, 7: [[HASH, 0, -(2 ** 31), "k"]] })), /chunk has a negative size/); +}); + +test("a payload nested 257 deep is refused before decoding and 256 is not refused for depth", () => { + const nest = (depth: number) => Uint8Array.from([...Array(depth).fill(0x91), 0xc0]); + assert.throws(() => decodeManifest(nest(257)), (error: unknown) => + error instanceof CultCachePayloadDepthError && /CDN artifact manifest nests 257 .* limit is 256/.test(error.message)); + assert.throws(() => decodeManifest(nest(256)), (error: unknown) => error instanceof Error && !(error instanceof CultCachePayloadDepthError)); + // The nesting is inside a field of an otherwise valid manifest: the outer array is depth 1. + const inside = (depth: number) => wire({ 8: Array.from({ length: depth }).reduce(value => [value], null) }); + assert.throws(() => decodeManifest(inside(256)), CultCachePayloadDepthError); + assert.throws(() => decodeManifest(inside(255)), (error: unknown) => error instanceof Error && !(error instanceof CultCachePayloadDepthError)); +}); + +test("a manifest of the wrong shape is refused naming the field and never the value", () => { + const canary = "CANARY-7f3a91"; + const chunk = (...parts: unknown[]) => wire({ 7: [parts] }); + const cases: [Uint8Array, string][] = [ + [wire({ 0: 5 }), "artifactId"], [wire({ 1: 5 }), "kind"], [wire({ 2: 5 }), "version"], + [wire({ 3: 5 }), "contentHash"], [wire({ 5: 5 }), "mimeType"], [wire({ 6: 5 }), "createdAtUtc"], + [wire({ 4: canary }), "sizeBytes"], [wire({ 4: "4" }), "sizeBytes"], [wire({ 4: null }), "sizeBytes"], [wire({ 4: 0.5 }), "sizeBytes"], + [wire({ 7: canary }), "chunks"], [wire({ 7: [canary] }), "chunks"], + [chunk(5, 0, 4, "k"), "chunks.chunkHash"], [chunk(HASH, canary, 4, "k"), "chunks.offset"], [chunk(HASH, 0, canary, "k"), "chunks.sizeBytes"], + [chunk(HASH, 0, 4, 5), "chunks.recordKey"], + [wire({ 8: canary }), "tags"], [wire({ 8: [5] }), "tags"], + [wire({ 9: canary }), "metadata"], [wire({ 9: { k: 5 } }), "metadata"], [wire({ 9: [] }), "metadata"], + [wire({ 9: new Uint8Array(2) }), "metadata"], + [encode(canary), "manifest"], [encode({ [canary]: canary }), "manifest"], + ]; + for (const [bytes, field] of cases) { + assert.throws(() => decodeManifest(bytes), (error: unknown) => + error instanceof Error && error.message.includes(`'${field}'`) && !error.message.includes(canary), field); + } + // A payload that ends early is not a shape; it does not echo the value either. + assert.throws(() => decodeManifest(encode([canary]).slice(0, 4)), (error: unknown) => error instanceof Error && !error.message.includes(canary)); + assert.equal(decodeManifest(wire()).chunks.length, 1, "the unmodified fixture decodes"); +}); + +test("a metadata key that is not a string names the field", () => { + const withMap = (...entry: Uint8Array[]) => Uint8Array.from([...wire().slice(0, -5), 0x81, ...entry.flatMap(part => Array.from(part))]); + assert.throws(() => decodeManifest(withMap(encode(5), encode("v"))), /'metadata'/); +}); + +test("validateManifest refuses negative size, a gap, an overlap and a size-sum mismatch with the C# messages", () => { + const chunk = (offset: number, sizeBytes: number) => ({ chunkHash: HASH, offset, sizeBytes, recordKey: "k" }); + const refuses = (over: Partial, message: string) => + assert.throws(() => validateManifest(manifestOf(over)), new Error(message)); + refuses({ sizeBytes: -1, chunks: [] }, "CDN artifact manifest has a negative size."); + refuses({ sizeBytes: 4, chunks: [chunk(0, 2), chunk(3, 1)] }, "CDN artifact chunks are not contiguous."); + refuses({ sizeBytes: 4, chunks: [chunk(0, 3), chunk(2, 2)] }, "CDN artifact chunks are not contiguous."); + refuses({ sizeBytes: 4, chunks: [chunk(1, 4)] }, "CDN artifact chunks are not contiguous."); + refuses({ sizeBytes: 0, chunks: [chunk(0, -1)] }, "CDN artifact chunk has a negative size."); + refuses({ sizeBytes: 5, chunks: [chunk(0, 4)] }, "CDN artifact chunk sizes do not sum to the manifest size."); + refuses({ sizeBytes: 3, chunks: [chunk(0, 4)] }, "CDN artifact chunk sizes do not sum to the manifest size."); + refuses({ sizeBytes: -1, chunks: [chunk(1, 1)] }, "CDN artifact manifest has a negative size."); + validateManifest(manifestOf({ sizeBytes: 4, chunks: [chunk(2, 2), chunk(0, 2)] })); + validateManifest(manifestOf({ sizeBytes: 0, chunks: [] })); +}); + +test("validateManifest refuses a size that is not a whole number below 2^53 and a chunk size an int cannot hold, whether decoded or hand-built", () => { + const chunk = (offset: number, sizeBytes: number) => ({ chunkHash: HASH, offset, sizeBytes, recordKey: "k" }); + const refuses = (over: Partial, message: string) => + assert.throws(() => validateManifest(manifestOf(over)), new Error(message)); + const manifestMessage = "CDN artifact manifest size is not a whole number below 2^53."; + const chunkMessage = "CDN artifact chunk size is not a whole number below 2^53."; + for (const size of [1.5, Number.NaN, Number.POSITIVE_INFINITY]) refuses({ sizeBytes: size, chunks: [] }, manifestMessage); + // fractional chunk sizes that still tile the manifest are contiguous, so only the whole-number rule refuses them + refuses({ sizeBytes: 6, chunks: [chunk(0, 4), chunk(4, 1.5), chunk(5.5, 0.5)] }, chunkMessage); + refuses({ sizeBytes: 1.5, chunks: [chunk(0, 1.5)] }, manifestMessage); + refuses({ sizeBytes: 4, chunks: [chunk(0, Number.NaN)] }, chunkMessage); + refuses({ sizeBytes: Number.POSITIVE_INFINITY, chunks: [chunk(0, Number.POSITIVE_INFINITY)] }, manifestMessage); + refuses({ sizeBytes: 4, chunks: [chunk(0, 2), chunk(2, Number.POSITIVE_INFINITY)] }, chunkMessage); + refuses({ sizeBytes: 0, chunks: [chunk(0, -1)] }, "CDN artifact chunk has a negative size."); + // C# holds the manifest total and offsets in a long, a chunk size in an int; a number holds integers exactly only below 2^53 + const int32Max = 2 ** 31 - 1; + const tooBig = "CDN artifact chunk size is larger than 2147483647."; + refuses({ sizeBytes: 2 ** 31, chunks: [chunk(0, 2 ** 31)] }, tooBig); + refuses({ sizeBytes: 2 ** 31 + 5, chunks: [chunk(0, 5), chunk(5, 2 ** 31)] }, tooBig); + refuses({ sizeBytes: 2 ** 53 - 1, chunks: [chunk(0, 2 ** 53 - 1)] }, tooBig); + for (const size of [2 ** 53, 2 ** 63, 2 ** 64]) { + refuses({ sizeBytes: size, chunks: [] }, manifestMessage); + refuses({ sizeBytes: size, chunks: [chunk(0, size)] }, manifestMessage); + refuses({ sizeBytes: 4, chunks: [chunk(0, size)] }, chunkMessage); + } + // the sum can only pass 2^53 by exceeding the manifest total, which is below it; an offset past 2^53 matches no sum + refuses({ sizeBytes: 2 ** 53, chunks: [chunk(0, int32Max), chunk(int32Max, 2 ** 53 - int32Max)] }, manifestMessage); + refuses({ sizeBytes: 1, chunks: [chunk(2 ** 53, 1)] }, "CDN artifact chunks are not contiguous."); + validateManifest(manifestOf({ sizeBytes: 2 ** 31 + 2, chunks: [chunk(0, 1), chunk(1, int32Max), chunk(2 ** 31, 2)] })); + validateManifest(manifestOf({ sizeBytes: int32Max, chunks: [chunk(0, int32Max)] })); +}); + +test("normalizeHash: 'SHA256:ABC ' -> 'abc', ' sha256:abc' -> 'sha256:abc', blank throws", () => { + assert.equal(normalizeHash("SHA256:ABC "), "abc"); + assert.equal(normalizeHash("sHa256:AbC"), "abc"); + assert.equal(normalizeHash(" sha256:abc"), "sha256:abc"); + assert.equal(normalizeHash("sha256:sha256:ab"), "sha256:ab"); + assert.equal(normalizeHash("sha256: "), ""); + assert.equal(normalizeHash("\u00a0\u0130X\u00a0"), "\u0130x"); + for (const blank of ["", " ", "\u0085\u2003"]) assert.throws(() => normalizeHash(blank, "chunkHash"), /Hash must be non-empty\. \(Parameter 'chunkHash'\)/); + assert.throws(() => normalizeHash(""), /Hash must be non-empty\. \(Parameter 'hash'\)/); +}); + +test("parseSha256Hex accepts 64 hex digits in any case and prefix, and refuses anything else without echoing it", () => { + assert.equal(parseSha256Hex(`SHA256: ${"AB".repeat(32)} `), "ab".repeat(32)); + for (const bad of ["a".repeat(63), "a".repeat(65), `${"a".repeat(63)}g`, "sha256:", `sha256:CANARY-${"a".repeat(50)}`]) { + assert.throws(() => parseSha256Hex(bad), (error: unknown) => + error instanceof Error && error.message === "Hash must be 64 hexadecimal digits. (Parameter 'hash')"); + } + assert.throws(() => parseSha256Hex("zz", "chunkHash"), /\(Parameter 'chunkHash'\)/); + assert.throws(() => parseSha256Hex(""), /Hash must be non-empty\. \(Parameter 'hash'\)/); +}); + +test("every entry in cdn-record-key-vectors.json derives to its recordKey", async () => { + const file = JSON.parse(readFileSync(join(CONTRACTS, "cdn-record-key-vectors.json"), "utf8")) as { + artifacts: { artifactIdUnits: number[]; versionUnits: number[]; contentHash: string; recordKey: string }[]; + chunks: { chunkHash: string; recordKey: string }[]; + }; + assert.ok(file.artifacts.length >= 14 && file.chunks.length >= 7, "the file carries the C# traps"); + const text = (units: number[]) => String.fromCharCode(...units); + for (const a of file.artifacts) { + assert.equal(await artifactRecordKey(text(a.artifactIdUnits), text(a.versionUnits), a.contentHash), a.recordKey, JSON.stringify(a.artifactIdUnits)); + } + for (const c of file.chunks) assert.equal(chunkRecordKey(c.chunkHash), c.recordKey, c.chunkHash); + assert.ok(file.artifacts.some(a => a.artifactIdUnits.includes(0xd800)), "a lone surrogate survives the file"); +}); + +test("record keys refuse a blank id, version-less artifacts are 'unversioned', and a blank hash throws", async () => { + await assert.rejects(artifactRecordKey(" ", "1", HASH), /Value must be non-empty\. \(Parameter 'artifactId'\)/); + await assert.rejects(artifactRecordKey("a", "1", " "), /Hash must be non-empty\. \(Parameter 'contentHash'\)/); + assert.throws(() => chunkRecordKey(""), /\(Parameter 'chunkHash'\)/); + assert.equal(await artifactRecordKey("a", " ", HASH), `mesh:cdn:artifact:a:unversioned:${HASH}`); + assert.equal(chunkRecordKey(`SHA256:${HASH.toUpperCase()}`), `mesh:cdn:chunk:${HASH}`); +}); + +test("sha256Hex of '' and of the fixture body equal the published digests", async () => { + assert.equal(await sha256Hex(new Uint8Array(0)), "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"); + assert.equal(await sha256Hex(FIXTURE_BODY), FIXTURE_HASH); + assert.equal(await sha256Hex(new TextEncoder().encode("abc")), "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"); + assert.equal(EMPTY_SHA256, await sha256Hex(new Uint8Array(0))); +}); + +test("esbuild bundles dist/content.js with platform 'browser' without error", async () => { + const result = await build({ + entryPoints: [join(__dirname, "..", "..", "dist", "content.js")], bundle: true, platform: "browser", format: "esm", write: false, logLevel: "silent", + }); + assert.ok(result.outputFiles[0]!.text.includes("gamecult.mesh.cdn_artifact_manifest.v1")); +}); + +test("the committed ts-written file re-packs from its declared inputs to the same bytes and record keys", async () => { + type Input = { artifactId: string; kind: string; version: string; mimeType: string; createdAtUtc: string; chunkSizeBytes: number; tags: string[]; + metadata: [string, string][]; body: { length: number; multiplier: number; modulus: number } }; + const file = JSON.parse(readFileSync(join(CONTRACTS, "content-vectors.ts-written.json"), "utf8")) as + { vectors: { label: string; kind: string; input: Input; recordKey: string; messagePackBase64: string }[] }; + assert.ok(file.vectors.length >= 3); + assert.ok(file.vectors.some(v => v.input.body.length === 0) && file.vectors.some(v => v.input.body.length > v.input.chunkSizeBytes)); + for (const { label, kind, input, recordKey, messagePackBase64 } of file.vectors) { + assert.equal(kind, "manifest"); + const { body, ...options } = input; + const { manifest } = await packContent(input.artifactId, Uint8Array.from({ length: body.length }, (_, i) => (i * body.multiplier) % body.modulus), options); + const bytes = new Uint8Array(Buffer.from(messagePackBase64, "base64")); + assert.deepEqual(encodeManifest(manifest), bytes, label); + assert.deepEqual(encodeManifest(decodeManifest(bytes)), bytes, label); + assert.equal(await artifactRecordKey(manifest.artifactId, manifest.version, manifest.contentHash), recordKey, label); + } +}); + +test("the schema id and the default chunk size are the reference's", async () => { + assert.equal(CULTMESH_CDN_MANIFEST_SCHEMA, "gamecult.mesh.cdn_artifact_manifest.v1"); + assert.equal(DEFAULT_CHUNK_SIZE_BYTES, 4_194_304); + const body = new Uint8Array(DEFAULT_CHUNK_SIZE_BYTES + 1); + assert.deepEqual((await packContent("x", body)).manifest.chunks.map(c => c.sizeBytes), [DEFAULT_CHUNK_SIZE_BYTES, 1]); + assert.equal((await packContent("x", body.subarray(0, DEFAULT_CHUNK_SIZE_BYTES))).chunks.length, 1); + assert.deepEqual((await packContent("x", new Uint8Array(3), { chunkSizeBytes: 1 })).manifest.chunks.map(c => c.offset), [0, 1, 2]); +}); + +test("sha256Hex names its refusal when WebCrypto is missing, whether crypto or only subtle is absent", async () => { + const original = Object.getOwnPropertyDescriptor(globalThis, "crypto")!; + try { + for (const replacement of [undefined, {}]) { + Object.defineProperty(globalThis, "crypto", { value: replacement, configurable: true, writable: true }); + await assert.rejects(sha256Hex(new Uint8Array(1)), new Error("WebCrypto SHA-256 is unavailable.")); + } + } finally { + Object.defineProperty(globalThis, "crypto", original); + } + assert.equal(await sha256Hex(new Uint8Array(0)), EMPTY_SHA256); +}); + +test("the metadata map header is the minimal MessagePack header at every size boundary", () => { + for (const count of [0, 15, 16, 65535, 65536]) { + const entries = Array.from({ length: count }, (_, i) => [`k${i}`, "v"] as const); + const expected = encode(Object.fromEntries(entries)); + const bytes = encodeManifest(manifestOf({ metadata: entries })); + assert.deepEqual(bytes.slice(bytes.length - expected.length), expected, `${count} entries`); + assert.equal(decodeManifest(bytes).metadata!.length, count); + } +}); + +// The reference's acceptance, case by case: `contracts/cultmesh/content-acceptance-vectors.json` is written by the C# test +// from `MessagePackSerializer.Deserialize` plus `ValidateManifest`; an accepted case carries the bytes the reference +// writes back and the key it derives. Nothing in the file is authored on this side. +test("decodeManifest accepts and refuses exactly what the reference does, and re-encodes what it re-encodes", async () => { + const file = JSON.parse(readFileSync(join(CONTRACTS, "content-acceptance-vectors.json"), "utf8")) as { + cases: { label: string; inputBase64: string; accepted: boolean; reencodedBase64: string | null; recordKey: string | null }[]; + }; + const bytes = (base64: string) => new Uint8Array(Buffer.from(base64, "base64")); + assert.ok(file.cases.filter(c => c.accepted).length > 30 && file.cases.filter(c => !c.accepted).length > 30, "the file holds both verdicts in quantity"); + assert.equal(new Set(file.cases.map(c => c.label)).size, file.cases.length); + for (const c of file.cases) { + if (!c.accepted) { + assert.throws(() => decodeManifest(bytes(c.inputBase64)), /./, `${c.label}: the reference refuses`); + continue; + } + const manifest = decodeManifest(bytes(c.inputBase64)); + assert.deepEqual(encodeManifest(manifest), bytes(c.reencodedBase64!), `${c.label}: the reference's bytes`); + if (c.recordKey === null) await assert.rejects(artifactRecordKey(manifest.artifactId, manifest.version, manifest.contentHash), /./, `${c.label}: no key`); + else assert.equal(await artifactRecordKey(manifest.artifactId, manifest.version, manifest.contentHash), c.recordKey, `${c.label}: key`); + } +}); + +test("a manifest written as a map names the manifest, not a field inside it", () => { + assert.throws(() => decodeManifest(encode({ 0: "a", 9: { k: "v" } })), /field 'manifest' has the wrong type/); +}); + +test("nil in a reference slot reads as null and writes back as nil; a missing trailing slot takes the initialiser", () => { + const nils = wire({ 0: null, 2: null, 8: null, 9: null }); + const manifest = decodeManifest(nils); + assert.deepEqual([manifest.artifactId, manifest.version, manifest.tags, manifest.metadata], [null, null, null, null]); + assert.deepEqual(encodeManifest(manifest), nils); + const short = decodeManifest(encode(["id"])); + assert.deepEqual(short, { artifactId: "id", kind: "asset", version: "", contentHash: "", sizeBytes: 0, mimeType: "application/octet-stream", createdAtUtc: "", chunks: [], tags: [], metadata: [] }); +}); + +// Refusals that are the same refusal in the reference but would read differently if the wrong rule fired: the message +// names the true cause (the sign, the nil chunk, the reserved code, the early end), never a neighbouring field. +test("a refusal names its true cause", () => { + const refuses = (bytes: Uint8Array, message: RegExp) => assert.throws(() => decodeManifest(bytes), message); + refuses(wire({ 4: -1, 7: [] }), /negative size/); + refuses(wire({ 4: -32, 7: [] }), /negative size/); + refuses(wire({ 4: -(2n ** 53n - 1n), 7: [] }), /negative size/); + refuses(wire({ 4: -(2n ** 53n), 7: [] }), /field 'sizeBytes' has the wrong type/); + refuses(wire({ 4: 0, 7: [[HASH, 0, -32, "k"]] }), /chunk has a negative size/); + refuses(wire({ 7: null }), /field 'chunks' has the wrong type/); + refuses(wire({ 7: [null] }), /field 'chunks' has the wrong type/); + refuses(Uint8Array.of(0xc0), /field 'manifest' has the wrong type/); + refuses(wire().slice(0, 8), /ends before its last field/); + refuses(Uint8Array.of(0x91, 0xa3, 0x41), /ends before its last field/); + refuses(Uint8Array.from([0x9b, ...wire().slice(1), 0xc1]), /field 'manifest' has the wrong type/); +}); + +test("a lone surrogate is written as U+FFFD at every string length, short and long alike, in every string slot", async () => { + const base = (await packContent("x", Uint8Array.of(1, 2, 3), { createdAtUtc: "2026-09-22T00:00:00.0000000+00:00" })).manifest; + // @msgpack/msgpack switches encoders past 50 UTF-16 units; the reference writes U+FFFD on both sides of that line. + for (const length of [1, 2, 16, 31, 32, 49, 50, 51, 52, 64, 200]) { + for (const [lone, replaced] of [["\ud800", "\ufffd"], ["\udfff", "\ufffd"]]) { + const filler = "a".repeat(length - 1); + const bad = `${filler}${lone}`; + const good = `${filler}${replaced}`; + const withText = (value: string): CultMeshCdnArtifactManifest => ({ + ...base, + artifactId: value, kind: value, version: value, mimeType: value, createdAtUtc: value, + chunks: [{ ...base.chunks[0]!, recordKey: value }], + tags: [value], + metadata: [[value, value]], + }); + const bytes = encodeManifest(withText(bad)); + assert.deepEqual(bytes, encodeManifest(withText(good)), `length ${length}`); + assert.ok(!bytes.some((b, i) => b === 0xed && bytes[i + 1]! >= 0xa0 && bytes[i + 1]! <= 0xbf), `no CESU surrogate bytes at length ${length}`); + assert.equal(decodeManifest(bytes).artifactId, good, `length ${length} reads back as written`); + } + } + const packed = await packContent(`a${"b".repeat(60)}\ud800`, Uint8Array.of(1), { kind: "k\udc00", createdAtUtc: "2026-09-22T00:00:00.0000000+00:00" }); + assert.equal(decodeManifest(encodeManifest(packed.manifest)).kind, "k\ufffd"); +}); diff --git a/scripts/test-typescript-package-closure.mjs b/scripts/test-typescript-package-closure.mjs index 5544af06..6b0d7661 100644 --- a/scripts/test-typescript-package-closure.mjs +++ b/scripts/test-typescript-package-closure.mjs @@ -134,7 +134,7 @@ for (const [entryName, entry] of Object.entries(entries)) { } } } -assert.equal(typeof documentEntry.checkPayloadDepth, "undefined"); +assert.equal(typeof documentEntry.checkPayloadDepth, "function"); assert.equal(documentEntry.MAX_PAYLOAD_DEPTH, 256); assert.equal(cache.MAX_PAYLOAD_DEPTH, 256); assert.equal(documentEntry.CultCachePayloadDepthError, cache.CultCachePayloadDepthError); diff --git a/scripts/write-cultmesh-content-vectors.mjs b/scripts/write-cultmesh-content-vectors.mjs new file mode 100644 index 00000000..1fc720bb --- /dev/null +++ b/scripts/write-cultmesh-content-vectors.mjs @@ -0,0 +1,63 @@ +// The TypeScript -> C# direction of the CultMesh content parity check. +// +// `contracts/cultmesh/content-vectors.cs-written.json` and `.rs-written.json` are written by the reference and by Rust +// and decoded by TypeScript. This script writes the mirror file, `contracts/cultmesh/content-vectors.ts-written.json`: +// `packages/cultnet-ts/src/content.ts` packs each declared input and encodes the manifest, and the C# test +// `CultMeshContentVectorTests.TypeScriptManifestVectorsMatchTheReference` judges the committed file with the reference +// only (it decodes the bytes, packs the same input itself and compares, and derives the record key). +// +// Deliberately not the C# file's inputs: a multi-byte artifact id, no version, integer-like metadata keys that a JS object +// would reorder, a different body and chunk size. Agreeing on a copy of the other side's inputs would prove less. +// +// npm run build --workspace packages/cultnet-ts +// node scripts/write-cultmesh-content-vectors.mjs +// +// Nothing here is randomised: rerunning on an unchanged codec rewrites the same bytes. + +import { existsSync, writeFileSync } from "node:fs"; +import { createRequire } from "node:module"; +import { dirname, join, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; + +const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), ".."); +const modulePath = join(repoRoot, "packages", "cultnet-ts", "dist", "content.js"); +const outputPath = join(repoRoot, "contracts", "cultmesh", "content-vectors.ts-written.json"); +if (!existsSync(modulePath)) { + throw new Error(`${modulePath} is missing; run 'npm run build --workspace packages/cultnet-ts' first.`); +} +const { packContent, encodeManifest, artifactRecordKey } = createRequire(import.meta.url)(modulePath); + +const common = { + artifactId: "Pixel Heroes/H\u00fct \u2603", + kind: "asset", + version: "", + mimeType: "application/x-cultnet-ts-vector", + createdAtUtc: "2026-10-19T00:00:00.0000000+00:00", + chunkSizeBytes: 131072, + tags: ["a", "b"], + metadata: [["10", "x"], ["alpha", "y"], ["2", "z"]], +}; +const inputs = [ + ["ts multi-chunk body", { ...common, body: { length: 777777, multiplier: 7, modulus: 256 } }], + ["ts empty body", { ...common, body: { length: 0, multiplier: 7, modulus: 256 } }], + ["ts single chunk, versioned", { ...common, version: "V1 Beta", chunkSizeBytes: 4194304, tags: [], metadata: [], body: { length: 1000, multiplier: 7, modulus: 256 } }], + // Padding the reference keeps: a whitespace version stays as written (the key reads it as unversioned), kind and MIME are + // only replaced when blank. + ["ts whitespace version, padded kind and mime", { ...common, kind: " build ", version: " ", mimeType: " text/plain; charset=utf-8 ", chunkSizeBytes: 4194304, tags: [], metadata: [], body: { length: 1000, multiplier: 7, modulus: 256 } }], +]; + +const vectors = []; +for (const [label, input] of inputs) { + const { body, ...options } = input; + const bytes = Uint8Array.from({ length: body.length }, (_, index) => (index * body.multiplier) % body.modulus); + const { manifest } = await packContent(input.artifactId, bytes, options); + vectors.push({ + label, + kind: "manifest", + input, + recordKey: await artifactRecordKey(manifest.artifactId, manifest.version, manifest.contentHash), + messagePackBase64: Buffer.from(encodeManifest(manifest)).toString("base64"), + }); +} +writeFileSync(outputPath, `${JSON.stringify({ vectors }, null, 2)}\n`); +console.log(`wrote ${vectors.length} vectors to ${outputPath}`); diff --git a/src/GameCult.Caching.MessagePack/CultDocumentMessagePackSerialization.cs b/src/GameCult.Caching.MessagePack/CultDocumentMessagePackSerialization.cs index ee5691f5..7e06a776 100644 --- a/src/GameCult.Caching.MessagePack/CultDocumentMessagePackSerialization.cs +++ b/src/GameCult.Caching.MessagePack/CultDocumentMessagePackSerialization.cs @@ -285,6 +285,8 @@ public static class CultDocumentMessagePackSerialization // an encoding of the object. internal static byte[] SerializeStore(string formatVersion, IReadOnlyList catalogEntries, IReadOnlyList records) { + if (formatVersion == null) + throw new ArgumentException("A store is written under a format version; the snapshot carries none.", nameof(formatVersion)); var buffer = new global::System.Buffers.ArrayBufferWriter(); var writer = new MessagePackWriter(buffer); writer.WriteArrayHeader(StoreSnapshotFieldCount); @@ -317,8 +319,11 @@ public static class CultDocumentMessagePackSerialization // The reader behind DeserializeSnapshot, and beside the snapshot the exact bytes the file held for each catalog entry and each // record (parallel to the snapshot's arrays). The snapshot's objects hold no bytes: a store that carries entries forward keeps - // these slices itself. - internal static (CultPersistedStoreSnapshot Snapshot, byte[][] CatalogBytes, byte[][] RecordBytes) ReadStore(byte[] payload) + // these slices itself. The stamp decides readability and the body never does: requireReadable, when a store passes its rule, + // runs on slot 0 before the catalog or any record is parsed; the public parser passes none and reads any stamp. + internal static (CultPersistedStoreSnapshot Snapshot, byte[][] CatalogBytes, byte[][] RecordBytes) ReadStore( + byte[] payload, + Action? requireReadable = null) { try { @@ -335,8 +340,12 @@ public static class CultDocumentMessagePackSerialization if (fieldCount == 0) return (snapshot, Array.Empty(), Array.Empty()); + // A stamp encoded as binary is not one this runtime wrote or reads; it is refused as such, not parsed as damage. + if (reader.NextMessagePackType == MessagePackType.Binary) + throw new CultStoreUnreadableException("Store snapshot declares its format version as binary; this runtime reads " + CultPersistedStoreSnapshot.FormatV1 + ", " + CultPersistedStoreSnapshot.FormatV2 + " and " + CultPersistedStoreSnapshot.FormatV3 + " as strings."); snapshot.FormatVersion = reader.ReadString() ?? throw new CultStoreUnreadableException("Store snapshot declares no format version; this runtime reads " + CultPersistedStoreSnapshot.FormatV1 + ", " + CultPersistedStoreSnapshot.FormatV2 + " and " + CultPersistedStoreSnapshot.FormatV3 + "."); + requireReadable?.Invoke(snapshot.FormatVersion); var catalogCount = reader.ReadArrayHeader(); snapshot.SchemaCatalog = new CultSchemaCatalogEntry[catalogCount]; @@ -412,13 +421,7 @@ public static class CultDocumentMessagePackSerialization public static void RequireSingleFileFormat(CultPersistedStoreSnapshot snapshot) { var version = snapshot.FormatVersion; - if (!string.Equals(version, CultPersistedStoreSnapshot.FormatV1, StringComparison.Ordinal) && - !string.Equals(version, CultPersistedStoreSnapshot.FormatV2, StringComparison.Ordinal) && - !string.Equals(version, CultPersistedStoreSnapshot.FormatV3, StringComparison.Ordinal)) - { - throw new CultStoreUnreadableException( - $"Store format {DescribeHeader(version)} is not readable; this runtime reads {CultPersistedStoreSnapshot.FormatV1}, {CultPersistedStoreSnapshot.FormatV2} and {CultPersistedStoreSnapshot.FormatV3}."); - } + RequireReadableSingleFileStamp(version); // Only a v2 or v3 store may hold a variant: a v1 header over a variant record is a store no reader could trust. if (string.Equals(version, CultPersistedStoreSnapshot.FormatV1, StringComparison.Ordinal)) @@ -432,6 +435,18 @@ public static class CultDocumentMessagePackSerialization } } + // The one verdict on a single-file store's stamp, judged on slot 0 before the body is parsed: this runtime reads v1, v2 and v3. + internal static void RequireReadableSingleFileStamp(string version) + { + if (!string.Equals(version, CultPersistedStoreSnapshot.FormatV1, StringComparison.Ordinal) && + !string.Equals(version, CultPersistedStoreSnapshot.FormatV2, StringComparison.Ordinal) && + !string.Equals(version, CultPersistedStoreSnapshot.FormatV3, StringComparison.Ordinal)) + { + throw new CultStoreUnreadableException( + $"Store format {DescribeHeader(version)} is not readable; this runtime reads {CultPersistedStoreSnapshot.FormatV1}, {CultPersistedStoreSnapshot.FormatV2} and {CultPersistedStoreSnapshot.FormatV3}."); + } + } + // A store header as a refusal may show it: echoed in the shape cultcache.store.v, and otherwise described // only by its length, since the bytes are the store's. internal static string DescribeHeader(string header) @@ -749,7 +764,7 @@ public class SingleFileMessagePackBackingStore : SingleFileBackingStore protected override (CultPersistedStoreSnapshot Snapshot, byte[][] CatalogBytes, byte[][] RecordBytes) ReadStore(byte[] data) { - var store = CultDocumentMessagePackSerialization.ReadStore(data); + var store = CultDocumentMessagePackSerialization.ReadStore(data, CultDocumentMessagePackSerialization.RequireReadableSingleFileStamp); CultDocumentMessagePackSerialization.RequireSingleFileFormat(store.Snapshot); return store; } diff --git a/src/GameCult.Caching.MessagePack/CultMathJson.cs b/src/GameCult.Caching.MessagePack/CultMathJson.cs index 0e65bf22..65dea503 100644 --- a/src/GameCult.Caching.MessagePack/CultMathJson.cs +++ b/src/GameCult.Caching.MessagePack/CultMathJson.cs @@ -14,7 +14,7 @@ namespace GameCult.Caching.MessagePack; /// The canonical System.Text.Json shape of every public CultMath value type, the JSON twin of /// . Vectors, quaternions and colors are objects keyed by their /// field names ({"x":1,"y":2}), matrices are arrays of row objects, rect is -/// {"min":..,"max":..}, CultCellular is {"nearest":..,"edge":..,"id":..}, and CultPhasor is {"cos":..,"sin":..}. +/// {"min":..,"max":..}, CultCellular is {"nearest":..,"edge":..,"id":..}, CultPhasor is {"cosine":..,"sine":..} (reading also accepts the legacy cos/sin names), SpanNoise is {"field":..,"curvature":..,"fold":..}, SpanPath is {"midpoint":..,"velocity":..,"speed":..,"acceleration":..,"halfLength":..}, SpanStage is {"frequency":..,"stretch":..,"axis":..,"shift":..,"offset":..,"octaveStep":..}, and CultSiteCells is {"nearest":..,"second":..,"nearestSite":..,"secondSite":..}. /// Property names are fixed: PropertyNamingPolicy does not rename them, and /// PropertyNameCaseInsensitive makes reading case-insensitive. /// @@ -270,14 +270,24 @@ public static class CultMathJson { private readonly string[] names; private readonly byte[][] utf8Names; + private readonly string?[] legacyNames; + private readonly byte[]?[] legacyUtf8Names; private readonly JsonEncodedText[] encoded; private readonly Node[] children; private readonly int[] offsets; public Fields(params (string Name, Node Child)[] fields) + : this(Array.ConvertAll(fields, f => (f.Name, f.Child, (string?)null))) + { + } + + // A legacy name is matched on read only and maps to the same field as its current name. + public Fields(params (string Name, Node Child, string? Legacy)[] fields) { names = new string[fields.Length]; utf8Names = new byte[fields.Length][]; + legacyNames = new string?[fields.Length]; + legacyUtf8Names = new byte[]?[fields.Length]; encoded = new JsonEncodedText[fields.Length]; children = new Node[fields.Length]; offsets = new int[fields.Length]; @@ -285,6 +295,8 @@ public static class CultMathJson { names[i] = fields[i].Name; utf8Names[i] = Encoding.UTF8.GetBytes(fields[i].Name); + legacyNames[i] = fields[i].Legacy; + legacyUtf8Names[i] = fields[i].Legacy is { } legacy ? Encoding.UTF8.GetBytes(legacy) : null; encoded[i] = JsonEncodedText.Encode(fields[i].Name); children[i] = fields[i].Child; offsets[i] = Count; @@ -339,13 +351,14 @@ public static class CultMathJson if (!ignoreCase) { for (var i = 0; i < utf8Names.Length; i++) - if (r.ValueTextEquals(utf8Names[i])) return i; + if (r.ValueTextEquals(utf8Names[i]) || (legacyUtf8Names[i] is { } legacy && r.ValueTextEquals(legacy))) return i; return -1; } var name = r.GetString()!; for (var i = 0; i < names.Length; i++) - if (string.Equals(names[i], name, StringComparison.OrdinalIgnoreCase)) return i; + if (string.Equals(names[i], name, StringComparison.OrdinalIgnoreCase) + || (legacyNames[i] is { } legacy && string.Equals(legacy, name, StringComparison.OrdinalIgnoreCase))) return i; return -1; } } @@ -481,7 +494,7 @@ public static class CultMathJson Add(UIntScalar.Instance, new Fields(("state", Val())), a => new Random { state = a[0] }, (v, a) => a[0] = v.state), - // Compositions: matrices are arrays of row objects, rect is {min, max}, CultCellular is {nearest, edge, id}, CultPhasor is {cos, sin}. + // Compositions: matrices are arrays of row objects, rect is {min, max}, CultCellular is {nearest, edge, id}, CultPhasor is {cosine, sine}, SpanNoise is {field, curvature, fold}, SpanPath is {midpoint, velocity, speed, acceleration, halfLength}, SpanStage is {frequency, stretch, axis, shift, offset, octaveStep}, CultSiteCells is {nearest, second, nearestSite, secondSite}. Add(f, new Rows(2, Xy()), a => new float2x2(a[0], a[1], a[2], a[3]), (v, a) => { a[0] = v[0].x; a[1] = v[0].y; a[2] = v[1].x; a[3] = v[1].y; }), @@ -507,12 +520,45 @@ public static class CultMathJson a[4] = v.edge.x; a[5] = v.edge.y; a[6] = v.edge.z; a[7] = v.edge.w; a[8] = v.id; }), - Add(f, new Fields(("cos", Xyzw()), ("sin", Xyzw())), + Add(f, new Fields(("cosine", Xyzw(), "cos"), ("sine", Xyzw(), "sin")), a => new CultPhasor(new float4(a[0], a[1], a[2], a[3]), new float4(a[4], a[5], a[6], a[7])), (v, a) => { - a[0] = v.cos.x; a[1] = v.cos.y; a[2] = v.cos.z; a[3] = v.cos.w; - a[4] = v.sin.x; a[5] = v.sin.y; a[6] = v.sin.z; a[7] = v.sin.w; + a[0] = v.cosine.x; a[1] = v.cosine.y; a[2] = v.cosine.z; a[3] = v.cosine.w; + a[4] = v.sine.x; a[5] = v.sine.y; a[6] = v.sine.z; a[7] = v.sine.w; + }), + Add(f, new Fields(("field", Xyzw()), ("curvature", Val()), ("fold", Val())), + a => new SpanNoise(new float4(a[0], a[1], a[2], a[3]), a[4], a[5]), + (v, a) => + { + a[0] = v.field.x; a[1] = v.field.y; a[2] = v.field.z; a[3] = v.field.w; + a[4] = v.curvature; a[5] = v.fold; + }), + Add(f, new Fields(("midpoint", Xyz()), ("velocity", Xyz()), ("speed", Val()), ("acceleration", Val()), ("halfLength", Val())), + a => new SpanPath { midpoint = new float3(a[0], a[1], a[2]), velocity = new float3(a[3], a[4], a[5]), speed = a[6], acceleration = a[7], halfLength = a[8] }, + (v, a) => + { + a[0] = v.midpoint.x; a[1] = v.midpoint.y; a[2] = v.midpoint.z; + a[3] = v.velocity.x; a[4] = v.velocity.y; a[5] = v.velocity.z; + a[6] = v.speed; a[7] = v.acceleration; a[8] = v.halfLength; + }), + Add(f, new Fields(("frequency", Val()), ("stretch", Val()), ("axis", Xyz()), ("shift", Xyz()), ("offset", Xyz()), ("octaveStep", Xyz())), + a => new SpanStage { frequency = a[0], stretch = a[1], axis = new float3(a[2], a[3], a[4]), shift = new float3(a[5], a[6], a[7]), offset = new float3(a[8], a[9], a[10]), octaveStep = new float3(a[11], a[12], a[13]) }, + (v, a) => + { + a[0] = v.frequency; a[1] = v.stretch; + a[2] = v.axis.x; a[3] = v.axis.y; a[4] = v.axis.z; + a[5] = v.shift.x; a[6] = v.shift.y; a[7] = v.shift.z; + a[8] = v.offset.x; a[9] = v.offset.y; a[10] = v.offset.z; + a[11] = v.octaveStep.x; a[12] = v.octaveStep.y; a[13] = v.octaveStep.z; + }), + Add(f, new Fields(("nearest", Xyzw()), ("second", Xyzw()), ("nearestSite", Val()), ("secondSite", Val())), + a => new CultSiteCells(new float4(a[0], a[1], a[2], a[3]), new float4(a[4], a[5], a[6], a[7]), a[8], a[9]), + (v, a) => + { + a[0] = v.nearest.x; a[1] = v.nearest.y; a[2] = v.nearest.z; a[3] = v.nearest.w; + a[4] = v.second.x; a[5] = v.second.y; a[6] = v.second.z; a[7] = v.second.w; + a[8] = v.nearestSite; a[9] = v.secondSite; }), }; diff --git a/src/GameCult.Caching.MessagePack/CultMathResolver.cs b/src/GameCult.Caching.MessagePack/CultMathResolver.cs index 8383a464..048b7f87 100644 --- a/src/GameCult.Caching.MessagePack/CultMathResolver.cs +++ b/src/GameCult.Caching.MessagePack/CultMathResolver.cs @@ -180,7 +180,7 @@ public sealed class CultMathResolver : IFormatterResolver return value; }), - // Compositions: matrices are rows, rect is [min, max], CultCellular is [nearest, edge, id], CultPhasor is [cos, sin]. + // Compositions: matrices are rows, rect is [min, max], CultCellular is [nearest, edge, id], CultPhasor is [cosine, sine], SpanNoise is [field, curvature, fold], SpanPath is [midpoint, velocity, speed, acceleration, halfLength], SpanStage is [frequency, stretch, axis, shift, offset, octaveStep], CultSiteCells is [nearest, second, nearestSite, secondSite]. Shape((ref MessagePackWriter w, float2x2 v) => { w.WriteArrayHeader(2); PutFloat2(ref w, v[0]); PutFloat2(ref w, v[1]); }, (ref MessagePackReader r) => { @@ -221,7 +221,7 @@ public sealed class CultMathResolver : IFormatterResolver } return value; }), - Shape((ref MessagePackWriter w, CultPhasor v) => { w.WriteArrayHeader(2); PutFloat4(ref w, v.cos); PutFloat4(ref w, v.sin); }, + Shape((ref MessagePackWriter w, CultPhasor v) => { w.WriteArrayHeader(2); PutFloat4(ref w, v.cosine); PutFloat4(ref w, v.sine); }, (ref MessagePackReader r) => { var value = default(CultPhasor); @@ -229,8 +229,78 @@ public sealed class CultMathResolver : IFormatterResolver { switch (i) { - case 0: value.cos = GetFloat4(ref r); break; - case 1: value.sin = GetFloat4(ref r); break; + case 0: value.cosine = GetFloat4(ref r); break; + case 1: value.sine = GetFloat4(ref r); break; + default: r.Skip(); break; + } + } + return value; + }), + Shape((ref MessagePackWriter w, SpanNoise v) => { w.WriteArrayHeader(3); PutFloat4(ref w, v.field); w.Write(v.curvature); w.Write(v.fold); }, + (ref MessagePackReader r) => + { + var value = default(SpanNoise); + for (int i = 0, n = r.ReadArrayHeader(); i < n; i++) + { + switch (i) + { + case 0: value.field = GetFloat4(ref r); break; + case 1: value.curvature = r.ReadSingle(); break; + case 2: value.fold = r.ReadSingle(); break; + default: r.Skip(); break; + } + } + return value; + }), + Shape((ref MessagePackWriter w, SpanPath v) => { w.WriteArrayHeader(5); PutFloat3(ref w, v.midpoint); PutFloat3(ref w, v.velocity); w.Write(v.speed); w.Write(v.acceleration); w.Write(v.halfLength); }, + (ref MessagePackReader r) => + { + var value = default(SpanPath); + for (int i = 0, n = r.ReadArrayHeader(); i < n; i++) + { + switch (i) + { + case 0: value.midpoint = GetFloat3(ref r); break; + case 1: value.velocity = GetFloat3(ref r); break; + case 2: value.speed = r.ReadSingle(); break; + case 3: value.acceleration = r.ReadSingle(); break; + case 4: value.halfLength = r.ReadSingle(); break; + default: r.Skip(); break; + } + } + return value; + }), + Shape((ref MessagePackWriter w, SpanStage v) => { w.WriteArrayHeader(6); w.Write(v.frequency); w.Write(v.stretch); PutFloat3(ref w, v.axis); PutFloat3(ref w, v.shift); PutFloat3(ref w, v.offset); PutFloat3(ref w, v.octaveStep); }, + (ref MessagePackReader r) => + { + var value = default(SpanStage); + for (int i = 0, n = r.ReadArrayHeader(); i < n; i++) + { + switch (i) + { + case 0: value.frequency = r.ReadSingle(); break; + case 1: value.stretch = r.ReadSingle(); break; + case 2: value.axis = GetFloat3(ref r); break; + case 3: value.shift = GetFloat3(ref r); break; + case 4: value.offset = GetFloat3(ref r); break; + case 5: value.octaveStep = GetFloat3(ref r); break; + default: r.Skip(); break; + } + } + return value; + }), + Shape((ref MessagePackWriter w, CultSiteCells v) => { w.WriteArrayHeader(4); PutFloat4(ref w, v.nearest); PutFloat4(ref w, v.second); w.Write(v.nearestSite); w.Write(v.secondSite); }, + (ref MessagePackReader r) => + { + var value = default(CultSiteCells); + for (int i = 0, n = r.ReadArrayHeader(); i < n; i++) + { + switch (i) + { + case 0: value.nearest = GetFloat4(ref r); break; + case 1: value.second = GetFloat4(ref r); break; + case 2: value.nearestSite = r.ReadSingle(); break; + case 3: value.secondSite = r.ReadSingle(); break; default: r.Skip(); break; } } diff --git a/src/GameCult.Caching.MessagePack/DirectoryMessagePackBackingStore.cs b/src/GameCult.Caching.MessagePack/DirectoryMessagePackBackingStore.cs index 76706417..96ae21b9 100644 --- a/src/GameCult.Caching.MessagePack/DirectoryMessagePackBackingStore.cs +++ b/src/GameCult.Caching.MessagePack/DirectoryMessagePackBackingStore.cs @@ -535,10 +535,13 @@ public sealed class DirectoryMessagePackBackingStore : CacheBackingStore }, new Dictionary()); } + // The stamp is judged before the manifest body is parsed, so a store stamped newer is refused whatever its body. Every + // write path parses the manifest under its commit lease before it writes a page or the manifest, so a store another + // process has since stamped newer is refused there too, untouched. (CultPersistedStoreSnapshot Snapshot, byte[][] CatalogBytes, byte[][] RecordBytes) read; try { - read = CultDocumentMessagePackSerialization.ReadStore(manifestBytes); + read = CultDocumentMessagePackSerialization.ReadStore(manifestBytes, RequireReadableStamp); } catch (CultStoreUnreadableException ex) when (ex.Path == null) { @@ -546,20 +549,24 @@ public sealed class DirectoryMessagePackBackingStore : CacheBackingStore } var snapshot = read.Snapshot; - if (!string.Equals(snapshot.FormatVersion, IndexedFormatVersion, StringComparison.Ordinal) && - !string.Equals(snapshot.FormatVersion, IndexedFormatVersionWithIds, StringComparison.Ordinal)) - { - throw new CultStoreUnreadableException( - $"Directory store {_manifestFile.FullName} is {CultDocumentMessagePackSerialization.DescribeHeader(snapshot.FormatVersion)}; only {IndexedFormatVersion} and {IndexedFormatVersionWithIds} are readable.", - _manifestFile.FullName); - } - var catalogBytes = new Dictionary(); for (var index = 0; index < snapshot.SchemaCatalog.Length; index++) catalogBytes[snapshot.SchemaCatalog[index]] = read.CatalogBytes[index]; return (snapshot, catalogBytes); } + // The one verdict on a directory manifest's stamp: this runtime reads v4 and v5. + private void RequireReadableStamp(string stamp) + { + if (!string.Equals(stamp, IndexedFormatVersion, StringComparison.Ordinal) && + !string.Equals(stamp, IndexedFormatVersionWithIds, StringComparison.Ordinal)) + { + throw new CultStoreUnreadableException( + $"Directory store {_manifestFile.FullName} is {CultDocumentMessagePackSerialization.DescribeHeader(stamp)}; only {IndexedFormatVersion} and {IndexedFormatVersionWithIds} are readable.", + _manifestFile.FullName); + } + } + private string ContentAddressedRecordPath(CultPersistedRecord metadata) { if (metadata.Payload == null || metadata.Payload.Length != 32) diff --git a/src/GameCult.Caching.MessagePack/GameCult.Caching.MessagePack.csproj b/src/GameCult.Caching.MessagePack/GameCult.Caching.MessagePack.csproj index b81dcf92..c2588e24 100644 --- a/src/GameCult.Caching.MessagePack/GameCult.Caching.MessagePack.csproj +++ b/src/GameCult.Caching.MessagePack/GameCult.Caching.MessagePack.csproj @@ -11,6 +11,5 @@ - diff --git a/src/GameCult.Caching.MessagePack/README.md b/src/GameCult.Caching.MessagePack/README.md index acb1142f..dfc7bff6 100644 --- a/src/GameCult.Caching.MessagePack/README.md +++ b/src/GameCult.Caching.MessagePack/README.md @@ -101,7 +101,8 @@ broken graph whole (an `ExprGraphException` naming the rule), so a consumer | `float2x2`, `float3x3` | array of row vectors (row-major) | array of row objects | | `rect` | `[min, max]` of `float2` | `{"min":{..},"max":{..}}` | | `CultCellular` | `[nearest, edge, id]` | `{"nearest":{..},"edge":{..},"id":..}` | -| `CultPhasor` | `[cos, sin]` of `float4` | `{"cos":{..},"sin":{..}}` | +| `CultPhasor` | `[cosine, sine]` of `float4` | `{"cosine":{..},"sine":{..}}` (reads legacy `cos`/`sin`) | +| `CultSiteCells` | `[nearest, second, nearestSite, secondSite]` | `{"nearest":{..},"second":{..},"nearestSite":..,"secondSite":..}` | Floats are MessagePack float32 (`0xCA`), doubles float64 (`0xCB`), integers the shortest MessagePack integer. diff --git a/src/GameCult.Caching/Contracts/cultcache-store-composition.md b/src/GameCult.Caching/Contracts/cultcache-store-composition.md index 15874f3d..5ee8bb68 100644 --- a/src/GameCult.Caching/Contracts/cultcache-store-composition.md +++ b/src/GameCult.Caching/Contracts/cultcache-store-composition.md @@ -239,8 +239,13 @@ its version, whatever storedAt it carries. wait bound (30 seconds). - A conditional commit on a store with staged single-record writes throws: flush first. -- Single-file stores lock a sidecar `.lock` opened exclusively. Directory - stores use their existing commit lease. +- Single-file stores lock a sidecar `.lock`: C# by an exclusive + (share-none) open, Rust and TypeScript by an exclusive `LockFileEx` on a + shared open on Windows, and every runtime by `flock(LOCK_EX)` on Unix. Each + excludes the others (TypeScript tests: "a TypeScript write waits while a C# + writer holds the store lock", "... a Rust writer ...", "a C# writer waits + while a TypeScript writer holds the store lock", "a Rust writer waits ..."). + Directory stores use their existing commit lease. - A directory store with no `.commit.lock` (no writer has created it yet, or the store was copied without it) gives a pull no lease, and opening it creates none. Such a pull re-reads the manifest after loading its pages and @@ -280,8 +285,11 @@ refuses to replace a file whose header it cannot read, and leaves it as it was. in that store, and leaves the store clean. - A conditional commit lands the batch onto the file as it is under the lock. -A store is written by one runtime at a time. Whether a Rust `fs2` lock and a C# -exclusive open of the same lock file exclude each other is not established. +C#, Rust and TypeScript writers exclude each other on the shared lock file; +Python takes no cross-process lock yet (`variants:follow_up:py-shared-write-lock`), +and Rust's open fails rather than waits while a C# writer holds the lock +(`variants:follow_up:rust-lock-open-waits`). Another runtime need not obey the +`storedAt` rule. ## Serialization options diff --git a/src/GameCult.Caching/GameCult.Caching.csproj b/src/GameCult.Caching/GameCult.Caching.csproj index ef336d13..dddad783 100644 --- a/src/GameCult.Caching/GameCult.Caching.csproj +++ b/src/GameCult.Caching/GameCult.Caching.csproj @@ -15,5 +15,6 @@ + \ No newline at end of file diff --git a/src/GameCult.Mesh/GameCult.Mesh.csproj b/src/GameCult.Mesh/GameCult.Mesh.csproj index 898fa54f..d4776d2d 100644 --- a/src/GameCult.Mesh/GameCult.Mesh.csproj +++ b/src/GameCult.Mesh/GameCult.Mesh.csproj @@ -13,6 +13,10 @@ + + + + diff --git a/src/GameCult.Unity/Assets/Caching/CHANGELOG.md b/src/GameCult.Unity/Assets/Caching/CHANGELOG.md index a5a0182a..4f533ecd 100644 --- a/src/GameCult.Unity/Assets/Caching/CHANGELOG.md +++ b/src/GameCult.Unity/Assets/Caching/CHANGELOG.md @@ -2,6 +2,19 @@ All notable changes to this package are documented in this file. +## [2.0.0] + +### Breaking + +- Requires `org.gamecult.cultlib` 2.0.0. Unity Package Manager resolves one + cultlib per project, so taking this release moves the project to cultlib 2.0.0. + +### Added + +- Studio grouping tree: types a document model groups appear under their group, + with create in group. +- Dragging a source record onto a reference field sets the reference. + ## [1.4.0] ### Added diff --git a/src/GameCult.Unity/Assets/Caching/package.json b/src/GameCult.Unity/Assets/Caching/package.json index dbd0815c..8c6fa91e 100644 --- a/src/GameCult.Unity/Assets/Caching/package.json +++ b/src/GameCult.Unity/Assets/Caching/package.json @@ -1,7 +1,7 @@ { "name": "org.gamecult.caching.unity", "displayName": "GameCult CultCache Unity Tools", - "version": "1.4.0", + "version": "2.0.0", "unity": "2021.3", "description": "Unity editor tooling for inspecting and editing CultCache .cc stores.", "keywords": [ @@ -10,7 +10,7 @@ "Data" ], "dependencies": { - "org.gamecult.cultlib": "1.0.60" + "org.gamecult.cultlib": "2.0.0" }, "license": "MIT", "category": "Scripting" diff --git a/tests/GameCult.Caching.InteropPeer/Program.cs b/tests/GameCult.Caching.InteropPeer/Program.cs index 345d9d77..3c8eb92b 100644 --- a/tests/GameCult.Caching.InteropPeer/Program.cs +++ b/tests/GameCult.Caching.InteropPeer/Program.cs @@ -17,7 +17,7 @@ static async Task ProgramMainAsync(string[] args) { if (args.Length == 0) { - throw new InvalidOperationException("Expected mode: write | read | rewrite | write-routed "); + throw new InvalidOperationException("Expected mode: write | read | rewrite | hold-lock | write-routed "); } var mode = args[0]; @@ -51,6 +51,9 @@ static async Task ProgramMainAsync(string[] args) case "edit-in-place": await EditInPlaceAsync(file, RequireArg(options, "kind")); return 0; + case "hold-lock": + HoldLock(file, int.Parse(RequireArg(options, "ms"), CultureInfo.InvariantCulture)); + return 0; default: throw new InvalidOperationException($"Unknown mode {mode}."); } @@ -62,6 +65,20 @@ static async Task ProgramMainAsync(string[] args) } } +// Holds the store lock exactly as CultCache.AcquireLock opens it, for --ms, then releases it. +static void HoldLock(string file, int milliseconds) +{ + using var held = new System.IO.FileStream( + file + ".lock", + System.IO.FileMode.OpenOrCreate, + System.IO.FileAccess.ReadWrite, + System.IO.FileShare.None, + bufferSize: 1); + Console.WriteLine("{\"held\":true}"); + Console.Out.Flush(); + System.Threading.Thread.Sleep(milliseconds); +} + static async Task WriteAsync(string file, string runtimeId) { var cache = BuildCache(file); diff --git a/tests/GameCult.Caching.Tests/ConditionalCommitTests.cs b/tests/GameCult.Caching.Tests/ConditionalCommitTests.cs index 749fa66a..1dfc6561 100644 --- a/tests/GameCult.Caching.Tests/ConditionalCommitTests.cs +++ b/tests/GameCult.Caching.Tests/ConditionalCommitTests.cs @@ -53,6 +53,136 @@ namespace GameCult.Caching.Tests UnrelatedInsert(DirectoryStore(PathOf("insert.cc"))); } + // ---- a record loaded under compatible schema drift: written under v1, read by a cache that knows only v2 ---- + + [TestCase(false)] + [TestCase(true)] + public void UnchangedDriftedRecordSatisfiesExpect(bool directory) + { + SeedDrift(directory); + using var cache = Drift(directory, NarrowDrift).Open(); + + Assert.That(DriftCommit(cache, cache.Get(DriftKey)!, 2), Is.True, "an unchanged drifted record failed Expect"); + using var reader = Drift(directory, NarrowDrift).Open(); + Assert.That(reader.Get(DriftKey)!.Value, Is.EqualTo(2)); + } + + [TestCase(false)] + [TestCase(true)] + public void ValueChangedDriftedRecordFailsExpect(bool directory) + { + SeedDrift(directory); + using var cache = Drift(directory, NarrowDrift).Open(); + var observed = cache.Get(DriftKey)!; + using (var other = Drift(directory, NarrowDrift).Open()) + Assert.That(other.Commit(batch => batch.Upsert(new ConditionalDriftNarrow { Name = "drift", Value = 9 }, new CultRecordHandle(DriftKey))), Is.True); + + Assert.That(DriftCommit(cache, observed, 2), Is.False, "a value another writer changed passed Expect"); + using var reader = Drift(directory, NarrowDrift).Open(); + Assert.That(reader.Get(DriftKey)!.Value, Is.EqualTo(9)); + } + + [Test] + public void RecordRewrittenUnderAnotherSchemaWithItsStoredAtFailsExpect() + { + SeedDrift(directory: false); + using var cache = Drift(false, NarrowDrift).Open(); + var observed = cache.Get(DriftKey)!; + var storedAt = cache.GetStored(DriftKey)!.StoredAt; + using (var other = Drift(false, ReusedDrift).Open()) + other.BackingStores[0].PushAll(); + using (var reader = Drift(false, ReusedDrift).Open()) + Assert.That(reader.GetStored(DriftKey)!.StoredAt, Is.EqualTo(storedAt), "the rewrite kept storedAt"); + + Assert.That(DriftCommit(cache, observed, 2), Is.False, "a record rewritten under another schema passed Expect on storedAt alone"); + } + + // The directory store rewrites only what is pushed to it, so the other writer pushes the record it read unchanged. + [TestCase(false)] + [TestCase(true)] + public void AnotherWritersNormalisingFlushFailsExpectUntilReRead(bool directory) + { + SeedDrift(directory); + using var cache = Drift(directory, NarrowDrift).Open(); + var observed = cache.Get(DriftKey)!; + using (var other = Drift(directory, NarrowDrift).Open()) + { + other.BackingStores[0].Push(other.GetStored(DriftKey)!); + other.BackingStores[0].PushAll(); + } + + Assert.That(DriftCommit(cache, observed, 2), Is.False, "Expect held across a rewrite under a schema id this cache did not read"); + cache.BackingStores[0].PullAll(); + Assert.That(DriftCommit(cache, cache.Get(DriftKey)!, 3), Is.True, "a re-read did not refresh the persisted schema id"); + } + + [Test] + public void OwnFlushKeepsDriftedExpectHolding() + { + SeedDrift(directory: false); + using var cache = Drift(false, NarrowDrift).Open(); + cache.BackingStores[0].PushAll(); + + Assert.That(DriftCommit(cache, cache.Get(DriftKey)!, 2), Is.True, "Expect failed after this cache's own flush rewrote the record"); + } + + // A store rewrites what is pushed to it under the entry's descriptor; the entry then names that schema id. + [TestCase(false)] + [TestCase(true)] + public void OwnPushOfALoadedDriftedEntryKeepsExpectHolding(bool directory) + { + SeedDrift(directory); + using var cache = Drift(directory, NarrowDrift).Open(); + cache.BackingStores[0].Push(cache.GetStored(DriftKey)!); + cache.BackingStores[0].PushAll(); + + var stored = cache.GetStored(DriftKey)!; + Assert.That(stored.StoredSchemaId, Is.EqualTo(stored.Descriptor.SchemaId), "the rewrite was not recorded"); + Assert.That(DriftCommit(cache, cache.Get(DriftKey)!, 2), Is.True, "Expect failed after this cache's own push rewrote the record"); + } + + [Test] + public void OwnUnconditionalCommitKeepsDriftedExpectHolding() + { + SeedDrift(directory: false); + using var cache = Drift(false, NarrowDrift).Open(); + Assert.That(cache.Commit(batch => batch.Upsert(new ConditionalDriftNarrow { Name = "other" }, new CultRecordHandle(new CultRecordKey("other")))), Is.True); + + Assert.That(DriftCommit(cache, cache.Get(DriftKey)!, 2), Is.True, "Expect failed after this cache's own whole-file commit rewrote the record"); + } + + [TestCase(false)] + [TestCase(true)] + public void ExpectUnchangedHoldsOnAnUntouchedDriftedStore(bool directory) + { + SeedDrift(directory); + using var cache = Drift(directory, NarrowDrift).Open(); + + Assert.That(cache.Commit(batch => + { + batch.ExpectUnchanged(); + batch.Upsert(new ConditionalDriftNarrow { Name = "other" }, new CultRecordHandle(new CultRecordKey("other"))); + }), Is.True, "ExpectUnchanged failed on a store nobody touched"); + } + + [Test] + public void UpsertUnderTheCurrentSchemaMovesThePersistedId() + { + SeedDrift(directory: false); + string wide; + using (var writer = Drift(false, WideDrift).Open()) + wide = writer.GetStored(DriftKey)!.Descriptor.SchemaId; + using var cache = Drift(false, NarrowDrift).Open(); + var loaded = cache.GetStored(DriftKey)!; + Assert.That(loaded.StoredSchemaId, Is.EqualTo(wide), "the entry carries the schema id its record is stored under"); + Assert.That(loaded.Descriptor.SchemaId, Is.Not.EqualTo(wide)); + + Assert.That(DriftCommit(cache, cache.Get(DriftKey)!, 2), Is.True); + var written = cache.GetStored(DriftKey)!; + Assert.That(written.StoredSchemaId, Is.EqualTo(written.Descriptor.SchemaId)); + Assert.That(DriftCommit(cache, cache.Get(DriftKey)!, 3), Is.True, "Expect failed on the record this cache just wrote"); + } + // The lock is a FileShare.None handle, which excludes another handle in this process exactly as it does one in // another process, so two store instances on two threads prove the property without a process boundary. [Test] @@ -872,9 +1002,34 @@ namespace GameCult.Caching.Tests private static readonly CultDocumentRegistry Registry = CultDocumentRegistry.ForTypes(new[] { typeof(Counter), typeof(Tally), typeof(Slow) }); - private static StoreFactory SingleFile(string path) => new(path, () => new SingleFileMessagePackBackingStore(path)); + private static StoreFactory SingleFile(string path, CultDocumentRegistry? registry = null) => + new(path, () => new SingleFileMessagePackBackingStore(path), registry); - private static StoreFactory DirectoryStore(string path) => new(path, () => new DirectoryMessagePackBackingStore(path)); + private static StoreFactory DirectoryStore(string path, CultDocumentRegistry? registry = null) => + new(path, () => new DirectoryMessagePackBackingStore(path), registry); + + private static readonly CultRecordKey DriftKey = new("drift"); + private static readonly CultDocumentRegistry WideDrift = CultDocumentRegistry.ForTypes(new[] { typeof(ConditionalDriftWide) }); + private static readonly CultDocumentRegistry NarrowDrift = CultDocumentRegistry.ForTypes(new[] { typeof(ConditionalDriftNarrow) }); + private static readonly CultDocumentRegistry ReusedDrift = CultDocumentRegistry.ForTypes(new[] { typeof(ConditionalDriftReused) }); + + private StoreFactory Drift(bool directory, CultDocumentRegistry registry) => + directory ? DirectoryStore(PathOf("drift.cc"), registry) : SingleFile(PathOf("drift.cc"), registry); + + // The record at DriftKey, written under v1. + private void SeedDrift(bool directory) + { + using var cache = Drift(directory, WideDrift).Open(); + Assert.That(cache.Commit(batch => batch.Upsert( + new ConditionalDriftWide { Name = "drift", Value = 1, Extra = "extra" }, + new CultRecordHandle(DriftKey))), Is.True); + } + + private static bool DriftCommit(CultCache cache, object observed, int value) => cache.Commit(batch => + { + batch.Expect(DriftKey, observed); + batch.Upsert(new ConditionalDriftNarrow { Name = "drift", Value = value }, new CultRecordHandle(DriftKey)); + }); // Pauses a pull between reading the file and handing the records to the cache. private sealed class PausingStore : SingleFileMessagePackBackingStore @@ -914,17 +1069,20 @@ namespace GameCult.Caching.Tests { private readonly Func _create; - public StoreFactory(string path, Func create) + private readonly CultDocumentRegistry _registry; + + public StoreFactory(string path, Func create, CultDocumentRegistry? registry = null) { Path = path; _create = create; + _registry = registry ?? Registry; } public string Path { get; } public CultCache Open() { - var cache = new CultCache(Registry); + var cache = new CultCache(_registry); cache.AddBackingStore(_create()); return cache; } @@ -942,6 +1100,49 @@ namespace GameCult.Caching.Tests public int Value; } + // One schema at three versions of its type: Narrow dropped Wide's Extra, and Reused put Colour in that slot. + [CultDocument("tests.conditional_drift", "tests.conditional_drift.v1")] + [MessagePackObject(AllowPrivate = true)] + internal sealed class ConditionalDriftWide + { + [Key(0)] + [CultName] + public string Name = string.Empty; + + [Key(1)] + public int Value; + + [Key(2)] + public string Extra = string.Empty; + } + + [CultDocument("tests.conditional_drift", "tests.conditional_drift.v2")] + [MessagePackObject(AllowPrivate = true)] + internal sealed class ConditionalDriftNarrow + { + [Key(0)] + [CultName] + public string Name = string.Empty; + + [Key(1)] + public int Value; + } + + [CultDocument("tests.conditional_drift", "tests.conditional_drift.v3")] + [MessagePackObject(AllowPrivate = true)] + internal sealed class ConditionalDriftReused + { + [Key(0)] + [CultName] + public string Name = string.Empty; + + [Key(1)] + public int Value; + + [Key(2)] + public string Colour = string.Empty; + } + [CultDocument("tests.conditional_tally", "tests.conditional_tally.v1")] [MessagePackObject(AllowPrivate = true)] internal sealed class Tally diff --git a/tests/GameCult.Caching.Tests/CultMathJsonTests.cs b/tests/GameCult.Caching.Tests/CultMathJsonTests.cs index 90d739be..33753074 100644 --- a/tests/GameCult.Caching.Tests/CultMathJsonTests.cs +++ b/tests/GameCult.Caching.Tests/CultMathJsonTests.cs @@ -44,7 +44,15 @@ namespace GameCult.Caching.Tests Json(new CultCellular(new float4(1f, 2f, 3f, 4f), new float4(5f, 6f, 7f, 8f), 0.25f)).Should().Be( """{"nearest":{"x":1,"y":2,"z":3,"w":4},"edge":{"x":5,"y":6,"z":7,"w":8},"id":0.25}"""); Json(new CultPhasor(new float4(1f, 2f, 3f, 4f), new float4(5f, 6f, 7f, 8f))).Should().Be( - """{"cos":{"x":1,"y":2,"z":3,"w":4},"sin":{"x":5,"y":6,"z":7,"w":8}}"""); + """{"cosine":{"x":1,"y":2,"z":3,"w":4},"sine":{"x":5,"y":6,"z":7,"w":8}}"""); + Json(new SpanNoise(new float4(1f, 2f, 3f, 4f), 0.25f, 0.5f)).Should().Be( + """{"field":{"x":1,"y":2,"z":3,"w":4},"curvature":0.25,"fold":0.5}"""); + Json(new SpanPath { midpoint = new float3(1f, 2f, 3f), velocity = new float3(4f, 5f, 6f), speed = 7f, acceleration = 8f, halfLength = 9f }).Should().Be( + """{"midpoint":{"x":1,"y":2,"z":3},"velocity":{"x":4,"y":5,"z":6},"speed":7,"acceleration":8,"halfLength":9}"""); + Json(new SpanStage { frequency = 1f, stretch = 2f, axis = new float3(3f, 4f, 5f), shift = new float3(6f, 7f, 8f), offset = new float3(9f, 10f, 11f), octaveStep = new float3(12f, 13f, 14f) }).Should().Be( + """{"frequency":1,"stretch":2,"axis":{"x":3,"y":4,"z":5},"shift":{"x":6,"y":7,"z":8},"offset":{"x":9,"y":10,"z":11},"octaveStep":{"x":12,"y":13,"z":14}}"""); + Json(new CultSiteCells(new float4(1, 2, 3, 4), new float4(5, 6, 7, 8), 9f, 10f)).Should().Be( + """{"nearest":{"x":1,"y":2,"z":3,"w":4},"second":{"x":5,"y":6,"z":7,"w":8},"nearestSite":9,"secondSite":10}"""); } [Test] @@ -69,6 +77,11 @@ namespace GameCult.Caching.Tests RoundTrip(new rect(-1f, -2f, 5f, 7f)); RoundTrip(new CultCellular(new float4(1, 2, 3, 4), new float4(5, 6, 7, 8), 0.25f)); RoundTrip(new CultPhasor(new float4(1, 2, 3, 4), new float4(5, 6, 7, 8))); + RoundTrip(new SpanNoise(new float4(1, 2, 3, 4), 0.25f, 0.5f)); + RoundTrip(new SpanPath { midpoint = new float3(1f, 2f, 3f), velocity = new float3(4f, 5f, 6f), speed = 7f, acceleration = 8f, halfLength = 9f }); + RoundTrip(new SpanStage { frequency = 1f, stretch = 2f, axis = new float3(3f, 4f, 5f), shift = new float3(6f, 7f, 8f), offset = new float3(9f, 10f, 11f), octaveStep = new float3(12f, 13f, 14f) }); + RoundTrip(new CultSiteCells(new float4(1, 2, 3, 4), new float4(5, 6, 7, 8), 9f, 10f)); + RoundTrip(new CultSiteCells(new float4(0, 0, 0, 1.0e30f), new float4(0, 0, 0, 1.0e30f), -1f, -1f)); } [Test] @@ -79,6 +92,87 @@ namespace GameCult.Caching.Tests Parse("null").Should().BeNull(); } + [Test] + public void Reading_AcceptsTheLegacyPhasorNames() + { + // The fixture is what the 0.4.1-era encoder wrote: keys cos/sin. + var path = System.IO.Path.Combine(TestContext.CurrentContext.TestDirectory, "Fixtures", "cultphasor-json-legacy.json"); + var legacy = Parse(System.IO.File.ReadAllText(path)); + var current = new[] + { + new CultPhasor(new float4(1f, 2f, 3f, 4f), new float4(5f, 6f, 7f, 8f)), + math.phacelle(new float3(0.3f, 1.7f, -2.2f), new float3(6.2831853f, 0f, 0f), 0.25f, 0.5f), + }; + legacy.Should().HaveCount(2); + for (var i = 0; i < 2; i++) + { + BitsOf(legacy[i]).Should().Equal(BitsOf(current[i])); + BitsOf(Parse(Json(current[i]))).Should().Equal(BitsOf(current[i])); + } + + var caseInsensitive = new JsonSerializerOptions { PropertyNameCaseInsensitive = true }.AddCultMathConverters(); + BitsOf(JsonSerializer.Deserialize("""{"COS":{"x":1,"y":2,"z":3,"w":4},"Sin":{"x":5,"y":6,"z":7,"w":8}}""", caseInsensitive)) + .Should().Equal(BitsOf(current[0])); + } + + [Test] + public void Reading_RefusesALegacyAndCurrentNameTogether() + { + var property = typeof(JsonSerializerOptions).GetProperty("AllowDuplicateProperties"); + Assert.That(property, Is.Not.Null, "the test runtime's System.Text.Json has AllowDuplicateProperties"); + var strict = new JsonSerializerOptions().AddCultMathConverters(); + property!.SetValue(strict, false); + Action both = () => JsonSerializer.Deserialize("""{"cos":{"x":1},"cosine":{"x":2}}""", strict); + both.Should().Throw().WithMessage("*appears more than once*"); + Action reversed = () => JsonSerializer.Deserialize("""{"sine":{"x":1},"sin":{"x":2}}""", strict); + reversed.Should().Throw().WithMessage("*appears more than once*"); + + // With duplicates allowed the later property replaces the earlier one, as for any repeated name. + Parse("""{"cos":{"x":1,"y":9},"cosine":{"x":2}}""").cosine.Should().Be(new float4(2f, 0f, 0f, 0f)); + } + + [Test] + public void Reading_AcceptsTheLegacyPhasorNamesUnderDisallow() + { + var options = new JsonSerializerOptions { UnmappedMemberHandling = JsonUnmappedMemberHandling.Disallow }.AddCultMathConverters(); + var phasor = JsonSerializer.Deserialize("""{"cos":{"x":1,"y":2,"z":3,"w":4},"sin":{"x":5,"y":6,"z":7,"w":8}}""", options); + BitsOf(phasor).Should().Equal(BitsOf(new CultPhasor(new float4(1f, 2f, 3f, 4f), new float4(5f, 6f, 7f, 8f)))); + Action unknown = () => JsonSerializer.Deserialize("""{"cos":{"x":1},"coss":{"x":2}}""", options); + unknown.Should().Throw().WithMessage("*not a component*"); + } + + [Test] + public void Reading_TreatsAThirdOccurrenceOfAPhasorNameAsADuplicate() + { + var property = typeof(JsonSerializerOptions).GetProperty("AllowDuplicateProperties"); + Assert.That(property, Is.Not.Null, "the test runtime's System.Text.Json has AllowDuplicateProperties"); + var strict = new JsonSerializerOptions().AddCultMathConverters(); + property!.SetValue(strict, false); + Action thrice = () => JsonSerializer.Deserialize("""{"cos":{"x":1},"cosine":{"x":2},"cos":{"x":3}}""", strict); + thrice.Should().Throw().WithMessage("*appears more than once*"); + + // Allowed, the last occurrence replaces the whole value, including after a third. + Parse("""{"cos":{"x":1,"y":9},"cosine":{"x":2},"cos":{"z":3}}""").cosine.Should().Be(new float4(0f, 0f, 3f, 0f)); + } + + [Test] + public void Reading_SkipsUnknownNamesWhenCaseInsensitive() + { + var options = new JsonSerializerOptions { PropertyNameCaseInsensitive = true }.AddCultMathConverters(); + JsonSerializer.Deserialize("""{"extra":[1,2],"COSINE":{"x":3},"coss":{"x":4}}""", options).cosine.x.Should().Be(3f); + JsonSerializer.Deserialize("""{"X":1,"q":2,"Y":3}""", options).Should().Be(new float2(1f, 3f)); + } + + [Test] + public void Writing_NeverEmitsLegacyNames() + { + using var document = JsonDocument.Parse(Json(new CultPhasor(new float4(1f, 1f, 1f, 1f), new float4(2f, 2f, 2f, 2f)))); + document.RootElement.EnumerateObject().Select(p => p.Name).Should().Equal("cosine", "sine"); + } + + private static int[] BitsOf(CultPhasor v) => new[] { v.cosine.x, v.cosine.y, v.cosine.z, v.cosine.w, v.sine.x, v.sine.y, v.sine.z, v.sine.w } + .Select(BitConverter.SingleToInt32Bits).ToArray(); + [Test] public void Reading_RefusesShapesThatAreNotTheType() { diff --git a/tests/GameCult.Caching.Tests/CultMathSerializationTests.cs b/tests/GameCult.Caching.Tests/CultMathSerializationTests.cs index 98f126af..c55154fb 100644 --- a/tests/GameCult.Caching.Tests/CultMathSerializationTests.cs +++ b/tests/GameCult.Caching.Tests/CultMathSerializationTests.cs @@ -102,6 +102,11 @@ namespace GameCult.Caching.Tests RoundTrip(new rect(-1f, -2f, 5f, 7f)); RoundTrip(new CultCellular(new float4(1, 2, 3, 4), new float4(5, 6, 7, 8), 0.25f)); RoundTrip(new CultPhasor(new float4(1, 2, 3, 4), new float4(5, 6, 7, 8))); + RoundTrip(new SpanNoise(new float4(1, 2, 3, 4), 0.25f, 0.5f)); + RoundTrip(new SpanPath { midpoint = new float3(1f, 2f, 3f), velocity = new float3(4f, 5f, 6f), speed = 7f, acceleration = 8f, halfLength = 9f }); + RoundTrip(new SpanStage { frequency = 1f, stretch = 2f, axis = new float3(3f, 4f, 5f), shift = new float3(6f, 7f, 8f), offset = new float3(9f, 10f, 11f), octaveStep = new float3(12f, 13f, 14f) }); + RoundTrip(new CultSiteCells(new float4(1, 2, 3, 4), new float4(5, 6, 7, 8), 9f, 10f)); + RoundTrip(new CultSiteCells(new float4(0, 0, 0, 1.0e30f), new float4(0, 0, 0, 1.0e30f), -1f, -1f)); } [Test] @@ -137,6 +142,30 @@ namespace GameCult.Caching.Tests "92" + "94CA3F800000CA40000000CA40400000CA40800000" + "94CA40A00000CA40C00000CA40E00000CA41000000"); + Hex(new SpanNoise(new float4(1f, 2f, 3f, 4f), 0.25f, 0.5f)).Should().Be( + "93" + + "94CA3F800000CA40000000CA40400000CA40800000" + + "CA3E800000" + + "CA3F000000"); + Hex(new SpanPath { midpoint = new float3(1f, 2f, 3f), velocity = new float3(4f, 5f, 6f), speed = 7f, acceleration = 8f, halfLength = 9f }).Should().Be( + "95" + + "93CA3F800000CA40000000CA40400000" + + "93CA40800000CA40A00000CA40C00000" + + "CA40E00000CA41000000CA41100000"); + Hex(new SpanStage { frequency = 1f, stretch = 2f, axis = new float3(3f, 4f, 5f), shift = new float3(6f, 7f, 8f), offset = new float3(9f, 10f, 11f), octaveStep = new float3(12f, 13f, 14f) }).Should().Be( + "96" + + "CA3F800000" + + "CA40000000" + + "93CA40400000CA40800000CA40A00000" + + "93CA40C00000CA40E00000CA41000000" + + "93CA41100000CA41200000CA41300000" + + "93CA41400000CA41500000CA41600000"); + Hex(new CultSiteCells(new float4(1, 2, 3, 4), new float4(5, 6, 7, 8), 9f, 10f)).Should().Be( + "94" + + "94CA3F800000CA40000000CA40400000CA40800000" + + "94CA40A00000CA40C00000CA40E00000CA41000000" + + "CA41100000" + + "CA41200000"); } [Test] diff --git a/tests/GameCult.Caching.Tests/Fixtures/cultphasor-json-legacy.json b/tests/GameCult.Caching.Tests/Fixtures/cultphasor-json-legacy.json new file mode 100644 index 00000000..c04540ff --- /dev/null +++ b/tests/GameCult.Caching.Tests/Fixtures/cultphasor-json-legacy.json @@ -0,0 +1 @@ +[{"cos":{"x":1,"y":2,"z":3,"w":4},"sin":{"x":5,"y":6,"z":7,"w":8}},{"cos":{"x":-5.849812,"y":0.051139403,"z":0.14261721,"w":-0.087419346},"sin":{"x":-2.0218675,"y":0.7666904,"z":-0.22879826,"w":0.9240916}}] diff --git a/tests/GameCult.Caching.Tests/PreCut2StoreFormatTests.cs b/tests/GameCult.Caching.Tests/PreCut2StoreFormatTests.cs index 279101f5..3298743d 100644 --- a/tests/GameCult.Caching.Tests/PreCut2StoreFormatTests.cs +++ b/tests/GameCult.Caching.Tests/PreCut2StoreFormatTests.cs @@ -134,6 +134,404 @@ namespace GameCult.Caching.Tests Assert.That(Refusal(vector), Is.Not.Empty); } + // The release-now-c2a-bumps-format ruling rests on this: a store stamped with a newer format version is refused at + // open, so this runtime cannot rewrite it. The file stays byte-identical through the refusal and through later + // writes to the cache, whose refused store was never attached. + [TestCase("cultcache.store.v4")] + [TestCase("cultcache.store.v9")] + public async Task SingleFileStampedWithANewerFormatIsRefusedAndNeverRewritten(string newerFormat) + { + var root = CopyFixture("single-file-v1"); + try + { + var file = Path.Combine(root, "store.msgpack"); + var snapshot = CultDocumentMessagePackSerialization.DeserializeSnapshot(File.ReadAllBytes(file)); + snapshot.FormatVersion = newerFormat; + File.WriteAllBytes(file, CultDocumentMessagePackSerialization.SerializeSnapshot(snapshot)); + var before = File.ReadAllBytes(file); + + using var cache = new CultCache(); + var error = Assert.Throws(() => + cache.AddBackingStore(new SingleFileMessagePackBackingStore(file)))!; + Assert.That(error.Message, Does.Contain(newerFormat)); + Assert.That(cache.BackingStores, Is.Empty); + + await cache.AddAsync(new PreCut2FixtureNote { Text = "written after the refusal" }); + await cache.FlushAsync(); + + Assert.That(File.ReadAllBytes(file), Is.EqualTo(before)); + } + finally + { + if (Directory.Exists(root)) Directory.Delete(root, recursive: true); + } + } + + // Two processes: this one attached a v1 store, then a later build rewrote it as v4. A plain flush, a staged write + // and a staged delete must each refuse to downgrade it, leaving the file as the other process wrote it. + [Test] + public async Task SingleFileFlushRefusesAStoreAnotherProcessStampedNewerSinceAttach() + { + var root = CopyFixture("single-file-v1"); + try + { + var file = Path.Combine(root, "store.msgpack"); + using var cache = new CultCache(); + cache.AddBackingStore(new SingleFileMessagePackBackingStore(file)); + await cache.PullAllBackingStoresAsync(); + + var snapshot = CultDocumentMessagePackSerialization.DeserializeSnapshot(File.ReadAllBytes(file)); + snapshot.FormatVersion = "cultcache.store.v4"; + File.WriteAllBytes(file, CultDocumentMessagePackSerialization.SerializeSnapshot(snapshot)); + var before = File.ReadAllBytes(file); + + await cache.AddAsync(new PreCut2FixtureNote { Text = "staged after the other process wrote v4" }); + Assert.Throws(() => cache.FlushAllBackingStores()); + Assert.That(File.ReadAllBytes(file), Is.EqualTo(before)); + + cache.Remove(new CultRecordKey("item:anvil")); + Assert.Throws(() => cache.BackingStores.Single().PushAll()); + Assert.That(File.ReadAllBytes(file), Is.EqualTo(before)); + } + finally + { + if (Directory.Exists(root)) Directory.Delete(root, recursive: true); + } + } + + // A write set cannot merge with a disk it cannot read: a flush refuses a store whose stamp is unreadable and leaves it + // as it is. + [Test] + public async Task SingleFileFlushRefusesAStoreWhoseStampIsUnreadable() + { + var root = CopyFixture("single-file-v1"); + try + { + var file = Path.Combine(root, "store.msgpack"); + using var cache = new CultCache(); + cache.AddBackingStore(new SingleFileMessagePackBackingStore(file)); + await cache.PullAllBackingStoresAsync(); + var damaged = new byte[] { 0xc1, 0xc1 }; + File.WriteAllBytes(file, damaged); + + await cache.AddAsync(new PreCut2FixtureNote { Text = "refused" }); + Assert.Throws(() => cache.FlushAllBackingStores()); + + Assert.That(File.ReadAllBytes(file), Is.EqualTo(damaged)); + } + finally + { + if (Directory.Exists(root)) Directory.Delete(root, recursive: true); + } + } + + private static byte[] Raw(params object[] parts) + { + var bytes = new System.Collections.Generic.List(); + foreach (var part in parts) + { + switch (part) + { + case byte single: bytes.Add(single); break; + case string text: + var encoded = System.Text.Encoding.UTF8.GetBytes(text); + bytes.Add(0xd9); bytes.Add((byte)encoded.Length); bytes.AddRange(encoded); break; + case byte[] binary: + bytes.Add(0xc4); bytes.Add((byte)binary.Length); bytes.AddRange(binary); break; + default: throw new ArgumentException(part.GetType().Name); + } + } + return bytes.ToArray(); + } + + // The format decision comes from the header alone. A stamp this runtime does not read refuses whatever follows it, + // so a body that will not parse can never make a newer store look like damage a flush may heal. + private static System.Collections.Generic.IEnumerable NewerStampOverUnreadableBody() + { + byte garbage = 0xc1; + yield return new TestCaseData(Raw((byte)0x93, "cultcache.store.v4", garbage, garbage)).SetName("v4 header over a bad body"); + yield return new TestCaseData(Raw((byte)0x93, System.Text.Encoding.UTF8.GetBytes("cultcache.store.v3"), garbage, garbage)).SetName("bin header v3 over a bad body"); + yield return new TestCaseData(Raw((byte)0x93, System.Text.Encoding.UTF8.GetBytes("cultcache.store.v9"), garbage, garbage)).SetName("bin header v9 over a bad body"); + yield return new TestCaseData(Raw((byte)0x93, "cultcache.store.v4", (byte)0x91, garbage, (byte)0x90)).SetName("v4 header over a bad catalog"); + yield return new TestCaseData(Raw((byte)0x92, "cultcache.store.v4", garbage)).SetName("v4 header over garbage"); + yield return new TestCaseData(Raw((byte)0x93, "cultcache.store.v5", garbage, garbage)).SetName("v5 header over a bad body"); + } + + [TestCaseSource(nameof(NewerStampOverUnreadableBody))] + public async Task SingleFileFlushRefusesANewerStampWhateverItsBodyHolds(byte[] swapped) + { + var root = CopyFixture("single-file-v1"); + try + { + var file = Path.Combine(root, "store.msgpack"); + using var cache = new CultCache(); + cache.AddBackingStore(new SingleFileMessagePackBackingStore(file)); + await cache.PullAllBackingStoresAsync(); + File.WriteAllBytes(file, swapped); + + await cache.AddAsync(new PreCut2FixtureNote { Text = "must not overwrite" }); + Assert.Throws(() => cache.FlushAllBackingStores()); + Assert.That(File.ReadAllBytes(file), Is.EqualTo(swapped)); + Assert.Throws(() => new SingleFileMessagePackBackingStore(file).PullAll()); + } + finally + { + if (Directory.Exists(root)) Directory.Delete(root, recursive: true); + } + } + + [Test] + public async Task DirectoryWritesRefuseANewerStampWhateverTheManifestBodyHolds() + { + var root = CopyFixture("directory-v4"); + try + { + var manifest = Path.Combine(root, "store.cc"); + using var cache = new CultCache(); + cache.AddBackingStore(new DirectoryMessagePackBackingStore(manifest)); + await cache.PullAllBackingStoresAsync(); + var swapped = Raw((byte)0x93, "cultcache.store.v6.directory-content-addressed-pages", (byte)0xc1, (byte)0xc1); + File.WriteAllBytes(manifest, swapped); + + await cache.AddAsync(new PreCut2FixtureNote { Text = "must not overwrite" }); + Assert.Throws(() => cache.FlushAllBackingStores()); + Assert.That(File.ReadAllBytes(manifest), Is.EqualTo(swapped)); + } + finally + { + if (Directory.Exists(root)) Directory.Delete(root, recursive: true); + } + } + + // A file that is read but carries no readable stamp (empty, or cut off) is not a store: a flush refuses it, whatever its + // length, and leaves it as it is. + [TestCase(0)] + [TestCase(1)] + [TestCase(10)] + [TestCase(-1)] + public async Task SingleFileFlushRefusesAnEmptyOrTruncatedFile(int keep) + { + var root = CopyFixture("single-file-v1"); + try + { + var file = Path.Combine(root, "store.msgpack"); + using var cache = new CultCache(); + cache.AddBackingStore(new SingleFileMessagePackBackingStore(file)); + await cache.PullAllBackingStoresAsync(); + var whole = File.ReadAllBytes(file); + var damaged = whole.Take(keep < 0 ? whole.Length / 2 : keep).ToArray(); + File.WriteAllBytes(file, damaged); + + await cache.AddAsync(new PreCut2FixtureNote { Text = "refused" }); + Assert.Throws(() => cache.FlushAllBackingStores()); + + Assert.That(File.ReadAllBytes(file), Is.EqualTo(damaged)); + } + finally + { + if (Directory.Exists(root)) Directory.Delete(root, recursive: true); + } + } + + // A store subclass that overrides nothing beyond its abstract members is guarded by the base, not by an opt-in. + private sealed class PlainCustomStore : SingleFileBackingStore + { + public PlainCustomStore(string path) : base(path) { } + + protected override byte[] SerializeStore(string formatVersion, System.Collections.Generic.IReadOnlyList catalogEntries, System.Collections.Generic.IReadOnlyList records) => + CultDocumentMessagePackSerialization.SerializeStore(formatVersion, catalogEntries, records); + + protected override byte[] SerializeRecord(CultPersistedRecord record) => + CultDocumentMessagePackSerialization.SerializePersistedRecord(record); + + protected override byte[] SerializeCatalogEntry(CultSchemaCatalogEntry entry) => + CultDocumentMessagePackSerialization.SerializeCatalogEntry(entry); + + protected override (CultPersistedStoreSnapshot Snapshot, byte[][] CatalogBytes, byte[][] RecordBytes) ReadStore(byte[] data) + { + var store = CultDocumentMessagePackSerialization.ReadStore(data); + CultDocumentMessagePackSerialization.RequireSingleFileFormat(store.Snapshot); + return store; + } + + protected override byte[] SerializePayload(object document) => + CultDocumentMessagePackSerialization.SerializeUntyped(document, document.GetType(), Registry); + + protected override object DeserializePayload(Type documentType, byte[] payload) => + CultDocumentMessagePackSerialization.DeserializeUntyped(documentType, payload, Registry); + } + + private static void StampHeader(string file, string header) + { + var snapshot = CultDocumentMessagePackSerialization.DeserializeSnapshot(File.ReadAllBytes(file)); + snapshot.FormatVersion = header; + File.WriteAllBytes(file, CultDocumentMessagePackSerialization.SerializeSnapshot(snapshot)); + } + + [Test] + public async Task CustomSingleFileStoreThatOverridesNothingIsRefusedAtFlushOfANewerStore() + { + var root = CopyFixture("single-file-v1"); + try + { + var file = Path.Combine(root, "store.msgpack"); + using var cache = new CultCache(); + cache.AddBackingStore(new PlainCustomStore(file)); + await cache.PullAllBackingStoresAsync(); + StampHeader(file, "cultcache.store.v4"); + var before = File.ReadAllBytes(file); + + await cache.AddAsync(new PreCut2FixtureNote { Text = "staged" }); + Assert.Throws(() => cache.FlushAllBackingStores()); + Assert.That(File.ReadAllBytes(file), Is.EqualTo(before)); + } + finally + { + if (Directory.Exists(root)) Directory.Delete(root, recursive: true); + } + } + + // Attach, commit and flush share one rule for which formats are readable: a header the reader refuses at attach is + // refused at flush, whatever its spelling. + [TestCase("cultcache.store.v3-ids")] + [TestCase("cultcache.store.v1000000")] + [TestCase("cultcache.v3")] + [TestCase("cultcache.store.v3")] + [TestCase("cultcache.store.v2")] + [TestCase("cultcache.store.v1")] + public async Task FlushRefusesExactlyTheHeadersAttachRefuses(string header) + { + var root = CopyFixture("single-file-v1"); + try + { + var file = Path.Combine(root, "store.msgpack"); + using var cache = new CultCache(); + cache.AddBackingStore(new SingleFileMessagePackBackingStore(file)); + await cache.PullAllBackingStoresAsync(); + StampHeader(file, header); + var before = File.ReadAllBytes(file); + + bool attachRefuses; + using (var fresh = new CultCache()) + { + try { fresh.AddBackingStore(new SingleFileMessagePackBackingStore(file)); attachRefuses = false; } + catch (NotSupportedException) { attachRefuses = true; } + } + + await cache.AddAsync(new PreCut2FixtureNote { Text = "staged" }); + var flushRefuses = false; + try { cache.FlushAllBackingStores(); } + catch (NotSupportedException) { flushRefuses = true; } + + Assert.That(flushRefuses, Is.EqualTo(attachRefuses), header); + if (attachRefuses) Assert.That(File.ReadAllBytes(file), Is.EqualTo(before), header); + } + finally + { + if (Directory.Exists(root)) Directory.Delete(root, recursive: true); + } + } + + // The refusal comes from the read, not from a failed write onto the held file: the store never reaches serialising. + private sealed class WriteCountingStore : SingleFileMessagePackBackingStore + { + public int Serialisations; + + public WriteCountingStore(string path) : base(path) { } + + protected override byte[] SerializeStore(string formatVersion, System.Collections.Generic.IReadOnlyList catalogEntries, System.Collections.Generic.IReadOnlyList records) + { + Serialisations++; + return base.SerializeStore(formatVersion, catalogEntries, records); + } + } + + // The public parser judges no stamp, as in 1.0.61: a v4 directory manifest and a v3 header both parse. + [Test] + public void PublicParserReadsAnyStampAsEveryReleaseHas() + { + var root = CopyFixture("directory-v4"); + try + { + var manifest = CultDocumentMessagePackSerialization.DeserializeSnapshot(File.ReadAllBytes(Path.Combine(root, "store.cc"))); + Assert.That(manifest.FormatVersion, Is.EqualTo("cultcache.store.v4.directory-content-addressed-pages")); + + var v3 = new CultPersistedStoreSnapshot { FormatVersion = "cultcache.store.v3", SchemaCatalog = Array.Empty(), Records = Array.Empty() }; + var parsed = CultDocumentMessagePackSerialization.DeserializeSnapshot(CultDocumentMessagePackSerialization.SerializeSnapshot(v3)); + Assert.That(parsed.FormatVersion, Is.EqualTo("cultcache.store.v3")); + } + finally + { + if (Directory.Exists(root)) Directory.Delete(root, recursive: true); + } + } + + // A read that fails on I/O is not an unreadable stamp to heal over: the flush refuses and the file is untouched. + [Test] + public async Task SingleFileFlushRefusesWhenReadingTheDiskFailsOnIO() + { + var root = CopyFixture("single-file-v1"); + try + { + var file = Path.Combine(root, "store.msgpack"); + using var cache = new CultCache(); + var store = new WriteCountingStore(file); + cache.AddBackingStore(store); + await cache.PullAllBackingStoresAsync(); + var before = File.ReadAllBytes(file); + + await cache.AddAsync(new PreCut2FixtureNote { Text = "staged" }); + store.Serialisations = 0; + using (new FileStream(file, FileMode.Open, FileAccess.ReadWrite, FileShare.None)) + { + Assert.Throws(() => cache.FlushAllBackingStores()); + } + Assert.That(store.Serialisations, Is.Zero, "the refusal is the read failing, not the write onto the held file failing"); + Assert.That(File.ReadAllBytes(file), Is.EqualTo(before)); + } + finally + { + if (Directory.Exists(root)) Directory.Delete(root, recursive: true); + } + } + + [TestCase("cultcache.store.v6.directory-content-addressed-pages")] + [TestCase("cultcache.store.v9")] + public async Task DirectoryWritesRefuseAStoreAnotherProcessStampedNewerSinceAttach(string newer) + { + var root = CopyFixture("directory-v4"); + try + { + var manifest = Path.Combine(root, "store.cc"); + using var cache = new CultCache(); + cache.AddBackingStore(new DirectoryMessagePackBackingStore(manifest)); + await cache.PullAllBackingStoresAsync(); + + var snapshot = CultDocumentMessagePackSerialization.DeserializeSnapshot(File.ReadAllBytes(manifest)); + snapshot.FormatVersion = newer; + File.WriteAllBytes(manifest, CultDocumentMessagePackSerialization.SerializeSnapshot(snapshot)); + Func> files = () => Directory + .GetFiles(root, "*", SearchOption.AllDirectories) + .Where(path => !path.EndsWith(".lock", StringComparison.Ordinal)) + .ToDictionary(path => path, File.ReadAllBytes); + var before = files(); + + await cache.AddAsync(new PreCut2FixtureNote { Text = "staged after the other process wrote the newer format" }); + Assert.Throws(() => cache.FlushAllBackingStores()); + Assert.That(files().Keys, Is.EquivalentTo(before.Keys)); + foreach (var pair in before) Assert.That(File.ReadAllBytes(pair.Key), Is.EqualTo(pair.Value), pair.Key); + + cache.Remove(new CultRecordKey("item:anvil")); + Assert.Throws(() => cache.FlushAllBackingStores()); + Assert.That(files().Keys, Is.EquivalentTo(before.Keys)); + foreach (var pair in before) Assert.That(File.ReadAllBytes(pair.Key), Is.EqualTo(pair.Value), pair.Key); + } + finally + { + if (Directory.Exists(root)) Directory.Delete(root, recursive: true); + } + } + [Test] public void SingleFileRefusesExtraRecordSlotNamingTheRecord() { @@ -234,6 +632,28 @@ namespace GameCult.Caching.Tests } } + // The stamp decides readability and the body never does: a newer stamp is named whatever follows it, without the body parsed. + [Test] + public void ReadStoreNamesANewerSingleFileStampWithoutParsingTheBody() + { + var garbage = (byte)0xc1; + var bytes = Raw((byte)0x93, "cultcache.store.v4", garbage, garbage); + + var error = Assert.Throws(() => + CultDocumentMessagePackSerialization.ReadStore(bytes, CultDocumentMessagePackSerialization.RequireReadableSingleFileStamp))!; + + Assert.That(error.Message, Does.Contain("format cultcache.store.v4 is not readable")); + } + + // A snapshot with no format version has no stamp to write, so serialising it is refused rather than writing a nil slot 0. + [Test] + public void SerializeSnapshotRefusesASnapshotWithNoFormatVersion() + { + var snapshot = new CultPersistedStoreSnapshot { FormatVersion = null! }; + + Assert.Throws(() => CultDocumentMessagePackSerialization.SerializeSnapshot(snapshot)); + } + [Test] public void V1StoreWrittenAtTheBaseCommitStillDecodesByteForByte() { diff --git a/tests/GameCult.Caching.Tests/VariantTests.cs b/tests/GameCult.Caching.Tests/VariantTests.cs index 55f20067..7ad14cf7 100644 --- a/tests/GameCult.Caching.Tests/VariantTests.cs +++ b/tests/GameCult.Caching.Tests/VariantTests.cs @@ -971,6 +971,52 @@ namespace GameCult.Caching.Tests Assert.That(ReadStore(path).Records.Single(record => record.Key == DriftBase.Value).SchemaId, Is.EqualTo(DriftWideId)); } + [Test] + public void ADriftedVariantSatisfiesExpectUnchanged() + { + var path = PathOf("drift.cc"); + WriteWideVariant(path); + + using var narrow = Open(path, registry: CultDocumentRegistry.ForTypes(new[] { typeof(DriftNarrow) })); + Assert.That(ExpectVariantCommit(narrow), Is.True, "an unchanged drifted variant failed Expect and ExpectUnchanged"); + } + + [Test] + public void AnOwnFlushKeepsADriftedVariantsExpectHolding() + { + var path = PathOf("drift.cc"); + WriteWideVariant(path); + + using var narrow = Open(path, registry: CultDocumentRegistry.ForTypes(new[] { typeof(DriftNarrow) })); + narrow.BackingStores[0].PushAll(); + Assert.That(ExpectVariantCommit(narrow), Is.True, "Expect on a drifted variant failed after this cache's own flush rewrote it"); + } + + private static void WriteWideVariant(string path) + { + using var writer = Open(path, registry: CultDocumentRegistry.ForTypes(new[] { typeof(DriftWide) })); + writer.Commit(batch => + { + batch.Upsert(typeof(DriftWide), new DriftWide { Name = "drift", Power = 1, Wing = "base wing" }, new CultRecordKey("drift-base")); + batch.UpsertVariant(new CultRecordKey("drift-variant"), new CultRecordKey("drift-base"), new[] + { + writer.Override(nameof(DriftWide.Name), "drift variant"), + writer.Override(nameof(DriftWide.Wing), "stale wing") + }); + }); + } + + private static bool ExpectVariantCommit(CultCache cache) + { + var variant = new CultRecordKey("drift-variant"); + return cache.Commit(batch => + { + batch.Expect(variant, cache.Get(variant)); + batch.ExpectUnchanged(); + batch.Upsert(typeof(DriftNarrow), new DriftNarrow { Name = "other", Power = 2 }, new CultRecordKey("other")); + }); + } + [Test] public void AnOverrideOfASlotTheTypeNeverHadIsReportedOnEveryLoadAndStaysStoredUntilTheVariantIsWritten() { @@ -1192,6 +1238,40 @@ namespace GameCult.Caching.Tests Assert.That(reopened.Get(BigKey)!.Name, Is.EqualTo("laser big")); } + // The cache holds a copy of the base another writer has since renamed; the merge is judged on the renamed base. + [Test] + public void AConditionalCommitIsJudgedOnAnotherWritersChangeToARecordThisCacheHolds() + { + var path = PathOf("gear.cc"); + var other = new CultRecordKey("other"); + using (var seed = Open(path)) + Assert.That(seed.Commit(batch => + { + batch.Upsert(typeof(VariantGear), Laser(), BaseKey); + batch.Upsert(typeof(VariantGear), Named("other", "o1"), other); + }), Is.True); + + using (var a = Open(path)) + { + using (var w = Open(path)) + Assert.That(w.Commit(batch => batch.Upsert(typeof(VariantGear), Named("x", "l1"), BaseKey)), Is.True); + + var refused = Refused(() => a.Commit(batch => + { + batch.Expect(other, a.Get(other)); + batch.UpsertVariant(BigKey, BaseKey, new[] + { + a.Override(nameof(VariantGear.Name), "x"), + a.Override(nameof(VariantGear.Code), "big") + }); + })); + Assert.That(refused.Message, Does.Contain(BigKey.Value).And.Contain(BaseKey.Value).And.Contain("x")); + } + + using var reopened = Open(path, readOnly: true); + Assert.That(reopened.GetStored(BigKey), Is.Null, "nothing landed on the file"); + } + [Test] public void AConditionalCommitThatIsSoundOntoAVariantStoreAnotherWriterChangedIsRefusedThenLandsOnRetry() { diff --git a/tests/GameCult.Mesh.Tests/CultMeshContentVectorTests.cs b/tests/GameCult.Mesh.Tests/CultMeshContentVectorTests.cs index 2fa26aa1..ce9bea2b 100644 --- a/tests/GameCult.Mesh.Tests/CultMeshContentVectorTests.cs +++ b/tests/GameCult.Mesh.Tests/CultMeshContentVectorTests.cs @@ -2,10 +2,12 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Text; using System.Text.Json; using System.Threading.Tasks; using FluentAssertions; using GameCult.Caching; +using GameCult.Caching.MessagePack; using GameCult.Networking; using MessagePack; using NUnit.Framework; @@ -34,6 +36,8 @@ public sealed class CultMeshContentVectorTests if (Environment.GetEnvironmentVariable("CULTNET_WRITE_VECTORS") != "1") Assert.Ignore("Set CULTNET_WRITE_VECTORS=1 to (re)write the committed vector file."); File.WriteAllText(VectorPath("content-vectors.cs-written.json"), ToJson(BuildVectors(out _, out _))); + File.WriteAllText(VectorPath("cdn-record-key-vectors.json"), RecordKeyVectorsToJson(BuildRecordKeyVectors())); + File.WriteAllText(VectorPath("content-acceptance-vectors.json"), AcceptanceVectorsToJson(BuildAcceptanceVectors())); } [Test] @@ -69,7 +73,7 @@ public sealed class CultMeshContentVectorTests Reencode(response).Should().Equal(vector.Bytes, vector.Label); break; case "manifest": - var manifest = MessagePackSerializer.Deserialize(vector.Bytes, CultNetSchemaMessageSerialization.Options); + var manifest = ReadManifest(vector.Bytes); manifest.Should().BeEquivalentTo((CultMeshCdnArtifactManifest)expected); Reencode(manifest).Should().Equal(vector.Bytes, vector.Label); break; @@ -98,6 +102,344 @@ public sealed class CultMeshContentVectorTests rust.Bytes.Should().Equal(committed.Bytes, "Rust's pack_content and the reference pack the same bytes to the same manifest"); } + [Test] + public void CommittedRecordKeyVectorsEqualAFreshDerivation() + { + var path = VectorPath("cdn-record-key-vectors.json"); + File.Exists(path).Should().BeTrue($"{path} is written by this fixture under CULTNET_WRITE_VECTORS=1"); + Lines(File.ReadAllText(path)).Should().Be(Lines(RecordKeyVectorsToJson(BuildRecordKeyVectors())), "the key grammar drifted from the committed vectors"); + } + + [Test] + public void TypeScriptManifestVectorsMatchTheReference() + { + var path = VectorPath("content-vectors.ts-written.json"); + File.Exists(path).Should().BeTrue($"{path} is written by scripts/write-cultmesh-content-vectors.mjs"); + using var document = JsonDocument.Parse(File.ReadAllText(path)); + var vectors = document.RootElement.GetProperty("vectors").EnumerateArray().ToList(); + vectors.Should().NotBeEmpty(); + foreach (var vector in vectors) + { + var label = vector.GetProperty("label").GetString()!; + var bytes = Convert.FromBase64String(vector.GetProperty("messagePackBase64").GetString()!); + var manifest = ReadManifest(bytes); + Reencode(manifest).Should().Equal(bytes, $"{label}: the reference reads and rewrites the TypeScript bytes unchanged"); + CultMeshCdnArtifactManifest.CreateRecordKey(manifest).Value.Should().Be(vector.GetProperty("recordKey").GetString(), label); + + var input = vector.GetProperty("input"); + var body = input.GetProperty("body"); + var multiplier = body.GetProperty("multiplier").GetInt64(); + var modulus = body.GetProperty("modulus").GetInt64(); + var packed = CultMeshCdn.PackArtifact( + input.GetProperty("artifactId").GetString()!, + Enumerable.Range(0, body.GetProperty("length").GetInt32()).Select(i => (byte)(i * multiplier % modulus)).ToArray(), + new CultMeshCdnPackOptions + { + Kind = input.GetProperty("kind").GetString()!, + Version = input.GetProperty("version").GetString()!, + MimeType = input.GetProperty("mimeType").GetString()!, + CreatedAtUtc = input.GetProperty("createdAtUtc").GetString()!, + ChunkSizeBytes = input.GetProperty("chunkSizeBytes").GetInt32(), + Tags = input.GetProperty("tags").EnumerateArray().Select(t => t.GetString()!).ToArray(), + Metadata = input.GetProperty("metadata").EnumerateArray() + .Aggregate(new Dictionary(), (map, pair) => + { + map[pair[0].GetString()!] = pair[1].GetString()!; + return map; + }) + }); + Reencode(packed.Manifest).Should().Equal(bytes, $"{label}: the reference packs the declared input to the TypeScript bytes"); + } + } + + [Test] + public void CommittedAcceptanceVectorsEqualAFreshRun() + { + var path = VectorPath("content-acceptance-vectors.json"); + File.Exists(path).Should().BeTrue($"{path} is written by this fixture under CULTNET_WRITE_VECTORS=1"); + var fresh = BuildAcceptanceVectors(); + fresh.Select(c => c.Label).Should().OnlyHaveUniqueItems(); + fresh.Count(c => c.Accepted).Should().BeGreaterThan(30); + fresh.Count(c => !c.Accepted).Should().BeGreaterThan(30); + Lines(File.ReadAllText(path)).Should().Be(Lines(AcceptanceVectorsToJson(fresh)), "the reference's acceptance drifted from the committed vectors"); + } + + private sealed record Acceptance(string Label, byte[] Input, bool Accepted, byte[]? Reencoded, string? RecordKey); + + ///

What the reference does with these bytes: deserialise, then ValidateManifest; accepted bytes are rewritten and keyed. + private static Acceptance Judge(string label, byte[] input) + { + CultMeshCdnArtifactManifest manifest; + try + { + manifest = ReadManifest(input); + CultMeshCdn.ValidateManifest(manifest); + } + catch (Exception) + { + return new Acceptance(label, input, false, null, null); + } + + string? key = null; + try { key = CultMeshCdnArtifactManifest.CreateRecordKey(manifest).Value; } + catch (ArgumentException) { } + return new Acceptance(label, input, true, Reencode(manifest), key); + } + + private static byte[] Deep(int depth) => Cat(Enumerable.Repeat((byte)0x91, depth).ToArray(), Nil); + private static byte[] Cat(params byte[][] parts) => parts.SelectMany(p => p).ToArray(); + private static byte[] Raw(params byte[] bytes) => bytes; + private static readonly byte[] Nil = { 0xc0 }; + private static byte[] Str(string text) + { + var bytes = Encoding.UTF8.GetBytes(text); + return Cat(bytes.Length < 32 ? Raw((byte)(0xa0 | bytes.Length)) : Raw(0xd9, (byte)bytes.Length), bytes); + } + private static byte[] StrRaw(params byte[] bytes) => Cat(Raw((byte)(0xa0 | bytes.Length)), bytes); + private static byte[] Arr(params byte[][] items) => Cat(Raw((byte)(0x90 | items.Length)), Cat(items)); + private static byte[] MapOf(params byte[][] pairs) => Cat(Raw((byte)(0x80 | (pairs.Length / 2))), Cat(pairs)); + private static byte[] Be(byte code, long value, int width) + { + var bytes = new byte[width]; + for (var i = 0; i < width; i++) bytes[width - 1 - i] = (byte)(value >> (8 * i)); + return Cat(Raw(code), bytes); + } + private static byte[] F64(long bits) => Be(0xcb, bits, 8); + private static byte[] F32(int bits) => Be(0xca, bits, 4); + + private static byte[][] BaseFields() => new[] + { + Str("a/b"), Str("asset"), Str("1"), Str(EmptyHash), Raw(0x00), Str("application/x-t"), Str("t"), + Arr(Chunk(Raw(0x00), Raw(0x00))), Arr(Str("x")), MapOf(Str("k"), Str("v")) + }; + + private const string EmptyHash = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; + + private static byte[] Chunk(byte[] offset, byte[] size) => Arr(Str(EmptyHash), offset, size, Str("k")); + + private static byte[] Doc(IEnumerable fields) + { + var list = fields.ToArray(); + return Cat(Raw((byte)(0x90 | list.Length)), Cat(list)); + } + + private static byte[][] With(params (int Index, byte[] Value)[] edits) + { + var fields = BaseFields(); + foreach (var (index, value) in edits) fields[index] = value; + return fields; + } + + /// + /// Byte shapes at the edge of what MessagePack-CSharp reads: nil in reference slots, missing and extra slots, + /// trailing bytes, integer and float families, string families and invalid UTF-8. The reference judges each one; + /// the TypeScript decoder is held to the verdict and to the bytes the reference writes back. + /// + private static List BuildAcceptanceVectors() + { + var cases = new List(); + void Add(string label, byte[] input) => cases.Add(Judge(label, input)); + void AddFields(string label, params (int Index, byte[] Value)[] edits) => Add(label, Doc(With(edits))); + var fields = BaseFields(); + + Add("base", Doc(fields)); + for (var count = 0; count <= 9; count++) Add($"short_{count}", Doc(fields.Take(count))); + Add("array16_header", Cat(Raw(0xdc, 0, 10), Cat(fields))); + Add("array32_header", Cat(Raw(0xdd, 0, 0, 0, 10), Cat(fields))); + Add("extra_11_nil", Doc(fields.Append(Nil))); + Add("extra_11_str", Doc(fields.Append(Str("x")))); + Add("extra_11_nested", Doc(fields.Append(Arr(Arr(Str("x")), MapOf(Str("a"), F64(0)))))); + Add("extra_11_ext", Doc(fields.Append(Raw(0xd4, 1, 2)))); + Add("extra_11_ext8", Doc(fields.Append(Raw(0xc7, 2, 1, 7, 7)))); + Add("extra_11_bin", Doc(fields.Append(Raw(0xc4, 2, 1, 2)))); + Add("extra_11_float", Doc(fields.Append(F32(0)))); + Add("extra_11_uint64", Doc(fields.Append(Be(0xcf, 7, 8)))); + Add("extra_11_array16", Doc(fields.Append(Cat(Raw(0xdc, 0, 2), Raw(1), Raw(2))))); + Add("extra_11_map16", Doc(fields.Append(Cat(Raw(0xde, 0, 1), Raw(1), Raw(2))))); + Add("extra_11_str8", Doc(fields.Append(Raw(0xd9, 1, 0x41)))); + Add("extra_12", Doc(fields.Append(Nil).Append(Str("y")))); + Add("extra_11_reserved_code", Doc(fields.Append(Raw(0xc1)))); + Add("extra_11_truncated", Doc(fields.Append(Raw(0x92, 1)))); + // The production reader refuses payloads nested past CultPayloadDepth (256); the extra slot is skipped, so only that rule can refuse it. + foreach (var depth in new[] { 250, 253, 254, 255, 256, 257, 300 }) + { + Add($"deep_extra_{depth}", Doc(fields.Append(Deep(depth)))); + AddFields($"deep_chunkextra_{depth}", (7, Arr(Arr(Str(EmptyHash), Raw(0), Raw(0), Str("k"), Deep(depth))))); + } + + AddFields("chunk_3", (7, Arr(Arr(Str(EmptyHash), Raw(0), Raw(0))))); + AddFields("chunk_5", (7, Arr(Arr(Str(EmptyHash), Raw(0), Raw(0), Str("k"), Nil)))); + AddFields("chunk_5_nested", (7, Arr(Arr(Str(EmptyHash), Raw(0), Raw(0), Str("k"), Arr(Raw(1), Raw(2)))))); + // An extra slot inside a chunk reference is followed by more bytes, so a skip that stops short shows. + var extras = new (string Name, byte[] Value)[] + { + ("map", MapOf(Str("a"), Str("b"), Str("c"), Str("d"))), ("map16", Cat(Raw(0xde, 0, 2), Raw(1), Raw(2), Raw(3), Raw(4))), + ("map32", Cat(Raw(0xdf, 0, 0, 0, 1), Raw(1), Raw(2))), ("array", Arr(Raw(1), Raw(2), Raw(3))), + ("array16", Cat(Raw(0xdc, 0, 2), Raw(1), Raw(2))), ("array32", Cat(Raw(0xdd, 0, 0, 0, 1), Raw(1))), + ("fixext1", Raw(0xd4, 1, 2)), ("fixext2", Raw(0xd5, 1, 2, 3)), ("fixext4", Raw(0xd6, 1, 2, 3, 4, 5)), + ("fixext8", Raw(0xd7, 1, 2, 3, 4, 5, 6, 7, 8, 9)), ("fixext16", Cat(Raw(0xd8, 1), new byte[16])), + ("ext8", Raw(0xc7, 2, 1, 7, 7)), ("ext16", Raw(0xc8, 0, 2, 1, 7, 7)), ("ext32", Raw(0xc9, 0, 0, 0, 2, 1, 7, 7)), + ("bin8", Raw(0xc4, 2, 1, 2)), ("bin16", Raw(0xc5, 0, 2, 1, 2)), ("bin32", Raw(0xc6, 0, 0, 0, 2, 1, 2)), + ("str8", Raw(0xd9, 2, 0x41, 0x42)), ("str16", Raw(0xda, 0, 2, 0x41, 0x42)), ("str32", Raw(0xdb, 0, 0, 0, 2, 0x41, 0x42)), + ("fixstr", Str("ab")), ("f32", F32(1)), ("f64", F64(1)), ("u8", Raw(0xcc, 1)), ("u16", Be(0xcd, 1, 2)), ("u32", Be(0xce, 1, 4)), + ("u64", Be(0xcf, 1, 8)), ("i8", Raw(0xd0, 1)), ("i16", Be(0xd1, 1, 2)), ("i32", Be(0xd2, 1, 4)), ("i64", Be(0xd3, 1, 8)), + ("true", Raw(0xc3)), ("false", Raw(0xc2)), ("nil", Nil), ("negfixint", Raw(0xff)), ("reserved", Raw(0xc1)), + ("fixint_max", Raw(0x7f)), ("negfixint_min", Raw(0xe0)), ("fixstr_31", Cat(Raw(0xbf), new byte[31])), + ("fixmap_15", Cat(Raw(0x8f), Cat(Enumerable.Range(0, 15).Select(_ => Raw(1, 2)).ToArray()))), ("fixarray_15", Cat(Raw(0x9f), new byte[15])), + ("nested", Arr(MapOf(Str("a"), Arr(Raw(1), Raw(2))), Arr())) + }; + foreach (var (name, value) in extras) + AddFields($"chunk_extra_{name}", (7, Arr(Arr(Str(EmptyHash), Raw(0), Raw(0), Str("k"), value)))); + AddFields("chunk_1", (7, Arr(Arr(Str(EmptyHash))))); + AddFields("chunk_0", (7, Arr(Arr()))); + AddFields("chunk_is_map", (7, Arr(MapOf(Str("a"), Str("b"))))); + AddFields("chunk_is_str", (7, Arr(Str("a")))); + AddFields("chunks_empty_with_size", (7, Arr())); + AddFields("chunks_empty_size_zero", (7, Arr()), (4, Raw(0))); + AddFields("chunks_is_str", (7, Str("a"))); + AddFields("chunks_is_map", (7, MapOf())); + AddFields("chunks_gap", (7, Arr(Chunk(Raw(1), Raw(0))))); + + foreach (var (index, name) in new[] { (0, "artifactId"), (1, "kind"), (2, "version"), (3, "contentHash"), (5, "mimeType"), (6, "createdAtUtc") }) + AddFields($"nil_{name}", (index, Nil)); + AddFields("nil_chunks", (7, Nil)); + AddFields("nil_chunk_element", (7, Arr(Nil))); + AddFields("nil_chunk_hash", (7, Arr(Arr(Nil, Raw(0), Raw(0), Str("k"))))); + AddFields("nil_chunk_recordKey", (7, Arr(Arr(Str(EmptyHash), Raw(0), Raw(0), Nil)))); + AddFields("nil_tags", (8, Nil)); + AddFields("nil_tag_element", (8, Arr(Nil, Str("x")))); + AddFields("nil_metadata", (9, Nil)); + AddFields("nil_metadata_value", (9, MapOf(Str("k"), Nil))); + AddFields("nil_metadata_key", (9, MapOf(Nil, Str("v")))); + AddFields("nil_size", (4, Nil)); + + AddFields("metadata_duplicate_key", (9, MapOf(Str("k"), Str("1"), Str("k"), Str("2")))); + AddFields("metadata_integer_like_keys", (9, MapOf(Str("10"), Str("a"), Str("alpha"), Str("b"), Str("2"), Str("c")))); + AddFields("metadata_int_key", (9, MapOf(Raw(5), Str("v")))); + AddFields("metadata_int_value", (9, MapOf(Str("k"), Raw(5)))); + AddFields("metadata_empty_key", (9, MapOf(Str(""), Str("v")))); + AddFields("metadata_proto_key", (9, MapOf(Str("__proto__"), Str("v")))); + AddFields("metadata_map16", (9, Cat(Raw(0xde, 0, 1), Str("k"), Str("v")))); + AddFields("metadata_map32", (9, Cat(Raw(0xdf, 0, 0, 0, 1), Str("k"), Str("v")))); + AddFields("metadata_is_array", (9, Arr())); + AddFields("metadata_is_str", (9, Str("k"))); + AddFields("tags_is_map", (8, MapOf())); + AddFields("tags_int_element", (8, Arr(Raw(5)))); + AddFields("tags_array16", (8, Cat(Raw(0xdc, 0, 1), Str("x")))); + + Add("trailing_nil", Cat(Doc(fields), Nil)); + Add("trailing_reserved_code", Cat(Doc(fields), Raw(0xc1))); + Add("trailing_truncated_array", Cat(Doc(fields), Raw(0x92))); + Add("top_nil", Nil); + Add("top_empty", Array.Empty()); + Add("top_map", MapOf(Str("a"), Str("b"))); + Add("top_str", Str("a")); + Add("top_int", Raw(5)); + Add("top_truncated", Doc(fields)[..^3]); + + foreach (var (name, zero) in new (string, byte[])[] + { + ("u8", Raw(0xcc, 0)), ("u16", Be(0xcd, 0, 2)), ("u32", Be(0xce, 0, 4)), ("u64", Be(0xcf, 0, 8)), + ("i8", Raw(0xd0, 0)), ("i16", Be(0xd1, 0, 2)), ("i32", Be(0xd2, 0, 4)), ("i64", Be(0xd3, 0, 8)), + ("f32", F32(0)), ("f32_negzero", F32(int.MinValue)), ("f64", F64(0)), ("f64_negzero", F64(long.MinValue)), + ("f64_one", F64(0x3FF0000000000000)), + ("true", Raw(0xc3)), ("false", Raw(0xc2)), ("str", Str("0")), ("bin", Raw(0xc4, 1, 0)), ("array", Arr()), ("ext", Raw(0xd4, 1, 0)), + // Zero-filled so that a reader which took them for an int32 would read 0. + ("fixext4", Cat(Raw(0xd6), new byte[5])), ("fixext8", Cat(Raw(0xd7), new byte[9])), ("fixext16", Cat(Raw(0xd8), new byte[17])) + }) + { + AddFields($"size_{name}", (4, zero)); + AddFields($"offset_{name}", (7, Arr(Chunk(zero, Raw(0))))); + AddFields($"chunksize_{name}", (7, Arr(Chunk(Raw(0), zero)))); + } + + AddFields("size_negative", (4, Raw(0xff)), (7, Arr())); + AddFields("size_u64_over_long", (4, Be(0xcf, -1, 8)), (7, Arr())); + AddFields("size_i64_min", (4, Be(0xd3, long.MinValue, 8)), (7, Arr())); + AddFields("size_2p53_minus_1", (4, Be(0xcf, (1L << 53) - 1, 8)), (7, Arr())); + AddFields("chunksize_int_max", (4, Be(0xce, int.MaxValue, 4)), (7, Arr(Chunk(Raw(0), Be(0xce, int.MaxValue, 4))))); + AddFields("chunksize_2p31", (4, Be(0xce, 1L << 31, 4)), (7, Arr(Chunk(Raw(0), Be(0xce, 1L << 31, 4))))); + AddFields("chunksize_i32_min", (4, Raw(0)), (7, Arr(Chunk(Raw(0), Be(0xd2, int.MinValue, 4))))); + AddFields("chunksize_i64_below_i32", (4, Raw(0)), (7, Arr(Chunk(Raw(0), Be(0xd3, (long)int.MinValue - 1, 8))))); + AddFields("offset_beyond_int32", + (4, Be(0xcf, 3L * int.MaxValue, 8)), + (7, Arr(Chunk(Raw(0), Be(0xce, int.MaxValue, 4)), Chunk(Be(0xce, int.MaxValue, 4), Be(0xce, int.MaxValue, 4)), + Chunk(Be(0xce, 2L * int.MaxValue, 4), Be(0xce, int.MaxValue, 4))))); + AddFields("chunks_out_of_order", + (4, Raw(2)), (7, Arr(Chunk(Raw(1), Raw(1)), Chunk(Raw(0), Raw(1))))); + AddFields("chunks_overlap", (4, Raw(2)), (7, Arr(Chunk(Raw(0), Raw(2)), Chunk(Raw(1), Raw(1))))); + AddFields("chunk_negative_size", (4, Raw(0)), (7, Arr(Chunk(Raw(0), Raw(0xff))))); + + AddFields("str_bin", (1, Raw(0xc4, 1, 0x41))); + AddFields("str_ext", (1, Raw(0xd4, 1, 0x41))); + AddFields("str_int", (1, Raw(0x41))); + AddFields("str_str16", (1, Raw(0xda, 0, 1, 0x41))); + AddFields("str_str32", (1, Raw(0xdb, 0, 0, 0, 1, 0x41))); + AddFields("str_empty", (1, Str(""))); + AddFields("str_invalid_utf8", (1, StrRaw(0xFF, 0xFE))); + AddFields("str_lone_surrogate_cesu", (1, StrRaw(0xED, 0xA0, 0x80))); + AddFields("str_overlong", (1, StrRaw(0xC0, 0xAF))); + AddFields("str_truncated_sequence", (1, StrRaw(0xE2, 0x82))); + AddFields("str_bom", (0, Str("bom"))); + AddFields("str_nul", (0, StrRaw(0x61, 0x00, 0x62))); + AddFields("id_invalid_utf8", (0, StrRaw(0xFF))); + AddFields("hash_invalid_utf8", (3, StrRaw(0xFF))); + AddFields("version_invalid_utf8", (2, StrRaw(0xFF, 0xFE))); + AddFields("id_blank", (0, Str(" "))); + AddFields("hash_blank", (3, Str(" "))); + AddFields("hash_prefix_upper_long_s", (3, Str("ſha256:abc"))); + // Shapes that end early, and header families a lenient reader would take for another. + var whole = Doc(fields); + Add("truncated_string_body", whole[..^1]); + Add("truncated_str8_length", Raw(0x91, 0xd9)); + Add("truncated_u16", Cat(Raw(0x95), Str("a"), Str("k"), Str("v"), Str(EmptyHash), Raw(0xcd, 0))); + Add("truncated_u64", Cat(Raw(0x95), Str("a"), Str("k"), Str("v"), Str(EmptyHash), Raw(0xcf, 0, 0, 0))); + Add("truncated_array16", Raw(0xdc, 0)); + Add("extra_11_truncated_string", Doc(fields.Append(Raw(0xa5, 0x41)))); + Add("extra_11_truncated_str8_length", Doc(fields.Append(Raw(0xd9)))); + Add("array_15", Doc(fields.Concat(Enumerable.Repeat(Nil, 5)))); + AddFields("metadata_15_entries", (9, Cat(Raw(0x8f), Cat(Enumerable.Range(0, 15).Select(i => Cat(Str($"k{i}"), Str("v"))).ToArray())))); + Add("tags_fixint_then_trailing", Cat(Raw(0x99), Cat(fields[..8]), Raw(1), Str("a"))); + Add("tags_fixmap", Cat(Raw(0x99), Cat(fields[..8]), MapOf(Str("a"), Str("b")))); + Add("metadata_fixint_then_trailing", Cat(Raw(0x9a), Cat(fields[..9]), Raw(1), Str("a"), Str("b"))); + Add("metadata_array_then_trailing", Cat(Raw(0x9a), Cat(fields[..9]), Arr(Str("a"), Str("b")), Str("c"), Str("d"))); + + // Every integer family at a value that needs its full width and its own signedness: as the sizes, then as an offset. + foreach (var (name, value, n) in new (string, byte[], long)[] + { + ("u8_200", Raw(0xcc, 200), 200), ("u16_258", Be(0xcd, 258, 2), 258), ("u16_40000", Be(0xcd, 40000, 2), 40000), + ("u32_258", Be(0xce, 258, 4), 258), ("u64_258", Be(0xcf, 258, 8), 258), ("i8_100", Raw(0xd0, 100), 100), + ("i16_258", Be(0xd1, 258, 2), 258), ("i32_258", Be(0xd2, 258, 4), 258), ("i64_258", Be(0xd3, 258, 8), 258), + ("fixint_127", Raw(0x7f), 127) + }) + { + AddFields($"width_{name}", (4, value), (7, Arr(Chunk(Raw(0), value)))); + AddFields($"width_{name}_offset", (4, Be(0xcd, n + 1, 2)), (7, Arr(Chunk(Raw(0), Be(0xcd, n, 2)), Chunk(value, Raw(1))))); + } + AddFields("width_u32_over_int32", (4, Be(0xce, 3_000_000_000, 4)), + (7, Arr(Chunk(Raw(0), Be(0xce, int.MaxValue, 4)), Chunk(Be(0xce, int.MaxValue, 4), Be(0xce, 3_000_000_000 - int.MaxValue, 4))))); + AddFields("width_negative_fixint", (4, Raw(0xff))); + AddFields("width_negative_fixint_min", (4, Raw(0xe0))); + AddFields("width_negative_i64_safe", (4, Be(0xd3, -((1L << 53) - 1), 8))); + AddFields("width_negative_i64_unsafe", (4, Be(0xd3, -(1L << 53), 8))); + return cases; + } + + private static string AcceptanceVectorsToJson(List cases) => + JsonSerializer.Serialize( + new + { + cases = cases.Select(c => new + { + label = c.Label, + inputBase64 = Convert.ToBase64String(c.Input), + accepted = c.Accepted, + reencodedBase64 = c.Reencoded == null ? null : Convert.ToBase64String(c.Reencoded), + recordKey = c.RecordKey + }) + }, + new JsonSerializerOptions { WriteIndented = true }); + private static byte[] Body() => Enumerable.Range(0, BodyLength).Select(i => (byte)(i % 251)).ToArray(); @@ -115,8 +457,12 @@ public sealed class CultMeshContentVectorTests private static byte[] Reencode(CultMeshContentChunkResponseMessage message) => CultNetSchemaMessageSerialization.Serialize(message); + /// The one reader of manifest bytes: the document reader production stores and reads manifests with (CultPayloadDepth 256 included). + private static CultMeshCdnArtifactManifest ReadManifest(byte[] bytes) => + (CultMeshCdnArtifactManifest)CultDocumentMessagePackSerialization.DeserializeUntyped(typeof(CultMeshCdnArtifactManifest), bytes); + private static byte[] Reencode(CultMeshCdnArtifactManifest manifest) => - MessagePackSerializer.Serialize(manifest, CultNetSchemaMessageSerialization.Options); + CultDocumentMessagePackSerialization.SerializeUntyped(manifest, typeof(CultMeshCdnArtifactManifest)); private static CultMeshContentChunkRequestMessage Request(string id, string hash, string key, int size) => new() { @@ -272,6 +618,61 @@ public sealed class CultMeshContentVectorTests .ToList(); } + private static string Lines(string text) => text.Replace("\r\n", "\n").TrimEnd('\n'); + + private static string[] KeyHashes() + { + var empty = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; + return new[] + { + empty, "SHA256:" + empty.ToUpperInvariant(), " " + empty + " ", " sha256:" + empty, + "sha256:sha256:" + empty, "Sha256:\u0130\u03A3\U00010400", "sha256:", + // U+017F uppercases to 'S': a prefix fold by upper case would strip it, the reference's ordinal-ignore-case does not. + "\u017Fha256:abc" + }; + } + + private sealed record KeyVectors( + List<(string Id, string Version, string Hash, string Key)> Artifacts, + List<(string Hash, string Key)> Chunks); + + /// Every key is derived by the reference's public CreateRecordKey, never spelled by hand. + private static KeyVectors BuildRecordKeyVectors() + { + var ids = new[] + { + "eureka/content-vector", " Mixed Case/Path ", "\u0130stanbul", "\u0391\u03A3", "\uFEFFbom", "\u0085nel\u0085", + "\u65E5\u672C\u8A9E/\u8CC7\u7523", "\U0001F642 smile", "---", "a\uD800b", "\uD800", "x\u00B2y", "\u0663d", "\U00010400A", + // Tokens that are empty after the trim: the fallback hashes the original, neither trimmed nor lower-cased. + " --- ", "\u24B6", "\u216B" + }; + var versions = new[] { string.Empty, " ", "1.0.0", "V2 Beta", "\u00FC" }; + var hashes = KeyHashes(); + var artifacts = ids.Select((id, i) => (id, versions[i % versions.Length], hashes[i % hashes.Length])) + .Concat(versions.Select(version => (ids[0], version, hashes[0]))) + .Concat(hashes.Select(hash => (ids[0], versions[0], hash))) + .Select(t => (t.Item1, t.Item2, t.Item3, CultMeshCdnArtifactManifest.CreateRecordKey(t.Item1, t.Item2, t.Item3).Value)) + .ToList(); + var chunks = hashes.Select(hash => (hash, CultMeshCdnArtifactChunk.CreateRecordKey(hash).Value)).ToList(); + return new KeyVectors(artifacts, chunks); + } + + /// String inputs are stored as UTF-16 code-unit arrays, so a lone surrogate survives the JSON file. + private static string RecordKeyVectorsToJson(KeyVectors vectors) => + JsonSerializer.Serialize( + new + { + artifacts = vectors.Artifacts.Select(a => new + { + artifactIdUnits = a.Id.Select(c => (int)c), + versionUnits = a.Version.Select(c => (int)c), + contentHash = a.Hash, + recordKey = a.Key + }), + chunks = vectors.Chunks.Select(c => new { chunkHash = c.Hash, recordKey = c.Key }) + }, + new JsonSerializerOptions { WriteIndented = true }); + private static string VectorPath(string name) => Path.Combine(RepoRoot(), "contracts", "cultmesh", name); private static string RepoRoot() diff --git a/tests/GameCult.Mesh.Tests/CultMeshHttpsContentInteropTests.cs b/tests/GameCult.Mesh.Tests/CultMeshHttpsContentInteropTests.cs new file mode 100644 index 00000000..be593e5e --- /dev/null +++ b/tests/GameCult.Mesh.Tests/CultMeshHttpsContentInteropTests.cs @@ -0,0 +1,169 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Net.Security; +using System.Security.Authentication; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Threading; +using System.Threading.Tasks; +using FluentAssertions; +using GameCult.Caching; +using GameCult.Caching.MessagePack; +using NUnit.Framework; + +namespace GameCult.Mesh.Tests; + +/// +/// The C# half of the cross-process HTTPS content parity. The provider is the TypeScript one, in another process; it is +/// started, and these tests are run, by packages/cultmesh-browser/test/interop/content-https.test.ts. Trust is the +/// fixture certificate through CustomRootTrust: chain and name validation stay on, and no other certificate is accepted. +/// +[TestFixture] +public sealed class CultMeshHttpsContentInteropTests +{ + private const string Prefix = "CULTMESH_HTTPS_CONTENT_"; + private string _dir = null!; + private string _manifests = null!; + private string _honest = null!, _tampered = null!, _corrupt = null!; + private X509Certificate2 _anchor = null!; + + [SetUp] + public void SetUp() + { + string? Var(string name) => Environment.GetEnvironmentVariable(Prefix + name); + var values = new[] { "ENDPOINT", "TAMPERED_ENDPOINT", "CORRUPT_ENDPOINT", "MANIFESTS", "CA_PEM" }.Select(Var).ToArray(); + if (values.Any(string.IsNullOrEmpty)) + Assert.Ignore("Run by packages/cultmesh-browser/test/interop/content-https.test.ts, which starts the TypeScript provider and sets " + Prefix + "*."); + (_honest, _tampered, _corrupt, _manifests) = (values[0]!, values[1]!, values[2]!, values[3]!); + _anchor = X509Certificate2.CreateFromPem(File.ReadAllText(values[4]!)); + _dir = Path.Combine(Path.GetTempPath(), "cultmesh-https-interop", Guid.NewGuid().ToString("N")); + } + + [TearDown] + public void TearDown() + { + if (_dir != null && Directory.Exists(_dir)) Directory.Delete(_dir, true); + } + + private CultMeshCdnArtifactManifest Manifest(string name) => + (CultMeshCdnArtifactManifest)CultDocumentMessagePackSerialization.DeserializeUntyped( + typeof(CultMeshCdnArtifactManifest), File.ReadAllBytes(Path.Combine(_manifests, name + ".manifest"))); + + private static readonly CultMeshSessionTarget Target = new("aetheria", "aetheria.daemon"); + + private sealed class Rig : IDisposable + { + public CultMeshDiscoveryService Discovery = null!; + public CultMeshSessionManager Sessions = null!; + public CultCache State = null!; + public CultMeshContentTransferService Transfer = null!; + public void Dispose() { State.Dispose(); Sessions.Dispose(); Discovery.Dispose(); } + } + + /// The production path: discovery, session manager with the unmodified HTTPS connector, session provider, transfer service. + private Rig Build(string endpoint, X509Certificate2 anchor, string cacheDir) + { + var rig = new Rig { Discovery = new CultMeshDiscoveryService(new[] { new RouteSource(endpoint) }) }; + rig.Sessions = new CultMeshSessionManager(rig.Discovery, Array.Empty(), + new ICultMeshContentTransportConnector[] + { + new CultMeshHttpsContentTransportConnector(() => new SocketsHttpHandler + { + SslOptions = new SslClientAuthenticationOptions + { + CertificateChainPolicy = new X509ChainPolicy + { + TrustMode = X509ChainTrustMode.CustomRootTrust, + CustomTrustStore = { anchor }, + RevocationMode = X509RevocationMode.NoCheck + } + } + }) + }, CultMeshTestTrust.LocalSessions); + var provider = new CultMeshSessionContentProvider("ts-https", rig.Sessions, Target); + rig.State = new CultCache(CultMesh.CreateCultCacheDocumentRegistry(typeof(CultMeshContentTransferStateDocument))); + rig.Transfer = new CultMeshContentTransferService(rig.State, new[] { provider }, new CultMeshContentTransferOptions(cacheDir)); + return rig; + } + + private static IEnumerable Chain(Exception e) + { + for (var current = e; current != null; current = current.InnerException) yield return current; + } + + private static string Sha(string path) => Convert.ToHexString(SHA256.HashData(File.ReadAllBytes(path))).ToLowerInvariant(); + + [Test] + public async Task HttpsTransferFetchesFromExternalTypeScriptProvider() + { + using var rig = Build(_honest, _anchor, _dir); + foreach (var name in new[] { "multi", "single", "empty", "escape" }) + { + var manifest = Manifest(name); + var path = await rig.Transfer.FetchAsync(manifest); + Sha(path).Should().Be(manifest.ContentHash.Replace("sha256:", ""), name); + if (name == "multi") manifest.Chunks.Should().HaveCount(4); + if (name == "empty") manifest.SizeBytes.Should().Be(0); + } + + var session = await rig.Sessions.ConnectContentAsync(Target); + var unknown = new CultMeshCdnChunkRef { ChunkHash = new string('0', 64), SizeBytes = 1 }; + var missing = async () => await session.CopyChunkToAsync(unknown, new MemoryStream()); + (await missing.Should().ThrowAsync()).Which.StatusCode.Should().Be(HttpStatusCode.NotFound); + + // The anchor is scoped: a different self-signed certificate does not validate the same server. + using var key = ECDsa.Create(ECCurve.NamedCurves.nistP256); + var request = new CertificateRequest("CN=someone-else", key, HashAlgorithmName.SHA256); + using var stranger = request.CreateSelfSigned(DateTimeOffset.UtcNow.AddDays(-1), DateTimeOffset.UtcNow.AddDays(1)); + using var other = Build(_honest, stranger, Path.Combine(_dir, "other")); + var refused = async () => await other.Transfer.FetchAsync(Manifest("single")); + var thrown = (await refused.Should().ThrowAsync()).Which; + Chain(thrown).Should().Contain(e => e is AuthenticationException); + } + + [Test] + public async Task HttpsTransferRefusesTamperedBytesFromExternalTypeScriptProvider() + { + using var rig = Build(_tampered, _anchor, _dir); + var multi = Manifest("multi"); + var fetch = async () => await rig.Transfer.FetchAsync(multi); + var thrown = (await fetch.Should().ThrowAsync()).Which; + Chain(thrown).Should().Contain(e => e is InvalidDataException && e.Message == "CDN artifact chunk hash does not match its manifest."); + (Directory.Exists(_dir) ? Directory.GetFiles(_dir, "*.body", SearchOption.AllDirectories) : Array.Empty()).Should().BeEmpty(); + + // The connector alone passes the wrong bytes: verification lives in the transfer owner. + var session = await rig.Sessions.ConnectContentAsync(Target); + using var bytes = new MemoryStream(); + await session.CopyChunkToAsync(multi.Chunks[0], bytes); + Convert.ToHexString(SHA256.HashData(bytes.ToArray())).ToLowerInvariant().Should().NotBe(multi.Chunks[0].ChunkHash.Replace("sha256:", "")); + } + + [Test] + public async Task HttpsTransferRefusesCorruptStoreFromExternalTypeScriptProvider() + { + using var rig = Build(_corrupt, _anchor, _dir); + var fetch = async () => await rig.Transfer.FetchAsync(Manifest("single")); + var thrown = (await fetch.Should().ThrowAsync()).Which; + Chain(thrown).OfType().Should().Contain(e => e.StatusCode == HttpStatusCode.InternalServerError); + (Directory.Exists(_dir) ? Directory.GetFiles(_dir, "*.body", SearchOption.AllDirectories) : Array.Empty()).Should().BeEmpty(); + } + + private sealed class RouteSource(string endpoint) : ICultMeshLookupSource + { + public string SourceId => "test"; + public Task> LookupAsync(CultMeshDiscoveryQuery query, CancellationToken cancellationToken = default) + { + var now = DateTimeOffset.UtcNow; + return Task.FromResult>(new[] + { + new CultMeshDiscoveryObservation(new CultMeshVerseDescriptor("aetheria", "Aetheria", + CultMeshVerseAuthorityModel.OperatorCluster, new CultMeshVerseCompatibility("cultmesh.v1", "rules"), + new[] { endpoint }, new[] { "aetheria.daemon" }), SourceId, now, now.AddMinutes(1), CultMeshDiscoveryTrust.Signed) + }); + } + } +} diff --git a/tests/GameCult.Mesh.Tests/CultMeshSingleFileWriteGuardTests.cs b/tests/GameCult.Mesh.Tests/CultMeshSingleFileWriteGuardTests.cs new file mode 100644 index 00000000..2f41f52c --- /dev/null +++ b/tests/GameCult.Mesh.Tests/CultMeshSingleFileWriteGuardTests.cs @@ -0,0 +1,122 @@ +using System; +using System.IO; +using FluentAssertions; +using GameCult.Caching; +using GameCult.Caching.MessagePack; +using NUnit.Framework; + +#nullable enable + +namespace GameCult.Mesh.Tests; + +// A CultMesh single-file write goes through the cache's single-file store: it reads the file under the store lock, applies its +// one record, and keeps every other record. A store stamped with a newer format version or one it cannot read is refused and +// left byte-identical. +public sealed class CultMeshSingleFileWriteGuardTests +{ + private static readonly CultMeshSingleFileDocumentSchema Schema = new("sha256:guard", "guard.item", "1"); + private string _root = null!; + private string _path = null!; + + [SetUp] + public void SetUp() + { + _root = Path.Combine(Path.GetTempPath(), "cultmesh-write-guard", Guid.NewGuid().ToString("N")); + Directory.CreateDirectory(_root); + _path = Path.Combine(_root, "store.cc"); + } + + [TearDown] + public void TearDown() + { + if (Directory.Exists(_root)) Directory.Delete(_root, true); + } + + private void Write(string key, byte payload) => + CultMesh.WriteSingleFileDocumentPayload(_path, new CultRecordKey(key), Schema, null, new[] { payload }); + + [TestCase("cultcache.store.v4")] + [TestCase("cultcache.store.v9")] + public void WriteRefusesAStoreStampedWithANewerFormat(string newer) + { + Write("item:a", 1); + var snapshot = CultDocumentMessagePackSerialization.DeserializeSnapshot(File.ReadAllBytes(_path)); + snapshot.FormatVersion = newer; + File.WriteAllBytes(_path, CultDocumentMessagePackSerialization.SerializeSnapshot(snapshot)); + var before = File.ReadAllBytes(_path); + + var error = Assert.Throws(() => Write("item:a", 2))!; + + error.Message.Should().Contain(newer); + File.ReadAllBytes(_path).Should().Equal(before); + } + + [Test] + public void WriteRefusesAFileItCannotRead() + { + var garbage = new byte[] { 0xc1, 0xc1, 0xc1, 0xc1 }; + File.WriteAllBytes(_path, garbage); + + Assert.Catch(() => Write("item:a", 1)); + + File.ReadAllBytes(_path).Should().Equal(garbage); + } + + // Another writer's record, under a schema this write does not touch, is still in the file after the write. + [Test] + public void WriteKeepsAnotherWritersRecord() + { + var other = new CultMeshSingleFileDocumentSchema("sha256:other", "other.item", "1"); + Write("item:a", 1); + CultMesh.WriteSingleFileDocumentPayload(_path, new CultRecordKey("item:b"), other, null, new byte[] { 7 }); + + Write("item:a", 2); + + CultMesh.ReadSingleFileDocumentPayload(_path, new CultRecordKey("item:a"), Schema.SchemaId).Should().Equal(2); + CultMesh.ReadSingleFileDocumentPayload(_path, new CultRecordKey("item:b"), other.SchemaId).Should().Equal(7); + } + + [Test] + public void WriteReplacesTheSameRecordAndCreatesAMissingFile() + { + Write("item:a", 1); + Write("item:a", 2); + + CultMesh.ReadSingleFileDocumentPayload(_path, new CultRecordKey("item:a"), Schema.SchemaId).Should().Equal(2); + } + + // The write takes the same .lock a CultCache single-file store takes: while another holder has it, the write waits. + [Test] + public void WriteWaitsForTheStoreLockAnotherWriterHolds() + { + Write("item:a", 1); + var write = default(System.Threading.Tasks.Task); + using (new FileStream(_path + ".lock", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)) + { + write = System.Threading.Tasks.Task.Run(() => Write("item:a", 2)); + + write.Wait(TimeSpan.FromMilliseconds(750)).Should().BeFalse("the lock is held, so the write must wait"); + CultMesh.ReadSingleFileDocumentPayload(_path, new CultRecordKey("item:a"), Schema.SchemaId).Should().Equal(1); + } + + write.Wait(TimeSpan.FromSeconds(10)).Should().BeTrue(); + CultMesh.ReadSingleFileDocumentPayload(_path, new CultRecordKey("item:a"), Schema.SchemaId).Should().Equal(2); + } + + // A variant at the very key being written is still not this write's to replace: a plain record would flatten it. + [Test] + public void WriteRefusesToReplaceAVariantAtTheSameKey() + { + Write("item:a", 1); + var snapshot = CultDocumentMessagePackSerialization.DeserializeSnapshot(File.ReadAllBytes(_path)); + snapshot.FormatVersion = CultPersistedStoreSnapshot.FormatV2; + snapshot.Records[0].Payload = Array.Empty(); + snapshot.Records[0].Variant = new CultVariantDelta("item:base", Array.Empty()); + File.WriteAllBytes(_path, CultDocumentMessagePackSerialization.SerializeSnapshot(snapshot)); + var before = File.ReadAllBytes(_path); + + Assert.Throws(() => Write("item:a", 2)); + + File.ReadAllBytes(_path).Should().Equal(before); + } +} diff --git a/unity/org.gamecult.cultlib/CHANGELOG.md b/unity/org.gamecult.cultlib/CHANGELOG.md index 9d54e996..f6b8c838 100644 --- a/unity/org.gamecult.cultlib/CHANGELOG.md +++ b/unity/org.gamecult.cultlib/CHANGELOG.md @@ -2,10 +2,15 @@ All notable changes to this package are documented in this file. -## [Unreleased] +## [2.0.0] - 2026-10-22 ### Breaking +- `CultMathJson` writes `CultPhasor` as `{"cosine":..,"sine":..}` and still reads + the old `cos`/`sin` keys. A reader from before this change does not know the + new keys: with default options it skips them and decodes zeros, and with + `UnmappedMemberHandling.Disallow` it throws. Upgrade readers before writers. + MessagePack bytes are unchanged. - CultCache refuses an unknown union arm on read and an unnamed union subtype on write. A payload whose arm key the union does not declare used to decode to `null` (and the next save wrote the loss back); a value whose type the union @@ -19,6 +24,146 @@ All notable changes to this package are documented in this file. open or pull must catch `InvalidDataException`. An arm key outside Int32 or not an integer is refused with the same union-naming refusal, and a variant override holding an unknown arm names the schema id. +- Removed or retyped public API, each with its replacement (measured against 1.0.61): + - `GameCult.Caching`: the `CultCache(CultDocumentRegistry?)` constructor is now + `CultCache(CultDocumentRegistry? registry = null, CultCodec? codec = null)`; code + that bound the old signature by reflection or a method group must rebind. + `CacheBackingStore.ToStoredDocument(CultPersistedRecord, IReadOnlyCollection<..>, ..)` + gains an `out` report of the schema drift it shed. The + `CultInspectorModel(registry, Func serialize, Func deserialize)` constructor is + now `CultInspectorModel(registry, CultCodec codec)`. + - `GameCult.Mesh`: `CultMeshPeerSnapshotDocumentOptions.SchemaIds`, + `CultMeshSnapshotRequestOptions.SchemaIds` and `.RecordKeys` are removed; set + `Selection` (a `CultNetSelection`) instead. `CultMeshHotBodySubscription.SchemaIds` + and `.RecordKeys` are removed; read `Selection`. + - `GameCult.Networking`: `CultNetDatabaseSubscriptionServer` no longer takes the + `projectRecord` constructor argument; a subscription is narrowed by its + selection and `authorizeRecord`. + - `InitialSequence` is `uint?` instead of `uint` on `CultMeshRudpSocketOptions`, + `RudpCultNetSchemaServerOptions`, `CultNetRudpSessionOptions`, + `CultNetRudpSocketTransportOptions` and `CultNetRudpSocketTransportServerOptions`. + Unset, a session draws a random initial sequence in [1, 2^31) (the old defaults + were 1 and 100); set a value to keep a fixed one. +- A data member aliased the same name as a reference member in one document type + (for example a member aliased `Owner` beside a reference member named `Owner`) + used to register and is now refused at registration, naming the clash. +- A store header other than one this runtime knows, and a record with more slots + than its header allows, are refused by name on read instead of being skipped or + read as `cultcache.store.v1`. A reader from before this change silently dropped + the extra slot (for example a variant) and the next save wrote the loss back. + `cultcache.store.v1` and `cultcache.store.v2` are the formats this release reads; + a store stamped with a newer one is refused, so this release never rewrites it. +- CultCache payload nesting is bounded at 256 on read and on write (it was 500), and a + union arm slot `[k, nil]` is refused. A store holding a record nested 257 to 500 + deep, which 1.0.61 read and wrote, no longer opens, and a value nested that deep + can no longer be saved; flatten such a record before upgrading. +- RUDP: `SendSchema` throws the `SocketException` for a send that can never + succeed as built (`MessageSize`, `InvalidArgument`, `AddressFamilyNotSupported`), + queues nothing, and a permanent failure after an earlier fragment left ends the + session. It used to count every send failure as a lost datagram and return. Inside + a poll such a failure ends only that peer's session (`PeerDisconnected` carries a + reason naming the error) and the poll is not failed. +- RUDP sessions end where they used to carry on: a peer whose message cannot be + decoded or handled has its session ended with a goodbye, instead of throwing out + of `PollAvailableAsync`/`PollOnceAsync`; a session that refuses a packet ends; + `FlushReliable` throws for writes an ended session forgot; the listener replaces a + peer on a Connect only when its connect payload differs (reporting + `PeerDisconnected` for the old one) where it used to replace it on every Connect; + server mode is claimed only by a Connect; an `InitialSequence` of `uint.MaxValue` + is rejected; malformed, foreign-connection and refused packets are dropped and + counted in `Stats.PacketsDropped` instead of throwing out of `TryReceiveOnce`. +- `CultNetDatabase.PutAsync` and `DeleteAsync` for a schema no shard owns throw + `CultNetUnownedSchemaException` (an `InvalidOperationException` naming the schema) + before the cache is touched. They used to cache the write and never log it. The + fallback shard is gone: a database with shards that do not cover a schema serves + and writes only what its shards own. +- RUDP: `CultMeshRudpSocketOptions.BindHost` is nullable and unset by default. A + client now binds loopback for a loopback endpoint and the unspecified address of + the endpoint's family otherwise (it used to bind `0.0.0.0` for every client, so an + IPv6 endpoint could not be reached); a server still binds `0.0.0.0`. An explicit + `BindHost` wins for both. +- RUDP wire behaviour changed in step across the C#, Rust, TypeScript and Python + runtimes: one received-through watermark per session owns ordered delivery; a + Connect repeats only when it carries the sequence that opened the generation, and + reliable data before the handshake is neither acknowledged nor delivered; the + sender admits a packet only within 1,023 sequences and 4 MiB above the lowest + unacknowledged one. A peer on 1.0.x interoperates only for traffic that stays + inside those bounds. +- Variants (record-level wire and store format): a store holding at least one + variant declares `cultcache.store.v2` and its variant records carry a fifth slot. + A reader from before this change refuses the store (unknown header) rather than + reading it. A store with no variant stays `cultcache.store.v1`, byte-identical to + 1.0.x. CultMesh single-file reads, the directory store and CultNet refuse a variant + record by name; only the C# CultCache resolves variants. +- A plain flush (`SingleFileBackingStore.PushAll`) reads the file under the lock before it + rewrites it, by the same rule attach and conditional commit use (the format stamp in + the header decides, before the body is parsed), and throws + `NotSupportedException` instead of writing when the store is one this runtime + refuses to read: stamped by another process with a newer format, or with a stamp the + reader refuses. A read that fails with an I/O or access error also refuses. It used to + overwrite the file from this cache's older view. A directory store throws the same + exception, from the manifest parse every write already ran, for a manifest stamped + `cultcache.store.v` with N > 4 (it threw `InvalidOperationException`). A flush + rewrites any file whose stamp it can read as v1 or v2, or cannot read at all (empty, + truncated, not a snapshot), which includes a v1 file whose body is corrupt or truncated. + It refuses any other string stamp, a nil or binary stamp, and an I/O failure on the read. + The public `DeserializeSnapshot(byte[])` still parses any string stamp, but refuses a nil + or binary stamp (1.0.61 read a nil stamp as v1). +- `CultMesh.WriteSingleFileDocument` and `WriteSingleFileDocumentPayload` read the + file they replace, under the store's `.lock`, and refuse (without touching + it) a file this runtime cannot read, a store stamped with a newer format version, + or one holding any record besides the key being written. They used to replace the + file whole. Write to a store that holds several records through a `CultCache`. + +### Added + +- Variants: a record that stores only its difference from a base record, resolved in + memory when the cache admits it (`cultcache.store.v2`; see the persistence-format + contract). A plain write at a variant's key is refused, and `Flatten` replaces a + variant with a plain record. +- CultNet selection v1: one `CultNetSelection` shape and evaluator (schemas, keys, + field predicates, cites, cursors) used by CultMesh snapshot requests, the database + server and subscriptions, with typed refusals and row identity of + `(schemaId, recordKey)`. v0 filters are lowered onto it with their pre-existing + answers. +- Record grouping: a document type declares its inspector group, and the inspector + model exposes the group tree, create-in-group and reference labels. +- `CultMath` value types have canonical MessagePack formatters and `System.Text.Json` + converters, including `CultPhasor`, `CultSiteCells`, `SpanNoise`, `SpanPath`, + `SpanStage` and the `ExprGraph` expression graph resolver. +- CultNet publishes every committed cache change once, in `Sequence` order, from the + cache journal; `CultNetDatabase.Dispose` publishes what a writer logged and had + not yet published. +- `CultCache` takes an optional `CultCodec`, and isolates every observer so a + throwing one cannot stop the others. + +### Changed + +- Requires `org.gamecult.cultmath` exactly 0.5.0. +- After another writer's whole-file flush or unconditional commit rewrites a + drifted record under a schema id this cache did not read it under, keeping its + `storedAt`, an `Expect` captured before fails until this cache re-reads the + store (`PullAll`), as for any other lost race. + +### Fixed + +- The native QUIC plugins' import settings enable `Standalone: Win64` and disable the + 32-bit target (the 1.0.61 fix, now on main). +- `Expect` and `ExpectUnchanged` hold on an unchanged record loaded under + compatible schema drift (written under one version of its type, read by a + cache that knows another). Before, they always failed: conditional commit + compared the record's persisted schema id with the id this cache decodes it as. + +## [1.0.61] - 2026-10-03 + +### Fixed + +- The native QUIC plugins under `Runtime/Plugins/x86_64` (`gamecult_mesh_quic_native.dll` + and `msquic.dll`) are enabled for 64-bit Windows players (`Standalone: Win64`). + Their import settings named only `Standalone: Win`, the 32-bit target, so a + Win64 player build left both DLLs out and the native QUIC bridge was + unavailable at runtime. They are now disabled for 32-bit Windows, which they + cannot load. ## [1.0.60] diff --git a/unity/org.gamecult.cultlib/README.md b/unity/org.gamecult.cultlib/README.md index 8716d7e4..e118ac65 100644 --- a/unity/org.gamecult.cultlib/README.md +++ b/unity/org.gamecult.cultlib/README.md @@ -11,19 +11,19 @@ and OpenSSL license notices are included under `Third Party Notices`. Build it with `scripts/build-unity-package.ps1`. Do not edit generated plugin assemblies in the package output. -Install version `1.0.57` through Unity Package Manager with: +Install version `2.0.0` through Unity Package Manager with: ```text -https://github.com/GameCult/CultLib.git?path=/unity/org.gamecult.cultlib#cultlib-unity-v1.0.57 +https://github.com/GameCult/CultLib.git?path=/unity/org.gamecult.cultlib#cultlib-unity-v2.0.0 ``` -The package depends on `org.gamecult.cultmath` (0.3.0 or later) and does not +The package depends on `org.gamecult.cultmath` (exactly 0.5.0) and does not carry its own `CultMath.dll`. Unity Package Manager resolves git packages only from the project manifest, so add CultMath beside CultLib in `Packages/manifest.json`: ```text -"org.gamecult.cultmath": "https://github.com/GameCult/CultLib.git?path=/packages/cultmath/unity/org.gamecult.cultmath#cultmath-unity-v0.3.0" +"org.gamecult.cultmath": "https://github.com/GameCult/CultLib.git?path=/packages/cultmath/unity/org.gamecult.cultmath#cultmath-unity-v0.5.0" ``` CultMesh chooses mapped memory for reachable same-machine bodies and advertised diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.MessagePack.dll b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.MessagePack.dll index 65bef491..4e3bb115 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.MessagePack.dll and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.MessagePack.dll differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.MessagePack.pdb b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.MessagePack.pdb index 8de1fab3..ac915c7f 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.MessagePack.pdb and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.MessagePack.pdb differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.dll b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.dll index a1935769..c1304f4b 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.dll and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.dll differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.pdb b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.pdb index 1ad659c1..fa2fa001 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.pdb and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Caching.pdb differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Logging.dll b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Logging.dll index 2cfe3979..193fbb8c 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Logging.dll and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Logging.dll differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Logging.pdb b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Logging.pdb index fc1f2ee2..09aeacbc 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Logging.pdb and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Logging.pdb differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.Quic.Native.dll b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.Quic.Native.dll index 578bb632..43c34a61 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.Quic.Native.dll and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.Quic.Native.dll differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.Quic.Native.pdb b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.Quic.Native.pdb index 47a0f04c..8d21472f 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.Quic.Native.pdb and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.Quic.Native.pdb differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.dll b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.dll index 9d1402a7..82062269 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.dll and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.dll differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.pdb b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.pdb index 68e10927..6c6b6326 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.pdb and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Mesh.pdb differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.WebSockets.dll b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.WebSockets.dll index 0e655de0..d56beb3c 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.WebSockets.dll and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.WebSockets.dll differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.dll b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.dll index e6eb0f41..c4c84d10 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.dll and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.dll differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.pdb b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.pdb index b35f2d90..f4267efd 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.pdb and b/unity/org.gamecult.cultlib/Runtime/Plugins/GameCult.Networking.pdb differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/gamecult_mesh_quic_native.dll b/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/gamecult_mesh_quic_native.dll index 5f087516..3bcdda0c 100644 Binary files a/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/gamecult_mesh_quic_native.dll and b/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/gamecult_mesh_quic_native.dll differ diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/gamecult_mesh_quic_native.dll.meta b/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/gamecult_mesh_quic_native.dll.meta index cfeb2bd8..7c287cfa 100644 --- a/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/gamecult_mesh_quic_native.dll.meta +++ b/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/gamecult_mesh_quic_native.dll.meta @@ -25,6 +25,12 @@ PluginImporter: DefaultValueInitialized: true - first: Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 second: enabled: 1 settings: diff --git a/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/msquic.dll.meta b/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/msquic.dll.meta index 789b12e6..479783e5 100644 --- a/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/msquic.dll.meta +++ b/unity/org.gamecult.cultlib/Runtime/Plugins/x86_64/msquic.dll.meta @@ -25,6 +25,12 @@ PluginImporter: DefaultValueInitialized: true - first: Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 second: enabled: 1 settings: diff --git a/unity/org.gamecult.cultlib/package.json b/unity/org.gamecult.cultlib/package.json index 85008e8c..4bd776bc 100644 --- a/unity/org.gamecult.cultlib/package.json +++ b/unity/org.gamecult.cultlib/package.json @@ -1,10 +1,10 @@ { "name": "org.gamecult.cultlib", "displayName": "CultLib", - "version": "1.0.60", + "version": "2.0.0", "unity": "2021.3", "dependencies": { - "org.gamecult.cultmath": "0.4.1" + "org.gamecult.cultmath": "0.5.0" }, "description": "CultCache, CultNet, and CultMesh managed runtime assemblies for Unity.", "license": "MIT",