From 4c606da971bceb838fa2b326da429bff7e7caf76 Mon Sep 17 00:00:00 2001 From: Daniel Seiller Date: Sun, 7 May 2023 22:58:19 +0200 Subject: [PATCH] vault backup: 2023-05-07 22:58:19 --- .history/mdzk_20230330121755.toml | 0 .history/mdzk_20230330121922.toml | 1 + Callbacks.md | 10 +- Chunked.md | 164 ++++++++++++++++++++++++------ File.md | 2 +- MultiSpriteTable.md | 1 - Netplay/Netplay.md | 27 +++-- Netplay/Protocol.md | 57 ++++++++--- Netplay/Samples.md | 102 +++++++++++++++++++ Untitled.canvas | 4 + 10 files changed, 316 insertions(+), 52 deletions(-) create mode 100644 .history/mdzk_20230330121755.toml create mode 100644 .history/mdzk_20230330121922.toml create mode 100644 Netplay/Samples.md create mode 100644 Untitled.canvas diff --git a/.history/mdzk_20230330121755.toml b/.history/mdzk_20230330121755.toml new file mode 100644 index 0000000..e69de29 diff --git a/.history/mdzk_20230330121922.toml b/.history/mdzk_20230330121922.toml new file mode 100644 index 0000000..7c31c88 --- /dev/null +++ b/.history/mdzk_20230330121922.toml @@ -0,0 +1 @@ +title="Scrapland" \ No newline at end of file diff --git a/Callbacks.md b/Callbacks.md index e59fe55..30ffc17 100644 --- a/Callbacks.md +++ b/Callbacks.md @@ -1,13 +1,13 @@ They can be used in function parameters like so: ```python -SAct.SetAct("EventFunc","!") +SAct.SetAct("EventFunc","!") ``` Or directly called from python: ```python # Set Callback function -Scrap.SetCallFunc("!") +Scrap.SetCallFunc("!") # Add parameters Scrap.AddParams(str) Scrap.AddParamf(float) @@ -18,6 +18,12 @@ Scrap.Execute() Note the `!` symbol in front of the callback name +# Parameters + +- EditText: + - player_id: int + - scorer_item_name: str + ## OG | Callback setup address | Callback name | Callback funcion | Callback address | diff --git a/Chunked.md b/Chunked.md index e378367..852f6e9 100644 --- a/Chunked.md +++ b/Chunked.md @@ -19,13 +19,13 @@ struct Block { # Block IDs - File ID | Chunk IDs - ------- | ------------------------------------------------------------------------------ - AMC | AMC, CMSH, QUAD - CM3 | ANI, CM3, EVA, NAE, NAM, SCN - DUM | DUM, INI - EMI | EMI, LFVF, MAP, MAT, TRI - SM3 | ANI, CAM, INI, LFVF, LUZ, MAP, MAT, MD3D, NAE, NAM, PORT, SCN, SM3, SPR3, SUEL +| File ID | Chunk IDs | +| ------- | ------------------------------------------------------------------------------ | +| AMC | AMC, CMSH, QUAD | +| CM3 | ANI, CM3, EVA, NAE, NAM, SCN | +| DUM | DUM, INI | +| EMI | EMI, LFVF, MAP, MAT, TRI | +| SM3 | ANI, CAM, INI, LFVF, LUZ, MAP, MAT, MD3D, NAE, NAM, PORT, SCN, SM3, SPR3, SUEL | Read types: @@ -36,26 +36,28 @@ Read types: - `3f`: array of 3 4-byte floats - `3i`: array of 3 4-byte unsigned integers - Chunk ID | Description | Reads - -------- | --------------------------- | ------------------------ - AMC | Collision Data | - ANI | Animation data? | - CAM | Camera info? | - CMSH | Collision Mesh Data | - DUM | Dummy (map object) data | - INI | INI-Configuration data | - LFVF | FVF Vertex Data | - LUZ | Lighting information | - MAP | UV Map? | - MAT | Material information | - NAE | Animation Data? | - NAM | Animation Data? | - PORT | Map portals? | i==1, i, i, 4, 4 - QUAD | Mesh data? | - SCN | Scene data? | - SUEL | Ground plane? | 0x18, 0xc, 4, 4, 4, 0x18 - TRI | Triangle strip definitions? | - MD3D | 3D Model definition? | +| Chunk ID | Description | Reads | +| -------- | --------------------------- | ------------------------ | +| AMC | Collision Data | +| ANI | Animation data? | +| CAM | Camera info? | +| CMSH | Collision Mesh Data | +| EVA | Vertex animation data | +| DUM | Dummy (map object) data | +| INI | INI-Configuration data | +| LFVF | FVF Vertex Data | +| LUZ | Lighting information | +| MAP | Lightmap | +| MAT | Material information | +| NAE | Animation Data? | +| NAM | Animation Data? | +| PORT | Map portals | `i==1, i, i, 4, 4` +| QUAD | Mesh data? | +| SCN | Scene tree data | +| SUEL | Ground Plane? | 0x18, 0xc, 4, 4, 4, 0x18 +| TRI | Triangle Mesh | +| MD3D | 3D Model definition | +| EMI | Level geometry | # Format of Specific chunks @@ -76,7 +78,6 @@ struct INI { }; ``` - ## LFVF DirectX Flexible Vertex Format Data @@ -84,7 +85,7 @@ DirectX Flexible Vertex Format Data ```cpp struct Vertex { // fields according to flags float position[3]; // D3DFVF_XYZ | D3DFVF_XYZRHW | D3DFVF_XYZB* - float rhw; // D3DFVF_XYZRHW + // float rhw; // unused even with D3DFVF_XYZRHW float weights[3]; // D3DFVF_XYZB* float normal[3]; // D3DFVF_NORMAL float point_size; // D3DFVF_PSIZE @@ -94,7 +95,7 @@ struct Vertex { // fields according to flags }; struct LFVF { - uint32_t unk; + uint32_t version; uint32_t num_entries; struct { uint32_t FVF; // FVF vertex data configuration @@ -137,4 +138,107 @@ struct MAP { char tex_name[tex_name_len]; // TODO: rest } +``` + +## SCN + +- Tree structure + +``` +Escena: Models/Chars/Dtritus/Dtritus.M3D + _raiz_escena -1 0 -1 c:(null) f:00000001 a:0000 + DC_Root 0 1 -1 c:(null) f:00010090 a:0000 + DC_Camera 1 93 -1 c:(null) f:00420090 a:0000 + DC_Floor 2 94 -1 c:(null) f:00420090 a:0000 + Bip Detritus MASTER 4 2 -1 c:(null) f:00200090 a:0000 + Bip Detritus 5 3 -1 c:(null) f:00200190 a:0000 + Bip Detritus Pelvis 7 4 -1 c:(null) f:00300190 a:0000 + Bip Detritus Spine 8 5 -1 c:(null) f:00300190 a:0000 + Bip Detritus Spine1 9 6 -1 c:(null) f:00300190 a:0000 + Bip Detritus Spine2 10 7 -1 c:(null) f:00300190 a:0000 + Bip Detritus Neck 11 8 -1 c:(null) f:00300190 a:0000 + Bip Detritus Head 12 9 -1 c:MallaD3D f:00300110 a:0000 [skin] + Bip Detritus Ponytail1 14 10 -1 c:(null) f:00300190 a:0000 + Bip Detritus Ponytail11 15 11 -1 c:(null) f:00380190 a:0000 + Bip Detritus Ponytail12 16 12 -1 c:(null) f:00380190 a:0000 + Bip Detritus Ponytail2 18 13 -1 c:(null) f:00300190 a:0000 + Bip Detritus Ponytail21 19 14 -1 c:(null) f:00300190 a:0000 + BipBone Detritus MechonDer_01 23 15 -1 c:(null) f:00300190 a:0000 + BipBone Detritus MechonDer_02 24 16 -1 c:(null) f:00380190 a:0000 + BipBone Detritus MechonDer_03 25 17 -1 c:(null) f:00380190 a:0000 + BipBone Detritus MechonIzq_01 27 18 -1 c:(null) f:00300190 a:0000 + BipBone Detritus MechonIzq_02 28 19 -1 c:(null) f:00380190 a:0000 + BipBone Detritus MechonIzq_03 29 20 -1 c:(null) f:00380190 a:0000 + R_Detritus_Cabeza-Cara&Pelo 37 21 -1 c:MallaD3D f:00000010 a:0000 [skin] + R_Detritus_Cabeza-Mechones 38 22 -1 c:MallaD3D f:00000010 a:FF7F [skin] + R_Detritus_Cabeza-Ceja_Izq 39 23 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Cabeza-Ceja_Der 40 24 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Cabeza-Ojo_Izq 41 25 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Cabeza-Ojo_Der 42 26 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Cabeza-OjoParpado_Der 43 27 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Cabeza-OjoParpado_Izq 44 28 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Cabeza-PeloMechones 45 29 -1 c:MallaD3D f:00000070 a:FF7F [skin] + Bip Detritus L Clavicle 54 30 -1 c:(null) f:00200190 a:0000 + Bip Detritus L UpperArm 55 31 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Forearm 56 32 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Hand 57 33 -1 c:MallaD3D f:00300110 a:0000 [skin] + Bip Detritus L Finger0 58 34 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Finger01 59 35 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Finger1 61 36 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Finger11 62 37 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Finger2 64 38 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Finger21 65 39 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Finger3 67 40 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Finger31 68 41 -1 c:(null) f:00300190 a:0000 + R_Detritus_Antebrazo_Izq 71 42 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Codo_Izq 72 43 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Antebrazo-Doblez_Izq 73 44 -1 c:MallaD3D f:00000010 a:FF7F [skin] + R_Detritus_Brazo-CilindroB-Eje_Izq 75 45 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Brazo-CilindroB_Izq 76 46 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Brazo_Izq 77 47 -1 c:MallaD3D f:00000010 a:0000 [skin] + R_Detritus_Brazo-CilindroA_Izq 79 48 -1 c:MallaD3D f:00000010 a:0000 + Bip Detritus R Clavicle 80 49 -1 c:(null) f:00200190 a:0000 + Bip Detritus R UpperArm 81 50 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Forearm 82 51 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Hand 83 52 -1 c:MallaD3D f:00300110 a:0000 [skin] + Bip Detritus R Finger0 84 53 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Finger01 85 54 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Finger1 87 55 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Finger11 88 56 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Finger2 90 57 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Finger21 91 58 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Finger3 93 59 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Finger31 94 60 -1 c:(null) f:00300190 a:0000 + R_Detritus_Antebrazo_Der 97 61 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Codo_Der 98 62 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Antebrazo-Doblez_Der 99 63 -1 c:MallaD3D f:00000010 a:FF7F [skin] + R_Detritus_Brazo-CilindroB-Eje_Der 100 64 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Brazo-CilindroB_Der 102 65 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Brazo_Der 103 66 -1 c:MallaD3D f:00000010 a:0000 [skin] + R_Detritus_Brazo-CilindroA_Der 105 67 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Tronco 106 68 -1 c:MallaD3D f:00000010 a:FF7F [skin] + Bip Detritus L Thigh 107 69 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Calf 108 70 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Foot 109 71 -1 c:(null) f:00300190 a:0000 + Bip Detritus L Toe0 110 72 -1 c:(null) f:00300190 a:0000 + R_Detritus_Espinilla_Izq 112 73 -1 c:MallaD3D f:00000010 a:0000 [skin] + R_Detritus_Rodilla_Izq 113 74 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Pierna-CilindroB_Izq 114 75 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Espinilla-CilindroA_Izq 116 76 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Talon_Izq 118 77 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Espinilla-CilindroB_Izq 119 78 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Pierna_Izq 121 79 -1 c:MallaD3D f:00000010 a:0000 [skin] + R_Detritus_Pierna-CilindroA_Izq 122 80 -1 c:MallaD3D f:00000010 a:0000 + Bip Detritus R Thigh 124 81 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Calf 125 82 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Foot 126 83 -1 c:(null) f:00300190 a:0000 + Bip Detritus R Toe0 127 84 -1 c:(null) f:00300190 a:0000 + R_Detritus_Talon_Der 129 85 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Espinilla-CilindroB_Der 130 86 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Espinilla_Der 132 87 -1 c:MallaD3D f:00000010 a:0000 [skin] + R_Detritus_Rodilla_Der 133 88 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Pierna-CilindroB_Der 135 89 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Espinilla-CilindroA_Der 136 90 -1 c:MallaD3D f:00000010 a:0000 + R_Detritus_Pierna_Der 138 91 -1 c:MallaD3D f:00000010 a:0000 [skin] + R_Detritus_Pierna-CilindroA_Der 139 92 -1 c:MallaD3D f:00000010 a:0000 ``` \ No newline at end of file diff --git a/File.md b/File.md index 943ab36..e47d670 100644 --- a/File.md +++ b/File.md @@ -8,7 +8,7 @@ .sm3 | 3d model file | y .dum | Dummy (map object) file | y .pth | AI Path | n - .emi | Emission maps/Materials? | y + .emi | Level geometry | y .amc | Collision Data | y .ini | Configuration | n .txa | Texture Animation Config | n diff --git a/MultiSpriteTable.md b/MultiSpriteTable.md index 76c7f97..b752961 100644 --- a/MultiSpriteTable.md +++ b/MultiSpriteTable.md @@ -1,4 +1,3 @@ -# MultiSpriteTable ```cpp struct Tile { diff --git a/Netplay/Netplay.md b/Netplay/Netplay.md index 5de1498..dc74900 100644 --- a/Netplay/Netplay.md +++ b/Netplay/Netplay.md @@ -2,24 +2,39 @@ Fixed Key: `020406080a0c0e10121416181a1c1e20222426282a2c2e30323436383a3c3e40` Packet Structure: +```rust +struct Packet { + #[len=pad_16(nonce_len)] + nonce: Vec, + #[len=pad_16(data_len)] + data: Vec, + nonce_len: u64, + data_len: u64 + tag: [u8;16] +} +``` ``` -[0..nonce_len]: nonce -[nonce_len..(16-nonce_len%16)]: padding -[16..ciphertext_len]: Ciphertext -[nonce_len+(16-nonce_len%16)+ciphertext_len] - - 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0000 ED C9 C2 F4 7C 6D F2 54 42 EF 46 F6 00 00 00 00 ....|m.TB.F..... + 0010 68 13 5C 9A 2B 18 DB 9C 76 BE A0 8A 3E 49 79 3C h.\.+...v...>Iy< 0020 8D 7A C4 4C 8B B0 A4 94 E5 B5 89 54 A6 ED 6D 75 .z.L.......T..mu 0030 1A CA A8 4B 22 B5 03 84 F7 3C DE 4E B0 30 81 29 ...K"....<.N.0.) 0040 3B 70 45 15 33 C0 97 67 85 6B 28 EF 2E 2E D1 83 ;pE.3..g.k(..... 0050 E6 56 A7 81 53 89 3E 52 D8 82 CF 77 92 CF C2 D6 .V..S.>R...w.... 0060 9F 37 C5 DE EE 14 4D 3F 1F 82 32 7E 00 00 00 00 .7....M?..2~.... + 0070 0C 00 00 00 00 00 00 00 5C 00 00 00 00 00 00 00 ........\....... + 0080 89 7A A8 32 93 56 B6 68 24 E0 58 63 7F 70 5A D2 .z.2.V.h$.Xc.pZ. ``` +Decryption algorithm (Pseudocode): +```python +cipher = ChaCha20(key,pkt.nonce) +packet_key = cipher.decrypt(key) +cipher.seek(packet_key.len()+32) +data = cipher.decrypt(pkt.data) +``` Decrypted: ``` 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F diff --git a/Netplay/Protocol.md b/Netplay/Protocol.md index 9596eee..61beec4 100644 --- a/Netplay/Protocol.md +++ b/Netplay/Protocol.md @@ -37,10 +37,10 @@ Hexdump: 0110 00 14 00 9E FF F6 E8 C8 9F 08 22 FC 8F F3 FF FF .........."..... ``` -Split up into chunks: +Split up into parts: ``` -0f 00 0002 0007 00 7544b3c5 90183747 74c6b246 0098 +0f00 0002 0007 00 7544b3c5 90183747 74c6b246 0098 0500 00 09955f3c000671340281062c090900001d007f5e0e22c6ddf52247cce2b64655163b8c8e0b4a272f44e7afc745ef913546000000000000 0000 00 08155f8300035186005100e9fb08050040007e5700ffff6301000010ff2365f96e1e000000 @@ -67,16 +67,16 @@ Size: 0285 PlyId: 002 NumVals: 007 Structure: ``` - -0f00 # Unk +0f00 # Unk (TypeID?) 0002 # PlayerID 0007 # Num Vals -00 # Unk +00 # Unk (Flags?) 7544b3c5 # Pos.X 90183747 # Pos.Y 74c6b246 # Pos.Z 00 # Player Index 98 # Rtt +# Ent_ID, Ent_Type, Data 0500 00 09955f3c000671340281062c090900001d007f5e0e22c6ddf52247cce2b64655163b8c8e0b4a272f44e7afc745ef913546000000000000 0000 00 08155f8300035186005100e9fb08050040007e5700ffff6301000010ff2365f96e1e000000 0200 00 00105f00000621e000daf7b1f73a0000c800ff7544b3c59018374774c6b24697f5d70200000000000000000000000000000000000000002c @@ -84,7 +84,6 @@ Structure: 2402 15 9e7f005800b5ff20f1f01904210bd5f5ffff 2302 15 9f4a6cd1c44625314792e5b04614cb45d6da5c26aa4e44a2ca72c5cdb4edc3ffff 2202 15 9e7e0014009efff6e8c89f0822fc8ff3ffff - ``` ```c @@ -93,7 +92,7 @@ Structure: struct NetValue { le u16 entity_index; u8 entity_type; - char data[?]; // TODO: how is length determined? + char data[?]; // length depends on entity type }; struct NetData { @@ -111,16 +110,50 @@ struct NetData { Packets are split into Data packets (map change, resources, chat message, etc) and entity (position?) updates -## Packet types +## Entity Types +- 00: Vehicle +- 01: Cloud +- 02: Swarm +- 03: Inferno +- 04: Sonic +- 05: EMI +- 06: Box:Ener +- 07: Box:Miss +- 08: Box:Part +- 09: Box:Life +- 10: Box:iXtr +- 11: Box:iSiz +- 12: Box:aBom +- 13: Box:aSpd +- 14: Box:dAim +- 15: Box:dBom +- 16: Box:tAim +- 17: Box:tTra +- 18: Box:sRot +- 19: Box:sRck +- 20: Box:vAim +- 21: Box:vSpd -- 00: MapChange: +## Server->Client Packet Types + +- 00: Player Join +- 02: Disconnect +- 03: Chat String +- 04: Usr String +- 05: Unk (Keepalive?) +- 06: Player Modify +- 08: Remote command + +## Client->Server Packet types + +- 00: Map Change: - str map_name - str game_mode - 01: Resource: - - u8: unk - - u16?: num_resources - - [str: resource_name]*num_resources + - u16: resource_index + - u16: unk + - [str: resource_name] repeated num_resources times - 02: Unknown (Keepalive?) diff --git a/Netplay/Samples.md b/Netplay/Samples.md new file mode 100644 index 0000000..44dbe4d --- /dev/null +++ b/Netplay/Samples.md @@ -0,0 +1,102 @@ +`8f19001b041644282d353733362c2034363837322c20323238383329030027007544b3c59018374774c6b24605ae05000009915f3c00065187f70a0004080900008a007e6f00d1fed2fdfe5dffc2f89a006a090000000100000c105f830006f00100070000c8007e4d088cfeafffe2bb000000feff000000000000000009105f980003a1020001050043007e38fecdfec2ff15c30073ff04008a0000000002000000105f00000621e000daf7b1f73a0000c800ff7544b3c59018374774c6b24697f5d70200000000000000000000000000000000000000002c2502151fb785aac5e90a3947ab9db446931389c8046e09ea58455833ec44a4f21ac4ffff00002402151f835da7c5cc113747af38ae46c20f67c8abc43230634572e5c0440d291fc4ffff00002302151fd135b4c5ef1c39472d84b3469b0ebdc4d64f929168458679b344e89597c3ffff00002202151f8876b2c51ead3747dafdad46dc1062c9c1c8b96d5f45ea9ccd448a5a33c4ffff00001f020b0376a8e2475b6e5b467c1e99461e020903982d14c5ec79cb45b2ee96471d020e03b29dbc46caa433464a28a0c71c020603aa80514658b8ab458db025c71b020803ce492f4658b8ab4514d320c71a02070344532f4658b8ab4587cf16c7190205031b3a0d4658b8ab459eaf25c7180206030ac34c4669e1fd469891ca47170208032e8c2a4669e1fd465500cd4716020703a4952a4669e1fd461b02d247150205037b7c084669e1fd460f92ca4714020603da6b7ec714aa3746b77c5a4713020803c87c83c714aa3746305a5f47120207039a7b83c714aa3746bd5d694711020503bfbe87c714aa3746a67d5a4710020803c5c719474ad5d445a7b3d2c60f0206037c5522474ad5d4459a6edcc60e02070323ca19474ad5d4458dacbec60d020503d84311474ad5d445bb6cdcc60c020603a9b16b47d52d974602dd15470b020803f2236347d52d97467bba1a470a02070350266347d52d974608be24470902050305a05a47d52d9746f1dd1547080206031f4066c6384b9c46955bd345070208037e3b84c6384b9c466147fa4506020703c33684c6384b9c46e431254605020503574395c6384b9c461063d34504020603ba349bc77a60294640f387c103020803957b9fc77a602946658f994402020703677a9fc77a60294680006d45010205038cbda3c77a602946807880c1` +``` + 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f +0000 8f 19 00 1b 04 16 44 28 2d 35 37 33 36 2c 20 34 ......D(-5736, 4 +0010 36 38 37 32 2c 20 32 32 38 38 33 29 03 00 27 00 6872, 22883)..'. +0020 75 44 b3 c5 90 18 37 47 74 c6 b2 46 05 ae 05 00 uD....7Gt..F.... +0030 00 09 91 5f 3c 00 06 51 87 f7 0a 00 04 08 09 00 ..._<..Q........ +0040 00 8a 00 7e 6f 00 d1 fe d2 fd fe 5d ff c2 f8 9a ...~o......].... +0050 00 6a 09 00 00 00 01 00 00 0c 10 5f 83 00 06 f0 .j........._.... +0060 01 00 07 00 00 c8 00 7e 4d 08 8c fe af ff e2 bb .......~M....... +0070 00 00 00 fe ff 00 00 00 00 00 00 00 00 09 10 5f ..............._ +0080 98 00 03 a1 02 00 01 05 00 43 00 7e 38 fe cd fe .........C.~8... +0090 c2 ff 15 c3 00 73 ff 04 00 8a 00 00 00 00 02 00 .....s.......... +00a0 00 00 10 5f 00 00 06 21 e0 00 da f7 b1 f7 3a 00 ..._...!......:. +00b0 00 c8 00 ff 75 44 b3 c5 90 18 37 47 74 c6 b2 46 ....uD....7Gt..F +00c0 97 f5 d7 02 00 00 00 00 00 00 00 00 00 00 00 00 ................ +00d0 00 00 00 00 00 00 00 00 2c 25 02 15 1f b7 85 aa ........,%...... +00e0 c5 e9 0a 39 47 ab 9d b4 46 93 13 89 c8 04 6e 09 ...9G...F.....n. +00f0 ea 58 45 58 33 ec 44 a4 f2 1a c4 ff ff 00 00 24 .XEX3.D........$ +0100 02 15 1f 83 5d a7 c5 cc 11 37 47 af 38 ae 46 c2 ....]....7G.8.F. +0110 0f 67 c8 ab c4 32 30 63 45 72 e5 c0 44 0d 29 1f .g...20cEr..D.). +0120 c4 ff ff 00 00 23 02 15 1f d1 35 b4 c5 ef 1c 39 .....#....5....9 +0130 47 2d 84 b3 46 9b 0e bd c4 d6 4f 92 91 68 45 86 G-..F.....O..hE. +0140 79 b3 44 e8 95 97 c3 ff ff 00 00 22 02 15 1f 88 y.D........".... +0150 76 b2 c5 1e ad 37 47 da fd ad 46 dc 10 62 c9 c1 v....7G...F..b.. +0160 c8 b9 6d 5f 45 ea 9c cd 44 8a 5a 33 c4 ff ff 00 ..m_E...D.Z3.... +0170 00 1f 02 0b 03 76 a8 e2 47 5b 6e 5b 46 7c 1e 99 .....v..G[n[F|.. +0180 46 1e 02 09 03 98 2d 14 c5 ec 79 cb 45 b2 ee 96 F.....-...y.E... +0190 47 1d 02 0e 03 b2 9d bc 46 ca a4 33 46 4a 28 a0 G.......F..3FJ(. +01a0 c7 1c 02 06 03 aa 80 51 46 58 b8 ab 45 8d b0 25 .......QFX..E..% +01b0 c7 1b 02 08 03 ce 49 2f 46 58 b8 ab 45 14 d3 20 ......I/FX..E.. +01c0 c7 1a 02 07 03 44 53 2f 46 58 b8 ab 45 87 cf 16 .....DS/FX..E... +01d0 c7 19 02 05 03 1b 3a 0d 46 58 b8 ab 45 9e af 25 ......:.FX..E..% +01e0 c7 18 02 06 03 0a c3 4c 46 69 e1 fd 46 98 91 ca .......LFi..F... +01f0 47 17 02 08 03 2e 8c 2a 46 69 e1 fd 46 55 00 cd G......*Fi..FU.. +0200 47 16 02 07 03 a4 95 2a 46 69 e1 fd 46 1b 02 d2 G......*Fi..F... +0210 47 15 02 05 03 7b 7c 08 46 69 e1 fd 46 0f 92 ca G....{|.Fi..F... +0220 47 14 02 06 03 da 6b 7e c7 14 aa 37 46 b7 7c 5a G.....k~...7F.|Z +0230 47 13 02 08 03 c8 7c 83 c7 14 aa 37 46 30 5a 5f G.....|....7F0Z_ +0240 47 12 02 07 03 9a 7b 83 c7 14 aa 37 46 bd 5d 69 G.....{....7F.]i +0250 47 11 02 05 03 bf be 87 c7 14 aa 37 46 a6 7d 5a G..........7F.}Z +0260 47 10 02 08 03 c5 c7 19 47 4a d5 d4 45 a7 b3 d2 G.......GJ..E... +0270 c6 0f 02 06 03 7c 55 22 47 4a d5 d4 45 9a 6e dc .....|U"GJ..E.n. +0280 c6 0e 02 07 03 23 ca 19 47 4a d5 d4 45 8d ac be .....#..GJ..E... +0290 c6 0d 02 05 03 d8 43 11 47 4a d5 d4 45 bb 6c dc ......C.GJ..E.l. +02a0 c6 0c 02 06 03 a9 b1 6b 47 d5 2d 97 46 02 dd 15 .......kG.-.F... +02b0 47 0b 02 08 03 f2 23 63 47 d5 2d 97 46 7b ba 1a G.....#cG.-.F{.. +02c0 47 0a 02 07 03 50 26 63 47 d5 2d 97 46 08 be 24 G....P&cG.-.F..$ +02d0 47 09 02 05 03 05 a0 5a 47 d5 2d 97 46 f1 dd 15 G......ZG.-.F... +02e0 47 08 02 06 03 1f 40 66 c6 38 4b 9c 46 95 5b d3 G.....@f.8K.F.[. +02f0 45 07 02 08 03 7e 3b 84 c6 38 4b 9c 46 61 47 fa E....~;..8K.FaG. +0300 45 06 02 07 03 c3 36 84 c6 38 4b 9c 46 e4 31 25 E.....6..8K.F.1% +0310 46 05 02 05 03 57 43 95 c6 38 4b 9c 46 10 63 d3 F....WC..8K.F.c. +0320 45 04 02 06 03 ba 34 9b c7 7a 60 29 46 40 f3 87 E.....4..z`)F@.. +0330 c1 03 02 08 03 95 7b 9f c7 7a 60 29 46 65 8f 99 ......{..z`)Fe.. +0340 44 02 02 07 03 67 7a 9f c7 7a 60 29 46 80 00 6d D....gz..z`)F..m +0350 45 01 02 05 03 8c bd a3 c7 7a 60 29 46 80 78 80 E........z`)F.x. +0360 c1 . +``` + +``` +Size: 0837 PlyId: 003 NumVals: 039 + ( 0:'net 5'-00) 09915f3c00065187f70a0004080900008a007e6f00d1fed2fdfe5dffc2f89a006a09000000 + ( 1:'net 1'-00) 0c105f830006f00100070000c8007e4d088cfeafffe2bb000000feff0000000000 + ( 2:'net 0'-00) 09105f980003a1020001050043007e38fecdfec2ff15c30073ff04008a00000000 + ( 3:'net 2'-00) 00105f00000621e000daf7b1f73a0000c800ff7544b3c59018374774c6b24697f5d70200000000000000000000000000000000000000002c + ( 4:'net549'-15) 1fb785aac5e90a3947ab9db446931389c8046e09ea58455833ec44a4f21ac4ffff0000 + ( 5:'net548'-15) 1f835da7c5cc113747af38ae46c20f67c8abc43230634572e5c0440d291fc4ffff0000 + ( 6:'net547'-15) 1fd135b4c5ef1c39472d84b3469b0ebdc4d64f929168458679b344e89597c3ffff0000 + ( 7:'net546'-15) 1f8876b2c51ead3747dafdad46dc1062c9c1c8b96d5f45ea9ccd448a5a33c4ffff0000 + ( 8:'net543'-0b) 0376a8e2475b6e5b467c1e9946 + ( 9:'net542'-09) 03982d14c5ec79cb45b2ee9647 + (10:'net541'-0e) 03b29dbc46caa433464a28a0c7 + (11:'net540'-06) 03aa80514658b8ab458db025c7 + (12:'net539'-08) 03ce492f4658b8ab4514d320c7 + (13:'net538'-07) 0344532f4658b8ab4587cf16c7 + (14:'net537'-05) 031b3a0d4658b8ab459eaf25c7 + (15:'net536'-06) 030ac34c4669e1fd469891ca47 + (16:'net535'-08) 032e8c2a4669e1fd465500cd47 + (17:'net534'-07) 03a4952a4669e1fd461b02d247 + (18:'net533'-05) 037b7c084669e1fd460f92ca47 + (19:'net532'-06) 03da6b7ec714aa3746b77c5a47 + (20:'net531'-08) 03c87c83c714aa3746305a5f47 + (21:'net530'-07) 039a7b83c714aa3746bd5d6947 + (22:'net529'-05) 03bfbe87c714aa3746a67d5a47 + (23:'net528'-08) 03c5c719474ad5d445a7b3d2c6 + (24:'net527'-06) 037c5522474ad5d4459a6edcc6 + (25:'net526'-07) 0323ca19474ad5d4458dacbec6 + (26:'net525'-05) 03d84311474ad5d445bb6cdcc6 + (27:'net524'-06) 03a9b16b47d52d974602dd1547 + (28:'net523'-08) 03f2236347d52d97467bba1a47 + (29:'net522'-07) 0350266347d52d974608be2447 + (30:'net521'-05) 0305a05a47d52d9746f1dd1547 + (31:'net520'-06) 031f4066c6384b9c46955bd345 + (32:'net519'-08) 037e3b84c6384b9c466147fa45 + (33:'net518'-07) 03c33684c6384b9c46e4312546 + (34:'net517'-05) 03574395c6384b9c461063d345 + (35:'net516'-06) 03ba349bc77a60294640f387c1 + (36:'net515'-08) 03957b9fc77a602946658f9944 + (37:'net514'-07) 03677a9fc77a60294680006d45 + (38:'net513'-05) 038cbda3c77a602946807880c1 +``` \ No newline at end of file diff --git a/Untitled.canvas b/Untitled.canvas new file mode 100644 index 0000000..2289854 --- /dev/null +++ b/Untitled.canvas @@ -0,0 +1,4 @@ +{ + "nodes":[], + "edges":[] +} \ No newline at end of file