@fxhash/open-form-graph 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,2099 @@
1
+ // src/components/OpenFormGraph.tsx
2
+ import ForceGraph2D from "react-force-graph-2d";
3
+ import { useEffect as useEffect2, useRef as useRef2 } from "react";
4
+ import { forceCollide } from "d3-force";
5
+
6
+ // src/context/graph.tsx
7
+ import {
8
+ createContext,
9
+ useContext,
10
+ useCallback,
11
+ useMemo,
12
+ useState,
13
+ useRef,
14
+ useEffect
15
+ } from "react";
16
+ import { scaleLinear } from "d3-scale";
17
+
18
+ // src/util/img.ts
19
+ var imageCache = /* @__PURE__ */ new Map();
20
+ function preloadImage(url, ref) {
21
+ if (imageCache.has(url)) return imageCache.get(url);
22
+ const img2 = new Image();
23
+ img2.src = url;
24
+ imageCache.set(url, img2);
25
+ img2.onload = () => {
26
+ ref?.current?.zoomToFit(1);
27
+ };
28
+ return img2;
29
+ }
30
+
31
+ // src/context/constants.ts
32
+ var VOID_ROOT_ID = "void-root";
33
+ var DEFAULT_GRAPH_CONFIG = {
34
+ debug: false,
35
+ nodeSize: 15,
36
+ minClusterSize: 5,
37
+ maxClusterSize: 15,
38
+ minZoom: 0.1,
39
+ maxZoom: 10,
40
+ focusPadding: 200,
41
+ minDagLevelDistance: 80,
42
+ maxDagLevelDistance: 400,
43
+ theme: {
44
+ light: [255, 255, 255],
45
+ dark: [0, 0, 0]
46
+ }
47
+ };
48
+
49
+ // src/util/math.ts
50
+ function normalize(val, min, max, minOut, maxOut) {
51
+ if (max === min) return (minOut + maxOut) / 2;
52
+ return minOut + (val - min) / (max - min) * (maxOut - minOut);
53
+ }
54
+
55
+ // src/util/data.ts
56
+ var images = [
57
+ "https://media.fxhash.xyz/w_512/QmPN6Pg34LiaSu1hE2THHY3ikiTWUvq2DWBazAZyHvGtEG",
58
+ "https://media.fxhash.xyz/w_512/QmXo9BoTCeJ7CUQArQLmM8V7oQuX1ctTkH8gRkEWWDRieT",
59
+ "https://media.fxhash.xyz/w_512/QmaYkf8juoEiVouWi247dW42uQmdecPx6DMcVJKEZ3Axje",
60
+ "https://media.fxhash.xyz/w_512/QmYrJaPcHEZTuDg1WFyRk4TXGSXHJRt3z4PkP9wwUeDRDY",
61
+ "https://media.fxhash.xyz/w_512/QmcShyUsUbgbCE3W5vVFK72ZkmxVfRqoiCehNuVUYYRqLw",
62
+ "https://media.fxhash.xyz/w_512/QmZxqurFjBQ5qD9ctL3j5nipBecezjV8Y6ZvKdpKanRu7U",
63
+ "https://media.fxhash.xyz/w_512/QmcgvgY42xTWAHHV6wA3j2FdiBavYMAKBjwg7czkWRjDtb",
64
+ "https://media.fxhash.xyz/w_512/QmZmQzt4e48iucRTFCCQQF8HdTbyJK712rNfoL5XFqfrkG",
65
+ "https://media.fxhash.xyz/w_512/Qmdpse54tNdwBEpwUjyBEgnYnH9gTj64hTu3Q8eyB27Huz",
66
+ "https://media.fxhash.xyz/w_512/Qma24DrZmu5Zwe7zty64v6LtzzCZGDPHPJJuQ9aZxUrBX6",
67
+ "https://media.fxhash.xyz/w_512/QmUN9rPgp5rnzwg1D2L2azV1hERT9PVjCmob3D4XiLe5ER",
68
+ "https://media.fxhash.xyz/w_512/QmW6HWC2iCecyFsDtDmWxD8J9NTUrZ1VpjZqffuQKP8pV9",
69
+ "https://media.fxhash.xyz/w_512/QmW4u7sxJcJFkhAvoenoLVyibnSUyXWzTDMKeXMwvRGCcL",
70
+ "https://media.fxhash.xyz/w_512/QmRYzwzqs2v63sjRjAaYFoLrrxUVvEL2VwyonV5RzZjegx",
71
+ "https://media.fxhash.xyz/w_512/QmfMvJBHgavXvBRR6DSy1qsKzQwEG65eGhdKDKBismJ1GS",
72
+ "https://media.fxhash.xyz/w_512/QmfVXPeCwgpQ1vfJNs2my7bu2DVXBPKcSWRiD2p1vHwLvW",
73
+ "https://media.fxhash.xyz/w_512/QmXfsDbovYwXTax8GFvDq5ohPQvcdxGuN41wxTRcevVuow",
74
+ "https://media.fxhash.xyz/w_512/QmVnDHXoja5G5e9DasUxC9c3oXdEKRD1gmMba6QyEST24c",
75
+ "https://media.fxhash.xyz/w_512/QmVsUH2fQYA6q2DWvXCqahbsC99w6E4TtN8Lw91dPEWrGa",
76
+ "https://media.fxhash.xyz/w_512/QmRKCgLFdmLhSAAxpRDrB2AwrW3ZG25dYri2S8eFscPmCY",
77
+ "https://media.fxhash.xyz/w_512/QmeT4yqfcbhQUfpcmBhwHLHZk2ECxgRFCZ6kQ1GEwe2bPg",
78
+ "https://media.fxhash.xyz/w_512/QmW9pegNpLnoxiq91q8GTotJBWNePskNEHuVmA2G2R9JKH",
79
+ "https://media.fxhash.xyz/w_512/Qme3Qz3Nm6AZepchdUs3UHhMJGDbHbJNtyPjFZRCGcC4cs",
80
+ "https://media.fxhash.xyz/w_512/QmSnS8k7RF5wuVjS3Sd2r1qTrmChxMoG2MkrFqVscM1Fte",
81
+ "https://media.fxhash.xyz/w_512/QmbhsWZXyggTdtm1peCgQqmXpHFaZnLsKUN7Jm5Y38gFoE",
82
+ "https://media.fxhash.xyz/w_512/QmeRyBgDRYmm2kiCvaNyXQPS7qK4F7R88Up2qxDfZPnv5e",
83
+ "https://media.fxhash.xyz/w_512/QmTx66oAkhr21d62rjRkW54fd2Ji7KWEtWGCexkumhL6z9",
84
+ "https://media.fxhash.xyz/w_512/QmegcXgaVqcxwoRbwQCRtHv27u545FF2MgSZpipmvVsZpz",
85
+ "https://media.fxhash.xyz/w_512/QmZACJkbNJcbahWEAGzS5PeKDnk17aEduVYS4Bh61ELsDa",
86
+ "https://media.fxhash.xyz/w_512/QmcN5KAuxaC8kYts1jdvstTJy9UvSLc2D5kMp2FTLoVrxa",
87
+ "https://media.fxhash.xyz/w_512/QmZpvV4SwdZ9cCEWSJpPoBSfc1sG6gJoFEfQaaiaCkKa2V",
88
+ "https://media.fxhash.xyz/w_512/QmPPfkaK9uZLyZWES8zhaXq4CM8WFURdL29DpBrzGBdFzY",
89
+ "https://media.fxhash.xyz/w_512/QmWr59pviF2FWKiR5fZk7F4tfJc27tvjKbPabGLZxUehgN",
90
+ "https://media.fxhash.xyz/w_512/Qmbz9uv8Z8D94qv9pgfbib5RoMLKGQzpRFSCH85kfkoP5a",
91
+ "https://media.fxhash.xyz/w_512/QmRuqARwjsJ9MSQCqPV9s461GfhA69L5N7RG4p2ZjtX7x7",
92
+ "https://media.fxhash.xyz/w_512/QmbTZaLurhXgrWNZxPYSMoUVughKc5AfiwpievAHqitxW4",
93
+ "https://media.fxhash.xyz/w_512/QmPa13ZqkCvJ16iov19fyZGEtPi54md5VBfVRec8F3b5Lx",
94
+ "https://media.fxhash.xyz/w_512/Qmck4Hd4xvc9sjRCVdf4PodriWzprAdngP987MoZzvbadG",
95
+ "https://media.fxhash.xyz/w_512/QmVsETUQMjXQZQMFuBbBB3AF8BCJ6JneQBWLR2Axxq9BN4",
96
+ "https://media.fxhash.xyz/w_512/QmRMCXRfWr5W7kLBjsYqDpjjMbbTaAgqQJfJf35eaPvdv7",
97
+ "https://media.fxhash.xyz/w_512/QmZkUdEdNAewvJsDE7smGT1iEs7aTqRSUMqpFmDrrAMrwC",
98
+ "https://media.fxhash.xyz/w_512/QmTYVZ8LaaCMHZjsmzghBLQkJvi3UfPLjapsnGYB9TNMBL",
99
+ "https://media.fxhash.xyz/w_512/QmZh3faSwjc2ttiJ24XgwEjW2ahAGyS2AttRcgEGqmN6SF",
100
+ "https://media.fxhash.xyz/w_512/QmYMCGxm1UayedJynHZGwXvGmSTQLNtVrfTyshWSwBDK6J",
101
+ "https://media.fxhash.xyz/w_512/QmQARQfJHUU9P2N5bAfZh9R5zGq32TTXFjS3e5bG4k1TPD",
102
+ "https://media.fxhash.xyz/w_512/QmSNZL4Xz4kQEsiBD5cFXv75TJW3biVoLT9irALkwtdMBt",
103
+ "https://media.fxhash.xyz/w_512/QmZhV1dg38iyurMykoNmbGSwkD8x6PqYMpqYizXbpJ2NA3",
104
+ "https://media.fxhash.xyz/w_512/QmWkmM8a5a9QWdJfBC6Fqp6yCR7HzbYFWey4pf2TTKFDBS",
105
+ "https://media.fxhash.xyz/w_512/QmTXyw45vai4JGL1VY2PsNpSXzTxXf73Z2xPe2GabvSHZ5",
106
+ "https://media.fxhash.xyz/w_512/QmWtbAxktC9cu76xZmHbDQUTmDDhujxTixorEoVdFpC5HH",
107
+ "https://media.fxhash.xyz/w_512/QmfNnPzFAUrT81f4Cx9gTzrZQjJJ5ExDUJoysPvo6medZQ",
108
+ "https://media.fxhash.xyz/w_512/QmU7GikBRFW71VbrvmaJEELKVyYMqSswBdGu26dbJfNcwb",
109
+ "https://media.fxhash.xyz/w_512/QmSM6CBYTo2t2RxexU2FpBL8MyRqXCGRvxNJXC9oxyAgEi",
110
+ "https://media.fxhash.xyz/w_512/QmNyhtM25qgKk2hQkCiCsMCRiR6CQEHFjdq39d4fDpgsYt",
111
+ "https://media.fxhash.xyz/w_512/QmWuqSaeKhLj25Zdbo5aCUMBimfH4rnMRzBtaDmnysv7GX",
112
+ "https://media.fxhash.xyz/w_512/QmWaiMW1wUtPnm43H4bnUNQguGSnF63kBdDN4Wcw3LEwkK",
113
+ "https://media.fxhash.xyz/w_512/QmNs225SQzXLXPiduZDuT9Fcp1Syadscb68PHHm2fr9k6P",
114
+ "https://media.fxhash.xyz/w_512/QmRRqLmjCoMZPL6NP9vcn7WcvqCebF9DjNM75gidg1LdSC",
115
+ "https://media.fxhash.xyz/w_512/QmWjMqzDKvmhaHinr3S7oyxWdy7w3RbLAqLJvc5yEVhA5d",
116
+ "https://media.fxhash.xyz/w_512/QmccfMG26DSws55nxzLh4EWngo6gByCtA4RPjHyn1cDFuu",
117
+ "https://media.fxhash.xyz/w_512/QmWzL28A5rpUtnUXj1x9sSAzYeTajw6S84CP6vuGVd9GdP",
118
+ "https://media.fxhash.xyz/w_512/QmfE9Ep8zbLGrSrFuFX9nzhmRijo9Z5XRAZeMb91iyJjFw",
119
+ "https://media.fxhash.xyz/w_512/QmTZ5ADzcrm2nrBNN7gTTKyiJFem8Uvv2BuwMU57ic66MB",
120
+ "https://media.fxhash.xyz/w_512/QmZYGqRsi63ktJqTdYeZNapyxP3rx7wrEWottshz3kQV7y",
121
+ "https://media.fxhash.xyz/w_512/QmdFyzANVbfNGrvBZUVPbpYJxQLNNbKmjZTvtjjvzTURb1",
122
+ "https://media.fxhash.xyz/w_512/QmPqySj1jzTfnL92By37eSadkurhLmtr8W5qn4cyJFYtES",
123
+ "https://media.fxhash.xyz/w_512/QmW1UfF1H47GVprD9NREseZcKBgkK6VzApaqPftGbXN5cj",
124
+ "https://media.fxhash.xyz/w_512/QmZF5kAuF3CggKMz9w9vgsav1mPrDNdmRY7EqCHM2w4EYq",
125
+ "https://media.fxhash.xyz/w_512/Qmbof3eJtp8Me8CKdFwiFBZ3gkR93zr1efgVs7g7Aba8UT",
126
+ "https://media.fxhash.xyz/w_512/QmViWM9xJ3dtAgCPMkwbdKsiN4pFzS5mirFaqkkbnKNWbk",
127
+ "https://media.fxhash.xyz/w_512/Qma7QhWriXyk5njhHB85jTUUNrNNJAYM3zY9cYJ1r1LB4B",
128
+ "https://media.fxhash.xyz/w_512/QmVamTXXfc8YFVvgVQpKTGf4zGcPNNwsGActCqwmQLaLwA",
129
+ "https://media.fxhash.xyz/w_512/QmNr61Ts64dU2jWJWXwp3RvrYarHfEB7ATd35fV6hU4GeA",
130
+ "https://media.fxhash.xyz/w_512/QmPfv8WzegDv1jGQCxfL9nz6W4iYKpE6fKoqQfW63LzrJq",
131
+ "https://media.fxhash.xyz/w_512/QmexdzJRhxDD4Z3w8qaV27QVW1iJj4VhWwDR6s2XmrzLxq",
132
+ "https://media.fxhash.xyz/w_512/QmPKNupEx2bufCPC7zPqaUrwr78dsFtUQHdTHbmeMbQAS8",
133
+ "https://media.fxhash.xyz/w_512/QmaLR1oXwa5aARFBbwVmG2zyYqEMrQhocmfqQkR5vNXp6S",
134
+ "https://media.fxhash.xyz/w_512/QmdLtRhWRVCQEeEiKk5NdnePaqguBBMbJ1wDGEikteX5Yz",
135
+ "https://media.fxhash.xyz/w_512/QmZGPy6DuY52xqiGSAQZJJJ7rXxzwP7s4FdQuxh9y81HYs",
136
+ "https://media.fxhash.xyz/w_512/QmRtaMnQLyArp8PfnvG9zLPiqVyTuQzBjrHjb9EFRqBB14",
137
+ "https://media.fxhash.xyz/w_512/QmShp2GtGemiVGFh6vpn6uBnkMzk5cKesuE5w1v727Wb7n",
138
+ "https://media.fxhash.xyz/w_512/QmTe6Eo9mAyN52edo1J889Je8v7oDmuRmcYcdH57Q1PdLS",
139
+ "https://media.fxhash.xyz/w_512/QmdG7S4NRB8qTNSpBpgw6kYiiPtRFaXW7kJ8TbSSvKAiVt",
140
+ "https://media.fxhash.xyz/w_512/QmSG5USoWNKkgn37HFFWt9onoJjJwWBmKZnKSqBq7S9p1R",
141
+ "https://media.fxhash.xyz/w_512/QmW2AUXNDSVK39cx5rue133cevvR2MXFuAHxVwPPCcDk1F",
142
+ "https://media.fxhash.xyz/w_512/QmSkpVk6FyCtFxy5F53TotxiZq6Vj4f5cQ8fw2j5AG63sV",
143
+ "https://media.fxhash.xyz/w_512/QmSHue9HvSyWQp9sw5mvAzhXCrtHdNdT8cdpxwtNiMhfZL",
144
+ "https://media.fxhash.xyz/w_512/QmXV4mEyqyicUnvPjynbuRPLKzdKHv7Gj99Utsa1xKgaLQ",
145
+ "https://media.fxhash.xyz/w_512/QmWhGyBE9hUDDvhS81UrweHWnWpcQvFfzGgCFvZgmj7QEZ",
146
+ "https://media.fxhash.xyz/w_512/QmWgCyHz1gnm3wGQaKXFsaHqtMvY4oRTDJkod5nRzUKMhn",
147
+ "https://media.fxhash.xyz/w_512/QmejvcPoWpk5ezzKEEpz8wAJ9TifWataUPeWppvj7XraTg",
148
+ "https://media.fxhash.xyz/w_512/Qme3E87vroogtQEWLf72BX8VhRdnmcd8GUzbYTxv61n28E",
149
+ "https://media.fxhash.xyz/w_512/QmUzsRgPas7FqwsiekSTMgWo4gHMjsyTt93ReTFc6yECHy",
150
+ "https://media.fxhash.xyz/w_512/QmTEWmkdh35a2p2XmMSVF41bY73E2ydM2ThYD947Dbm314",
151
+ "https://media.fxhash.xyz/w_512/QmNtVQDnAFfTve7quBa2MDrZm27wra4Ku6UzBzPUwDK3it",
152
+ "https://media.fxhash.xyz/w_512/QmekNoCf4SrPD64wZGSjuLDtnuKpahEgsWBuvWURd99Eun",
153
+ "https://media.fxhash.xyz/w_512/QmNZKTM4VsSo9Y9JAoXakEuf9WUzQppejZXmvz4qnTdCR3",
154
+ "https://media.fxhash.xyz/w_512/QmRDWDht9vm93WZxKtaqxAaXeaQAYAKtgveYvtZYWfmf8K",
155
+ "https://media.fxhash.xyz/w_512/Qmeum88WyYVgLB9Gzj1wL4Qg4ai1oZ38W2ebdCgdmvh6KA",
156
+ "https://media.fxhash.xyz/w_512/QmULcjpzZMgqnG6jMvo6fbpJCJ8VYarYJyWjPPVkDR191p",
157
+ "https://media.fxhash.xyz/w_512/QmczC1jJSprVWJLeTfgmPZVfY72JDmmaCDRhhgcfbGBdsa",
158
+ "https://media.fxhash.xyz/w_512/QmRyt4uj91VeBxQHLeBoiWPovBhkbqwEZbs1DpFHBhzh41",
159
+ "https://media.fxhash.xyz/w_512/QmaMfnXjJ5JZK9dbuFCaLU4hAQRsYrrsV13ZifuEzCHtkq",
160
+ "https://media.fxhash.xyz/w_512/QmWrdx6qcNBoAg1a7oCZi1Y8ZSa475KaR4L9WeQbwtBmMR",
161
+ "https://media.fxhash.xyz/w_512/QmR5S5RV7HaCp9UwtpDHFTQeRtuMXu17Zp8TNHbs16yFCk",
162
+ "https://media.fxhash.xyz/w_512/QmNowVbruR64R8TLZ7M4fdrRtsm27x83HtZ1zJsf7qH5po",
163
+ "https://media.fxhash.xyz/w_512/QmZzTSTaYN6pcmVL9Ufd5EAXJ9Qpxp3Nf2eh926gjQvBE8",
164
+ "https://media.fxhash.xyz/w_512/Qmck5HtuD8xNJK62vqWTFbcLHuUvGybE8zyEpLAtSMZGrx",
165
+ "https://media.fxhash.xyz/w_512/QmXat7kh8JkDQY4nVnanPsaz3JvqByQ3ezuPG2FZsRqxs8",
166
+ "https://media.fxhash.xyz/w_512/QmVxXneR3Nz3fByKShxNTiW3Da81DMViwcqDRniSB1JdRY",
167
+ "https://media.fxhash.xyz/w_512/QmY8cjqqaJDbByGDViDj8wPgHuUFEkVBJzwwsqvX8tMnJK",
168
+ "https://media.fxhash.xyz/w_512/QmZ2AG92pcCTn7NTuLe1hbi8zUiPrzDzHauDTFMj4NGAeX",
169
+ "https://media.fxhash.xyz/w_512/QmUnNhzBSPqXNaqZoeZRWvordT959vs3tNLF4CWaaLYTKd",
170
+ "https://media.fxhash.xyz/w_512/QmQhi2Q56nR5W8nxwCS8wwZLcLv8FwEC9Kam3Vk7genimL",
171
+ "https://media.fxhash.xyz/w_512/QmekAPxiWjgZhvEsx752Tn8Qr9bjH8fbMnEyhChwMTU4EG",
172
+ "https://media.fxhash.xyz/w_512/QmV89dxo2MkS4PXumgDqtMDzi2AgrYrt3tnUrsmybadbC1",
173
+ "https://media.fxhash.xyz/w_512/QmaYiP1iVSw83z3DWK5GzsLdH99Kt1gLDfYsj7E4pzaQBL",
174
+ "https://media.fxhash.xyz/w_512/Qmf6pegjy82QPQsihBNff3RQcM3UnNsy1UfE72WMgTD99V",
175
+ "https://media.fxhash.xyz/w_512/QmXRwXHjT5a2WeuEDZ6aUi8VtwS2MzgLaDEXE98NCDvTpe",
176
+ "https://media.fxhash.xyz/w_512/QmRYHXWZtBTuCxvfu8go4G3TamyEMgex4umNNCywcqRFk4",
177
+ "https://media.fxhash.xyz/w_512/QmUCo46H1k8kiPMWnFfrLTMRfXsvEhSxK4niGcSx4o6chz",
178
+ "https://media.fxhash.xyz/w_512/QmaJtRyHdfXccSoG81LoF6Kgg3hLNAwkBRhPSXsBRreTLC",
179
+ "https://media.fxhash.xyz/w_512/QmSRRmT3oYsj4LVmUSStqwv7tE8kq99t7ZFAvAJqBsuhQP",
180
+ "https://media.fxhash.xyz/w_512/QmXurGBiNpRD3aSdV4XvcZddecKhVBNuwKNUvpYTEHB53L",
181
+ "https://media.fxhash.xyz/w_512/QmXVnbJZBX1DR7vfo5NfEb2u3QFYqtYZNgFd7zSddDdWfj",
182
+ "https://media.fxhash.xyz/w_512/QmRawtrvBsfpmzLvS5eW2ggz8WbUXtFXe5xwxx1ttakxJs",
183
+ "https://media.fxhash.xyz/w_512/QmSEDHqCAFBU85aR13f2k87nEwrEYb8LhRwC6GLctkcf6r",
184
+ "https://media.fxhash.xyz/w_512/QmcBJFmNNuTNpJW4ZXSpAYWCGTinPpcaTCiRmzEKU35nmY",
185
+ "https://media.fxhash.xyz/w_512/QmVDLykt8L37jicsA3mmaMF1Cqd655uygE71VmyY2fVFZg",
186
+ "https://media.fxhash.xyz/w_512/QmTyLGg1MnvPVGuYAwRQ5d1jesuhUfThtPT8JMkx4uNvTs",
187
+ "https://media.fxhash.xyz/w_512/QmZ27StKPQDxknWzfMf5R6T3jnoVDPFGUKsqBDSUUuJmen",
188
+ "https://media.fxhash.xyz/w_512/QmSVQ9jmQKbvdYJNEq9YHYfB7wQmyuAGTcEQn1YKTUk3js",
189
+ "https://media.fxhash.xyz/w_512/QmNZPTBbNyoq6dAbJZQ4DEHkyuS6frLLHF1Esf5R6zJRkb",
190
+ "https://media.fxhash.xyz/w_512/QmYphaApiHTGtoo6nTNMPHV353rvWicyva125BH4dfi4Jb",
191
+ "https://media.fxhash.xyz/w_512/QmRxstGvx62BU11SD8ChobHc9odNPAQd64pv5N84fcxW2G",
192
+ "https://media.fxhash.xyz/w_512/QmXGond8Vq6ndBMxjwy4hTzgZh4fZvSkCjRQiQJsrYG92j",
193
+ "https://media.fxhash.xyz/w_512/QmQ3bke1VSLDw9hHHskgU3Kdf6MFC4DFKU8ep5S9v1xgLK",
194
+ "https://media.fxhash.xyz/w_512/QmWTPgFepkQTsTechEnRvNcKvFAXYveTEzfuonzQtDouyd",
195
+ "https://media.fxhash.xyz/w_512/QmeBumdG8a271hcGdF6jbavEBFFTtUb4tccX2Kcp19pvhJ",
196
+ "https://media.fxhash.xyz/w_512/QmdNYyZNbLRfiBoH1rbdvutHvZvxT7P5zXK2rJQbgh4wPa",
197
+ "https://media.fxhash.xyz/w_512/QmWjX57E3bjsBQe6hho9f1kQTiBYMQjFAmhmZtQPQSHroM",
198
+ "https://media.fxhash.xyz/w_512/QmWRyM8a3gpGcjnz9DmgynkRM9omQ3QtAULoVcTYQtnWbN",
199
+ "https://media.fxhash.xyz/w_512/QmWmEj4ZbArkYxfyUhPkGgCB7LaCjNwYa8Xjvt63MrcMU9",
200
+ "https://media.fxhash.xyz/w_512/QmbVQ4DTSLtv3wPFdBS3Eny8273XtRS5MAjUStq3XYiStD",
201
+ "https://media.fxhash.xyz/w_512/QmdUhpomYghVU3t78R9pZaN6qpFi2GPMogBFgvKzv44ppo",
202
+ "https://media.fxhash.xyz/w_512/QmY9jdFbXVizQ4qfnETNHbx6ws1uFWdtvFfr9c4j1ak6nn",
203
+ "https://media.fxhash.xyz/w_512/QmNnD7bBV56fmSBu7BLjHmn4FbRRz1FWnLDnLDHDn9DDQ8",
204
+ "https://media.fxhash.xyz/w_512/QmPZfCmNnR4DKyfQhucat4LAoveKQMPWDDk9qvCFHXRgbQ",
205
+ "https://media.fxhash.xyz/w_512/QmQ2JLHAvsvS8s5Q8KGMixCN4EpwuXhQFuQHaGNJoyvVRw",
206
+ "https://media.fxhash.xyz/w_512/QmbgZVCvfRErYwDpnGwrt4CLY6uYFu8Kr3W4tyFYbHg9bp",
207
+ "https://media.fxhash.xyz/w_512/QmThGMSy3k9WRUscQturPzxm53BSF19V6yw75TJDWBYDjG",
208
+ "https://media.fxhash.xyz/w_512/QmcnXn3SdC9uLDAxhToiBvviTfeD8qHtvVk2WeijvsGx9d",
209
+ "https://media.fxhash.xyz/w_512/QmYeio3aWhLKe6m6D88raABKJ4U8YWAquvCKrtHMa1SxKH",
210
+ "https://media.fxhash.xyz/w_512/QmVKg927JSLDAWp5MnJHKeQZv5T4Bpe6UPg7EF1obVbBcB",
211
+ "https://media.fxhash.xyz/w_512/Qma7gW8HFj224KPJb5ETs2kVRRQSZ6timfeNn59P87fTaK",
212
+ "https://media.fxhash.xyz/w_512/Qmauj3shE24KkLehDixYnZzAHjgfEA3GPjFTfaBcA7QMja",
213
+ "https://media.fxhash.xyz/w_512/QmXN4ejVYqwRkHNJwGWnphMubCe2Qx7V9YXGsgA9fbuwF8",
214
+ "https://media.fxhash.xyz/w_512/QmPJQWbazp4oMcts1DEohTdi3G1FceovCooFTyLSgEsVCa",
215
+ "https://media.fxhash.xyz/w_512/QmU7wCZR2pP9PU3Thdxo6xWaNBh4AnWtSP6dDmhwS1czkt",
216
+ "https://media.fxhash.xyz/w_512/QmPmyJkrWcmTiLVjMvpcGXu6ParMhzMVhfMfgFZ2Ls4WLV",
217
+ "https://media.fxhash.xyz/w_512/QmZyzqJ1giBdAeVjUZNnKas8fHjp91YwFJHUqVkubq72bQ",
218
+ "https://media.fxhash.xyz/w_512/QmX5LvYUq7NbdpkcfDD1H1sCd3kLHeXpXDK14hRkD3Pz8A",
219
+ "https://media.fxhash.xyz/w_512/QmXHt1D7HusfL5bhbiqxPQ9EBCopfUynTMK9Nf9v5NPHwn",
220
+ "https://media.fxhash.xyz/w_512/QmR5ts7WxUFRZc4j8PV8wZF3wtT41PcKcbuaJjmCkhUQQ2",
221
+ "https://media.fxhash.xyz/w_512/QmSvofQwVtj33BEZDvXxodrRLXc7SaJ3cuMw2YjujqH553",
222
+ "https://media.fxhash.xyz/w_512/QmYV4r74Veay5km3KvL9F3G1Wyg2JFKDZCYy4tFA149MvB",
223
+ "https://media.fxhash.xyz/w_512/QmNtAp8VoFiZg8qmY7aSLM6VzyDv9BJrKSWUQNUTnNdvUU",
224
+ "https://media.fxhash.xyz/w_512/QmWpm1aNFGMfz31fM5Uzt3roaSuGMHDPPsDjtWCLwLpQWA",
225
+ "https://media.fxhash.xyz/w_512/QmQF5LvqBZVGoroQLHfsw9JoS1QrCE9bUvcraUQaRzZa6K",
226
+ "https://media.fxhash.xyz/w_512/QmaMcK2vHb3Zjtu8CvinT6tGAJYtLUkwW3DYQ2mEFi2xqT",
227
+ "https://media.fxhash.xyz/w_512/QmSRshrcfgrkaszWB4RqTSa4vNRTeNpM5KpgWGg7UdvvVR",
228
+ "https://media.fxhash.xyz/w_512/QmYDKPf8utzdG6Ai8HVWYBRhCMJzo9ZgNtiYaLCx7rH2Gy",
229
+ "https://media.fxhash.xyz/w_512/QmZGpmhR9f1w7NsCX4nMxq87bYawGcSD9A2rBpig5eVZey",
230
+ "https://media.fxhash.xyz/w_512/QmXrYPaWoowSA1VLtraYudrfxZ5rEY3LVceSHzfSh2VPsc",
231
+ "https://media.fxhash.xyz/w_512/QmTTw2GjXP2D5TQgj9zsfSsHwvovw8KNM5UuMqTPRUS2yQ",
232
+ "https://media.fxhash.xyz/w_512/QmXwskZiCNKt8euPxNULdHpmWftVAY19ubppk1tZ8D4fm6",
233
+ "https://media.fxhash.xyz/w_512/QmRMzcQPiF98NSaN2ZNgMQA4BT43jhkbC2uPq18vJCDqBK",
234
+ "https://media.fxhash.xyz/w_512/QmNupncbzywoxuzzFPwKyaBHmirDEJE25wMxNiwpyfv7fL",
235
+ "https://media.fxhash.xyz/w_512/QmcuCk3GmcKGohxhV3h1qo2QPzmTp4wupo9a7GsxzdXstR",
236
+ "https://media.fxhash.xyz/w_512/QmbLcjHMD82hDWmi8UbrGJ5dMMPr2N59BBMksYBd8E5Eci",
237
+ "https://media.fxhash.xyz/w_512/QmbqjbDCjsgYqvkDPik72faSW5J2ddasynx38cRm2s16uf",
238
+ "https://media.fxhash.xyz/w_512/QmY6Wkuiwkjg1eq4aHhNRDcrB3RebuDY7hu8Lwr9E619Pu",
239
+ "https://media.fxhash.xyz/w_512/QmctXMnPq5hoGSmhLbWS8ixWo2y6rDcnmzLc18dNoFpxw4",
240
+ "https://media.fxhash.xyz/w_512/QmVVAfKyPy7LTUfmMoPykEYVeUqcqoGDiiDYV69KvHobdN",
241
+ "https://media.fxhash.xyz/w_512/QmZyvexhyPvTJZkwGA9gHp7mtvnXsJu8Bxx9rdftm1dkFJ",
242
+ "https://media.fxhash.xyz/w_512/QmaM5VeT7hSfjfdQ8ZLvDqN5iyU52HLyEpbfodz8NGZgSv",
243
+ "https://media.fxhash.xyz/w_512/QmS6JaavBaaoBiyVrj5cBkmcyDzVWsx2bywjYd6qq1Tzpy",
244
+ "https://media.fxhash.xyz/w_512/QmV7vDrmyi7ZhdiTxRH2Cnn6KkheSGh6TFn5sSt5DsEdnM",
245
+ "https://media.fxhash.xyz/w_512/Qmca32MZWKk3VuBVbg49NwG5DBdZ5LUBDdJ1o3FEQ9Kaut",
246
+ "https://media.fxhash.xyz/w_512/QmUQqeKfZjZsCzmYcEixSkYBy8ntf6PmkvNV9y3rqkMoAA",
247
+ "https://media.fxhash.xyz/w_512/QmcHAwZmHuFbHRjbzv6GLKNbKxssueFwgAf344SSN6SPeK",
248
+ "https://media.fxhash.xyz/w_512/QmZFdKroLy1jZaGRhnAUNyeNvWgarRhok5qbqqYmDA3nQA",
249
+ "https://media.fxhash.xyz/w_512/QmPi7N4awTVFkhwvkGaEbaT8x35QYtdJfWBxqcx32rtv7n",
250
+ "https://media.fxhash.xyz/w_512/QmdFkuFMmDZanS1CPKoaqKLnry2LScVTJMDCZaFmzUgzDY",
251
+ "https://media.fxhash.xyz/w_512/QmZZZhV9KHupLT4MSqzDU4HobFimsohF4U4iBXVb7kjteW",
252
+ "https://media.fxhash.xyz/w_512/QmZjV7ZuR1e2H3bPbynWKaWqL89BFU2j16SvWCyvZ264io",
253
+ "https://media.fxhash.xyz/w_512/QmVCr9WjdMDowSnbt9NpeLXheUEupyP8ggSn5LMLtNchmR",
254
+ "https://media.fxhash.xyz/w_512/QmR6x1yKmfyKzEYs6KWZ8S5QKz4DAPoFwcx1RuECvmB7Pp",
255
+ "https://media.fxhash.xyz/w_512/QmY37EsgB5jbKBj5xUhWMUPwK6Vqf8CT9UQCbuH363LJg4",
256
+ "https://media.fxhash.xyz/w_512/QmYz4zyaRC9SRcBTfVSSWVxGW1Ps3aDFD7m4fnfaGrvEyF",
257
+ "https://media.fxhash.xyz/w_512/QmVCX3MhskgLJsStDJHMCr4cW9zSAtgUhiEvq9inv1TUAi",
258
+ "https://media.fxhash.xyz/w_512/QmYEv8jA7L9AEY9y2F1h98yYAax2KuGzf8RnrGzHgehA7f",
259
+ "https://media.fxhash.xyz/w_512/QmaXuLfxmsViiJ4KPYyCtcHFPHT9mm2zqbgjUryWeHsyE3",
260
+ "https://media.fxhash.xyz/w_512/QmRpfYCrXZg5irVgsSscsbJgnSefu11V28ewGAHQoQ9rAx",
261
+ "https://media.fxhash.xyz/w_512/Qme5xo3SuKRW3fVgh5hqVJSeJmWU1M3Zf9ki1a2yhoEDfy",
262
+ "https://media.fxhash.xyz/w_512/QmRBGcsBXeXzoLCcFmnXdCiufzwmEtGBmbPtHFxxvcX3N3",
263
+ "https://media.fxhash.xyz/w_512/Qmexam8GprdCEDrGZZEgsPHXL2ajrqYegiSqQLHvxSqZL5",
264
+ "https://media.fxhash.xyz/w_512/QmS3HGNrc1xc3DiicesYBVNTfWzdxWKgCHqGoWTZjYnuZQ",
265
+ "https://media.fxhash.xyz/w_512/QmUHdvDR1AR3USZGurjGBdfBUL8pAsBmfkUxxn67iwec6U",
266
+ "https://media.fxhash.xyz/w_512/QmQrwFD2a6gRXv8jpgLfEW95EmgdqYVdXCY9JnMa5HsQkt",
267
+ "https://media.fxhash.xyz/w_512/QmY639tpFumSBRZwvkB6vrLsdN6Wwg61epo5iyumsFHWqc",
268
+ "https://media.fxhash.xyz/w_512/QmdCSYw467W1omayKVEsnS9WixcVecyCaK57gQeq5GtB7e",
269
+ "https://media.fxhash.xyz/w_512/QmTFJ5DA7HZj3CWRF34J95pDzvLNyHFt6UcCsyVmW5MfYL",
270
+ "https://media.fxhash.xyz/w_512/Qme7EdKXfAKAfuiX8x4i5jeecnDnx7wphNNdEZquhPvvAv",
271
+ "https://media.fxhash.xyz/w_512/Qma65kwFdxgQXjwi9tXLJ5yWYmH13Cj35j7uqqtuycnoHf",
272
+ "https://media.fxhash.xyz/w_512/QmVhkNmN6RFDEXRPxoy7WpNCJpEnuoWtMk5YPzSDhtoKyB",
273
+ "https://media.fxhash.xyz/w_512/QmT61dwZEVySC9d7hSJMWSk3EVNinamPb1k2n3vvrfMWm1",
274
+ "https://media.fxhash.xyz/w_512/QmdUEQ2cNyEaz52u2J2EbpfWcbsEN9GMNcu9jD3EfkVU7X",
275
+ "https://media.fxhash.xyz/w_512/QmeMkCJKuaLohbkYTinyvsEZekrpFqhxoMMZcMDuFr756z",
276
+ "https://media.fxhash.xyz/w_512/QmNV85EjvG52GrpL1G3kCe9aNKJj2oWS63z7CX25AfoZbv",
277
+ "https://media.fxhash.xyz/w_512/QmSJqMhYT3JXTJ163EVnhSRNmRfc9ASoeGn3ECrvfQX8A3",
278
+ "https://media.fxhash.xyz/w_512/QmU2UixzjiQ8Q4DWfe98uKkJdivnqszsEYp3KyfifibjjA",
279
+ "https://media.fxhash.xyz/w_512/QmZwfXpf84tM5DmgiremUVM3f14yaz3NSREz21zcxBcGYR",
280
+ "https://media.fxhash.xyz/w_512/QmXiRtmGYw4KRE6DzdnW2NH5mrVbSXNv7pJnSmvr5ctBKS",
281
+ "https://media.fxhash.xyz/w_512/QmXmF3dzWth21tEZHbypfSCdCBLn8EpK35wbGSMp8HQ81s",
282
+ "https://media.fxhash.xyz/w_512/QmWUsx7gt7fat9YU1MPpQxYYRcLsGEoAc1TNHtYnD1SD3g",
283
+ "https://media.fxhash.xyz/w_512/QmbVqQJaDAE6H7MWexf5bQBwM1jAWNJCL6MibyxUCCjLrQ",
284
+ "https://media.fxhash.xyz/w_512/QmaaPEBhzgf3N4V98G6aFgjrJSTMPvu8cVavKRwCtBE2Su",
285
+ "https://media.fxhash.xyz/w_512/QmVU9XvPaWjKv7Z7wdpdxtBBBaBtT7Vn8zxzJEWgXCf92c",
286
+ "https://media.fxhash.xyz/w_512/Qmct1uCFHWYfm6iTo9BC8vJoJWXmMXNPuYX9wCNeLkMsLY",
287
+ "https://media.fxhash.xyz/w_512/QmRTpDQJvfjJY45APpBD73eu2neEt7msQrLbaLJSMe3HEH",
288
+ "https://media.fxhash.xyz/w_512/QmUiN2uAjbdvK6nHTvDH7BxA29CAu1MwtyByBhLejx9Fq8",
289
+ "https://media.fxhash.xyz/w_512/QmVzFJq7T77mhqh398kwnhk7qJoUE7BV52tmerm1xyxD33",
290
+ "https://media.fxhash.xyz/w_512/QmekdQgcA2DUfrGHmpbCmuEufAGPA7K99SdFeiVS7MrnTF",
291
+ "https://media.fxhash.xyz/w_512/QmYnsbG6NCamdaQ2e9fzNo3qxdhrFb6Q71cHBdmyddHVt3",
292
+ "https://media.fxhash.xyz/w_512/Qmf9Nhx9fLnoTFeCNpynRwF6rjp9iYwYeYE9SaqdtZqH1g",
293
+ "https://media.fxhash.xyz/w_512/QmYYwiJd8a5akF8RgS29mzsid9L6u99RkuyJRQtpJwXmGP",
294
+ "https://media.fxhash.xyz/w_512/QmYqc6iQqBBW8v9d4PwWEEho8rXiy1EEVMNf1x5Ed7Je89",
295
+ "https://media.fxhash.xyz/w_512/QmU2VxZzL618EkeyMvHFdiiZoT8AXmDwmzuACainFjfaEx",
296
+ "https://media.fxhash.xyz/w_512/QmaguHZKJ3cTMdhM5Bm39nJomreeeCmEhF24z7ooVyz4cY",
297
+ "https://media.fxhash.xyz/w_512/QmVwCQ8WK3ZZsvmgqHvAoLJTbmkzWGjny19mBKLbhjSD2N",
298
+ "https://media.fxhash.xyz/w_512/Qmca7MtdCpLY6kFsxH6ebwQKahkLp8K5afCz4dEB6XMnPw",
299
+ "https://media.fxhash.xyz/w_512/QmU8i4oMVb1yd5JhNFjycWNZ1CwqwwWpP8ahc55HRRebxW",
300
+ "https://media.fxhash.xyz/w_512/QmXWGg6Y9wB1ARS3ysAL62PtijGWNrDbebf3apqSz45Cdt",
301
+ "https://media.fxhash.xyz/w_512/Qmf6dpp6ftHJve1PkmxUp5qBhb4jRDvPKYdPtvxf6iUJxG",
302
+ "https://media.fxhash.xyz/w_512/QmX7jMSNEUUCkANKHt668aMDYMKYAYjX7bgeueqv2Y2zXV",
303
+ "https://media.fxhash.xyz/w_512/QmUvBG4Smvo7NUra8VkYHsdrn4ZNeUkfzLMh7pL5fB1na3",
304
+ "https://media.fxhash.xyz/w_512/QmbF8XZ3fEJqTh72JhvN6YxQRN5dSABkHHREpaZuuGrp7G",
305
+ "https://media.fxhash.xyz/w_512/Qme7Qpjv6FVkV8SGBdusia1VMAegW8Bi6CYmbJcE1wUJbY",
306
+ "https://media.fxhash.xyz/w_512/Qmd3sZTngYp85m7E2s3RRJXFFygmJrNGwA51NidoUs7Kr4",
307
+ "https://media.fxhash.xyz/w_512/QmRofMpHyWXSJoLmhWcMNTZRr4z7R4FKXDHpBF42AmaL5W",
308
+ "https://media.fxhash.xyz/w_512/QmZg1n6UnW3Mbd1Gd3nhGyUgAiLLK3sFFxCW96g29UFj6Y",
309
+ "https://media.fxhash.xyz/w_512/QmNzXcpQ3GS8uD3bx3ht2vGr7ZZUjZbvEt7QwM9dPkePMv",
310
+ "https://media.fxhash.xyz/w_512/QmUzSEAqjL3phoeDEWFEyoDqnRthBKBdS1TBzHewcU1Kk3",
311
+ "https://media.fxhash.xyz/w_512/QmaLP5sXrCjjgpJRM9gn3LAFrh3cVP1AEgvktzCcnmQKm5",
312
+ "https://media.fxhash.xyz/w_512/QmVrqCVGUn6U7f6njgw7Af312R2HPxznwVsr37sk7tp4Z5",
313
+ "https://media.fxhash.xyz/w_512/QmdBwDDFBcFdDCjEHMmaizw5NK2nC69dW3yy9DPyoy7je8",
314
+ "https://media.fxhash.xyz/w_512/QmdgVt4Hp9quiD3FdcpUKVVoqfb3ZnfjsR2D8wneje5oU6",
315
+ "https://media.fxhash.xyz/w_512/QmUDVL58YsnYChodHipjRY4QmepNakKs9TVXSxCWNpH2aA",
316
+ "https://media.fxhash.xyz/w_512/QmS6A7TV3Syne8kWioPny6V8fuodvRxpJg8Uq2w71uvntS",
317
+ "https://media.fxhash.xyz/w_512/QmdJjky1yEYf6Kk7KHqM2jBb87u1osySf76CvZW7vj6KUy",
318
+ "https://media.fxhash.xyz/w_512/QmPSRVwqEra5APi2q6GV9ob1b1TAwDuURS1FSj7bVLifGF",
319
+ "https://media.fxhash.xyz/w_512/QmRbmbDAnWA48HRpyEcbB5Dhe4sRHdJqYY4G4pRcDTAqfE",
320
+ "https://media.fxhash.xyz/w_512/QmSdDpa8eGbUWkCrRAtoPCnvRw9FFjHwK1g3iac9EoYVFN",
321
+ "https://media.fxhash.xyz/w_512/QmYDnuToY6SBxJ7RFSpLvqe6W6c2ixCCVDd5mCtfNBz1zq",
322
+ "https://media.fxhash.xyz/w_512/QmYfoicG6KupuxB9zQQjrt5z74SposHj9FVzGtcso1SRcg",
323
+ "https://media.fxhash.xyz/w_512/QmUs7MR6KP2kewKq2Ga9yPeUKjS48aTuDz8XrywzFx3fmg",
324
+ "https://media.fxhash.xyz/w_512/QmPGiyw7LemJpKYBiiR9WTHjAPFtooZtVpMzdXLPxrgwwT",
325
+ "https://media.fxhash.xyz/w_512/QmUrtNe69ymut37C56rNF4BRQarVy5y8rDhAMFJ3ijRoGQ",
326
+ "https://media.fxhash.xyz/w_512/QmewX47wpdEtvJzdzS3AaVNi8VndLKjy1ZJBkMRzzCSjrS",
327
+ "https://media.fxhash.xyz/w_512/QmTrHN47PYbgcMgrGXBfxXTeUfDZUQxSTBvAnxAuhnwNQz",
328
+ "https://media.fxhash.xyz/w_512/QmYNpaFbEN1t57oSo923XF1AgJSfrqogf64Mwd983Cup1n",
329
+ "https://media.fxhash.xyz/w_512/QmZ3dBmD96V39Cq9BwNoQt2dgiu3YureXbXdgBhHYnQVoE",
330
+ "https://media.fxhash.xyz/w_512/QmdB8dEYnPQmW5xurP45rAchpUG5wbXuhBiZc5evGYR3YE",
331
+ "https://media.fxhash.xyz/w_512/QmRC8dYQw5GTBLWLRwmoLoB9Dty9TxrQJc1H936bPTzg9k",
332
+ "https://media.fxhash.xyz/w_512/QmQaJFsEvzA8mmiRm5aPtKuqZLGd4cpoDEZu2deWWFGfTF",
333
+ "https://media.fxhash.xyz/w_512/QmdxRP51ZLJWgAuttuRp9VvjjZYnhxnc7XcfedA6v3xC8f",
334
+ "https://media.fxhash.xyz/w_512/QmQoDgWVXQX1pU3Cgae6ZsDQcrmsBNN2cV3WfSgCErtad5",
335
+ "https://media.fxhash.xyz/w_512/QmQC5JUbVeaXk7RakC2vpz8vpnKsSfD1ks5rP6BE3dCi8Q",
336
+ "https://media.fxhash.xyz/w_512/QmXqWPwH8PkXgAQ9EokYu7NuJJn9GtQZ825qpS9iP8hSze",
337
+ "https://media.fxhash.xyz/w_512/QmZ5iAB6ir2kBb1ExQgjtFd9AjQcWVzKT1vfHafE3uBRue",
338
+ "https://media.fxhash.xyz/w_512/QmeuHCAHznvrJLCrU8G463Tuefct7FbhjLVyh18MNVTQvb",
339
+ "https://media.fxhash.xyz/w_512/Qme8hdyryWHADioNJ8pzDTRdrZ6yyCBSUojTVsJhzppTMB",
340
+ "https://media.fxhash.xyz/w_512/QmXaRvJpuji7pV5oNdGudXqnNMfyoeMeZ5htSr33yZjdCr",
341
+ "https://media.fxhash.xyz/w_512/QmXuMEq82127K8ACEA7eZhuMUJMcQhpv6ydDEGgodhX1Rz",
342
+ "https://media.fxhash.xyz/w_512/QmTvHFugHhuNje82kNTQZsmRVCWPUjiDwTwHHpWzQzjVCf",
343
+ "https://media.fxhash.xyz/w_512/QmQnmRmvaxHETPgMGHfRDsXAztwU8jh6ZPRjsE6oe1zCY6",
344
+ "https://media.fxhash.xyz/w_512/QmUEEy3XYQPucQrbHgCpGHPaGgjS27B52FMSqUm5xexgqb",
345
+ "https://media.fxhash.xyz/w_512/QmfA6XJitUo2WNGBCydKqC7avfGrrxbcWk8mCdDZ4zRrj6",
346
+ "https://media.fxhash.xyz/w_512/QmQ5PVSBxkWdhf8tAGQE5VoepD2gCqsnzFBBoxnXmsthSj",
347
+ "https://media.fxhash.xyz/w_512/QmRU5w6A4oErH9tsaCKQsvkw4ptjFnQ1tAteoFD1ex6uKc",
348
+ "https://media.fxhash.xyz/w_512/QmfCJrRaUHFaUmNhEimEy2z48u3KHZpbUajTaFrWkm1NTB",
349
+ "https://media.fxhash.xyz/w_512/QmasAXzKV54ojBfyJhTmyfwG9AZHHcm3dY7yReUKznan5p",
350
+ "https://media.fxhash.xyz/w_512/QmbYEmwsyNKtVTSMJwisZRtnv8ourzdiRnX14qHppQKoH2",
351
+ "https://media.fxhash.xyz/w_512/QmbNs5i41nHGwFgMJ73ZmhycWf29To2VpJfd6KRcCNL88f",
352
+ "https://media.fxhash.xyz/w_512/QmWhgTd7cy2Fpgq2fPbfFvT3BWza743yfRbu1hNwEYiMJ3",
353
+ "https://media.fxhash.xyz/w_512/QmYSntkrwtGF6cd2qPhEZr28D55YsyzcqJA9jYQekCZC2D",
354
+ "https://media.fxhash.xyz/w_512/Qmet1YUJ9uPtcn3ZZfDmXnKAGoT5bHt59bdtJMNE631Re5",
355
+ "https://media.fxhash.xyz/w_512/QmSgECw5jGS79gaZdSftEfVE6HZbtsDzSPb14wn7DfuTK6",
356
+ "https://media.fxhash.xyz/w_512/QmWwktFc9W3yME2BCw7n1btKzWC4AR1uPCrRnEuAueg2Zt",
357
+ "https://media.fxhash.xyz/w_512/QmRTaHMavaSSTea6sFvKQ64PM1NFaLcfuXg1EuGc4e99CJ",
358
+ "https://media.fxhash.xyz/w_512/QmUWM3syW9MWbwzm3Hm7PmGzQtRDmsRtXNTcgJ3eznQDLy",
359
+ "https://media.fxhash.xyz/w_512/QmYrJS521tGWAG6bLPbSFaf26kjvTUbRz1j88ztA8d85mV",
360
+ "https://media.fxhash.xyz/w_512/QmcxRmeKmKZoVaMNRnuHgduwF6PbEcFVK3gHzMd2nqLDmc",
361
+ "https://media.fxhash.xyz/w_512/QmThasUnY7uG4TkviVmEtjkTfcn3JWdbWCJXCfhxVFv3K2",
362
+ "https://media.fxhash.xyz/w_512/QmPtKXh194BQJHymfP3vsfNWePhbm85ZSbi5WaSd6PJVCR",
363
+ "https://media.fxhash.xyz/w_512/Qmd2HwzNb3qVaugY4wgAUWbd5dAiPqEm52WtziRQirfifJ",
364
+ "https://media.fxhash.xyz/w_512/QmWC2iarmhggBt4648Wt1t2bnVRtTn3i9dFfDQWjyj9GWa",
365
+ "https://media.fxhash.xyz/w_512/QmcdXXbpgz9pbyVL8nQJ5kGn513Gbpc2PaMLzpDvRfhTCE",
366
+ "https://media.fxhash.xyz/w_512/QmYLudT4pe8XjKSba9uNxfbRDksKxZNK7iXEHbjMZBA72A",
367
+ "https://media.fxhash.xyz/w_512/QmbarsQ3AXYUVvrsmbwrwsDQzoE5K7SXUKdcJtKjaPwjGy",
368
+ "https://media.fxhash.xyz/w_512/QmXok5ayn1MvrideVp4oj57sJKJpNHvLgAoxQBqz6iuYxK",
369
+ "https://media.fxhash.xyz/w_512/QmPBkF6c2K5FCunC2Mrnj4yqpf9a2CRA1ZEh6UjkLRdjif",
370
+ "https://media.fxhash.xyz/w_512/QmeRVUqYEZsi2uWGHhQPSHyBMw1yFka8NoNvVhuZRhBTbB",
371
+ "https://media.fxhash.xyz/w_512/QmbqWqouSFfnpurPqVNbKc1pS4wT5SszA9fg8uja829RHT",
372
+ "https://media.fxhash.xyz/w_512/QmTsneVt3PFryeyGztc55vEYQgwQkNPa9F111AHShPRVhy",
373
+ "https://media.fxhash.xyz/w_512/QmWbHtwNRYq1dBRCQVi5fREwyyraNVRYdQRL6e8HNBFTrc",
374
+ "https://media.fxhash.xyz/w_512/Qmae2ixxy18hRW2Ekif5wdBu6qx5MfdCSKGCV875MiYXsf",
375
+ "https://media.fxhash.xyz/w_512/QmWs23yjU1NFedvnwa3oqfqt9JBEambV3wnoWtMvbixkvy",
376
+ "https://media.fxhash.xyz/w_512/QmYxiAXdiPp2B9AjYDrYAGJWYrtQvMbpeojg3cRDwPSkQs",
377
+ "https://media.fxhash.xyz/w_512/QmR5KZt8jHjZxkoK2hZM3WukJT6gG8gpR3NdnRHhqMUA3z",
378
+ "https://media.fxhash.xyz/w_512/QmbRi2Mo2VaShCeLbmFiEBf4JqCaj5bHNEkgiVaAWNpYpb",
379
+ "https://media.fxhash.xyz/w_512/QmSdkt7DbKfWvYMVqDMeXoD45rWQ59zcBKE8u4LPHFZGCP",
380
+ "https://media.fxhash.xyz/w_512/QmaxdEUm72UHimZKRBAdQP4dfi8VZPtqz6sx7YCiBfuL9P",
381
+ "https://media.fxhash.xyz/w_512/QmaAyKZgnLDXRr7T1AQCwx1e81B14QXzmUv8QHDwhpStBi",
382
+ "https://media.fxhash.xyz/w_512/QmdHL4eiR8NvbKRmgpDv8LH1kagmMF43xZCUkHUoXYSPdQ",
383
+ "https://media.fxhash.xyz/w_512/QmUDvMiAf6YA4grqMT5NmUCKNqoVUjF6ZwouL1f67PGZ3J",
384
+ "https://media.fxhash.xyz/w_512/QmYmYFG293hwoFHozNNedrAFajeSYZEQNnX9D4dLC9hdYY",
385
+ "https://media.fxhash.xyz/w_512/QmVu1ueWbfSVEKxPdzKBTNgcW4mrZGAgBZaXbr3SDMMBSW",
386
+ "https://media.fxhash.xyz/w_512/QmX6qTkzX57ngKbaoWsd3Kgt49VTKVVBiTzeZXkUDmkUap",
387
+ "https://media.fxhash.xyz/w_512/QmeMe2XBdHuo8ZVu84pL1WSa4YtfHeMEBDTqRTpSwfS7qL",
388
+ "https://media.fxhash.xyz/w_512/QmSQiLczkvN7ypRWwMpNBib7sVhst13XNhuWZfFBUhykBj",
389
+ "https://media.fxhash.xyz/w_512/QmfXU78pQQCqrMaB6vJuWDzicHE1d7PfMHoWsrQx6x4Wqu",
390
+ "https://media.fxhash.xyz/w_512/QmZ9VgyXh2f7BkxMbBi95UTbvzRzVMLLdy8cX3NZoR8hWj",
391
+ "https://media.fxhash.xyz/w_512/Qme9qKJB1S7TahQd1dXVG8fNBqop1pF2WEBS6YXgL7TBg1",
392
+ "https://media.fxhash.xyz/w_512/QmPFe6SQiBBNpPuetQDAemaBmhp6jw56afafdzFzUgRGRR",
393
+ "https://media.fxhash.xyz/w_512/Qmcr4ntJpAd1SWuEB7euD7jNxC5ydDNho4w5zMyD9oz43x",
394
+ "https://media.fxhash.xyz/w_512/Qmavi1faUo5SFrZDWJJ4jVgzxDsKiTGjwrj7D3eNC8vcQg",
395
+ "https://media.fxhash.xyz/w_512/QmYipqrpQNSsL2ht3EWzQBFD4Hv5AqbxjvyTj2uoteWxBR",
396
+ "https://media.fxhash.xyz/w_512/QmcMMfZaoToeYgqWdZxJuy12rxV672SjQr4GvagX6soh3B",
397
+ "https://media.fxhash.xyz/w_512/QmeZ2iCDSc9otb8eAieG5emHzSXwoDaCkjikBYzv2LjfGY",
398
+ "https://media.fxhash.xyz/w_512/QmczZ9kxbbDct1NgrvpS75F59qDAWVxiZwrFe4HUvxvbvA",
399
+ "https://media.fxhash.xyz/w_512/QmaXAWkkHD6k52kQTDetzg2P8RgayYNFP4t5zVcheV3jb8",
400
+ "https://media.fxhash.xyz/w_512/QmfH4KhXcHrYQKpaiVJRcFKyXHQEtmWGb5US5n77R4z9AX",
401
+ "https://media.fxhash.xyz/w_512/QmabMVEKmsiH6hxsDzZ5Q8RPwMitiJZShDyXyScFNiuu1m",
402
+ "https://media.fxhash.xyz/w_512/QmT52tW9EPSyjZ6vYdq734E9C4GQwcCKNV1x1JVzEP7j7G",
403
+ "https://media.fxhash.xyz/w_512/QmaBWmN6gbSnvdEGnfGeRs7L33rVXBCxgcqzs2wTRm8vi9",
404
+ "https://media.fxhash.xyz/w_512/QmcamJF53xavexdDoE2orjvXKYsGag6F6oericXG7aLXVZ",
405
+ "https://media.fxhash.xyz/w_512/QmZtZyEbNcuqq6Dm6XoJxRAHsfh4xEtySkNimLXJXXGXjD",
406
+ "https://media.fxhash.xyz/w_512/QmNdMAVUsq4nL6GRcyQvFkuqoZFdvZQGGW9XFiXfNNmdxq",
407
+ "https://media.fxhash.xyz/w_512/QmfTySDZVS7GendFUpCTTL9SerXUWvudEiKqi4CSpQM7ME",
408
+ "https://media.fxhash.xyz/w_512/QmPgXfgJGJLeE3qWy5ibfx4UBTmK2SZxWehpLXBRCaiq33",
409
+ "https://media.fxhash.xyz/w_512/QmSdjips5Ec54UnkSHdWS2wttncHmJXTBKGKNWFZ9kBGZZ",
410
+ "https://media.fxhash.xyz/w_512/Qmdq4SL34x7xpzXDDHtwypRBWhbCkL1uqnXaikJ4aj1RCj",
411
+ "https://media.fxhash.xyz/w_512/QmWZA4ucJvFeHTcd77JUQETaevicLgGy5UeKJRAL7Ux8uw",
412
+ "https://media.fxhash.xyz/w_512/QmdgxZ5n6eEjas2eS3rdNhVrUnizPnWroiBGhYCGFWWzPi",
413
+ "https://media.fxhash.xyz/w_512/QmUQPzUZY4pg7gMAHPUEgKNkw9haNG1WUphXgJvzhtStyd",
414
+ "https://media.fxhash.xyz/w_512/QmPRKm3yDrtZTVzXnfDKbeFWnFDNxt2Y9Yhoq2PqN3voVt",
415
+ "https://media.fxhash.xyz/w_512/QmPkGGY7BZbGtGNkwMA3pMF7gUEWJJ34FsU17wzaWTHTWw",
416
+ "https://media.fxhash.xyz/w_512/QmRGpC37twDNrn12J8hC2ij63fq4SjaXKSHoqDnDJhuAcw",
417
+ "https://media.fxhash.xyz/w_512/QmYCunGqCfw763MB2TewT8nJkKZ9NKpBcLQULw93Nq6NLP",
418
+ "https://media.fxhash.xyz/w_512/QmRZRY517smVUFN5rVNqZwXAKCnswsPXYYoAKzpTPssnta",
419
+ "https://media.fxhash.xyz/w_512/QmVcHiGVRk9cPPhD9ReFDBxHKPTJw35r6R5A6MzYi6YAy2",
420
+ "https://media.fxhash.xyz/w_512/QmS3o49o2ETJi7iZGyT9i4GGfJmWyPg27GpxVoUGQt4j2G",
421
+ "https://media.fxhash.xyz/w_512/QmV5BawprCdPGem37dffGVm6XjNyvLCGMcsxjA4LWX5Rrp",
422
+ "https://media.fxhash.xyz/w_512/QmfRWSp8HHWfWwBDxGA2GbrHd3gPidD5prav86gFoCdFK4",
423
+ "https://media.fxhash.xyz/w_512/QmcCgxmxxFSNSVzrhGjo1EdtxxviauaBHsqYrAxysbwkZG",
424
+ "https://media.fxhash.xyz/w_512/QmcSFvrYBwZNDVcptSaNXJKVesRTnG8732xR2VxacYUgDV",
425
+ "https://media.fxhash.xyz/w_512/QmcLGxdf5fvJqqYJKPC7j1PE2EkWEB43y5k9dB7rw5xJEB",
426
+ "https://media.fxhash.xyz/w_512/QmZfuGF2M5RNUNQUJkrpgLhmozqftU2JfLPWiYbaGWJyhL",
427
+ "https://media.fxhash.xyz/w_512/QmeqxXBBX7gnyjy9gMWBCqPxGdtD3cU8dV3Qav8HLifBor",
428
+ "https://media.fxhash.xyz/w_512/QmetjwdZgrcdiLV5ipumXuWwJNxT7Zdh16UGmGMcp853uw",
429
+ "https://media.fxhash.xyz/w_512/QmPk8t6MdAKh8AUnfRmKH1Swnzv4WNqzCVT4cWKukFm2GP",
430
+ "https://media.fxhash.xyz/w_512/QmaZGgFJ4VcJNsBbcao8NBqEwWvcdMFvzkatBMzTexxeb8",
431
+ "https://media.fxhash.xyz/w_512/QmUfZ8Ce589hebAEii2qRQSmkSDWnBLwdLYuLWSv3ckcLy",
432
+ "https://media.fxhash.xyz/w_512/QmeCreHXB1pCHfvCzPymtcciVtTRoW3PwG8bx9SeSRVtLJ",
433
+ "https://media.fxhash.xyz/w_512/QmfRYycMSbcRsThzLDRcTHmKgitZdTCRFCEL9D8m4ekrHb",
434
+ "https://media.fxhash.xyz/w_512/QmVcHgCCkBUgsKpbCSkokkNxAzHnz9kcLpBSCdyk5UGgEo",
435
+ "https://media.fxhash.xyz/w_512/QmdQLgn3Cim8UYuy8cv8skb6bvHTroHvqLbKy7BWd9kqr4",
436
+ "https://media.fxhash.xyz/w_512/QmbpETftE5z72pfjdY666ALFAxvB4fPnaT9GDGLvEPyzBB",
437
+ "https://media.fxhash.xyz/w_512/QmPa6ycNA92DyG64pXE1vYRPUegqCGNaURhmeEf1wPVWWC",
438
+ "https://media.fxhash.xyz/w_512/QmenjA87ACk32ZgN5rJdZPZdBpHCZqgYuZcJBv63QespoJ",
439
+ "https://media.fxhash.xyz/w_512/QmYgsAiH5zuyiSvMqiv4etpgubwkKxvbnVqwpRzDKVePGR",
440
+ "https://media.fxhash.xyz/w_512/QmYMJG7rVJUbM1v9EDNE41MiPnh2Z1JCrGepsvS4ziuAEM",
441
+ "https://media.fxhash.xyz/w_512/QmaWhEAAAHiZKG9Twg9bXczzFehreeegPm9ygPV4hdHr4h",
442
+ "https://media.fxhash.xyz/w_512/QmRRsVrfUCaWfz4sncS9aBhoQ4bHiLgYen523A3SsNtqSD",
443
+ "https://media.fxhash.xyz/w_512/QmZ4rTJ93Gg5of4CNmXs6Y87EyksPNmZVNGPAwGbu8evFr",
444
+ "https://media.fxhash.xyz/w_512/QmPWGiCLwCm8HG2n4aNpYzrKNDRaZhRjrLtXNfXFRP5zNR",
445
+ "https://media.fxhash.xyz/w_512/QmRfgC7JPdT8NkBXP8v5xL4baLADxnX3oTEi8n6LTHp4Jr",
446
+ "https://media.fxhash.xyz/w_512/QmVSSBxtHvDj4CdbAvSP7paDxRQAyxtbow5bmcSPT7VaNY",
447
+ "https://media.fxhash.xyz/w_512/QmbPzgdABgXwcxNTYCv1AbZSEr9gYYPpSK82BSUHMh9F3q",
448
+ "https://media.fxhash.xyz/w_512/QmRoga8FXjYBbyA9cKZXVxLe1N6LZZcsGYNc6LSPC3Hhk6",
449
+ "https://media.fxhash.xyz/w_512/QmfTPdsHBTwhjvazQFTT5JSk4XHe6F7DNwxUB4vdL1BoBg",
450
+ "https://media.fxhash.xyz/w_512/Qmd8n8pC9forQnPbyN3NyLTVo6bTMnDNDuK7btTCNS4ZN8",
451
+ "https://media.fxhash.xyz/w_512/QmTVJXWAxHoh9mr9cnmZf2FzJCGKpZDv27xQwWq7xDfbUg",
452
+ "https://media.fxhash.xyz/w_512/QmcM9cwqDsEW86qCkL57ryFDWPP7t2j9cwqYTCgdj8Doqz",
453
+ "https://media.fxhash.xyz/w_512/QmVQ6cAzqMK7QKLFnNFqpeVuDjY2uNe2KAV8Uy33A9Snwf",
454
+ "https://media.fxhash.xyz/w_512/QmYjn2bKv5Aoc1gUr5oRS2rJ7T4P3s2GCDtVKh6wfDXeQz",
455
+ "https://media.fxhash.xyz/w_512/Qmc5K3BwusFrGyfB51sSqcxBU1Zakddw98QHbd7Zr71geu",
456
+ "https://media.fxhash.xyz/w_512/QmVjFfDPbd8bXcgz73HFqcniQvZZc1wXuCqPYCyAB1ayV6",
457
+ "https://media.fxhash.xyz/w_512/QmNiqbUMZCoTb3QmyA5sPVQvXynzu5gASVRdaTvh8AjqGC",
458
+ "https://media.fxhash.xyz/w_512/QmUnAfe9Bg9cKkMXevMFb1byGdRMuHvAKLR2bdanxkTMUN",
459
+ "https://media.fxhash.xyz/w_512/QmaC5nbaqk5a4a7sjJnxx2pZFKrBMArGjJwN5LJtYsLvmu",
460
+ "https://media.fxhash.xyz/w_512/QmdWx68z9wS1Q7GYft1VZGKPNDUxRdPJRpjM8bi5poVzAh",
461
+ "https://media.fxhash.xyz/w_512/QmfHTn2Cp2DqKbLLdGocwC2LvEn7EtW9R8yTGEoM3aHvRv",
462
+ "https://media.fxhash.xyz/w_512/QmcQPNZK8Q3xPHbzixZGtTyTTsoXjQrUzUpCB3DhAaPS8m",
463
+ "https://media.fxhash.xyz/w_512/QmVZ13pafa1RkA2aRogz9suxUJLnMJScH8yTSZ7UtKAWjc",
464
+ "https://media.fxhash.xyz/w_512/QmcE61w4ocAtMpcmtHJykL8tu5ZgZrFvzAHipy9Y4tnJs5",
465
+ "https://media.fxhash.xyz/w_512/QmXRDAaNjaB1wyaEkZZ6u41ihW89sQBXdSSxRiBovEaTiT",
466
+ "https://media.fxhash.xyz/w_512/QmRHp5vPMf6q67fpVZNZkuHHXDetGkyHYDgP9grempX3Mg",
467
+ "https://media.fxhash.xyz/w_512/QmeLH7EniEGMxUbxnCfc76gX8awfuh9gCqjQVr6Ki4Yk7D",
468
+ "https://media.fxhash.xyz/w_512/QmbxTtRwjNGxNVCUxFVLnyxWTMvTVNbZup9VGuNbnWoXCk",
469
+ "https://media.fxhash.xyz/w_512/QmWybLoxZYoisEP3Ud1k19RbFTCRLcNqv2aoCiDV1ipC9i",
470
+ "https://media.fxhash.xyz/w_512/QmPNdWy5KUyS2aHgMpG9Vuy5nSkvXHjqpDkwNxETMnh199",
471
+ "https://media.fxhash.xyz/w_512/QmfKzpWDodvkZtY8QA5Phhy8pvA5ik2TE7ZSdz22jfiMm2",
472
+ "https://media.fxhash.xyz/w_512/QmQFTyHoCtAru6TkBeRkxa9eHUZkg5oKtoQDotstLZLoZ7",
473
+ "https://media.fxhash.xyz/w_512/QmNni29NR1TyUUHFoRiWViYeDY17D811qqJj7HryeareJG",
474
+ "https://media.fxhash.xyz/w_512/QmcdZX2nE64trTBPZSXURWC7eHbmbjh8KV4hKBu6fzWzd3",
475
+ "https://media.fxhash.xyz/w_512/QmWLqPRL4Gq74Av9D5XKkC6s4DkzZYppaD8qEYa4AieDFE",
476
+ "https://media.fxhash.xyz/w_512/QmUrfvDVRv7mrWNkkb71bpaop9iPABDnXHPK95Z79N8zUk",
477
+ "https://media.fxhash.xyz/w_512/QmQwe8v8f4UaX3JqKksUNU6yJ1v1M24KBYLboZh3Eskqhj",
478
+ "https://media.fxhash.xyz/w_512/Qme6qEbZHpi4Yn7Eqhc83KzoTLzV7vDeTDpMy1Wsakzywx",
479
+ "https://media.fxhash.xyz/w_512/Qmb8qknq7LpV1esM6xRpHV8HSavb9woRVTqHB85xyRqK8B",
480
+ "https://media.fxhash.xyz/w_512/QmbXpDVrMeSP9rK6ormgRTkCHkSwhgosv6ppzEHShdxuAn",
481
+ "https://media.fxhash.xyz/w_512/QmcyQ8CgEMWjG9L4AEUfJUFaStxqJ71VXTirHar8XkygNy",
482
+ "https://media.fxhash.xyz/w_512/QmNjL5gsVytw3BYt4okEeNCU1yin3F1P9YJK7Dir5Bt5Dj",
483
+ "https://media.fxhash.xyz/w_512/Qmc68jpxUBd4BsJiaVKTSZMa9dwDAs4eqJwcyaTTh9okpe",
484
+ "https://media.fxhash.xyz/w_512/QmeKgvLXe7sFGUTwRN8TjvE8T1rVcaZVgb8di1tcy2A6wt",
485
+ "https://media.fxhash.xyz/w_512/QmRXSZnGaMcFHoGPPR8M3w74cJWadEdBdF8Pvzpsymg6uB",
486
+ "https://media.fxhash.xyz/w_512/QmeP3W1oqL34CVe6MjSJN9mWdQtaxdncpW1vuY83oJoTye",
487
+ "https://media.fxhash.xyz/w_512/QmQeMPUMS1PHiXSexLMvB5xVxoU3dz3jAdHqiMXeSiXJBy",
488
+ "https://media.fxhash.xyz/w_512/QmQCNVznGKRdHxvNy2hJJeaHKYqRiAPCTd2DU2xTLyucLK",
489
+ "https://media.fxhash.xyz/w_512/QmUVkNH2ryMUs8Vkeva7i95AavTz6kyYdsnaQDXRcQhmGF",
490
+ "https://media.fxhash.xyz/w_512/QmVupFUtQdFzjhwvJ7pvAQTVLXeqveLQ3FpbRmmKMoprJQ",
491
+ "https://media.fxhash.xyz/w_512/QmSM5KVuAewKCEyWpyXnSb58BkgS8pPUYYyrw42Le98aNW",
492
+ "https://media.fxhash.xyz/w_512/QmW1567HAVM2sMobypbzSN2tS577ny9gckqxJdHzes15mP",
493
+ "https://media.fxhash.xyz/w_512/QmaqGsvtmWK3qw8Y6FaL3nJtmp8Sy1N3NJTWCEE7kf1VGk",
494
+ "https://media.fxhash.xyz/w_512/QmSFXjuXYchhJotNeyC25qMiNgy34X6PMEmqPceP1KFHZa",
495
+ "https://media.fxhash.xyz/w_512/QmTg42Gx4R81MLNBbFDo8neGRBbSwiP1RqpR7bRK2MBuwr",
496
+ "https://media.fxhash.xyz/w_512/QmSTWDY5SSun9aAjRMc6UF26wHBgesEtQGeY7zmmK2Ncpo",
497
+ "https://media.fxhash.xyz/w_512/QmPRYt51VTRdeZ6WMNoXJgjQq6fWcxsUzAk9nprpxSgtEV",
498
+ "https://media.fxhash.xyz/w_512/QmX2WLzMmRDPz1ZwxaHQpHgoYWkPveh4CcWKmNWukudKgw",
499
+ "https://media.fxhash.xyz/w_512/QmSxbDfE5h5392GWe4VWpBgjbpUSQv5MDSas6vXwJXgu9K",
500
+ "https://media.fxhash.xyz/w_512/QmeYAbPnfdVqu9EzZr4HDWrLtSYBnt4USseAiiLSC5eBxF",
501
+ "https://media.fxhash.xyz/w_512/QmeX9vvxqoQQbY7viQVzhyjQXXhmkK7Vmczh3Qq5NUtDww",
502
+ "https://media.fxhash.xyz/w_512/QmVYgQEHLW1WXnfCr2iqqDMrQzYwM7Rxbq25UzuVHW5gRU",
503
+ "https://media.fxhash.xyz/w_512/Qmdc96MGPhCkXRtMPw4V2dGxY8fQG5uRXfY9F31bY71fh8",
504
+ "https://media.fxhash.xyz/w_512/QmWU6ZM5EPcGh2V9MLSJXjAYUbKZ2JawHvqkihC5kGkiSv",
505
+ "https://media.fxhash.xyz/w_512/QmXhQdKSnkjJftzXVbsH5Si85rjrzicAuB8ApFf5AgRxq2",
506
+ "https://media.fxhash.xyz/w_512/QmQdqr1g5XEUcuJf2FkrH2cV5KviSnee7V3FBbEZR57y76",
507
+ "https://media.fxhash.xyz/w_512/QmY4WhQYZ3gTrCYMN14AqwtctieReyxeFgkJoUP2bqBH1y",
508
+ "https://media.fxhash.xyz/w_512/QmQp3waLsG8DaTY7RZeLde5UmB3KtgVhNvWoWzQ2o2CfVr",
509
+ "https://media.fxhash.xyz/w_512/QmR9SqjsuJLsbJsJ7N9wgCLaDq8EhySRwWUQ1oY8u6W61f",
510
+ "https://media.fxhash.xyz/w_512/QmbP45xzPbjWLH9u8B5RwXoUm714ZHPzUeno9KYCQh93HK",
511
+ "https://media.fxhash.xyz/w_512/QmPvTq9ceMDMnGnQ3cQ6NFNAdfGcbxF9JrF3JwUxUUG7nu",
512
+ "https://media.fxhash.xyz/w_512/QmSaFmJGTrQvPPkme4zB9yZHa1sriJ7FiWsBwYZB1F2ALu",
513
+ "https://media.fxhash.xyz/w_512/QmWCdqJe2dvQ82T3C9iAkyGgEEkLFayCvfQ1AuhuGcnZ8A",
514
+ "https://media.fxhash.xyz/w_512/QmXhdnbPww1smiqGTZvDtVL8QEqZEf9hoKrdYEQyZjHJFU",
515
+ "https://media.fxhash.xyz/w_512/QmX4BKhtWybmmMpaysxgBSPCMvPzUpqYT3iH3W5sUC11jY",
516
+ "https://media.fxhash.xyz/w_512/QmTNoFuXjwRXj3KGRfCqe6kQhGWTZpgfrz4GHZvwZezrTK",
517
+ "https://media.fxhash.xyz/w_512/QmYAsiZP7iZjztyptcx5bXq1GATtxsTjMFbTkRwf1mgwsb",
518
+ "https://media.fxhash.xyz/w_512/QmY2RhnwMGu3YnFKHWDtyp14CwKF8nkUSTmkHXhebWHRzX",
519
+ "https://media.fxhash.xyz/w_512/QmYr8ZcfTiYE8NafbysH8886mi13M8aPkX6f6YzhqQBqEB",
520
+ "https://media.fxhash.xyz/w_512/QmdYdkfmZttj3RwhCgJoWXjiVCG7RANpDWFM6haz32vnSs",
521
+ "https://media.fxhash.xyz/w_512/QmUw8HKUckes9FNiZ9L5bhftsUzYAHtSy7ySo7MSp8G191",
522
+ "https://media.fxhash.xyz/w_512/QmP3Xh1Kbykr22Cx4jUejf3e9DFprsRSf2C9jgRapGrou3",
523
+ "https://media.fxhash.xyz/w_512/QmX5SMsrTRX6rgCUSCkwXMnbx7mbgZDTdGi3m441WYibVc",
524
+ "https://media.fxhash.xyz/w_512/QmSRdUnLHKbTSEtW3ArBcYN6uVNmwGMSac9jz9V8w4nsgf",
525
+ "https://media.fxhash.xyz/w_512/QmXHzMyERwEecQEGL1g2F1jC9BQih3a86sHbQnZLxjvZGQ",
526
+ "https://media.fxhash.xyz/w_512/QmYiy6Jw2PHDF74Y3tFMGcvDzHyevooevSGhiGmYYjvvcW",
527
+ "https://media.fxhash.xyz/w_512/QmXYDwuJyGePzi5BZk5Sq4EyJyfTd2fohfBpWPvDmi1apq",
528
+ "https://media.fxhash.xyz/w_512/QmeUQgY5KZQXUWAMtKdCYW1FBJVGa8QyNth28DiqiBgaN5",
529
+ "https://media.fxhash.xyz/w_512/QmW216BKJFWaucFj73BmpK8sBVueofCEAefsWS8VAJaDPr",
530
+ "https://media.fxhash.xyz/w_512/QmPdaSEZzbHVu6kHxi33MpC6Gpy1yB3AiqJRTcGMsfcKLt",
531
+ "https://media.fxhash.xyz/w_512/QmZFRdtjvkVfFH45af59yDUqiFRt2g6omUCdBMGgRFYe3W",
532
+ "https://media.fxhash.xyz/w_512/QmPZLa7RQH1NXU2wdygqyrJR9ujf44jL3SpYct2LMXbzVZ",
533
+ "https://media.fxhash.xyz/w_512/Qmbp8UpKD2A1XcwrjeBSRZKUqJ9BV87f6ye2kH8V2fJ33V",
534
+ "https://media.fxhash.xyz/w_512/QmUiHaAmewGCFoyx663FbnG13cie46c2WFd3H8PybfNssn",
535
+ "https://media.fxhash.xyz/w_512/QmSDiXxLqHEb9uGkpfZvpURc4DTdqL3PaCCvw35sfpFW1y",
536
+ "https://media.fxhash.xyz/w_512/Qmb4Ujbc98NXV8HKf3V6MvgFD6Fo7Uf4z7j5r4xndr5mPY",
537
+ "https://media.fxhash.xyz/w_512/QmVkAkWcVnx93RLDzJPAttaqR8cfDVAHagYqsWThDuWtvb",
538
+ "https://media.fxhash.xyz/w_512/QmQGoKD8whCoyozsVLXeX2w3SHE4X67K3VGqVuuPZyvMpC",
539
+ "https://media.fxhash.xyz/w_512/QmPEZaKM5bd4i2Y22tpKajSSKt7nPkxFB2vdAdyed8fQFa",
540
+ "https://media.fxhash.xyz/w_512/QmbJRSoJGcoSuNG2cxYeuCfkjWyHt5omwg7r5SYqphHaec",
541
+ "https://media.fxhash.xyz/w_512/QmamK8u4su5anNRQL6JgesAG6BJwFZfA1uzN2YQLr6iQxG",
542
+ "https://media.fxhash.xyz/w_512/QmXs3SXSqeMH6qxNaweBAxm3Bwq3htjJHgFQu99mZUN2X5",
543
+ "https://media.fxhash.xyz/w_512/QmZFYcFK5SX6jAc3Mzc6poGu2bix6EhMXX4YncXxZnRvHC",
544
+ "https://media.fxhash.xyz/w_512/QmNYm5X4EsTUBGr4SenGAE7Z7MGqfZo2yRfbQx4wBZKiky",
545
+ "https://media.fxhash.xyz/w_512/QmSEhxWZGxACHM7Q3idyHUpn2cVsS1FRjTZcra8rQRJBxk",
546
+ "https://media.fxhash.xyz/w_512/QmPjzzjcMUbeS2PvbFAEsCh4LLwKSyJ2q8fPDbCqyrrybM",
547
+ "https://media.fxhash.xyz/w_512/QmaTS2cStkFGf617GukoHtwEu5ZSgrRBuD1w9mqidP6bm5",
548
+ "https://media.fxhash.xyz/w_512/QmVxkYKWFDHiptoi1Bf8EGJnUsUcKAPZ8P8zE8EoDDqUV4",
549
+ "https://media.fxhash.xyz/w_512/QmbMMzZbQddFPdJx2HQ2ajxPXYaxK5pP3DvBiRvRPgecnS",
550
+ "https://media.fxhash.xyz/w_512/QmdYy4kPmFMjizL3Zf76Xm9K69Zhv5NsZxi2xAVwngkiNt",
551
+ "https://media.fxhash.xyz/w_512/QmeKToLPEbZrbDsGVDU9QmwFbPiBeJbhtnhP3MNzCuqAM1",
552
+ "https://media.fxhash.xyz/w_512/QmQpBwXv8pYjUS7tuLMTFCJJhDvSEQi8rMHqrr3uJFKpLR",
553
+ "https://media.fxhash.xyz/w_512/QmVdR2eUqqCs85peY4QxNkNGujATedS5mWRc3U1a7D5ykw",
554
+ "https://media.fxhash.xyz/w_512/QmZav8HFKSPshGmZ9QF1TvvJgLf2d7U6nHmroqM6Stutaq",
555
+ "https://media.fxhash.xyz/w_512/QmfLQenyV2kJP5tdKuxRVR3DN2B7DFtmHHZiyTUHwV4CVU",
556
+ "https://media.fxhash.xyz/w_512/QmbLQonAyhp95WyyfKdVQjg7jj3C7Y8H6dXibhTJHnmZPx",
557
+ "https://media.fxhash.xyz/w_512/QmdsWtrnYwt97s5GFkgzJc4AkHnFujdF8cQHpm5BAuP9Qa",
558
+ "https://media.fxhash.xyz/w_512/QmPx4r45ZVVhYtFrfvUCrpTQLVBuqb5ZYUV29GbVBrroF1",
559
+ "https://media.fxhash.xyz/w_512/QmcffU7xmsQeZBXMWwtMXSRBhaXLXi7YHpTJMqb4tm2psD",
560
+ "https://media.fxhash.xyz/w_512/QmZ1aNSqsotSXDnAGCyvK5jzuW22ixCVfhWoBSuysT3Drj",
561
+ "https://media.fxhash.xyz/w_512/QmdSE7UrV3j46Fux7LfuujpeQMqUXR5u6or62M19VmyjVm",
562
+ "https://media.fxhash.xyz/w_512/QmaZ9wGf1MGVzX2vnsLyzW5r8RW7C8Bc8uV3NZEk4dkDP9",
563
+ "https://media.fxhash.xyz/w_512/QmSQSvJBzf4wAqVLFvEX49mqt3fiN5JhgJshG2wdJu5dwd",
564
+ "https://media.fxhash.xyz/w_512/QmY6HvEv8AyCQH3wAGdgAPtGEVBjVbihXZDn5vASSxPgCK",
565
+ "https://media.fxhash.xyz/w_512/Qmf2tx4WjeDcG68w3sai9Jv7B8M7ZHbLHHidWxC9iRqTag",
566
+ "https://media.fxhash.xyz/w_512/QmWrabuG1dae3iZ8UzSsDfQMsm9STWMHXnnKrdxRP9k6jj",
567
+ "https://media.fxhash.xyz/w_512/QmW3o72hbuU3hRadRoGHGGnczguyDJxmutjjzVuju8Ha6V",
568
+ "https://media.fxhash.xyz/w_512/QmQGFRUAF8DdWprGR8HN8Zer3ByL4LPhGfF5mpY3AwDbXD",
569
+ "https://media.fxhash.xyz/w_512/QmWHcJ8y3Cp2ggFDSHWS3atVqmMU21jb73dXvk2ERWQANH",
570
+ "https://media.fxhash.xyz/w_512/QmfNKvg8mx7EUtD612zVK2eyLYcJ1vNB6cJENYXgkgr2jD",
571
+ "https://media.fxhash.xyz/w_512/QmVm6bqRNM4k136mWrdwGVnzokWEHVv3tLAaCzPzDcwiVb",
572
+ "https://media.fxhash.xyz/w_512/QmVe3isctNa1GzPjBqZd1t6FvG37k6Scbqa8YFxCckfYxy",
573
+ "https://media.fxhash.xyz/w_512/QmfBU7amNp1N2Pkbm5AXrJcTECUT88TKtwxE77VHZq6Lac",
574
+ "https://media.fxhash.xyz/w_512/QmfSv8uwpnhhtdNbtFuXno3XoSAFcYM3u32ieFT1LX64EX",
575
+ "https://media.fxhash.xyz/w_512/QmPAbs5S3Mv7R9SecJhHm6yy6T9L7vAJeFs1NgUnnG4P9L",
576
+ "https://media.fxhash.xyz/w_512/QmP8Gx8v74rFJggoGZW4BgE6UERAoihBhi2K1P9duXoicA",
577
+ "https://media.fxhash.xyz/w_512/QmT9vxN5S2uAUfHuHHcRkFVtKSyrHvA8uRcFMkNg87L4DT",
578
+ "https://media.fxhash.xyz/w_512/QmdXTtYWf8MV4eYZGL1EjyqmoMRDRAAE8QfwA4obq2vKdp",
579
+ "https://media.fxhash.xyz/w_512/QmSTb3uyCC9dGX1ZfSXZxRTUDpedJh9oRH3Ui6LGkq7Yvy",
580
+ "https://media.fxhash.xyz/w_512/QmVXLGrJ3eKgkf1XmXb9e6r8onNpUbUxfmQ1vRMQzbvxvu",
581
+ "https://media.fxhash.xyz/w_512/QmXJ1cz1NGB5GZGAv3wmfygXaVYSFCRXfYLWCZAcLUpzEz",
582
+ "https://media.fxhash.xyz/w_512/QmS1mKaK3WfRkAAnghbi4uTWMxqSGNubHZnXAq6nueEa8R",
583
+ "https://media.fxhash.xyz/w_512/Qma2vnmCKYv1FXPfPDMAuyv6aaFBM1eWxhGvGgdytVWZJH",
584
+ "https://media.fxhash.xyz/w_512/QmRaeRmZaEuvqmWDyqVv8NwRsCVn8F74tqhRLJR3ikH7kp",
585
+ "https://media.fxhash.xyz/w_512/QmRqyxwBFikYy84h1HboazUeUkuQA8QMb5FK8CByJAZxsJ",
586
+ "https://media.fxhash.xyz/w_512/Qmbkerxz7y6bVgdqXL76H4pEdADJLjJEpE94DJsHvGpbxm",
587
+ "https://media.fxhash.xyz/w_512/QmQ77yJmWoxQi8v36rVE7fHHra1dp4aTLtTDmoDM2iveed",
588
+ "https://media.fxhash.xyz/w_512/Qmdn5s5JRDApvjmhT5g7X7KJ6d1eqiNxkHEBBB5oGZqUq3",
589
+ "https://media.fxhash.xyz/w_512/QmWSkt6c25ULsMA8GJBgZLwiUw7khWsq6ff16t5Aa6mm8W",
590
+ "https://media.fxhash.xyz/w_512/QmT8HifxeUaGJVj1ttUAo8G89DFjT2m6P3ZsK1wQh4J8hT",
591
+ "https://media.fxhash.xyz/w_512/QmcS3hU9x95UMh6UcwSYqLLTbS8ug2tSjff3PsMgPQ7974",
592
+ "https://media.fxhash.xyz/w_512/QmcT9PV5MrigpTJbZzTsDSkYEnEieXic2umFXMdmav3Eqi",
593
+ "https://media.fxhash.xyz/w_512/QmWp965wxeWK3gjkuqPYb4MbzCZXsxhRQgSfdJp8b1rNxD",
594
+ "https://media.fxhash.xyz/w_512/QmdgMVk3TG6sdJvM3tKFbgXNi6bu8N8vT83k9N1So7Dbs8",
595
+ "https://media.fxhash.xyz/w_512/QmPmwJUsqwXrHKizf4DvuVLyJQ2LN72gm3HydX41Ssi25D",
596
+ "https://media.fxhash.xyz/w_512/Qmahv1Hpo8K3ncdSbRG2e8Wf2skcu4SYPWQmoRPPyaNLe2",
597
+ "https://media.fxhash.xyz/w_512/QmdSbjrRqRQKjNczoLGuzwpDn2q673f8WqNnffCGrsvi1Y",
598
+ "https://media.fxhash.xyz/w_512/QmeqhNjRxewZmbSzqwUudUiBmadbsrSRcEE83aQXwk2WiF",
599
+ "https://media.fxhash.xyz/w_512/Qmf592kZRgRuy5CRgUXAgNrn6TiEGDCrPSAEttf4c8SWAz",
600
+ "https://media.fxhash.xyz/w_512/QmPaodEFu4ufEi4hVkPbC8EfBmW5F4mqxrHxzBp99DaFgN",
601
+ "https://media.fxhash.xyz/w_512/QmNTFhA47ydTu77Ccswne5CX8fxRNWjwUNKvxUWYaFS86e",
602
+ "https://media.fxhash.xyz/w_512/QmVyDEvZ9djHxUpjvpTsVME6EYiuXgdwj2rgGq4dD2ZvrG",
603
+ "https://media.fxhash.xyz/w_512/QmToqbj9QMWwS9xnECNeAYo2bLU1VWxCUDZCv8B6teMn62",
604
+ "https://media.fxhash.xyz/w_512/QmbwyrcYhvu4F5ubULjdEbjXh6PWdLsz9aq3nsdVhf3Gxn",
605
+ "https://media.fxhash.xyz/w_512/QmPcyrDsTbynmZAtvr5ejnxpHGxJtexVnKiLjgKXXrFb55",
606
+ "https://media.fxhash.xyz/w_512/QmbuvkD2hFWGTfqVueHCK3quKTnWudkgErJtVJCAdnd7o1",
607
+ "https://media.fxhash.xyz/w_512/QmNytKcDYN1XMpmd1voXuVbQuXjukfJfawM3zgsKrppNK6",
608
+ "https://media.fxhash.xyz/w_512/QmcN8PX2WZQfumY8CXynG4Si9JHbrsGqT1k4i7vj7i3Kyi",
609
+ "https://media.fxhash.xyz/w_512/Qma7LZxj6CwgKhzMVynYCdbdo3JgXUK9irzthyPLY188Tj",
610
+ "https://media.fxhash.xyz/w_512/QmetspXLgfarug26WScSoVe7BfF4C369NDwgxxAjuBmpiQ",
611
+ "https://media.fxhash.xyz/w_512/QmX4iQ7xXEDiPQmVH3vzL6yuYmjre95aKeKN4wCwea7zJy",
612
+ "https://media.fxhash.xyz/w_512/QmaoCjEkBJ6pfV4RjB3G9jNVw9dNuFzJbZXMXfV71qeXj2",
613
+ "https://media.fxhash.xyz/w_512/Qmeq28ZZPsvJBZghnwLZtzEEVAuDjgJcpP5spubdptQuKs",
614
+ "https://media.fxhash.xyz/w_512/QmchuSMvkio9gLf66pL5u3VakThaFDAFucfNzzPwaBoMPa",
615
+ "https://media.fxhash.xyz/w_512/QmZ2jDL9hYouC1iRewPLznt14fDtK97dNiN2wyoRbs5UF3",
616
+ "https://media.fxhash.xyz/w_512/QmXCkoCgi6tNTqaWmG9jNigcNQGW5v7QcNzHXZ4z7oUoqr",
617
+ "https://media.fxhash.xyz/w_512/QmUpPKVLeJgQM5sfjSyfeta4PhpRb3dtiGn4eQZv3mp41g",
618
+ "https://media.fxhash.xyz/w_512/QmPHu4kwde4C1F7DxjjGtDiTunk5KLEio1PUnWuvLu9fi4",
619
+ "https://media.fxhash.xyz/w_512/QmVM27AgzwdfVXmMNLxyvvx2R9oi9jNqQqFr4MBxRQnTo6",
620
+ "https://media.fxhash.xyz/w_512/QmWC98jLxXbeiYkpjJkzDGTsqsnbRH9xy1J6WzcaTdvngf",
621
+ "https://media.fxhash.xyz/w_512/QmaLPSLLoyR7hAf42qrUU7iFPVvEQAmvq4SXquvdVvTNWZ",
622
+ "https://media.fxhash.xyz/w_512/QmUZRDpWtGBwZNiKFwfkr4g2n1ButjSiZy8BDdzsUZpU6u",
623
+ "https://media.fxhash.xyz/w_512/QmQxTHGS5bqy7CwMAwHphvRR2bhWkMPFwvppv9RMJhCCDR",
624
+ "https://media.fxhash.xyz/w_512/QmabMEGzPodCCdGUDXiaxW39QYWfhdi8WrgnUoFZB1S3oA",
625
+ "https://media.fxhash.xyz/w_512/QmWQN18xiD5exw73Y6gB7aD6gBXQrAwVJTmt3fLFrNY1LT",
626
+ "https://media.fxhash.xyz/w_512/QmcvpLxaJgSkgijU4BMAVgp6BRBmY3JM8nxyYkySps2MGP",
627
+ "https://media.fxhash.xyz/w_512/QmQyBfLebKxd42magVDtAkhhRnRKrvCFmDNgFRFWgpiSJL",
628
+ "https://media.fxhash.xyz/w_512/QmcWjpNv7G82UtW1BDp3cxk97btsrmNvDP5Q4qJWJsvoNG",
629
+ "https://media.fxhash.xyz/w_512/QmXBBmXaP5J28jAcd6B7PRrokjpaedvwVqRukVpiV7PNF8",
630
+ "https://media.fxhash.xyz/w_512/QmeGyWTVb976MHhvYyNzryBjpZrVwXYVimrocUtEn5gJoe",
631
+ "https://media.fxhash.xyz/w_512/QmfCmkqGMvD7JqC9QBLQPQ36ggzTnpGjUCbZ8HjyAyKu6H",
632
+ "https://media.fxhash.xyz/w_512/QmV7Hpuqah8brP1wQpibjkLjQp6jmiAii7kbetHwEZVdA4",
633
+ "https://media.fxhash.xyz/w_512/QmQwjYCRufD1UCe9RdkkmY48oDNBTJMrPAKxm1uybveBoD",
634
+ "https://media.fxhash.xyz/w_512/QmReugDHCkxZvft7oV3HMZ7HR3WbHCW2Ld6WCFuu7m6mUi",
635
+ "https://media.fxhash.xyz/w_512/QmaqQkVLDH8Ct9qeppkebZXR7Xqe57uNPZbMJsq5oa8BfM",
636
+ "https://media.fxhash.xyz/w_512/QmS9gma5aq36mDxHkqULUTZPVZ1tSx84Tn4WjLir1uUy5N",
637
+ "https://media.fxhash.xyz/w_512/QmUCPXZuFDyBvuqjzaq7CLcQnEhaNN3YbFi5uh4o1jp69S",
638
+ "https://media.fxhash.xyz/w_512/QmNMxGK3FEHSM9GBymE33mVt77CtL1GpG5qXkg1gAWavG5",
639
+ "https://media.fxhash.xyz/w_512/QmcGG1s4SjoMK7fNg8GtgEoCTYP7zE6cHmz4jzTekoxUap",
640
+ "https://media.fxhash.xyz/w_512/QmRibeztef4ECHsnvCjrxjuBbckGiTJptcvxMf5uKpTquz",
641
+ "https://media.fxhash.xyz/w_512/QmUfjbq7HKxkpHbuyVxxnSWsRQB2TCoySzu5YUXM2wzL4b",
642
+ "https://media.fxhash.xyz/w_512/Qmf8avoMPvJUMRCyFpaBQAoUnAxq6rtKcSTcfPHRDin7SC",
643
+ "https://media.fxhash.xyz/w_512/QmUtbaaSdPRy4nr28Bpv3AbbL5Z4ipZT7KDFzg1Q3aPErp",
644
+ "https://media.fxhash.xyz/w_512/QmPq8QvzNcwKHME7K3EeSwoPa52p7MAxZNa8QJ4yP4AXJg",
645
+ "https://media.fxhash.xyz/w_512/QmbbYikF7Vxwt5h41YthPzxXVBjMS2NejwfdQTvqt3WXQQ",
646
+ "https://media.fxhash.xyz/w_512/QmbQ1DmyDFfjApfEHs5og6kYzKK1dmkKr2BSYaMUTjHssu",
647
+ "https://media.fxhash.xyz/w_512/QmcUG8U3JvyXaiHrjs9T6NhyReSWHt1ZnG7fiadCBu9BgG",
648
+ "https://media.fxhash.xyz/w_512/QmfKJH4ufQJ7yPkc9sqkjbbgnggydPkQFnt1wuH9qwWX7U",
649
+ "https://media.fxhash.xyz/w_512/QmXPd6qW4GpqQ8JzdzsFn24mH21caNTuXDkrt3cqNeucaE",
650
+ "https://media.fxhash.xyz/w_512/Qmd4Lk2MpSd97MeigZ8HnfimbRFQe1fsAdQVXai6GbffT2",
651
+ "https://media.fxhash.xyz/w_512/QmTXeuzr6TKWsV8MDfegbG4tej4fibBJnY59yJhQxsyNzZ",
652
+ "https://media.fxhash.xyz/w_512/QmX5T1zUvNq5PD8iwRcYrDjJfs6wXLCw6jPG6atRWq6FJZ",
653
+ "https://media.fxhash.xyz/w_512/QmQYzWRd1X5HeiLBv9JeGQrEFBMo1mK8zZBFobhqmR2ePE",
654
+ "https://media.fxhash.xyz/w_512/QmNWqBJqVCK4z5wqRQcLxjEEs9PKLQb9MuXD6EsY3HyVWC",
655
+ "https://media.fxhash.xyz/w_512/Qmdnw8RCxVgDb9cuCz9z2YECW3MXaqeTNrEjcDBCvFiRXM",
656
+ "https://media.fxhash.xyz/w_512/QmZrBA2PdXLLMVdZUTZrqifrd9xPgrB4N4gzzFygkGnw7q",
657
+ "https://media.fxhash.xyz/w_512/QmRDo4f4VADRNdMXVgESwAoacU7wHyAbYqsPJw2fFThZxv",
658
+ "https://media.fxhash.xyz/w_512/QmeaMDpgfRZPmFYJ6UwRKZ5LAriQNAqbxEX2VFmrt2zZS6",
659
+ "https://media.fxhash.xyz/w_512/QmexjuwQfsqvURtfw8NbvDoarZmUvGPAVcDYMntCf6ADRg",
660
+ "https://media.fxhash.xyz/w_512/QmRfa33TLoPhHEY75BgCFCzpsMEbZmNyKbPYazPstmuSqR",
661
+ "https://media.fxhash.xyz/w_512/QmZvVGxgJcC7WLvHV39mSF9F3fvtDkRi1Bev7dNFYFuVYD",
662
+ "https://media.fxhash.xyz/w_512/QmTAD1A7x6dn2nyrvLGu9DqbThVmwo4LXVXu148z38ffh6",
663
+ "https://media.fxhash.xyz/w_512/QmWGNGqVabh6y6immMZo7UmLjG7q2ydHsYWQhxL7mEws4F",
664
+ "https://media.fxhash.xyz/w_512/QmRk7mEnreSdHu32E4wZX2tWLsXSsScgUvyZkc7KZQpXdj",
665
+ "https://media.fxhash.xyz/w_512/QmfPnVvWiFusTdHyiyeu5qDz4Hw7zEnpLPtMDomucegdhe",
666
+ "https://media.fxhash.xyz/w_512/QmWh9JFuaUh1ZVjz4SdYvGrDPno2iFpGBRNMioDhLataS5",
667
+ "https://media.fxhash.xyz/w_512/QmQbg1c6Gqa2Znwwf4FcqnuvrghJEKYEjrrmHskcVWwtH7",
668
+ "https://media.fxhash.xyz/w_512/QmZ8yCd4rnXdD8qk4e7gXRU89z5tSBZTNXc8VSFsc1e8bz",
669
+ "https://media.fxhash.xyz/w_512/QmTFssuBYhURghhHftoNsmMg2m9QQnP9T9zUeo67yXUDwC",
670
+ "https://media.fxhash.xyz/w_512/QmPSqaPnJSybzHnp3onbdeywKzrPZtwbMgLv1BnaGdqBV1",
671
+ "https://media.fxhash.xyz/w_512/QmRgfCbhAJU6LjTP4NAgjixDKGdBGQaLDkLeSKkbijiNjk",
672
+ "https://media.fxhash.xyz/w_512/Qmaaz4FJcGUzpaKxVYpHEtnX1kXKfF52LEDVkcpuBzFdBo",
673
+ "https://media.fxhash.xyz/w_512/QmbSBvmHExt6tHVECtjHDYqKp6TJ8ZY8xfyTfG5TzndoJs",
674
+ "https://media.fxhash.xyz/w_512/Qmas5Y1oDUavhFoovugLzTS61yRJR3ykD6ZaVKAntcVFxX",
675
+ "https://media.fxhash.xyz/w_512/QmV81nF7WMqnjHTFeXFnd7CYko9Ur6MWyyQgtzxQCDVNYD",
676
+ "https://media.fxhash.xyz/w_512/QmXoQuALDXR4JeCGYqFZZUeNcEBWBcdtipoeNUmQbwRSdH",
677
+ "https://media.fxhash.xyz/w_512/QmWPS7XviJbMvqP1pW5qUyesciHSbynpfUw7Cgr6iZ4T7z",
678
+ "https://media.fxhash.xyz/w_512/QmXbjdvLx6LYgW8nzXu2Wc1xV85PEUWEtDSvHDAX5LjmN3",
679
+ "https://media.fxhash.xyz/w_512/QmdHQuZhY38LXx66qhwtNssuBKWXuwsFRy4SivgndCC8Bd",
680
+ "https://media.fxhash.xyz/w_512/QmNaF4YaKsGiF8qKuFjhjWcJbgYQcuianqebnjtwq2yLJq",
681
+ "https://media.fxhash.xyz/w_512/QmScyugzqLPAWgvLCq8Kq2NgoFDsCzMqC6jvERdoFt3dh4",
682
+ "https://media.fxhash.xyz/w_512/QmekFFxETh51wezLZUG1CWBE7wfc3bMjdQ59H6BUo4KCHJ",
683
+ "https://media.fxhash.xyz/w_512/QmVoXFLp2R9v5uqkPXjsRkmnQcJ4vrnMbY6C3TjqrczmhQ",
684
+ "https://media.fxhash.xyz/w_512/QmahPBuB7cSoAN2JAH5D9tKUn4f73TCG76KMJCMqpjoJtz",
685
+ "https://media.fxhash.xyz/w_512/QmchxdtRdCkQzZ8JpzBwzhxhNgJ2eVGqhCy6gTTTRFBR1A",
686
+ "https://media.fxhash.xyz/w_512/QmcUadTJWfcDcXpQC7W7FGHBBmSEsZXaJhoqKhMSSDBfDq",
687
+ "https://media.fxhash.xyz/w_512/QmP9NEYNryVBxnviLbv6NoioYVJXHo8ZpXLCKjE1hCyoXX",
688
+ "https://media.fxhash.xyz/w_512/QmYscvUjob2BeAEKvY1cbGX1eXZv5uBYuD6DYG7Q2JNs54",
689
+ "https://media.fxhash.xyz/w_512/QmWSffHGxJy7fsJDba9pTBZn58rAoCRVDFamPH7Hjs8DJE",
690
+ "https://media.fxhash.xyz/w_512/QmNNS7bG3MG4RMuiqkEB4TPyEpeJ2NwaGGBqPxM1jcoNc9",
691
+ "https://media.fxhash.xyz/w_512/QmexJLjo67RdfUUhJGzqCCzLHXmugyyvpNzn4BfdGPsKUT",
692
+ "https://media.fxhash.xyz/w_512/QmarkwptJK8bH7MGnaR7MZJs8mW9ftYSdkZKpCiQPf6Rcg",
693
+ "https://media.fxhash.xyz/w_512/QmRe1wL6ms6fb4Pxui7CfBXVzTVdVN7vGhbUTrkEhPLDPj",
694
+ "https://media.fxhash.xyz/w_512/QmTqRDSK7jN7GbGgkExvUutAW7K2meJ9yy91y7w76La4AC",
695
+ "https://media.fxhash.xyz/w_512/QmUuAN9W2nBxr1KnaqK4PDQrgDeHQyZ9h7Q9LvFBXeUpLN",
696
+ "https://media.fxhash.xyz/w_512/QmST9ydKucA2BG1RS4BvN9EFpq9Gx4Xjw7CaQv1y3FRc3o",
697
+ "https://media.fxhash.xyz/w_512/QmQUtzj9Q3WGoqY2cCe8vs16azkqsAkGs7ZcPB6uq7wdqn",
698
+ "https://media.fxhash.xyz/w_512/Qma1bbomARcmHRQt1AYJ3Ab2tBAzDvf3p3PxQtNijbhec8",
699
+ "https://media.fxhash.xyz/w_512/QmXWFiZK5ebSj2bG5BQwaU8gcLMXL8q4diRrrmJcvhimhU",
700
+ "https://media.fxhash.xyz/w_512/QmYtBvA7QsBWVVQorkb9BQF6q553vCvxAhvFc1vd8dpF2U",
701
+ "https://media.fxhash.xyz/w_512/Qma2YweMFVpE6sEPffnJCc4cXQsxMNALLT3hQTskcYvozm",
702
+ "https://media.fxhash.xyz/w_512/QmddPfcdM7sfp6wBzeF22nNU743nEQdws814PzSBHkpDTo",
703
+ "https://media.fxhash.xyz/w_512/QmYaTA3fY4GKwPE3DjV3qsnCeYeX5KQnCH6F84XDPJSYwU",
704
+ "https://media.fxhash.xyz/w_512/QmdUhqTLHy4cpAjhnhTHvgrByEwFYLZNMfLKdVMAEqSogH",
705
+ "https://media.fxhash.xyz/w_512/QmcfmdKfVixZRbNBTftBuSSxWtu6d7r6MAkXqns6Kj7vKg",
706
+ "https://media.fxhash.xyz/w_512/QmY9YkYncyZATSwZFUqrwcWURDLc9UvcMuomR6Fb59MNNG",
707
+ "https://media.fxhash.xyz/w_512/QmV3kE5ScaAjGUvDLZLwYxv6KenyreTnHPodefVYpiHw3V",
708
+ "https://media.fxhash.xyz/w_512/QmXZ9L2PCusZTjgm3RH7Qe2eu97dGirSDq6uyoWNRcwHXw",
709
+ "https://media.fxhash.xyz/w_512/QmX8gwcbPY32WWfZJRQc59uw1oMXcB5SiY8SLmM8ttZHCm",
710
+ "https://media.fxhash.xyz/w_512/QmNp6LdzivCmeZhXw6yU8dGA2obDCnxgr9114XLAa3xLSh",
711
+ "https://media.fxhash.xyz/w_512/QmSJEGqJpG1ev1fXPYCgBha6rvnSwBPF4nwPc47oXwV7zq",
712
+ "https://media.fxhash.xyz/w_512/QmdrwcjrbNPR3ukWoorfphFXLVCredjgPf6SjsJQnEJFgx",
713
+ "https://media.fxhash.xyz/w_512/QmNkCBK9qfRDESdxRSfEToPkgM7vznkz7E9m36mPfEfDrM",
714
+ "https://media.fxhash.xyz/w_512/QmR12VNQ9Cfg64hboLUUsKv2SixpHpPDX3wYNxPXzzXDFa",
715
+ "https://media.fxhash.xyz/w_512/QmYZpjQna8mxSNuMhz5EdqELxGPwNAYxAZ2n12i6FsMtup",
716
+ "https://media.fxhash.xyz/w_512/QmPMmEKGVHB179X9MBWAxhaPcA3W5kcuowejTV9WPcWtd7",
717
+ "https://media.fxhash.xyz/w_512/Qmc6Z1LZrDGjqoePkAfvLn4q37tPkdK5W5HMnpQQ5SqFYQ",
718
+ "https://media.fxhash.xyz/w_512/QmTSPtQxpVpUw1aCBpcePgqwsQTJoboWH3dQwUciNkHLNh",
719
+ "https://media.fxhash.xyz/w_512/QmTNpPzfjc1mUfSN2mEFbBxanf6YZuTE9pHkiuppJQoMMD",
720
+ "https://media.fxhash.xyz/w_512/QmZr3e4t45DFztnzhEGN7Rqz2HB4ADNut8cGtzgV66wGN5",
721
+ "https://media.fxhash.xyz/w_512/Qmap1NtfihFtuG9sfnjrmG4NRc64jFDSNenWBEL4gGdgM8",
722
+ "https://media.fxhash.xyz/w_512/QmSAXLw9rEMcKpScqjCvtC6z99Tz4GQXPNu49GdVrXUVXv",
723
+ "https://media.fxhash.xyz/w_512/QmaRqd1NDqRWxPPGjs4Nuv98qZn3WzSnP7tEceT9BE6bHj",
724
+ "https://media.fxhash.xyz/w_512/QmZS29SXpXWrEqFCgghjmhBK51azPZJ3ZeDvWPLGL2udkT",
725
+ "https://media.fxhash.xyz/w_512/QmdwwT86x9fo7Rgeo7SZPjjWKesfzWvzBXMfBStt17czZj",
726
+ "https://media.fxhash.xyz/w_512/QmXo48MNPAHdXaAcfUa7p1QQh8HZ5vE7TiEUULfno64mb4",
727
+ "https://media.fxhash.xyz/w_512/Qmb9K2pqVdqhGqQouyLMP4JB3aoHf1iyX8EMi1LXNteiEw",
728
+ "https://media.fxhash.xyz/w_512/QmVthU1mkeUxdqjiDFWndew6FTkCnUES4YakP4MP7Fy6Wk",
729
+ "https://media.fxhash.xyz/w_512/QmUy376nx3EbNctb6zd2cK9FfKzEydYQyXsyYDiGtcMg48",
730
+ "https://media.fxhash.xyz/w_512/QmXGNEnuLcwtixQvWhwU78EfbVuhdfFzxMpuChXbJnU1K8",
731
+ "https://media.fxhash.xyz/w_512/QmSHq4LopGW4RPe2m7Ygwy7TDuqhtowAMnMM79SVHQPwby",
732
+ "https://media.fxhash.xyz/w_512/QmajeCUuEbkq9ak8QDaVXrQgFLmabumKNZ8wKQJoGUVzxg",
733
+ "https://media.fxhash.xyz/w_512/QmbWSLisEHgWTmXZcYWzJYKthHmXvqvKCTJv4xQRZHJrpF",
734
+ "https://media.fxhash.xyz/w_512/QmRXKtqMXzo3i2nBDhvqBDTSp9FVwfHanEWuTDpjjwJCYF",
735
+ "https://media.fxhash.xyz/w_512/QmXtZd7WCTdPhcBy8fQR1wLpvPfVyg7Ty7K3yAjofCRBbm",
736
+ "https://media.fxhash.xyz/w_512/QmZUWb6XH8VrYM7JYvMqJPAP23zP8KG2fmJ1zV6jX5RWxG",
737
+ "https://media.fxhash.xyz/w_512/QmendbhmQJXTBfaiByQkravyiVLrzJKLbSETpt6kpAx8NG",
738
+ "https://media.fxhash.xyz/w_512/QmZfJbR1ERW4YbqBDKCpgEwYbEEGN4ou4MnG8yAoAB3AVb",
739
+ "https://media.fxhash.xyz/w_512/QmXHQdiqKEopZsZ1etYABjvYgnF9CKAxhUkrPrjcap8kkr",
740
+ "https://media.fxhash.xyz/w_512/Qmdo2hShZTVQH3sffHT27mAW9uuXreduheD8M3xq68rMsz",
741
+ "https://media.fxhash.xyz/w_512/QmcAfgwZCTqwqfx1DZQP4kyfyozvsmB86542N4gMU75cDu",
742
+ "https://media.fxhash.xyz/w_512/Qmd5pvTochT9oi1h1j6H8HGox6gsR9GVYhvCkor7ambFqr",
743
+ "https://media.fxhash.xyz/w_512/QmYpUGJCp9CVckiMCFWyokWvtK6MVdXC2XiUsShenDiBxK",
744
+ "https://media.fxhash.xyz/w_512/QmaWjU8eYEdHEDU63WoBprw3nH3ZVpsua3v6JquEaWQBfK",
745
+ "https://media.fxhash.xyz/w_512/QmYUivU3qJJ9gMWhuAsKEijhmgA9PCpbo2CRzeLumvJpmk",
746
+ "https://media.fxhash.xyz/w_512/QmURtDyrdmkPAWKMUry2A7NVH5opV4eKMGgBHtJp32VeUS",
747
+ "https://media.fxhash.xyz/w_512/QmZ7N64qSho9sUJ6G8G9qV55RvbsZmQUp3MA5dHtUXvwwp",
748
+ "https://media.fxhash.xyz/w_512/QmPbpN1jCpBo2JTuF53CugWh1deAUhj8rGw1TzqLxnoHAX",
749
+ "https://media.fxhash.xyz/w_512/QmRp7FvyCKVR8uzdweeQi8XvobT2UcQEAYfgYeJU7T6Nfn",
750
+ "https://media.fxhash.xyz/w_512/QmcYq4AmqJEzyuXMoacB15uYXASZjFqi4H5dobtj9K6XqM",
751
+ "https://media.fxhash.xyz/w_512/QmUkZA1jLECkcvdbKcWzrmk7jLGJSWYuaWumv5VKXMtLKx",
752
+ "https://media.fxhash.xyz/w_512/Qmd2KXroCvwjikr2g4vme3dkav9iJ9px3BFChD3VxbTmzi",
753
+ "https://media.fxhash.xyz/w_512/QmZYhbV6eYKmduTpDnX4uxLqiE5AKGHgiA4xdyLchWzrgX",
754
+ "https://media.fxhash.xyz/w_512/QmdBs1opnRzPEnv2bgcvgj4kkGJL8a82phiVi2yUJickuy",
755
+ "https://media.fxhash.xyz/w_512/QmSoY8bFtRVQwptD3VDZ57LuV9oBaHAL2ufax5fNAJ3sR5",
756
+ "https://media.fxhash.xyz/w_512/QmNYGiNJoVATu7B29jxR3tqYJMZh1hHCFUQJ63TCFB5yBX",
757
+ "https://media.fxhash.xyz/w_512/QmYHGo58FqLo5Y89R8krgQiPszoAcwrxLcxaBzuNEB8PRA",
758
+ "https://media.fxhash.xyz/w_512/QmYevsBrQgSUC4zaVLZA6mVf5RGUckUtujz4JSw2AgiDXF",
759
+ "https://media.fxhash.xyz/w_512/QmQdpTgCBBg6MGpbSj6PVf9mnKxcKkhnWife2QPXarDDN8",
760
+ "https://media.fxhash.xyz/w_512/QmZX7u3iVeERqRRaj1znE6EGFXpizBijtD26714r2SZ6TW",
761
+ "https://media.fxhash.xyz/w_512/Qmdk1mUmbk68tjffmNQHsiXdqDAXY5hVUQVrWqvVYaTnoc",
762
+ "https://media.fxhash.xyz/w_512/QmU8s5ukKdxBhaePZchxidP3VriBHUuWDHVcqx6f8vZAmy",
763
+ "https://media.fxhash.xyz/w_512/Qmckk8k9v3xdG2bhD2G1ah9beSYzrWz8XtjY2AJuK7Cjwf",
764
+ "https://media.fxhash.xyz/w_512/QmY9UW8AaU9E1z7uvGX6iE1BFHUiB51hHRJEP1nQRp1unx",
765
+ "https://media.fxhash.xyz/w_512/QmUy5CGrwCtzsWvkhA3XSDF1AU62UteaukJBqDpoA3RGGL",
766
+ "https://media.fxhash.xyz/w_512/QmbLSv3YyGdiUqfVXKYFGYQHRCc6iQTzwGoP7CdRG2eYWQ",
767
+ "https://media.fxhash.xyz/w_512/QmQZTmG4wh9twBvjziueVTSP8Tz6LPHZBxYkCG3texQJ53",
768
+ "https://media.fxhash.xyz/w_512/QmcFadNNgfkEXdATyvPk1Xv4U8PFzmZuX1VZvjd677Kj9o",
769
+ "https://media.fxhash.xyz/w_512/QmZ1EQ2N2F5Z5svqDsAMq1dCTpQ5mWFcx2Z3jzXcLPQ6Do",
770
+ "https://media.fxhash.xyz/w_512/QmZhPCUVtRaJfam3N5pHk5LXaXm1QELTChVkVnWZdJWPbY",
771
+ "https://media.fxhash.xyz/w_512/QmPnzQdYE1FLscqZEajjTs1fwDFGFUFKCaWuVgkSQoWku3",
772
+ "https://media.fxhash.xyz/w_512/Qmf3xm625iawueDgaaE7mBaJe76DoDb1jBoPD5SoPrtctT",
773
+ "https://media.fxhash.xyz/w_512/QmP8CTb5heiNr2M4FPF8EXgbGhum2CHkwrZ8WcdB7zgHZD",
774
+ "https://media.fxhash.xyz/w_512/QmSdg6AeEUEdPFou5b2fhGvemcoDNwsjaJUiGhf63Tp4tU",
775
+ "https://media.fxhash.xyz/w_512/QmcQq97uKnqtfy122JgPpEkoJsv6f993ncN73BFZ8Cchxc",
776
+ "https://media.fxhash.xyz/w_512/QmZakte1Vi8zFKYxqmVZzS5KLwbNnMHYRFDR3HSseWCdxX",
777
+ "https://media.fxhash.xyz/w_512/QmWwavQmDYSXFthpYEQGnXEwETgEotytdq9PkPro65Fb3N",
778
+ "https://media.fxhash.xyz/w_512/QmVKaknnUDmtATzLeaTquAcaakyckhvgBbjQwhZ7Wb77TE",
779
+ "https://media.fxhash.xyz/w_512/QmT1x4uQ7cRurZzjBPsL9boCktqheBBPGdh5cTzMqFnXZg",
780
+ "https://media.fxhash.xyz/w_512/QmPwRWLWAHr2e8jpg4BrUMkNevxLg5SRQA4aY7cLXuTpPc",
781
+ "https://media.fxhash.xyz/w_512/QmVMhrqisvenbXb6w2JAtdhowp6oPYTigfA4oiQm2bYcp6",
782
+ "https://media.fxhash.xyz/w_512/QmY7TpPzd8z5fxcvuQVaTeyrYfuq6UB86Gv4W3YFgLQSfE",
783
+ "https://media.fxhash.xyz/w_512/QmUvipTqNexPf9buMyZH1G7JvNhbJa4CjDAAy2yy5y8Gde",
784
+ "https://media.fxhash.xyz/w_512/Qme6o2eE1vRTs3dkMGa5z27qjyEMx1GeQ7CX9n2YcNWKeG",
785
+ "https://media.fxhash.xyz/w_512/QmUuvArSEiUwm9q5pNJJ48tEiDcQCPxSCCeERAwsi5wi78",
786
+ "https://media.fxhash.xyz/w_512/QmfEkqKmhEx337iectghGEWvyX28Pk3uXeWQ6V2rmT4Bvk",
787
+ "https://media.fxhash.xyz/w_512/QmSJXkXqVLSPLt8wjBcz5kj1go59DYAVbPpzQitPBM2XZi",
788
+ "https://media.fxhash.xyz/w_512/QmabpaTimdHxGW4tgaLtrfEPPAuxBMFY5LTPuezY7VA1Hv",
789
+ "https://media.fxhash.xyz/w_512/QmQHzaNmnyb7kNVT9YiZPEgk9R547NdsAB76RedJvrcJQW",
790
+ "https://media.fxhash.xyz/w_512/Qme5Ya5ozvrpqqk3mokLwd8hmCBnuDLWjN2fFuMW771LPA",
791
+ "https://media.fxhash.xyz/w_512/Qmem75td2Y73BZkURaofc899Ti3QhnicBwt4qTiQEAwV3f",
792
+ "https://media.fxhash.xyz/w_512/QmTpKfZXgfnHG8Jd5DRJKuUSZQzaPQJui7D1q3ZzEZJChE",
793
+ "https://media.fxhash.xyz/w_512/Qmcr59ocm8iGz7UNdiG8DLL6kRzX2Tay2517rFrrydhvYw",
794
+ "https://media.fxhash.xyz/w_512/QmSuA8EJRaXwTZRKjtDAbevJRDAk78JStPM2XDZZQK978T",
795
+ "https://media.fxhash.xyz/w_512/QmdpjgYywh7E4poesWbKi7muhYv6AV5tNR72AxeMsSZGW5",
796
+ "https://media.fxhash.xyz/w_512/QmPkztfbLJoY6YpTwFztDmS5NNAEJoJPkHWEpYeyjBsATT",
797
+ "https://media.fxhash.xyz/w_512/QmPtAm7bymTMUuov4CrX91o1XvK8QGg9dGSNfoJdvcTSrd",
798
+ "https://media.fxhash.xyz/w_512/QmdWKDbwXH6AQaTSc1XX674ChaxADiM82uyNAomEGa1sog",
799
+ "https://media.fxhash.xyz/w_512/QmcNrJiU4bF52cvT89XUiL1Tsd5LTkH8G2QJoxuPkiR5PU",
800
+ "https://media.fxhash.xyz/w_512/QmWMJ9s7ZxEDBAvhZCUNbxUFpUT4bPBoD9Vsdi7ksmw77g",
801
+ "https://media.fxhash.xyz/w_512/Qme3XZ34U7EBgaaNDbrbgYT9hdhKTxcG4LZzeqyWYpGgB4",
802
+ "https://media.fxhash.xyz/w_512/QmZsvKo9U2yKVF9zV8Yp1ytQwxnR7yaiKgbXDQZJmcxiqT",
803
+ "https://media.fxhash.xyz/w_512/QmYGQEYsP3eUAv3MyQcvZWrHdjiu3kZn2KRnkN7WVZVsDr",
804
+ "https://media.fxhash.xyz/w_512/QmS3yQDQkTAp2nx5t8ZqiCFEkFU4ewzxe2euK9pXGTvpHc",
805
+ "https://media.fxhash.xyz/w_512/Qmd1Vr8ZYyD9h4DWS2pwQukaMzMiBmwyW1YRt4RvhbLSPh",
806
+ "https://media.fxhash.xyz/w_512/QmZPz1VTxzoqqMrkV7SopJDquEvbaQPbSDQY8eYLARX24F",
807
+ "https://media.fxhash.xyz/w_512/QmdZryy53mN8zHJnnp7YuPMtHYS2heAtkkkeMh8R3gduLV",
808
+ "https://media.fxhash.xyz/w_512/Qmc9gVPQcQdTRBuQ7bntyFVa49rJQNBKLwCkzzPtNKABDp",
809
+ "https://media.fxhash.xyz/w_512/QmTXt2Bz1TK5p1GLV4jJAaWDvACbxhQtjxjExyCALJVXDL",
810
+ "https://media.fxhash.xyz/w_512/QmPRwvfX4dWEYzQtc1rE89ooL94F5x8LPUY8AoByNzzCFB",
811
+ "https://media.fxhash.xyz/w_512/QmQcVU7gBAAB1AuBNV6Ty25UVYpgprsn83HwHsNi4UfwKC",
812
+ "https://media.fxhash.xyz/w_512/Qmd1BqEHox1pHxtsjLncUTH87CtNauX1kJu8Vcdxx7uRBj",
813
+ "https://media.fxhash.xyz/w_512/QmX6aGcGgSu3y99idpfvgzZUpYJiHZGey5kKrjKYoL9H4e",
814
+ "https://media.fxhash.xyz/w_512/QmQmqxGaTnDspNeDkAdUvx799dCugBuLpcEJmBhVUEdF63",
815
+ "https://media.fxhash.xyz/w_512/QmQgAcjqQVWSwAshSr1jMDSq6Uxp9af95roC5aDRujDUa9",
816
+ "https://media.fxhash.xyz/w_512/Qmb4GP7yCz6BkGSKwzQrCS9hz8PgakRsdSZEEpb5qVqrW2",
817
+ "https://media.fxhash.xyz/w_512/QmYLjDiGNBopP9rKpjKwqMCvxfCq9uqzu2kwV7wXrTFufx",
818
+ "https://media.fxhash.xyz/w_512/QmRCp8ZBXuwPTvV6tzq4JqA3bTKbpXSMAeJQhAV7WQ6sCk",
819
+ "https://media.fxhash.xyz/w_512/QmVuMuTu5UxQhmC6Ay9LPt1RdBhqFohnYvkVfkx2Mm3AHR",
820
+ "https://media.fxhash.xyz/w_512/QmaVPswM8t6JVGHwXaYV4cwsQBmDCQbEYjTh4VPy4KeKKd",
821
+ "https://media.fxhash.xyz/w_512/QmdG2Jigf8xx8rNejyj3op6GwmfjydVepYYyJ748WvjtSL",
822
+ "https://media.fxhash.xyz/w_512/QmfPT87iXDrzFFeYNs3kVb1Je2EieHvyfh4hkh5dCu7RaT",
823
+ "https://media.fxhash.xyz/w_512/QmYHtgG67NqUGdiJjpHhWSXJXgb8H5rVKZrq9BLv9VU88p",
824
+ "https://media.fxhash.xyz/w_512/QmbCJn2fKyHCFRtBKGp15e9tFn54AUDeurGASmQUa4i5jR",
825
+ "https://media.fxhash.xyz/w_512/QmSC8a9aa4X6MggbQfBLFMm3K8jzCR7hwzS5bHkZEkXH1i",
826
+ "https://media.fxhash.xyz/w_512/QmbgterihLEdYtqKZABgxi4UKu7CHSqjuGJa4oAqiY9gyJ",
827
+ "https://media.fxhash.xyz/w_512/QmTs4jFzz76X2mSmLfyhqs3Kufc3jkxhg7KggWZ6NDPjUx",
828
+ "https://media.fxhash.xyz/w_512/QmRSFtEFcp7d5CvxWxbSyTUFf1z7yEHk6ZadiPhxtKdzbg",
829
+ "https://media.fxhash.xyz/w_512/QmdUsFnLozjdTYSRWxu9hzi4q7FLAyMmfgakJL9R3zyPfp",
830
+ "https://media.fxhash.xyz/w_512/QmU9kTHTzwfJUFvWaT89yFV6Md8Y4qT7zTYuAdug88Q1VW",
831
+ "https://media.fxhash.xyz/w_512/QmWS6Hh1SSUQnDGTiu3C6JLsinVz88f5Qmq7LzZj9jqWfD",
832
+ "https://media.fxhash.xyz/w_512/QmPmQDoBQdZZKfdEb6f8pLzxrydBoSU4fmeuqJtViQaXod",
833
+ "https://media.fxhash.xyz/w_512/QmNYJNE6xUxfyFaVgFkR7FVhBR8E3c3j3DAf1bXRLwqYcr",
834
+ "https://media.fxhash.xyz/w_512/QmSDRHeYPaNVvKowjNMoVE9TBev7JMS9MwNEFSfrsJX1L6",
835
+ "https://media.fxhash.xyz/w_512/QmPAQYcBs8kKTCPoYcjKYtAmjSeWKtvm5CUGdHxfsS1zDG",
836
+ "https://media.fxhash.xyz/w_512/QmTNTwDgqVCMoVV6iyHKXacHuwKECio3VBaG1rrbwMjdvB",
837
+ "https://media.fxhash.xyz/w_512/QmbBG4cYueRdbMJZJUt6JUvZbAUHMqj733XSoCQtQKBUti",
838
+ "https://media.fxhash.xyz/w_512/QmefSa5mLustraa7HZRTnv9xm4viaQSNwL2SjwBT1nbym5",
839
+ "https://media.fxhash.xyz/w_512/QmWUD67isHVyfWcKJuwMJshk3DfSufBXA7t5m5YHP6zs1V",
840
+ "https://media.fxhash.xyz/w_512/QmRAss2AU7sKqtzk6L633Nm5dZGAzjkyxSsVJMpcjDjtRN",
841
+ "https://media.fxhash.xyz/w_512/QmefgmDbRN9paZwPburJ8SNZnzJhiot8aJMmrDntjsCeks",
842
+ "https://media.fxhash.xyz/w_512/QmTuSYpcjDypaFW9saTmPRYjTM8buQU9KzSALLrHr5LBoq",
843
+ "https://media.fxhash.xyz/w_512/QmNjVB94xyCEDyqQ7Cxf9YpcHArESajCYKxAUKurvGetad",
844
+ "https://media.fxhash.xyz/w_512/QmPpL8VD9ENwqTFWJj3cR9qrNnEDpNM2yRWbEBXqS2ddHA",
845
+ "https://media.fxhash.xyz/w_512/Qmeca2LHxb8S3du9VQTZPzzu4AVgkQE1py3DLw36ZjonJn",
846
+ "https://media.fxhash.xyz/w_512/QmaShQykMeTM35XDZj6oiAcSAkzXsv7MKbb1cCiR8iTHge",
847
+ "https://media.fxhash.xyz/w_512/QmdSZH3zWpBCR9ixsCLuZXC1yD5hBPyFWhgQgNYanh3d62",
848
+ "https://media.fxhash.xyz/w_512/QmdTqTf1uFkAuddEYBTi9q65ocHTdYXYsiMFT4TBQFraAr",
849
+ "https://media.fxhash.xyz/w_512/QmWi9U2BBqHFyJLckDUarL2wP63VAqPDyHXjh5BUxDAJ2B",
850
+ "https://media.fxhash.xyz/w_512/QmeVuSFr1exKa3rXNsJJmsh9xWdRG5962gWZbuiCjhfLMJ",
851
+ "https://media.fxhash.xyz/w_512/QmTK2JmiRpNdbuxbUYywcoH4H4GuMAbhqmrb6vvyUXtD2P",
852
+ "https://media.fxhash.xyz/w_512/QmeaY2huPFN8CjuMejJhsV35swPSuouGWUa7Ep659Pj7Zz",
853
+ "https://media.fxhash.xyz/w_512/QmRwwMBepvpSdGynM43bHkVHF7VC3UwHVD2WxfxFG8zvqm",
854
+ "https://media.fxhash.xyz/w_512/Qmd1nPde4yDHuCaxerrf3KDrY71zt56Unti2A6xhqMTWX1",
855
+ "https://media.fxhash.xyz/w_512/QmRrUs3Vrw3TtAWPthYv8ALVXErCAPX8JtviTSQ4gGRBCQ",
856
+ "https://media.fxhash.xyz/w_512/QmSC7U7CMJD1sJCs2mc75XyKCyEDN3uYSxB93msmxNyMKV",
857
+ "https://media.fxhash.xyz/w_512/QmaGtWRXdS1HjWZbCk4gALaKPJJ17GULazQ8tt3JEVxbVB",
858
+ "https://media.fxhash.xyz/w_512/QmUtNgZB8noMs5epMpdDdvQZWJY4imBvu6s3jg4vSdWfc7",
859
+ "https://media.fxhash.xyz/w_512/QmVK6y1mCJM9384vVxrrvVNoyUAbh7oncEQzgamQh3Q8di",
860
+ "https://media.fxhash.xyz/w_512/QmfCA9mY5oV3TNoyDktXCT7kMCJ9REWNr6ARqxcyhKeLSB",
861
+ "https://media.fxhash.xyz/w_512/QmWwN2Zksj9Sj3e4AEcZFpxDSKKbn3ZHorH66FyQWyKpFY",
862
+ "https://media.fxhash.xyz/w_512/QmXAGR7JW1eW64juPSFEmpSibC1vD37fqShfk88StnBVZQ",
863
+ "https://media.fxhash.xyz/w_512/QmZYpc57ScsqdKvS8CqbDT8d1jQrK7cjs5ox92YrjkAvsr",
864
+ "https://media.fxhash.xyz/w_512/QmShjNb3H2S5QvhTt8mFFZWu8s4aExjo4cD4TpYDxxTKXA",
865
+ "https://media.fxhash.xyz/w_512/Qme3WzZud9PQgY4AYWLu2JNLdPu5nKi2jbyRPa9z2BWJZw",
866
+ "https://media.fxhash.xyz/w_512/Qmcat7VoVY7uywPCc9d8XexEuCRq9bPKBhpVmRq3T2Zssf",
867
+ "https://media.fxhash.xyz/w_512/QmY6Sz8DLqBadJnzD56wPKvLbc9WMy4u2BEmAB6jU2n5xF",
868
+ "https://media.fxhash.xyz/w_512/QmT7VTtNCAkTkk8xXUYQsyPaTfds5dg4DXfahVk14eiMSG",
869
+ "https://media.fxhash.xyz/w_512/QmdaGuJQQiUDQLd9PFSA6LubztiHLR1jp79aToDon2RVXE",
870
+ "https://media.fxhash.xyz/w_512/QmW4gqqe6ZYkya6QwCgjzHXvgx21GqJFHCuDbMAoJru6pg",
871
+ "https://media.fxhash.xyz/w_512/Qmb25piZ2XmCvtwW9RvUBg6DN7WJmX97fyAQTYJtxsb6xn",
872
+ "https://media.fxhash.xyz/w_512/QmZ8N49GphuZoFLyFaaTyoQHCouc8rW6WdGZW9icb9HRh6",
873
+ "https://media.fxhash.xyz/w_512/QmRF9YVPLpoUDPiYW5RARMmo5sY8tXNQ9E5Y24qWJVDyHf",
874
+ "https://media.fxhash.xyz/w_512/QmeMS1H7qh98vu21wqjjjP66JmT6NB6hW1UsJg8MQGGS73",
875
+ "https://media.fxhash.xyz/w_512/Qmex8Lsz3Fj2dGYtiXx5HwL1THFpyVappcr3mBXjULZBP7",
876
+ "https://media.fxhash.xyz/w_512/QmXoaENfxnEdmeVPNdrBTbnL2eEhm9uZt1FtBVgB1233ab",
877
+ "https://media.fxhash.xyz/w_512/QmbaPxKExf2jjzXfC1kucF1fNkm6ZzmJAuqkCXH5855zFh",
878
+ "https://media.fxhash.xyz/w_512/QmeeE9spN9Dc9LHQ111J3kvfa4pKmhh65saKBhZuo5GRvv",
879
+ "https://media.fxhash.xyz/w_512/QmZfxGFqqayiGxgwwDUSuD2B8P3Qtz8WZns9erYSZQsRWa",
880
+ "https://media.fxhash.xyz/w_512/QmSEWjuKX5iBWZLi7Wr79GsX6i8J24GwaMLg4zrgiMYNoR",
881
+ "https://media.fxhash.xyz/w_512/QmeUWjLGYJ1jLEDe2LPfU9YDh4N3jYQH81Kgez48C7ZB3m",
882
+ "https://media.fxhash.xyz/w_512/QmTtuzEyEdmURJX2sXhs97A8TitpMZ8UegXYuPtVkJmNkG",
883
+ "https://media.fxhash.xyz/w_512/QmSWqYUuFh3hEDdfr9yJh7sjA872yU8eXg1k9ioL1CvCAT",
884
+ "https://media.fxhash.xyz/w_512/QmPC5omWddMexNDnLA94CSTrBJFrBJuDWZZtisfX4JE7Ge",
885
+ "https://media.fxhash.xyz/w_512/QmZz4tCMRPZ8XYD1aJ1kZJVm2UkQ8bKpuBhQn5PFtRMiEM",
886
+ "https://media.fxhash.xyz/w_512/QmUUJh8otWkjQGa2bKvWv2DLFx6mALA4TLYAgEGbgEUQMh",
887
+ "https://media.fxhash.xyz/w_512/QmV2NxfLM3PSY9vRV4LrRzyWW7LrEjiZ1iebkdm9jSvuWJ",
888
+ "https://media.fxhash.xyz/w_512/QmZgau4Bt85TqerDksHQZSxEH7viGhsL9dX3AdZQHJHMPv",
889
+ "https://media.fxhash.xyz/w_512/QmU4sU4ouZPZir4S4MXGwaEGi6AMCAqdniWWYj94BKSN26",
890
+ "https://media.fxhash.xyz/w_512/QmdwyzYF86usPYJEwXi3WkpFJxV7P6z36S66StpzE6qDUr",
891
+ "https://media.fxhash.xyz/w_512/QmWusuAqJ9G5Lk6vDdV4EW3dEWwa3P4hcbEpbvRPixHpXr",
892
+ "https://media.fxhash.xyz/w_512/QmejUcrpTLiz52TYyBUPEJq9KBSAyKuT9K1Y2fRt5fkUeM",
893
+ "https://media.fxhash.xyz/w_512/Qme8gMF98voKWWrgva4RfkA4qpSH9T3i656hPa95YxXcys",
894
+ "https://media.fxhash.xyz/w_512/QmVtvoHf5HSg66h5wfSxxRmdXRYMsTtgU39hLLMkNrS5uB",
895
+ "https://media.fxhash.xyz/w_512/QmSGbEDaUdkGHsSyu55S3th1WyRMufrNMQ8RVZcwX6iyA7",
896
+ "https://media.fxhash.xyz/w_512/QmZUPNWQ2WyUtHSdbWyVv8iwBXV5YaQnYWj4mH18aS7qg9",
897
+ "https://media.fxhash.xyz/w_512/Qma67eVitUNJGQNNUR5W4tz7v7A19HtncWNcC96NopGiwo",
898
+ "https://media.fxhash.xyz/w_512/QmTtfBV1qXCiPN7Ka8ZuChXj594EWSzRS9oW7F7ujyYeUE",
899
+ "https://media.fxhash.xyz/w_512/QmRX5NPt81beMa3LqikYodUjqkcvfr1fz6fsCVCwf7upkz",
900
+ "https://media.fxhash.xyz/w_512/QmNZR3aGfvDKLaoTXknGzBqNRJCZjSJPvFnGypr9onjdSJ",
901
+ "https://media.fxhash.xyz/w_512/QmaWoGL2sjpjVsrejt9HdgWXnKDnW8CccVNBnkDzKyd1gB",
902
+ "https://media.fxhash.xyz/w_512/QmX3u3U74ZbdMCNYgvW2gsSSr6KuwLa5PBVkHNUdmMu7G5",
903
+ "https://media.fxhash.xyz/w_512/QmT8W85DndrCgSjc4oNyywoYrPcKFuBUnrHpBvSYMj2tuq",
904
+ "https://media.fxhash.xyz/w_512/QmdHewYsM9btU3fsPihT2trdq1qs5DzkDgCA633M548h72",
905
+ "https://media.fxhash.xyz/w_512/QmbDZ7ENiJFxLUmzLTZsdBoZb5QN2CZ44DeaGcy4jHoqmy",
906
+ "https://media.fxhash.xyz/w_512/QmRodXnPBZUBrDMEnXV2gC84bqc8LL69LNTP8JVsswTHQo",
907
+ "https://media.fxhash.xyz/w_512/QmdAdxF5hodWkNvUVsHzHMBSk7Hqdk8ezUbrbNHPQ1b4Gd",
908
+ "https://media.fxhash.xyz/w_512/QmZVFZe61qKCFuJovcK1bV5FWb5Lf13Xhe8AimAhrQAcfN",
909
+ "https://media.fxhash.xyz/w_512/QmNvhpfLMYUoFNuwZ7rNzFmXGdHedQYcwoAhTcmvZZtT9j",
910
+ "https://media.fxhash.xyz/w_512/QmZabPZgYMhh6ASM6mKWsKvhiutGsui6jLujZrabKv1TLt",
911
+ "https://media.fxhash.xyz/w_512/QmQBqDor48L3u6vUy6skMChZZjg2LpjmNj19fmcBT1hUkq",
912
+ "https://media.fxhash.xyz/w_512/QmXwqtDDSCW6pJpaQAoLkS4DN29c3bAmWVh9T2jdheWxEo",
913
+ "https://media.fxhash.xyz/w_512/QmNSdvgUxUCBQtrNqh6u6cUQBS72an1iZrsQQwhpe8cxzF",
914
+ "https://media.fxhash.xyz/w_512/QmUCoDBdJWq4jioCxTj2Rqw6hEoqqJM6jF4X5vFv6WJXGq",
915
+ "https://media.fxhash.xyz/w_512/QmeC9ie5V93vaX5wKvDLrp8sBo9RvMF9eKTc9mCTjePvhJ",
916
+ "https://media.fxhash.xyz/w_512/Qmd1aVKZkT5hpUr1y2T3uY6VxBuCPiKmMn3kxDAjSMtU6S",
917
+ "https://media.fxhash.xyz/w_512/QmczSGAZ7bBvLYUgSgLFAt3XQtsWiPSFjCuSeJHm1XCTQa",
918
+ "https://media.fxhash.xyz/w_512/QmZKXyLXXT3M33Nq8JvLwetHrZtnepyPfwSwBnPBPcRnGC",
919
+ "https://media.fxhash.xyz/w_512/QmRWwEjFDrDR7kwd9cexuPCS5aKuQZQ2Mdj5KnYx7cmCZP",
920
+ "https://media.fxhash.xyz/w_512/QmPs4UyCNcywEskpQBXaEqGQntxMnVkmsqx8xoh4PRDxyL",
921
+ "https://media.fxhash.xyz/w_512/QmcJ2qCdBWdNAoEMoXfA1YL5wSkx68QfyTG4YSZx4dp8jr",
922
+ "https://media.fxhash.xyz/w_512/QmW3e2G2qYTA4ncW8LkBB8Ai6L8ruHzUkYMBFaawGbhoEP",
923
+ "https://media.fxhash.xyz/w_512/QmQMBh4gaxNSxS4vFUxj358Cg2Y4oR9tx8FPYY9pLurZLt",
924
+ "https://media.fxhash.xyz/w_512/QmTvZsw5aY36eWouK5rUwF8VeU7BZq3Eyd4kcHmFUUK4yS",
925
+ "https://media.fxhash.xyz/w_512/QmdRzCeZJwR7pyzU8P9szmHzzTEZXQ6DGFVbG2ajipo5VC",
926
+ "https://media.fxhash.xyz/w_512/QmX4CBgs99TkPF2MrgKBsqMtUHYJqEnVyTjAvpWsn9dXbH",
927
+ "https://media.fxhash.xyz/w_512/QmW4YTnAwkrbvyjqKZek1eSXj3LFpQpdxBycjTpAf849cf",
928
+ "https://media.fxhash.xyz/w_512/QmSFMYxqXMdBUbYPBrqZ7ndUeMAjevFjejiVsvLGnsqgPa",
929
+ "https://media.fxhash.xyz/w_512/QmdhMuEnJjzKBk1obGsnXSeSx1X8JQnAihbNVfXqcw3jkz",
930
+ "https://media.fxhash.xyz/w_512/QmQCSoY2Yub6wy98pjPdt6VxuCv28v6kYa3ARQygNkMtxj",
931
+ "https://media.fxhash.xyz/w_512/QmNvXHJajLrdTZuLMByWvprySZ9vstcjDcfym2gdWtJhXe",
932
+ "https://media.fxhash.xyz/w_512/QmUKZYaGaNnvCNGfnPT2GmtXitXLB3JaoTouH17FyQofxG",
933
+ "https://media.fxhash.xyz/w_512/QmWc4oZBGjdjb3y3QjQeYs2ShtPNdFCRy2sfUYbCaGEwh6",
934
+ "https://media.fxhash.xyz/w_512/Qmc3hNF5NECsy29aKPLrEmxH7cQCGKor8X72dsCsD4RvEf",
935
+ "https://media.fxhash.xyz/w_512/QmRBtZE2MPRXYAJCe7mYUpWBzHySpWP4C9XQefVKujiS9T",
936
+ "https://media.fxhash.xyz/w_512/QmYKptZjQFmjg9rafDEkCf1PNwyF6RdYnFqhBc9vSdTiCf",
937
+ "https://media.fxhash.xyz/w_512/QmVzX5Cn3c4fGBZgeuzAxQZDJozd6ttyaCkRpb5t4cbAwi",
938
+ "https://media.fxhash.xyz/w_512/QmVsnwmopERQpHhYM7qZATbJj1TUVtXaEnoDTmMwrDH6dH",
939
+ "https://media.fxhash.xyz/w_512/QmdRszDnxiEFKAqNkCnxL5ri3ysCREWHh5jtrbT6Wtnuqr",
940
+ "https://media.fxhash.xyz/w_512/QmWWUVHzmJycDEAA29qLwCJ7eMtR1ieFKuZsu9ut4Rycx7",
941
+ "https://media.fxhash.xyz/w_512/QmacPPJHWqwqTcDgPfdH364iX8aFE2FuQLUHra1Lrrhf2N",
942
+ "https://media.fxhash.xyz/w_512/QmZzmYrpbeYSDg3o7ZKjXL5GMsTiQuWHUnbpeaenhJL41G",
943
+ "https://media.fxhash.xyz/w_512/QmaGLv6nTazirhDvHv4Y6TZ8onSwkFRCNhPRHYzpwHQejd",
944
+ "https://media.fxhash.xyz/w_512/QmURzzdpJzAHCMVCvUSf3SyVBUMwjQA7T93f8zwEME4NPh",
945
+ "https://media.fxhash.xyz/w_512/QmPnNQwedLpQZ9zhvzfLRb7nB2BsGjsjw2TXqJ3VBopiMc",
946
+ "https://media.fxhash.xyz/w_512/Qmcyqa2Cf7GzzWYHtHqcSxucCNmEmjiwN4jTgJJnnAmqLj",
947
+ "https://media.fxhash.xyz/w_512/QmazcDgEFeSKpUCpbn39UvDnq8tD24XjjnB1QrwL6E3pqm",
948
+ "https://media.fxhash.xyz/w_512/Qmd3VGGwHc8XXf3gLQMyN2gDZ346qR21XFLau7NUJXqCH8",
949
+ "https://media.fxhash.xyz/w_512/QmbDpaa95KcG8qdUdR3LwpCPWq8sx1eiv7vh4BpFpnaa7w",
950
+ "https://media.fxhash.xyz/w_512/QmWFUThW1jDojneTQqiDpArb7cdCdnKdatEhK5GkJAiAY5",
951
+ "https://media.fxhash.xyz/w_512/QmYi5E1LJMiSzFNvwQrjoPdbpZSoCUaCz4KrW7DgxfTusV",
952
+ "https://media.fxhash.xyz/w_512/QmNRB1TJmStJ7Y4ku8Vhy74X7yXeNxqCDSwoxBsWgzPY8T",
953
+ "https://media.fxhash.xyz/w_512/QmR2WjHDfmUJgyVNEyAygkQ5GpLAXFCgQcicUV6NxeCSJt",
954
+ "https://media.fxhash.xyz/w_512/QmddswtzGtGFi5U2jx71TPdNkAPL4DB1k3wVCu2JNfzdVS",
955
+ "https://media.fxhash.xyz/w_512/QmW77q6ZgWsuVfKyQ5439Y6AdjAxmUGocPLtyrJGbTDxDu",
956
+ "https://media.fxhash.xyz/w_512/QmYYBiLEdTYKQcW77DKjTS7ZyxGS1DTZMMiHCyLGTYLsyT",
957
+ "https://media.fxhash.xyz/w_512/QmTpccDd4TxurvDpcBbxxU5mDPqYoDuX5hRjCw9rY3X8Xx",
958
+ "https://media.fxhash.xyz/w_512/QmPyGdx4BTHFeikaZSYq8vnAZJmCFE4bdoYmpFUH1fRZuT",
959
+ "https://media.fxhash.xyz/w_512/QmegaPTJrn9vGcbV1EekUXovxQGajsGUP9sEnGh58M7Vsx",
960
+ "https://media.fxhash.xyz/w_512/QmScWV8WrcJWYEwuTkNDaG7AWNPmJXq8KKgDjpYkza2JfX",
961
+ "https://media.fxhash.xyz/w_512/QmfNZ81rJXZmqvAporjYAbWZezoH69S3CVA6t8NSv4p6w2",
962
+ "https://media.fxhash.xyz/w_512/QmX5QLZRjMdzHuMnpkYq5SrjQk1BozqGz8v8gxvYi5CHkD",
963
+ "https://media.fxhash.xyz/w_512/QmSmaJAMEeFNPNpUpxcXRWfSAzxxqnuTjbhR5xx3VgfRYV",
964
+ "https://media.fxhash.xyz/w_512/QmYx9BFzHsBZPZ5ma3Diq6DUC72vxigGcCcCzWhgnfvXxK",
965
+ "https://media.fxhash.xyz/w_512/QmWp8zSXBEQpgm8uKrFopNe3pbEdWxXyzVz2o3cWxJxiwG",
966
+ "https://media.fxhash.xyz/w_512/QmSdLNfCQUwGh22ijvUNYD9qJoQ2Wa86he79tUvUhdLYVU",
967
+ "https://media.fxhash.xyz/w_512/Qmb7WYDZqGhUou8NAnMUSVkqoZoo1QsKUDniKh1V3UkZ1W",
968
+ "https://media.fxhash.xyz/w_512/QmRrXUa9D1nehKVnQAmSHN7mkjYTyp8FWAyZmQhvtbraBS",
969
+ "https://media.fxhash.xyz/w_512/QmYo15SSQsPweS7RFUcFc7tHnpULNQqWRXqCVb7NbFtu3y",
970
+ "https://media.fxhash.xyz/w_512/QmdkvrJBckqxBqwgAFP1nwe1aud7mMrrA1C8s3MSmRo96q",
971
+ "https://media.fxhash.xyz/w_512/QmXAFFCP7REXaT79oBBE77yMVmFXYGoWqYQrdoVR9ZpTB2",
972
+ "https://media.fxhash.xyz/w_512/QmfMpQ6tCZyFLjFZzFAP8P5bLmPxumns9xNnRUis1ekSS5",
973
+ "https://media.fxhash.xyz/w_512/QmNkNLnbHzhy5P37h6ZZAYspgtvSb5zHj87TWNzg8Djrww",
974
+ "https://media.fxhash.xyz/w_512/QmfWtYhchgsEWc2EiN7sUTTEk9YcaSpfGku9ALpEa1b8yF",
975
+ "https://media.fxhash.xyz/w_512/QmYDz2mwnGYkkjfwW9B46QardiLYghqEvPHT3X5CQfkHWV",
976
+ "https://media.fxhash.xyz/w_512/QmfDUXE9MaeZL45hVac6g6ENzshH4pwAFjMKjfMbg9tsb3",
977
+ "https://media.fxhash.xyz/w_512/QmUSVxKG5gDsHyheh9Pp4CG8J9E6pygmayQBJNo2AExdDY",
978
+ "https://media.fxhash.xyz/w_512/QmaN61pcVZFnoMyhougAAytG6huhnyvNDLLDaEDtxRgW6k",
979
+ "https://media.fxhash.xyz/w_512/QmWcD1m9xHxNmSSf1mxUCjZ2mtMaAm6i1sbwQmuSJGCetW",
980
+ "https://media.fxhash.xyz/w_512/QmYBcKLopsU96YT6w6FziMFTDucfke9LcAU5ZMKovxoy1h",
981
+ "https://media.fxhash.xyz/w_512/QmTegLuJobDzXZL9ncxYFSv9QJN65sdtwQcAFoAkBo3BkC",
982
+ "https://media.fxhash.xyz/w_512/QmTjuQ3KFfErjkfVaTkhvGXagNUp41L1dweCcpeBJnsBKP",
983
+ "https://media.fxhash.xyz/w_512/QmXEJxEdPaxNxSXwiexRJ3BgfawLcHgTg3cr9YyoVrSgf5",
984
+ "https://media.fxhash.xyz/w_512/QmbWyDBhL7za8zF9ZhtFdUn8zSrvLmqdS2vssoY7WriuNV",
985
+ "https://media.fxhash.xyz/w_512/QmVqEf1K3sDTdSzHEHfgJUdaoNPKN2o8bkgNh9AfbKPoXM",
986
+ "https://media.fxhash.xyz/w_512/Qma6KHV21XJ7Y1HQqToopX9Sc3CTtNUFuqTB2e8wpuGzpj",
987
+ "https://media.fxhash.xyz/w_512/QmfPCS56mT7et4rZqK4Zaj4MZfHc9vnfh6YDdhn2LUjghw",
988
+ "https://media.fxhash.xyz/w_512/Qme3XiTQbj5R8axtXFiXSWP48s4JAErs59bC4VW1i5gHK8",
989
+ "https://media.fxhash.xyz/w_512/QmVvzWfPtEs1DR1YCmSUqyXBSsJGVXUAqCbZkLr79Dmt5B",
990
+ "https://media.fxhash.xyz/w_512/QmX81VB4EsiN4VAJrcHmbzswq74X15wZFbdUPo3JDBwFej",
991
+ "https://media.fxhash.xyz/w_512/QmcwyB97e6tsmTLckaR5FcAMarjJrG9s2usDhQLCPvMzNM",
992
+ "https://media.fxhash.xyz/w_512/QmShUdfaSs61hNjhS6ShrKogVtRCoA111RvRbVm3cN7Prx",
993
+ "https://media.fxhash.xyz/w_512/Qmcv79jwf6VpziSaigJs774UWoNMCAj7M4M39tt8y9C2jt",
994
+ "https://media.fxhash.xyz/w_512/QmSM4e8NUkbUmeN7YJnDkUqkLvMD2WB7uHdQYbioTi2BXQ",
995
+ "https://media.fxhash.xyz/w_512/QmPFu1pkMePHuCuC3K6H6LtoLqQuPpZcDn2X46G6mfntqU",
996
+ "https://media.fxhash.xyz/w_512/QmP7FgX24iTV4W35BhbBkmfSWm1y3PNu3sj1W1E6o853q7",
997
+ "https://media.fxhash.xyz/w_512/QmX5kZaPD4LokgkjkT391pZkRSUAHBkr2dvAaDiVTVHHsh",
998
+ "https://media.fxhash.xyz/w_512/QmQaWkBaJ45LtBAMjfx91d6jiqFUwLCXMECk84A1ZQJo1C",
999
+ "https://media.fxhash.xyz/w_512/QmVsrE4fPuad1w8Cm7qR6YucmY4a5xSUnXx2UHx1XfoadQ",
1000
+ "https://media.fxhash.xyz/w_512/QmXRhSxN3Z2w7qMuPPeoKUNc4LAW6MMgDpaPvgnn5aAsLx",
1001
+ "https://media.fxhash.xyz/w_512/QmWXvcLjeD7tR2qxMuy2UWJU9NrfDzWc4JoJXuwfnjJpK8",
1002
+ "https://media.fxhash.xyz/w_512/QmcZC5Y7ok31qXf876sFn9oTapccVSXocbBQb8MqN2AsF5",
1003
+ "https://media.fxhash.xyz/w_512/QmbaAShFPZQX6QivCnbygp8nMwEyX75yk5ZPA7zfcEg3oK",
1004
+ "https://media.fxhash.xyz/w_512/QmWo8FeZq7vuLteod5tb8NTzkPk2d5dsi6d7rWSQQQdDga",
1005
+ "https://media.fxhash.xyz/w_512/QmYPAVExze2QAFn9Z6NfjnEkyyY99T9icHgp5FVijeYxgg",
1006
+ "https://media.fxhash.xyz/w_512/QmQPikwyUsnxo4ReRdYo1QtfBCgFGPKv6TwTVagXcvQEPb",
1007
+ "https://media.fxhash.xyz/w_512/QmQtWVcdS9KU2ZMxZxkhtMAPKRM4wZf6Jr6TxNY6MYQ4E4",
1008
+ "https://media.fxhash.xyz/w_512/QmbZCuTwDygFqDsCACaasi6NngrFoHtncMbm5YATnLZknm",
1009
+ "https://media.fxhash.xyz/w_512/QmP1j7z7GG7KeU7FJS7yzwYVb8i5udNuxaeKp8JYSW6Z7V",
1010
+ "https://media.fxhash.xyz/w_512/QmbVPK6qepoUW1fckswK9LPQY4W33p9DUbXuoWEAWAyMyM",
1011
+ "https://media.fxhash.xyz/w_512/QmRJjSjDqCHujTM4CJRQmsVGYm67PnDvoJBfj6EFNENKQS",
1012
+ "https://media.fxhash.xyz/w_512/QmZMv9sRMvb7w9Y1HJgEHJmpzMyL9gcUqPT21yhK193QyA",
1013
+ "https://media.fxhash.xyz/w_512/QmUW15xXQu97AKppyG4NTiLHAGXNn69WNMmCwienPDEz6w",
1014
+ "https://media.fxhash.xyz/w_512/QmPA9H9KZpr5TfkZeJPYZRXV4UaDzGXvnKt9PrDUsatYio",
1015
+ "https://media.fxhash.xyz/w_512/Qmdmdv2Xy2Nd5ghpbmMsxD1qgPpogPsfcij7V5zV1XsE42",
1016
+ "https://media.fxhash.xyz/w_512/QmQm1NJXNEuhorvh8AVTjWtJDBhdiyyg2yshsTkr96c6jp",
1017
+ "https://media.fxhash.xyz/w_512/QmZWGkRFtkUgA5dY9LssYGWW27KFqLqUXCE3r8v9wBDNg5",
1018
+ "https://media.fxhash.xyz/w_512/QmVLZfoe18ruZG1m3p9Z7T2R1t7CyBtQTmiRgMcpPGXK6Z",
1019
+ "https://media.fxhash.xyz/w_512/QmZ74E7iauGYcYHEinhinRYzx1wu74Atbz4aX6ZGtjFcq3",
1020
+ "https://media.fxhash.xyz/w_512/QmWEMUykYV3HFPssi1Xu377PfzvpfLdHZZ5kka6pVNrHcQ",
1021
+ "https://media.fxhash.xyz/w_512/Qmdf39usFefxisBtZaWNBfLmzzeugbd2gE41sJgm1vqPEK",
1022
+ "https://media.fxhash.xyz/w_512/QmTYcmYCmVwS3UFR8rjFef9pK6pYtAzR2FMwc6rAkfBGE5",
1023
+ "https://media.fxhash.xyz/w_512/QmezjAPUs1oAm5mQxg6uhZsdC3CUDAyDqY93wySsdHigtz",
1024
+ "https://media.fxhash.xyz/w_512/QmaiBa66F2NPsBJPkFB7VNeUR1YiVgwDZSe8XhbUAo7QeS",
1025
+ "https://media.fxhash.xyz/w_512/QmVqHVSs2LDpQbWVSb8Sm1tZPKwLWnTRmrgdQsA3MGZNHz",
1026
+ "https://media.fxhash.xyz/w_512/Qme38mPSeJP15im4gssZTrfXxFrPoGRSbNFDX6eC9gQnmi",
1027
+ "https://media.fxhash.xyz/w_512/QmPMNSFknqvAR1AC5LyJwXqgQQxFnQVuwiRg2j3dzqCS8j",
1028
+ "https://media.fxhash.xyz/w_512/Qmazb893nZT6bMaWvnnpFTFsRLkLMHA6UGKMUX7C6x5nuS",
1029
+ "https://media.fxhash.xyz/w_512/Qmap6svf5BRs7AVcD7m1k8fT7WkMidUkGJCcL7YfzvRYmk",
1030
+ "https://media.fxhash.xyz/w_512/QmbCwUxuToiLUEBgE4oHPSHG3QoD3XapQWrSomJSEom5Qv",
1031
+ "https://media.fxhash.xyz/w_512/QmNsSBJdjbBcv2Y8cTr7K6PktsB5P8FX4TFKng6hb2Nyf9",
1032
+ "https://media.fxhash.xyz/w_512/QmQeWcMsnAqPozCEPCAXk9btNw4dAR8NMaEa1LFMt66a7J",
1033
+ "https://media.fxhash.xyz/w_512/QmfUG7qUTaz54Z9RdjfAZcnuMSjQ7NuB1pkLxDZpT4W6xj",
1034
+ "https://media.fxhash.xyz/w_512/QmdpsB57ie6hDcdwzgPJtMMqihybh5UbGzbPufoM85UM8o",
1035
+ "https://media.fxhash.xyz/w_512/QmUJ4LCzYDyPtH7ahXSZpH2rHhfN92p5BK1JxBRqqVSvHV",
1036
+ "https://media.fxhash.xyz/w_512/QmQv6nktfpJ5MKnJ2S7mFA1RRHhfhEUuN3UeEiyz4VkcAD",
1037
+ "https://media.fxhash.xyz/w_512/QmdHyoP9SPtRrFu6HSvfH7beHGVoaHgpyJDa5fkNUagcxR",
1038
+ "https://media.fxhash.xyz/w_512/QmVeyv4tBeNUcv95utWAm1jZgz9LXiHisPExBRWEBFxNAJ",
1039
+ "https://media.fxhash.xyz/w_512/QmYLLLSUzaYdy3yZzTMTc6xEAwGiUJWCZ97F2DJpXUa8yw",
1040
+ "https://media.fxhash.xyz/w_512/QmdHYQduxg9GBQVPUJEF4So1MXLrD3SBfs64bYcAinTGVY",
1041
+ "https://media.fxhash.xyz/w_512/QmVkErRxYuNwA1pWr8btjqiTKWA3zdMU8SQ4HUAEjMwNqu",
1042
+ "https://media.fxhash.xyz/w_512/QmSnfUq2vLqjqj97h7xyRRYRC54umDeGoyj9GSWrVQ64y7",
1043
+ "https://media.fxhash.xyz/w_512/QmUY4YtBgSoDpPxqmHeZdAooqBrHAHXKAzjHYsqsib9t8K",
1044
+ "https://media.fxhash.xyz/w_512/QmSo53PhYGnmtdDY7qhuiy7YS1yiskFLJ292ztdmK6v9Dx",
1045
+ "https://media.fxhash.xyz/w_512/QmZFYHmmUxdqEogBEhcC9C2zGwVyCRkPxSh8w6qszSr1zF",
1046
+ "https://media.fxhash.xyz/w_512/QmU9NNYa2akUh9HZabzX3MGt8RYtHAVJJ32JY3TuEscELa",
1047
+ "https://media.fxhash.xyz/w_512/QmYGT2sPQwxaVmybERxy44jo2QNssvuNbqUzDi52Mq5cD1",
1048
+ "https://media.fxhash.xyz/w_512/QmTsgXM119KyBBhMWmuYtdcnTKhNKjDtW1FpQopW3ZGQYL",
1049
+ "https://media.fxhash.xyz/w_512/QmQ9SzLDZJXXhh3mRYB93QGFnCL57Q9CvGf4CG24sYSkfR",
1050
+ "https://media.fxhash.xyz/w_512/QmRX9LBGtHHPmRZn4esLiG9bH4V9VWqJ2cDhy6i1vwTRB3",
1051
+ "https://media.fxhash.xyz/w_512/QmY9PMnrDzyRQptW9yrWA9A6xifPNuVwkKdZmrsDG5rADo",
1052
+ "https://media.fxhash.xyz/w_512/QmfCfQECp7JBGMUTpbB8bEpfXwicSBxhjJHpHwbkDXBsVN",
1053
+ "https://media.fxhash.xyz/w_512/QmWV4G3oDmej5ZkVCgHpTXHSVG5FcDM5mv8aeig4WDwqSu",
1054
+ "https://media.fxhash.xyz/w_512/QmTg7qqv1PZdYBz9uZQ7s1CXXX44XECyGinLohMihGa9wp",
1055
+ "https://media.fxhash.xyz/w_512/Qmc3aFG4s7y4Zj82RTwEdxYyUfKuVd3nmZxMMFVjxhsHoT",
1056
+ "https://media.fxhash.xyz/w_512/QmPadWkr5pqTSuMp4sUVy9tHBDi9ddp4USDLrxHEFqwYYn"
1057
+ ];
1058
+ function generateTree(maxNodes, maxChildren) {
1059
+ const nodes = [];
1060
+ const links = [];
1061
+ let index = 0;
1062
+ function createNode(label) {
1063
+ const isRoot = label === VOID_ROOT_ID;
1064
+ const idx = isRoot ? VOID_ROOT_ID : index++;
1065
+ return {
1066
+ id: idx.toString(),
1067
+ label,
1068
+ imgSrc: isRoot ? void 0 : images[index % images.length]
1069
+ };
1070
+ }
1071
+ const root = createNode(VOID_ROOT_ID);
1072
+ nodes.push(root);
1073
+ const queue = [root];
1074
+ while (queue.length > 0 && nodes.length < maxNodes) {
1075
+ const parent = queue.shift();
1076
+ const rand = Math.random();
1077
+ const biased = Math.floor(Math.pow(rand, 2) * (maxChildren + 1));
1078
+ const childrenCount = Math.min(biased, maxChildren);
1079
+ for (let i = 0; i < childrenCount; i++) {
1080
+ if (nodes.length >= maxNodes) break;
1081
+ const child = createNode(`Node ${nodes.length}`);
1082
+ nodes.push(child);
1083
+ links.push({ source: parent.id, target: child.id });
1084
+ queue.push(child);
1085
+ }
1086
+ }
1087
+ return { nodes, links };
1088
+ }
1089
+ function collectChildren(node, threshold, visited = /* @__PURE__ */ new Set()) {
1090
+ const collectedNodes = [];
1091
+ const collectedLinks = [];
1092
+ function collect(n) {
1093
+ for (const link of n.childLinks) {
1094
+ const child = link.target;
1095
+ if (visited.has(child.id)) continue;
1096
+ if (child.clusterSize <= threshold) {
1097
+ visited.add(child.id);
1098
+ collectedNodes.push(child);
1099
+ collectedLinks.push(link);
1100
+ collect(child);
1101
+ }
1102
+ }
1103
+ }
1104
+ collect(node);
1105
+ return { nodes: collectedNodes, links: collectedLinks };
1106
+ }
1107
+
1108
+ // src/context/graph.tsx
1109
+ import { jsx } from "react/jsx-runtime";
1110
+ var OpenFormGraphContext = createContext(
1111
+ void 0
1112
+ );
1113
+ function OpenFormGraphProvider({
1114
+ config = {},
1115
+ theme = "light",
1116
+ data,
1117
+ rootId: _rootId,
1118
+ children
1119
+ }) {
1120
+ const [rootId, setRootId] = useState(_rootId);
1121
+ const [_config, setConfig] = useState({
1122
+ ...DEFAULT_GRAPH_CONFIG,
1123
+ ...config
1124
+ });
1125
+ const [_theme, setTheme] = useState(theme);
1126
+ const [layoutConfig, setLayoutConfig] = useState({
1127
+ velocityDecay: 0.33,
1128
+ alphaDecay: 0.17,
1129
+ alphaMin: 5e-5,
1130
+ dagLevelDistance: 100
1131
+ });
1132
+ const ref = useRef();
1133
+ const graphData = useMemo(() => {
1134
+ const _nodes = [...data.nodes].map((n) => {
1135
+ const enhancedNode = {
1136
+ ...n,
1137
+ clusterSize: data.nodes.length,
1138
+ collapsed: n.id !== rootId,
1139
+ childLinks: [],
1140
+ level: void 0,
1141
+ hide: false
1142
+ };
1143
+ if ("imgSrc" in n && typeof n.imgSrc === "string") {
1144
+ enhancedNode.image = preloadImage(n.imgSrc, ref);
1145
+ }
1146
+ return enhancedNode;
1147
+ });
1148
+ const nodesById2 = Object.fromEntries(
1149
+ _nodes.map((node) => [node.id, node])
1150
+ );
1151
+ const transformedLinks = data.links.map((l) => ({
1152
+ source: nodesById2[l.source],
1153
+ target: nodesById2[l.target]
1154
+ }));
1155
+ if (!nodesById2[rootId]) {
1156
+ const rootNode = {
1157
+ id: rootId,
1158
+ label: "Root Node",
1159
+ clusterSize: data.nodes.length,
1160
+ collapsed: false,
1161
+ childLinks: [],
1162
+ level: 0,
1163
+ hide: false
1164
+ };
1165
+ _nodes.push(rootNode);
1166
+ nodesById2[rootId] = rootNode;
1167
+ const targetIds = new Set(transformedLinks.map((link) => link.target.id));
1168
+ const innerRootNodes = _nodes.filter(
1169
+ (node) => node.id !== rootId && !targetIds.has(node.id)
1170
+ );
1171
+ const newRootLinks = innerRootNodes.map((node) => ({
1172
+ source: rootNode,
1173
+ target: node
1174
+ }));
1175
+ return {
1176
+ nodes: _nodes,
1177
+ links: [...transformedLinks, ...newRootLinks]
1178
+ };
1179
+ }
1180
+ return {
1181
+ nodes: _nodes,
1182
+ links: transformedLinks
1183
+ };
1184
+ }, [data, rootId]);
1185
+ const nodesById = useMemo(() => {
1186
+ const nodesById2 = Object.fromEntries(
1187
+ graphData.nodes.map((node) => [node.id, node])
1188
+ );
1189
+ graphData.nodes.forEach((node) => {
1190
+ node.childLinks = [];
1191
+ });
1192
+ graphData.links.forEach(
1193
+ (link) => nodesById2[link.source.id]?.childLinks.push(link)
1194
+ );
1195
+ const root = nodesById2[rootId];
1196
+ const queue = [root];
1197
+ while (queue.length > 0) {
1198
+ const node = queue.shift();
1199
+ const childNodes = node.childLinks.map((link) => link.target);
1200
+ for (const child of childNodes) {
1201
+ if (child.level === void 0) {
1202
+ child.level = (node?.level || 0) + 1;
1203
+ queue.push(child);
1204
+ }
1205
+ }
1206
+ }
1207
+ graphData.nodes.forEach((node) => {
1208
+ if (node.id === rootId) {
1209
+ node.collapsed = false;
1210
+ return;
1211
+ }
1212
+ const childNodes = node.childLinks.map((link) => link.target);
1213
+ const shouldCollapse = childNodes.every(
1214
+ (child) => child.childLinks.length === 0
1215
+ );
1216
+ node.collapsed = shouldCollapse;
1217
+ function countDescendants(n) {
1218
+ const children2 = n.childLinks.map((link) => link.target);
1219
+ if (children2.length === 0) return 0;
1220
+ return children2.length + children2.map(countDescendants).reduce((a, b) => a + b, 0);
1221
+ }
1222
+ node.clusterSize = countDescendants(node);
1223
+ if (node.clusterSize === 0) node.collapsed = false;
1224
+ });
1225
+ return nodesById2;
1226
+ }, [graphData.links, graphData.nodes, rootId]);
1227
+ const hasNodeChildren = useCallback(
1228
+ (nodeId) => nodesById[nodeId]?.childLinks.length > 0,
1229
+ [nodesById]
1230
+ );
1231
+ const [selectedNodeId, setSelectedNodeId] = useState(null);
1232
+ const selectedNode = useMemo(() => {
1233
+ if (!selectedNodeId) return null;
1234
+ const n = graphData.nodes.find((n2) => n2.id === selectedNodeId);
1235
+ if (n) return n;
1236
+ return null;
1237
+ }, [graphData.nodes, selectedNodeId]);
1238
+ const breadthFirstSearch = (startNodeId, rootId2) => {
1239
+ const startNode = nodesById[startNodeId];
1240
+ const resultNodes = [startNode];
1241
+ const visited = /* @__PURE__ */ new Set([startNode.id]);
1242
+ let currentNode = startNode;
1243
+ let pathToRoot = [];
1244
+ while (currentNode.id !== rootId2) {
1245
+ let foundParent = false;
1246
+ for (const link of graphData.links) {
1247
+ const sourceId = link.source.id;
1248
+ const targetId = link.target.id;
1249
+ if (targetId === currentNode.id) {
1250
+ const parentNode = nodesById[sourceId];
1251
+ if (parentNode && !visited.has(parentNode.id)) {
1252
+ pathToRoot.push(parentNode);
1253
+ visited.add(parentNode.id);
1254
+ currentNode = parentNode;
1255
+ foundParent = true;
1256
+ break;
1257
+ }
1258
+ }
1259
+ }
1260
+ if (!foundParent || currentNode.id === rootId2) break;
1261
+ }
1262
+ const rootNode = nodesById[rootId2];
1263
+ if (rootNode && !visited.has(rootId2)) {
1264
+ pathToRoot.push(rootNode);
1265
+ visited.add(rootId2);
1266
+ }
1267
+ resultNodes.push(...pathToRoot);
1268
+ graphData.links.forEach((link) => {
1269
+ const sourceId = link.source.id;
1270
+ const targetId = link.target.id;
1271
+ if (sourceId === startNode.id) {
1272
+ const childNode = nodesById[targetId];
1273
+ if (childNode && !visited.has(childNode.id)) {
1274
+ resultNodes.push(childNode);
1275
+ visited.add(childNode.id);
1276
+ }
1277
+ }
1278
+ });
1279
+ const resultLinks = graphData.links.filter((link) => {
1280
+ const sourceId = typeof link.source === "object" ? link.source.id : link.source;
1281
+ const targetId = typeof link.target === "object" ? link.target.id : link.target;
1282
+ return visited.has(sourceId) && visited.has(targetId);
1283
+ });
1284
+ return { nodes: resultNodes, links: resultLinks };
1285
+ };
1286
+ const highlights = useMemo(() => {
1287
+ if (!selectedNodeId) {
1288
+ return { nodes: [], links: [] };
1289
+ }
1290
+ const node = nodesById[selectedNodeId];
1291
+ if (!node) {
1292
+ return { nodes: [], links: [] };
1293
+ }
1294
+ const pathHighlights = breadthFirstSearch(node.id, rootId);
1295
+ const children2 = collectChildren(node, 25);
1296
+ return {
1297
+ nodes: [...pathHighlights.nodes, ...children2.nodes],
1298
+ links: [...pathHighlights.links, ...children2.links]
1299
+ };
1300
+ }, [selectedNodeId, nodesById, rootId, breadthFirstSearch]);
1301
+ const prunedTree = useMemo(() => {
1302
+ const visibleNodes = [];
1303
+ const visibleLinks = [];
1304
+ (function traverseTree(node = nodesById[rootId]) {
1305
+ visibleNodes.push(node);
1306
+ if (node.collapsed) return;
1307
+ visibleLinks.push(...node.childLinks);
1308
+ node.childLinks.map((link) => link.target).forEach(traverseTree);
1309
+ })();
1310
+ visibleNodes.sort((a, b) => {
1311
+ const aHighlighted = highlights.nodes.includes(a);
1312
+ const bHighlighted = highlights.nodes.includes(b);
1313
+ if (aHighlighted && !bHighlighted) return -1;
1314
+ if (!aHighlighted && bHighlighted) return 1;
1315
+ if (a.collapsed && !b.collapsed) return 1;
1316
+ if (!a.collapsed && b.collapsed) return -1;
1317
+ return 0;
1318
+ });
1319
+ return { nodes: visibleNodes, links: visibleLinks };
1320
+ }, [nodesById, rootId, highlights]);
1321
+ const handleNodeClick = useCallback(
1322
+ (nodeId) => {
1323
+ const node = nodesById[nodeId];
1324
+ if (node.id === rootId) {
1325
+ setSelectedNodeId(null);
1326
+ return;
1327
+ }
1328
+ if (selectedNode?.id !== node.id) {
1329
+ node.collapsed = false;
1330
+ } else {
1331
+ node.collapsed = !node.collapsed;
1332
+ }
1333
+ if (node.collapsed) {
1334
+ if (selectedNode) {
1335
+ let collapseFrom2 = function(node2) {
1336
+ const childNodes = node2.childLinks.map((link) => link.target);
1337
+ const shouldCollapse = childNodes.every(
1338
+ (child) => child.childLinks.length === 0
1339
+ );
1340
+ node2.collapsed = shouldCollapse;
1341
+ childNodes.forEach(collapseFrom2);
1342
+ if (node2.clusterSize === 0) node2.collapsed = false;
1343
+ };
1344
+ var collapseFrom = collapseFrom2;
1345
+ collapseFrom2(selectedNode);
1346
+ }
1347
+ setSelectedNodeId(null);
1348
+ } else {
1349
+ const children2 = collectChildren(node, 25);
1350
+ children2.nodes.forEach((n) => {
1351
+ n.collapsed = false;
1352
+ });
1353
+ setSelectedNodeId(node.id);
1354
+ }
1355
+ },
1356
+ [rootId, selectedNode, collectChildren, nodesById, setSelectedNodeId]
1357
+ );
1358
+ useEffect(() => {
1359
+ setLayoutConfig((prev) => ({
1360
+ ...prev,
1361
+ dagLevelDistance: scaleLinear().domain([0, data.nodes.length]).range([_config.minDagLevelDistance, _config.maxDagLevelDistance])(
1362
+ prunedTree.nodes.length
1363
+ )
1364
+ }));
1365
+ }, [prunedTree.nodes.length, data.nodes.length, _config]);
1366
+ const allSizes = graphData.nodes.filter((n) => n.collapsed).map((n) => n.clusterSize || 1);
1367
+ const minClusterSize = Math.min(...allSizes);
1368
+ const maxClusterSize = Math.max(...allSizes);
1369
+ const allLevels = graphData.nodes.map((n) => n.level || 0);
1370
+ const minNodeLevel = Math.min(...allLevels);
1371
+ const maxNodeLevel = Math.max(...allLevels);
1372
+ const getNodeSize = useCallback(
1373
+ (nodeId) => {
1374
+ const n = nodesById[nodeId];
1375
+ if (!n) return 0;
1376
+ if (!n.collapsed && hasNodeChildren(n.id)) return _config.nodeSize;
1377
+ if (!n.collapsed || n.id === rootId) return _config.nodeSize;
1378
+ return normalize(
1379
+ n.clusterSize,
1380
+ minClusterSize,
1381
+ maxClusterSize,
1382
+ _config.minClusterSize / 2,
1383
+ _config.maxClusterSize / 2
1384
+ );
1385
+ },
1386
+ [
1387
+ _config,
1388
+ minClusterSize,
1389
+ maxClusterSize,
1390
+ rootId,
1391
+ hasNodeChildren,
1392
+ nodesById
1393
+ ]
1394
+ );
1395
+ const getNodeForce = useCallback(
1396
+ (nodeId) => {
1397
+ const n = nodesById[nodeId];
1398
+ if (!n) return 0;
1399
+ if (selectedNode?.id === n.id) return _config.nodeSize * 1.5;
1400
+ if (!n.collapsed && hasNodeChildren(n.id)) return _config.nodeSize * 2;
1401
+ if (!n.collapsed || n.id === rootId) return _config.nodeSize * 0.75;
1402
+ return normalize(
1403
+ n.clusterSize,
1404
+ minClusterSize,
1405
+ maxClusterSize,
1406
+ _config.minClusterSize / 2,
1407
+ _config.maxClusterSize / 2
1408
+ );
1409
+ },
1410
+ [
1411
+ _config,
1412
+ minClusterSize,
1413
+ maxClusterSize,
1414
+ rootId,
1415
+ hasNodeChildren,
1416
+ selectedNode,
1417
+ nodesById
1418
+ ]
1419
+ );
1420
+ const contextValue = {
1421
+ rootId,
1422
+ data: prunedTree,
1423
+ onClickNode: handleNodeClick,
1424
+ hasNodeChildren,
1425
+ clusterSizeRange: [minClusterSize, maxClusterSize],
1426
+ graphLevelRange: [minNodeLevel, maxNodeLevel],
1427
+ layoutConfig,
1428
+ setLayoutConfig,
1429
+ selectedNode,
1430
+ setSelectedNodeId,
1431
+ selectedNodeId,
1432
+ highlights,
1433
+ ref,
1434
+ theme: _theme,
1435
+ setTheme,
1436
+ config: _config,
1437
+ setConfig,
1438
+ getNodeSize,
1439
+ getNodeForce,
1440
+ search: breadthFirstSearch
1441
+ };
1442
+ return /* @__PURE__ */ jsx(OpenFormGraphContext.Provider, { value: contextValue, children });
1443
+ }
1444
+ function useOpenFormGraph() {
1445
+ const context = useContext(OpenFormGraphContext);
1446
+ if (!context) {
1447
+ throw new Error(
1448
+ "useOpenFormGraph must be used within a OpenFormGraphProvider"
1449
+ );
1450
+ }
1451
+ return context;
1452
+ }
1453
+
1454
+ // src/util/color.ts
1455
+ function color(rgb) {
1456
+ const colorHandler = function(arg) {
1457
+ if (typeof arg === "number") {
1458
+ return `rgba(${rgb[0]},${rgb[1]},${rgb[2]},${arg})`;
1459
+ }
1460
+ if (typeof arg === "function") {
1461
+ const transformedRGB = arg(rgb);
1462
+ return color(transformedRGB);
1463
+ }
1464
+ return `rgb(${rgb[0]},${rgb[1]},${rgb[2]})`;
1465
+ };
1466
+ colorHandler.rgb = rgb;
1467
+ return colorHandler;
1468
+ }
1469
+ function dim(factor = 0.6, white = true) {
1470
+ const base = white ? 255 : 0;
1471
+ return function(rgb) {
1472
+ return [
1473
+ Math.round(rgb[0] + (base - rgb[0]) * (1 - factor)),
1474
+ Math.round(rgb[1] + (base - rgb[1]) * (1 - factor)),
1475
+ Math.round(rgb[2] + (base - rgb[2]) * (1 - factor))
1476
+ ];
1477
+ };
1478
+ }
1479
+
1480
+ // src/hooks/useColor.ts
1481
+ function useColor() {
1482
+ const { theme, config } = useOpenFormGraph();
1483
+ return {
1484
+ color: theme === "light" ? color(config.theme.dark) : color(config.theme.light),
1485
+ colorContrast: theme === "light" ? color(config.theme.light) : color(config.theme.dark)
1486
+ };
1487
+ }
1488
+
1489
+ // src/hooks/useGraphLinks.ts
1490
+ function useGraphLinks() {
1491
+ const { color: color2 } = useColor();
1492
+ const { highlights, selectedNode, theme } = useOpenFormGraph();
1493
+ return {
1494
+ linkColor: (link) => {
1495
+ const isLight = theme === "light";
1496
+ const visible = isLight ? 0.2 : 0.15;
1497
+ const opaque = isLight ? 0.1 : 0.05;
1498
+ if (!selectedNode) return color2(visible);
1499
+ const isHighlighted = highlights.links.find((l) => l === link);
1500
+ return color2(isHighlighted ? visible : opaque);
1501
+ },
1502
+ linkWidth: (link) => {
1503
+ const isHighlighted = highlights.links.find((l) => l === link);
1504
+ return isHighlighted ? 1.2 : 1;
1505
+ }
1506
+ };
1507
+ }
1508
+
1509
+ // src/util/canvas.ts
1510
+ function circle(ctx, x, y, radius = 5, options) {
1511
+ const {
1512
+ fill = true,
1513
+ fillStyle,
1514
+ stroke = false,
1515
+ strokeStyle,
1516
+ lineWidth = 0.2
1517
+ } = options || {};
1518
+ ctx.save();
1519
+ if (fillStyle !== void 0) ctx.fillStyle = fillStyle;
1520
+ if (strokeStyle !== void 0) ctx.strokeStyle = strokeStyle;
1521
+ if (lineWidth !== void 0) ctx.lineWidth = lineWidth;
1522
+ ctx.beginPath();
1523
+ ctx.arc(x, y, radius, 0, 2 * Math.PI);
1524
+ ctx.closePath();
1525
+ if (fill) {
1526
+ ctx.fill();
1527
+ }
1528
+ if (stroke) {
1529
+ ctx.stroke();
1530
+ }
1531
+ ctx.restore();
1532
+ }
1533
+ function rect(ctx, x, y, width, height, options) {
1534
+ const {
1535
+ fill = true,
1536
+ fillStyle,
1537
+ stroke = false,
1538
+ strokeStyle,
1539
+ lineWidth = 0.2,
1540
+ borderRadius = 0
1541
+ } = options || {};
1542
+ ctx.save();
1543
+ if (fillStyle !== void 0) ctx.fillStyle = fillStyle;
1544
+ if (strokeStyle !== void 0) ctx.strokeStyle = strokeStyle;
1545
+ if (lineWidth !== void 0) ctx.lineWidth = lineWidth;
1546
+ const r = Math.min(borderRadius, width / 2, height / 2);
1547
+ ctx.beginPath();
1548
+ if (r > 0) {
1549
+ ctx.moveTo(x + r, y);
1550
+ ctx.lineTo(x + width - r, y);
1551
+ ctx.quadraticCurveTo(x + width, y, x + width, y + r);
1552
+ ctx.lineTo(x + width, y + height - r);
1553
+ ctx.quadraticCurveTo(x + width, y + height, x + width - r, y + height);
1554
+ ctx.lineTo(x + r, y + height);
1555
+ ctx.quadraticCurveTo(x, y + height, x, y + height - r);
1556
+ ctx.lineTo(x, y + r);
1557
+ ctx.quadraticCurveTo(x, y, x + r, y);
1558
+ } else {
1559
+ ctx.rect(x, y, width, height);
1560
+ }
1561
+ ctx.closePath();
1562
+ if (fill) {
1563
+ ctx.fill();
1564
+ }
1565
+ if (stroke) {
1566
+ ctx.stroke();
1567
+ }
1568
+ ctx.restore();
1569
+ }
1570
+ function img(ctx, image, x, y, width, height, borderRadius = 0, opacity = 1, bgColor) {
1571
+ ctx.save();
1572
+ ctx.beginPath();
1573
+ if (borderRadius > 0) {
1574
+ const r = Math.min(borderRadius, width / 2, height / 2);
1575
+ ctx.moveTo(x + r, y);
1576
+ ctx.lineTo(x + width - r, y);
1577
+ ctx.quadraticCurveTo(x + width, y, x + width, y + r);
1578
+ ctx.lineTo(x + width, y + height - r);
1579
+ ctx.quadraticCurveTo(x + width, y + height, x + width - r, y + height);
1580
+ ctx.lineTo(x + r, y + height);
1581
+ ctx.quadraticCurveTo(x, y + height, x, y + height - r);
1582
+ ctx.lineTo(x, y + r);
1583
+ ctx.quadraticCurveTo(x, y, x + r, y);
1584
+ } else {
1585
+ ctx.rect(x, y, width, height);
1586
+ }
1587
+ ctx.closePath();
1588
+ if (bgColor) {
1589
+ ctx.save();
1590
+ ctx.fillStyle = bgColor;
1591
+ ctx.globalAlpha = 1;
1592
+ ctx.fillRect(x, y, width, height);
1593
+ ctx.restore();
1594
+ }
1595
+ ctx.clip();
1596
+ ctx.globalAlpha = opacity;
1597
+ ctx.drawImage(image, x, y, width, height);
1598
+ ctx.restore();
1599
+ }
1600
+ function hexagon(ctx, x, y, radius, options) {
1601
+ const {
1602
+ fill = true,
1603
+ fillStyle,
1604
+ stroke = false,
1605
+ strokeStyle,
1606
+ lineWidth = 0.2,
1607
+ rotation = 0,
1608
+ borderRadius = 0
1609
+ } = options || {};
1610
+ ctx.save();
1611
+ if (fillStyle !== void 0) ctx.fillStyle = fillStyle;
1612
+ if (strokeStyle !== void 0) ctx.strokeStyle = strokeStyle;
1613
+ if (lineWidth !== void 0) ctx.lineWidth = lineWidth;
1614
+ const sides = 6;
1615
+ const angleStep = Math.PI * 2 / sides;
1616
+ ctx.beginPath();
1617
+ const points = [];
1618
+ for (let i = 0; i < sides; i++) {
1619
+ const angle = rotation + i * angleStep;
1620
+ points.push({
1621
+ x: x + radius * Math.cos(angle),
1622
+ y: y + radius * Math.sin(angle)
1623
+ });
1624
+ }
1625
+ if (borderRadius > 0) {
1626
+ const maxBorderRadius = Math.min(borderRadius, radius / 3);
1627
+ for (let i = 0; i < sides; i++) {
1628
+ const current = points[i];
1629
+ const next = points[(i + 1) % sides];
1630
+ const prev = points[(i - 1 + sides) % sides];
1631
+ const toPrev = { x: prev.x - current.x, y: prev.y - current.y };
1632
+ const toNext = { x: next.x - current.x, y: next.y - current.y };
1633
+ const lenPrev = Math.sqrt(toPrev.x * toPrev.x + toPrev.y * toPrev.y);
1634
+ const lenNext = Math.sqrt(toNext.x * toNext.x + toNext.y * toNext.y);
1635
+ const normPrev = { x: toPrev.x / lenPrev, y: toPrev.y / lenPrev };
1636
+ const normNext = { x: toNext.x / lenNext, y: toNext.y / lenNext };
1637
+ const cpPrev = {
1638
+ x: current.x + normPrev.x * maxBorderRadius,
1639
+ y: current.y + normPrev.y * maxBorderRadius
1640
+ };
1641
+ const cpNext = {
1642
+ x: current.x + normNext.x * maxBorderRadius,
1643
+ y: current.y + normNext.y * maxBorderRadius
1644
+ };
1645
+ if (i === 0) {
1646
+ ctx.moveTo(cpPrev.x, cpPrev.y);
1647
+ } else {
1648
+ ctx.lineTo(cpPrev.x, cpPrev.y);
1649
+ }
1650
+ ctx.quadraticCurveTo(current.x, current.y, cpNext.x, cpNext.y);
1651
+ }
1652
+ } else {
1653
+ ctx.moveTo(points[0].x, points[0].y);
1654
+ for (let i = 1; i < sides; i++) {
1655
+ ctx.lineTo(points[i].x, points[i].y);
1656
+ }
1657
+ }
1658
+ ctx.closePath();
1659
+ if (fill) {
1660
+ ctx.fill();
1661
+ }
1662
+ if (stroke) {
1663
+ ctx.stroke();
1664
+ }
1665
+ ctx.restore();
1666
+ }
1667
+
1668
+ // src/hooks/useGraphNodes.ts
1669
+ import { scaleLog } from "d3-scale";
1670
+ import { useCallback as useCallback2 } from "react";
1671
+ function useGraphNodes() {
1672
+ const {
1673
+ selectedNode,
1674
+ theme,
1675
+ clusterSizeRange,
1676
+ highlights,
1677
+ hasNodeChildren,
1678
+ config,
1679
+ getNodeSize
1680
+ } = useOpenFormGraph();
1681
+ const { color: color2, colorContrast } = useColor();
1682
+ const visibilityScale = useCallback2(
1683
+ (clusterSize, currentZoom) => {
1684
+ const minZoomRequired = scaleLog().domain([1, clusterSizeRange[1]]).range([7.5, 1.8]).clamp(true)(clusterSize);
1685
+ return currentZoom >= minZoomRequired ? 1 : 0;
1686
+ },
1687
+ [clusterSizeRange]
1688
+ );
1689
+ const nodePointerAreaPaint = useCallback2(
1690
+ (node, col, ctx, scale) => {
1691
+ const x = node.x || 0;
1692
+ const y = node.y || 0;
1693
+ const size = getNodeSize(node.id);
1694
+ const collapsed = node.collapsed && hasNodeChildren(node.id);
1695
+ const isSelected = selectedNode?.id === node.id;
1696
+ if (collapsed) {
1697
+ circle(ctx, x, y, size, {
1698
+ stroke: true,
1699
+ strokeStyle: col,
1700
+ fill: true,
1701
+ fillStyle: col
1702
+ });
1703
+ } else {
1704
+ rect(ctx, x - size / 2, y - size / 2, size, size, {
1705
+ stroke: true,
1706
+ strokeStyle: col,
1707
+ lineWidth: isSelected ? 1 : 0.2,
1708
+ fill: true,
1709
+ fillStyle: col,
1710
+ borderRadius: 1
1711
+ });
1712
+ }
1713
+ },
1714
+ [getNodeSize, hasNodeChildren, selectedNode]
1715
+ );
1716
+ const renderNode = useCallback2(
1717
+ (node, ctx, scale) => {
1718
+ const isSelected = selectedNode?.id === node.id;
1719
+ const isHighlighted = highlights.nodes.find((n) => n.id === node.id);
1720
+ const size = getNodeSize(node.id) + (isSelected ? 5 : 0);
1721
+ const fontSize = 12 / scale;
1722
+ const isLight = theme === "light";
1723
+ const x = node.x || 0;
1724
+ const y = node.y || 0;
1725
+ let opacity = 1;
1726
+ if (selectedNode && !isHighlighted) {
1727
+ opacity = 0.1;
1728
+ }
1729
+ const collapsed = node.collapsed && hasNodeChildren(node.id);
1730
+ if (collapsed) {
1731
+ circle(ctx, x, y, size, {
1732
+ stroke: true,
1733
+ strokeStyle: colorContrast(dim(opacity, isLight))(),
1734
+ fill: true,
1735
+ fillStyle: color2(dim(opacity, isLight))()
1736
+ });
1737
+ const showLabel = visibilityScale(node.clusterSize, scale);
1738
+ if (showLabel) {
1739
+ ctx.font = `${fontSize}px Sans-Serif`;
1740
+ ctx.textAlign = "center";
1741
+ ctx.textBaseline = "middle";
1742
+ ctx.fillStyle = colorContrast(opacity);
1743
+ ctx.fillText(node.clusterSize.toString(), x, y);
1744
+ }
1745
+ } else {
1746
+ if (node.id !== VOID_ROOT_ID) {
1747
+ rect(ctx, x - size / 2, y - size / 2, size, size, {
1748
+ stroke: true,
1749
+ strokeStyle: color2(dim(opacity, isLight))(),
1750
+ lineWidth: isSelected ? 1 : 0.2,
1751
+ fill: true,
1752
+ fillStyle: color2(dim(opacity, isLight))(),
1753
+ borderRadius: 1
1754
+ });
1755
+ } else {
1756
+ hexagon(ctx, x, y, size, {
1757
+ stroke: true,
1758
+ strokeStyle: color2(dim(opacity, isLight))(),
1759
+ lineWidth: isSelected ? 1 : 0.2,
1760
+ fill: true,
1761
+ fillStyle: color2(dim(opacity, isLight))(),
1762
+ borderRadius: 1
1763
+ });
1764
+ }
1765
+ if (node.image) {
1766
+ const PADDING = 0.5;
1767
+ img(
1768
+ ctx,
1769
+ node.image,
1770
+ x - (size - PADDING) / 2,
1771
+ y - (size - PADDING) / 2,
1772
+ size - PADDING,
1773
+ size - PADDING,
1774
+ 1,
1775
+ opacity,
1776
+ isLight ? "white" : "black"
1777
+ );
1778
+ }
1779
+ const showLabel = false;
1780
+ if (showLabel) {
1781
+ ctx.font = "6px Sans-Serif";
1782
+ ctx.textAlign = "left";
1783
+ ctx.textBaseline = "middle";
1784
+ ctx.fillText(node.label, x + config.nodeSize, y);
1785
+ }
1786
+ }
1787
+ },
1788
+ [
1789
+ selectedNode,
1790
+ theme,
1791
+ clusterSizeRange,
1792
+ highlights,
1793
+ hasNodeChildren,
1794
+ config,
1795
+ visibilityScale,
1796
+ color2,
1797
+ getNodeSize
1798
+ ]
1799
+ );
1800
+ return {
1801
+ renderNode,
1802
+ nodePointerAreaPaint
1803
+ };
1804
+ }
1805
+
1806
+ // src/components/OpenFormGraph.tsx
1807
+ import { jsx as jsx2 } from "react/jsx-runtime";
1808
+ function OpenFormGraph(props) {
1809
+ const { width, height } = props;
1810
+ const {
1811
+ ref,
1812
+ hasNodeChildren,
1813
+ rootId,
1814
+ config,
1815
+ clusterSizeRange,
1816
+ data,
1817
+ layoutConfig,
1818
+ selectedNode,
1819
+ highlights,
1820
+ onClickNode,
1821
+ getNodeSize,
1822
+ getNodeForce
1823
+ } = useOpenFormGraph();
1824
+ const { renderNode, nodePointerAreaPaint } = useGraphNodes();
1825
+ const links = useGraphLinks();
1826
+ useEffect2(() => {
1827
+ if (!ref.current) return;
1828
+ ref.current.d3Force(
1829
+ "collision",
1830
+ forceCollide().strength(0.3).radius((node) => {
1831
+ return getNodeForce(node.id);
1832
+ })
1833
+ );
1834
+ ref.current.d3Force("center", null);
1835
+ ref.current.d3Force("link")?.distance((l) => {
1836
+ if (!l.target.collapsed) return config.nodeSize;
1837
+ return config.nodeSize * 2;
1838
+ });
1839
+ }, [ref, config, hasNodeChildren, clusterSizeRange, rootId, getNodeForce]);
1840
+ const reheated = useRef2(false);
1841
+ return /* @__PURE__ */ jsx2(
1842
+ ForceGraph2D,
1843
+ {
1844
+ ref,
1845
+ width,
1846
+ height,
1847
+ graphData: data,
1848
+ dagMode: "radialout",
1849
+ onDagError: (err) => {
1850
+ console.error("dag error", err);
1851
+ },
1852
+ d3VelocityDecay: layoutConfig.velocityDecay,
1853
+ d3AlphaDecay: layoutConfig.alphaDecay,
1854
+ d3AlphaMin: layoutConfig.alphaMin,
1855
+ dagLevelDistance: layoutConfig.dagLevelDistance,
1856
+ cooldownTicks: 4e3,
1857
+ onEngineStop: () => {
1858
+ ref.current?.zoomToFit(
1859
+ 400,
1860
+ config.focusPadding,
1861
+ (node) => selectedNode ? highlights.nodes.findIndex((n) => n.id === node.id) > -1 : true
1862
+ );
1863
+ },
1864
+ minZoom: config.minZoom,
1865
+ maxZoom: config.maxZoom,
1866
+ nodeRelSize: 2,
1867
+ enableNodeDrag: false,
1868
+ onNodeClick: (n) => onClickNode(n.id),
1869
+ onNodeDrag: () => {
1870
+ if (!reheated.current) {
1871
+ ref.current?.d3ReheatSimulation();
1872
+ reheated.current = true;
1873
+ }
1874
+ },
1875
+ onNodeDragEnd: () => {
1876
+ reheated.current = false;
1877
+ },
1878
+ nodeVal: (node) => {
1879
+ const n = node;
1880
+ return getNodeSize(n.id);
1881
+ },
1882
+ nodeCanvasObject: renderNode,
1883
+ nodePointerAreaPaint,
1884
+ ...links
1885
+ }
1886
+ );
1887
+ }
1888
+
1889
+ // src/components/OpenFormGraph3D.tsx
1890
+ import ForceGraph3D from "react-force-graph-3d";
1891
+ import { useEffect as useEffect4, useRef as useRef4 } from "react";
1892
+ import { forceCollide as forceCollide2 } from "d3-force";
1893
+
1894
+ // src/hooks/useGraphNodesThree.ts
1895
+ import { useCallback as useCallback3, useEffect as useEffect3, useRef as useRef3 } from "react";
1896
+ import { scaleLog as scaleLog2 } from "d3-scale";
1897
+ import * as THREE from "three";
1898
+ import SpriteText from "three-spritetext";
1899
+ import throttle from "lodash.throttle";
1900
+ function rgbToHex(rgb) {
1901
+ const result = rgb.match(/\d+/g);
1902
+ if (!result || result.length < 3) return "#000000";
1903
+ const [r, g, b] = result.map((n) => parseInt(n).toString(16).padStart(2, "0"));
1904
+ return `#${r}${g}${b}`;
1905
+ }
1906
+ function useGraphNodesThree() {
1907
+ const {
1908
+ selectedNode,
1909
+ clusterSizeRange,
1910
+ highlights,
1911
+ hasNodeChildren,
1912
+ getNodeSize,
1913
+ ref
1914
+ } = useOpenFormGraph();
1915
+ const { color: color2 } = useColor();
1916
+ const zoomRef = useRef3(0);
1917
+ useEffect3(() => {
1918
+ if (!ref.current) return;
1919
+ const _ref = ref.current;
1920
+ const throttledDebounce = throttle(() => {
1921
+ }, 30);
1922
+ const controls = _ref.controls();
1923
+ const handleChange = (e) => {
1924
+ zoomRef.current = e.target.object.position.z;
1925
+ throttledDebounce();
1926
+ };
1927
+ controls.addEventListener("change", handleChange);
1928
+ return () => {
1929
+ controls.removeEventListener("change", handleChange);
1930
+ throttledDebounce.cancel();
1931
+ };
1932
+ }, []);
1933
+ const visibilityScale = useCallback3(
1934
+ (clusterSize, currentZoom) => {
1935
+ const minZoomRequired = scaleLog2().domain([1, clusterSizeRange[1]]).range([1e3, 300]).clamp(true)(clusterSize);
1936
+ return currentZoom >= minZoomRequired ? 0 : 1;
1937
+ },
1938
+ [clusterSizeRange]
1939
+ );
1940
+ const nodeThreeObject = useCallback3(
1941
+ (node) => {
1942
+ const size = getNodeSize(node.id);
1943
+ const isSelected = selectedNode?.id === node.id;
1944
+ const isHighlighted = highlights.nodes.find((n) => n.id === node.id);
1945
+ let opacity = 1;
1946
+ if (selectedNode && !isHighlighted) {
1947
+ opacity = 0.1;
1948
+ }
1949
+ if (node.imgSrc && !node.collapsed) {
1950
+ const geometry2 = new THREE.PlaneGeometry(size, size);
1951
+ const material2 = new THREE.MeshLambertMaterial({
1952
+ color: 0,
1953
+ transparent: true,
1954
+ opacity,
1955
+ side: THREE.DoubleSide
1956
+ });
1957
+ const plane = new THREE.Mesh(geometry2, material2);
1958
+ plane.userData = { node };
1959
+ return plane;
1960
+ }
1961
+ if (node.collapsed && hasNodeChildren(node.id)) {
1962
+ const geometry2 = new THREE.SphereGeometry(size / 2, 16, 16);
1963
+ const material2 = new THREE.MeshLambertMaterial({
1964
+ color: 0,
1965
+ transparent: true,
1966
+ opacity
1967
+ });
1968
+ const sphere = new THREE.Mesh(geometry2, material2);
1969
+ sphere.userData = { node };
1970
+ const showLabel = visibilityScale(node.clusterSize, zoomRef.current);
1971
+ if (showLabel) {
1972
+ const label = new SpriteText(String(node.clusterSize));
1973
+ label.color = rgbToHex(color2(1));
1974
+ label.textHeight = 10;
1975
+ const group = new THREE.Group();
1976
+ group.add(sphere);
1977
+ group.add(label);
1978
+ return group;
1979
+ }
1980
+ return sphere;
1981
+ }
1982
+ const rgbColor = color2(opacity);
1983
+ const hex = rgbToHex(rgbColor);
1984
+ const geometry = new THREE.BoxGeometry(size, size, size);
1985
+ const material = new THREE.MeshLambertMaterial({
1986
+ color: hex,
1987
+ transparent: true,
1988
+ opacity
1989
+ });
1990
+ const box = new THREE.Mesh(geometry, material);
1991
+ box.userData = { node };
1992
+ return box;
1993
+ },
1994
+ [
1995
+ getNodeSize,
1996
+ selectedNode,
1997
+ highlights,
1998
+ hasNodeChildren,
1999
+ visibilityScale,
2000
+ color2
2001
+ ]
2002
+ );
2003
+ return {
2004
+ nodeThreeObject
2005
+ };
2006
+ }
2007
+
2008
+ // src/components/OpenFormGraph3D.tsx
2009
+ import { jsx as jsx3 } from "react/jsx-runtime";
2010
+ function OpenFormGraph3D(props) {
2011
+ const { width, height } = props;
2012
+ const {
2013
+ ref,
2014
+ theme,
2015
+ hasNodeChildren,
2016
+ rootId,
2017
+ config,
2018
+ clusterSizeRange,
2019
+ data,
2020
+ layoutConfig,
2021
+ selectedNode,
2022
+ highlights,
2023
+ onClickNode,
2024
+ getNodeSize,
2025
+ getNodeForce
2026
+ } = useOpenFormGraph();
2027
+ const nodes = useGraphNodesThree();
2028
+ const links = useGraphLinks();
2029
+ useEffect4(() => {
2030
+ if (!ref.current) return;
2031
+ ref.current.d3Force(
2032
+ "collision",
2033
+ forceCollide2().strength(0.3).radius((node) => {
2034
+ return getNodeForce(node.id);
2035
+ })
2036
+ );
2037
+ ref.current.d3Force("center", null);
2038
+ ref.current.d3Force("link")?.distance((l) => {
2039
+ if (!l.target.collapsed) return config.nodeSize;
2040
+ return config.nodeSize * 2;
2041
+ });
2042
+ }, [ref, config, hasNodeChildren, clusterSizeRange, rootId, getNodeForce]);
2043
+ const reheated = useRef4(false);
2044
+ return /* @__PURE__ */ jsx3(
2045
+ ForceGraph3D,
2046
+ {
2047
+ ref,
2048
+ width,
2049
+ height,
2050
+ graphData: data,
2051
+ dagMode: "radialout",
2052
+ onDagError: (err) => {
2053
+ console.error("dag error", err);
2054
+ },
2055
+ d3VelocityDecay: layoutConfig.velocityDecay,
2056
+ d3AlphaDecay: layoutConfig.alphaDecay,
2057
+ d3AlphaMin: layoutConfig.alphaMin,
2058
+ dagLevelDistance: layoutConfig.dagLevelDistance,
2059
+ cooldownTicks: 4e3,
2060
+ onEngineStop: () => {
2061
+ },
2062
+ nodeRelSize: 2,
2063
+ enableNodeDrag: false,
2064
+ numDimensions: 2,
2065
+ backgroundColor: theme === "dark" ? "#000" : "#fff",
2066
+ onNodeClick: (n) => onClickNode(n.id),
2067
+ onNodeDrag: () => {
2068
+ if (!reheated.current) {
2069
+ ref.current?.d3ReheatSimulation();
2070
+ reheated.current = true;
2071
+ }
2072
+ },
2073
+ onNodeDragEnd: () => {
2074
+ reheated.current = false;
2075
+ },
2076
+ nodeVal: (node) => {
2077
+ const n = node;
2078
+ return getNodeSize(n.id);
2079
+ },
2080
+ ...nodes,
2081
+ ...links
2082
+ }
2083
+ );
2084
+ }
2085
+ export {
2086
+ DEFAULT_GRAPH_CONFIG,
2087
+ OpenFormGraph,
2088
+ OpenFormGraph3D,
2089
+ OpenFormGraphProvider,
2090
+ VOID_ROOT_ID,
2091
+ collectChildren,
2092
+ color,
2093
+ dim,
2094
+ generateTree,
2095
+ normalize,
2096
+ preloadImage,
2097
+ useOpenFormGraph
2098
+ };
2099
+ //# sourceMappingURL=index.js.map