@fastino-ai/pioneer-cli 0.1.0 → 0.2.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/.claude/settings.local.json +11 -0
- package/README.md +93 -8
- package/bun.lock +82 -0
- package/cache/cache.db +0 -0
- package/cache/cache.db-shm +0 -0
- package/cache/cache.db-wal +0 -0
- package/datasets/Medical_NER_Dataset.json +2609 -0
- package/datasets/ner-dataset.json +2593 -0
- package/datasets/test-remote.json +41 -0
- package/datasets/test-warning.json +49 -0
- package/fastino-ai-pioneer-cli-0.2.0.tgz +0 -0
- package/ner_dataset.json +111 -0
- package/package.json +6 -3
- package/src/agent/Agent.ts +342 -0
- package/src/agent/BudgetManager.ts +167 -0
- package/src/agent/FileResolver.ts +321 -0
- package/src/agent/LLMClient.ts +435 -0
- package/src/agent/ToolRegistry.ts +97 -0
- package/src/agent/index.ts +15 -0
- package/src/agent/types.ts +84 -0
- package/src/api.ts +250 -0
- package/src/chat/ChatApp.tsx +738 -0
- package/src/chat/index.ts +7 -0
- package/src/config.ts +185 -3
- package/src/evolution/EvalRunner.ts +301 -0
- package/src/evolution/EvolutionEngine.ts +319 -0
- package/src/evolution/FeedbackCollector.ts +197 -0
- package/src/evolution/ModelTrainer.ts +371 -0
- package/src/evolution/index.ts +18 -0
- package/src/evolution/types.ts +110 -0
- package/src/index.tsx +664 -44
- package/src/tools/bash.ts +184 -0
- package/src/tools/filesystem.ts +444 -0
- package/src/tools/index.ts +29 -0
- package/src/tools/modal.ts +269 -0
- package/src/tools/sandbox.ts +310 -0
- package/src/tools/training.ts +443 -0
- package/src/tools/wandb.ts +348 -0
- package/workspaces/0-skinny-mink-of-management/input/private/test.csv +100 -0
- package/workspaces/0-skinny-mink-of-management/input/public/description.md +70 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/10.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/100.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1000.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1001.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1002.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1003.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1004.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1005.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1006.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1007.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/101.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1010.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1011.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1013.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1014.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1016.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1017.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1019.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1021.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1023.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1024.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1025.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1027.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/103.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1030.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1031.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1032.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1034.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1036.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1037.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1039.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1040.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1041.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1042.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1046.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1048.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1049.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1051.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1052.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1056.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1059.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/106.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1061.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1062.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1065.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1066.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/107.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1072.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1073.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1076.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1077.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/108.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1080.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1081.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1083.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1085.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1087.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1088.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1089.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/109.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1090.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1093.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1094.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1095.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1096.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1097.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1098.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/11.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1100.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1101.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1110.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1112.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1113.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1117.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1118.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1119.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1120.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1121.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1123.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1124.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1125.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1128.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1130.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1131.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1132.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1134.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1135.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1136.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1142.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1144.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1145.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1147.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1148.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/115.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1152.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1153.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1154.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1156.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1157.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1159.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/116.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1160.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1163.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1165.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1166.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1167.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1168.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1169.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1170.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1171.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1172.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1173.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1174.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1175.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1176.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1179.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/118.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1180.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1182.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1184.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1186.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1187.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1194.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1196.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1197.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1198.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/120.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1200.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1201.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1202.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1205.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1206.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1208.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1210.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1211.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1213.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1216.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1217.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1218.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1219.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/122.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1220.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1221.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1222.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1223.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1225.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1226.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1228.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1229.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1231.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1232.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1235.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1236.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1238.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1239.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/124.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1240.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1242.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1243.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1244.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1245.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1249.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1250.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1251.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1253.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1254.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1255.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1256.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1257.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1258.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1262.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1263.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1265.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1268.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1269.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/127.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1270.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1271.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1273.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1275.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1276.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1277.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1278.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1281.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1282.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1283.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1284.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1286.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1287.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1289.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/129.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1291.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1292.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1294.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1296.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1299.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/130.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1300.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1301.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1302.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1305.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1308.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1309.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1310.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1311.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1312.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1317.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1319.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/132.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1320.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1322.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1323.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1324.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1325.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1326.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1327.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1328.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1329.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/133.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1330.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1335.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1337.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1339.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/134.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1340.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1341.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1342.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1344.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1345.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1346.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1347.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1348.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1349.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1350.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1352.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1353.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1355.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1356.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1358.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1359.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1360.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1365.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1366.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1367.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1370.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1372.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1373.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1374.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1375.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1377.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1378.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1379.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1380.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1381.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1384.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1386.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1388.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/139.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1390.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1391.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1392.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1393.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1394.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1395.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1396.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1398.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1399.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/14.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/140.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1402.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1403.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1405.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1408.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1410.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1411.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1413.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1414.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1417.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1419.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/142.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1420.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1423.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1424.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1425.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/143.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1431.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1432.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1435.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1436.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1438.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1440.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1441.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1442.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1443.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1444.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1446.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1448.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1449.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/145.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1450.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1452.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1454.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1457.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1459.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/146.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1460.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1461.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1463.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1467.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1468.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1469.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1471.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1472.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1473.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1474.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1475.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1476.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1477.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1479.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/148.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1480.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1482.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1483.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1488.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/149.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1491.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1492.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1494.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1496.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1499.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/15.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1500.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1501.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1502.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1504.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1505.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1506.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1507.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1508.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1509.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1511.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1512.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1514.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1515.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1516.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1518.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1519.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/152.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1520.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1521.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1523.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1524.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1525.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1527.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1529.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/153.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1530.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1531.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1532.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1536.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1538.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1539.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1541.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1543.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1544.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1545.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1547.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1548.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1549.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/155.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1550.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1551.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1552.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1554.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1555.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1556.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1557.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1559.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1561.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1562.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1563.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1566.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1568.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1569.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1570.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1571.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1572.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1574.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1575.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1578.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1581.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1582.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/1584.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/160.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/163.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/164.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/165.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/166.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/167.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/168.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/169.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/17.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/171.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/173.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/175.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/178.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/179.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/18.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/183.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/186.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/188.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/189.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/190.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/194.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/196.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/198.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/199.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/2.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/20.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/201.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/202.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/203.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/204.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/206.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/21.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/211.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/212.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/214.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/215.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/216.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/217.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/218.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/219.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/22.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/224.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/225.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/227.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/228.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/231.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/233.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/235.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/237.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/238.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/239.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/240.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/241.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/242.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/243.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/245.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/246.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/247.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/248.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/249.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/25.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/252.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/253.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/256.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/257.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/258.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/259.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/26.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/260.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/262.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/263.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/265.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/267.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/268.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/269.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/27.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/270.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/273.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/275.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/278.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/280.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/282.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/283.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/286.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/288.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/289.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/29.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/290.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/291.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/294.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/298.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/3.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/30.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/302.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/303.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/304.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/306.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/307.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/309.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/31.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/310.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/311.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/314.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/315.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/317.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/319.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/32.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/321.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/322.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/323.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/324.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/325.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/326.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/327.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/328.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/329.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/330.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/331.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/333.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/334.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/335.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/336.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/338.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/339.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/34.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/340.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/341.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/342.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/344.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/345.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/348.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/349.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/35.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/350.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/354.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/355.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/356.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/357.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/358.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/360.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/362.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/363.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/364.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/365.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/366.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/367.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/369.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/37.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/371.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/374.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/375.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/376.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/377.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/379.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/38.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/380.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/382.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/383.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/386.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/387.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/388.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/389.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/390.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/392.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/393.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/394.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/396.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/397.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/398.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/40.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/404.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/408.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/409.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/410.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/411.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/412.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/413.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/415.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/416.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/417.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/418.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/419.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/42.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/420.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/423.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/425.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/426.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/427.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/428.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/43.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/430.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/431.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/433.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/435.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/436.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/437.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/438.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/440.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/443.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/444.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/445.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/446.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/449.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/45.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/450.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/451.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/452.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/454.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/455.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/456.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/458.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/459.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/460.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/461.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/462.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/463.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/464.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/466.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/467.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/468.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/469.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/470.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/475.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/478.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/48.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/481.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/482.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/485.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/487.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/488.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/489.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/49.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/490.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/491.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/492.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/493.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/494.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/496.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/497.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/498.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/499.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/5.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/50.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/501.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/502.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/505.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/506.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/508.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/510.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/511.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/513.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/514.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/516.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/517.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/519.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/520.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/521.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/522.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/523.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/524.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/528.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/530.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/532.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/535.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/538.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/539.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/54.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/542.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/543.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/545.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/547.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/548.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/55.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/550.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/551.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/552.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/553.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/556.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/558.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/559.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/56.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/561.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/562.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/563.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/564.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/566.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/568.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/569.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/570.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/571.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/572.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/573.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/576.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/58.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/581.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/582.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/585.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/588.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/589.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/592.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/593.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/595.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/596.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/597.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/598.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/6.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/60.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/600.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/601.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/603.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/605.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/606.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/609.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/61.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/610.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/614.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/615.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/616.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/618.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/619.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/620.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/621.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/622.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/623.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/628.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/629.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/63.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/630.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/631.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/632.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/633.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/634.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/635.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/636.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/637.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/64.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/641.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/642.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/645.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/646.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/647.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/649.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/651.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/652.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/654.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/656.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/657.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/66.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/660.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/661.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/662.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/663.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/664.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/667.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/669.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/67.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/671.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/672.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/673.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/675.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/676.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/677.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/678.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/680.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/681.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/682.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/684.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/685.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/689.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/69.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/692.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/693.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/694.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/695.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/697.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/698.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/700.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/704.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/706.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/709.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/71.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/710.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/711.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/712.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/713.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/714.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/716.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/717.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/718.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/72.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/720.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/721.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/722.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/724.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/726.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/727.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/728.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/73.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/730.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/732.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/733.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/737.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/738.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/740.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/741.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/742.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/745.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/747.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/748.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/749.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/75.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/752.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/753.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/754.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/755.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/756.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/757.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/758.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/759.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/76.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/760.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/762.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/763.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/765.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/766.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/767.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/768.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/769.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/771.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/772.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/774.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/776.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/777.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/778.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/779.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/78.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/784.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/785.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/787.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/788.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/789.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/792.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/793.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/794.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/796.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/797.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/798.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/8.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/80.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/800.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/801.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/802.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/803.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/805.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/806.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/807.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/808.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/809.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/81.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/810.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/811.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/812.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/813.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/815.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/816.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/82.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/821.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/822.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/823.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/824.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/825.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/826.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/827.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/828.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/83.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/831.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/837.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/838.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/839.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/84.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/840.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/841.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/844.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/847.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/848.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/849.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/85.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/850.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/851.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/852.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/853.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/854.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/855.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/856.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/858.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/859.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/860.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/861.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/862.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/863.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/864.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/865.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/866.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/867.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/868.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/869.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/87.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/870.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/871.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/873.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/874.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/875.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/876.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/877.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/878.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/879.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/88.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/881.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/882.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/883.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/885.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/886.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/892.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/893.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/894.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/896.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/897.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/898.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/899.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/900.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/901.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/904.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/906.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/907.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/908.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/910.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/911.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/912.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/914.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/915.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/916.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/917.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/918.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/919.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/92.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/920.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/923.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/924.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/926.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/927.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/928.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/931.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/932.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/933.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/934.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/936.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/937.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/938.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/939.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/942.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/944.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/948.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/949.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/951.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/952.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/954.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/955.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/956.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/958.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/959.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/960.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/961.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/962.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/963.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/966.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/968.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/969.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/970.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/971.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/972.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/975.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/976.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/978.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/979.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/981.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/983.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/985.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/987.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/989.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/990.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/992.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/993.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/994.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/995.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/996.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/images/999.jpg +0 -0
- package/workspaces/0-skinny-mink-of-management/input/public/sample_submission.csv +100 -0
- package/workspaces/0-skinny-mink-of-management/input/public/test.csv +100 -0
- package/workspaces/0-skinny-mink-of-management/input/public/train.csv +892 -0
- package/workspaces/0-skinny-mink-of-management/working/submission.csv +100 -0
- package/workspaces/santa-2025/EXISTING_SOLUTION_ANALYSIS.md +181 -0
- package/workspaces/santa-2025/FINAL_ANALYSIS_SUMMARY.md +126 -0
- package/workspaces/santa-2025/FINAL_RECOMMENDATION.md +189 -0
- package/workspaces/santa-2025/FINAL_REPORT.md +207 -0
- package/workspaces/santa-2025/INDEX.md +136 -0
- package/workspaces/santa-2025/PROGRESS.md +210 -0
- package/workspaces/santa-2025/QUICK_WINS_ANALYSIS.md +158 -0
- package/workspaces/santa-2025/README.md +165 -0
- package/workspaces/santa-2025/SUMMARY.md +239 -0
- package/workspaces/santa-2025/advanced_optimizer.py +293 -0
- package/workspaces/santa-2025/analysis_summary.txt +69 -0
- package/workspaces/santa-2025/baseline_log.txt +21 -0
- package/workspaces/santa-2025/baseline_solution.py +237 -0
- package/workspaces/santa-2025/baseline_submission.csv +20101 -0
- package/workspaces/santa-2025/competition_data_page.html +131 -0
- package/workspaces/santa-2025/competition_page.html +131 -0
- package/workspaces/santa-2025/create_ensemble.py +160 -0
- package/workspaces/santa-2025/ensemble_submission.csv +20101 -0
- package/workspaces/santa-2025/evaluate_submission.py +173 -0
- package/workspaces/santa-2025/explore_competition.py +62 -0
- package/workspaces/santa-2025/fetch_competition_info.py +57 -0
- package/workspaces/santa-2025/fix_small_configs_fast.py +184 -0
- package/workspaces/santa-2025/improved_log.txt +48 -0
- package/workspaces/santa-2025/improved_solution.py +325 -0
- package/workspaces/santa-2025/improved_submission.csv +20101 -0
- package/workspaces/santa-2025/optimize_small_configs.py +272 -0
- package/workspaces/santa-2025/optimized_n1_to_n6.csv +22 -0
- package/workspaces/santa-2025/optimized_solution.py +393 -0
- package/workspaces/santa-2025/optimized_submission_score70.93.csv +20101 -0
- package/workspaces/santa-2025/puzzle_010.png +0 -0
- package/workspaces/santa-2025/puzzle_020.png +0 -0
- package/workspaces/santa-2025/puzzle_050.png +0 -0
- package/workspaces/santa-2025/puzzle_100.png +0 -0
- package/workspaces/santa-2025/puzzle_150.png +0 -0
- package/workspaces/santa-2025/puzzle_200.png +0 -0
- package/workspaces/santa-2025/requirements.txt +8 -0
- package/workspaces/santa-2025/sample_submission.csv +20101 -0
- package/workspaces/santa-2025/santa-2025-getting-started.ipynb +1 -0
- package/workspaces/santa-2025/santa-2025-getting-started.py +320 -0
- package/workspaces/santa-2025/santa-2025-metric.ipynb +1 -0
- package/workspaces/santa-2025/santa-2025-metric.py +157 -0
- package/workspaces/santa-2025/santa-2025.zip +0 -0
- package/workspaces/santa-2025/test_solution.py +204 -0
- package/workspaces/santa-2025/ultra_optimized_score70.93.csv +20101 -0
- package/workspaces/santa-2025/ultra_optimizer.py +267 -0
- package/workspaces/santa-2025/visualize.py +166 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":119106,"databundleVersionId":14321641,"sourceType":"competition"}],"dockerImageVersionId":31153,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Getting Started\n - Shows collision detection\n - Provides a plotting function\n - Creates a slightly optimized submission","metadata":{}},{"cell_type":"code","source":"import shapely\nprint(f'Using shapely {shapely.__version__}')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-11-05T18:27:41.198867Z","iopub.execute_input":"2025-11-05T18:27:41.199328Z","iopub.status.idle":"2025-11-05T18:27:41.204626Z","shell.execute_reply.started":"2025-11-05T18:27:41.199299Z","shell.execute_reply":"2025-11-05T18:27:41.203677Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import math\nimport os\nimport random\nfrom decimal import Decimal, getcontext\n\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport pandas as pd\nfrom matplotlib.patches import Rectangle\nfrom shapely import affinity, touches\nfrom shapely.geometry import Polygon\nfrom shapely.ops import unary_union\nfrom shapely.strtree import STRtree\n\npd.set_option('display.float_format', '{:.12f}'.format)\n\n# Set precision for Decimal\ngetcontext().prec = 25\nscale_factor = Decimal('1e15')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-11-03T01:27:19.506834Z","iopub.execute_input":"2025-11-03T01:27:19.507127Z","iopub.status.idle":"2025-11-03T01:27:19.975545Z","shell.execute_reply.started":"2025-11-03T01:27:19.507105Z","shell.execute_reply":"2025-11-03T01:27:19.974366Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Build the index of the submission, in the format:\n# <trees_in_problem>_<tree_index>\n\nindex = [f'{n:03d}_{t}' for n in range(1, 201) for t in range(n)]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-11-03T01:27:30.841923Z","iopub.execute_input":"2025-11-03T01:27:30.842367Z","iopub.status.idle":"2025-11-03T01:27:30.858219Z","shell.execute_reply.started":"2025-11-03T01:27:30.842343Z","shell.execute_reply":"2025-11-03T01:27:30.85724Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"class ChristmasTree:\n \"\"\"Represents a single, rotatable Christmas tree of a fixed size.\"\"\"\n\n def __init__(self, center_x='0', center_y='0', angle='0'):\n \"\"\"Initializes the Christmas tree with a specific position and rotation.\"\"\"\n self.center_x = Decimal(center_x)\n self.center_y = Decimal(center_y)\n self.angle = Decimal(angle)\n\n trunk_w = Decimal('0.15')\n trunk_h = Decimal('0.2')\n base_w = Decimal('0.7')\n mid_w = Decimal('0.4')\n top_w = Decimal('0.25')\n tip_y = Decimal('0.8')\n tier_1_y = Decimal('0.5')\n tier_2_y = Decimal('0.25')\n base_y = Decimal('0.0')\n trunk_bottom_y = -trunk_h\n\n initial_polygon = Polygon(\n [\n # Start at Tip\n (Decimal('0.0') * scale_factor, tip_y * scale_factor),\n # Right side - Top Tier\n (top_w / Decimal('2') * scale_factor, tier_1_y * scale_factor),\n (top_w / Decimal('4') * scale_factor, tier_1_y * scale_factor),\n # Right side - Middle Tier\n (mid_w / Decimal('2') * scale_factor, tier_2_y * scale_factor),\n (mid_w / Decimal('4') * scale_factor, tier_2_y * scale_factor),\n # Right side - Bottom Tier\n (base_w / Decimal('2') * scale_factor, base_y * scale_factor),\n # Right Trunk\n (trunk_w / Decimal('2') * scale_factor, base_y * scale_factor),\n (trunk_w / Decimal('2') * scale_factor, trunk_bottom_y * scale_factor),\n # Left Trunk\n (-(trunk_w / Decimal('2')) * scale_factor, trunk_bottom_y * scale_factor),\n (-(trunk_w / Decimal('2')) * scale_factor, base_y * scale_factor),\n # Left side - Bottom Tier\n (-(base_w / Decimal('2')) * scale_factor, base_y * scale_factor),\n # Left side - Middle Tier\n (-(mid_w / Decimal('4')) * scale_factor, tier_2_y * scale_factor),\n (-(mid_w / Decimal('2')) * scale_factor, tier_2_y * scale_factor),\n # Left side - Top Tier\n (-(top_w / Decimal('4')) * scale_factor, tier_1_y * scale_factor),\n (-(top_w / Decimal('2')) * scale_factor, tier_1_y * scale_factor),\n ]\n )\n rotated = affinity.rotate(initial_polygon, float(self.angle), origin=(0, 0))\n self.polygon = affinity.translate(rotated,\n xoff=float(self.center_x * scale_factor),\n yoff=float(self.center_y * scale_factor))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-11-03T01:27:40.776774Z","iopub.execute_input":"2025-11-03T01:27:40.777556Z","iopub.status.idle":"2025-11-03T01:27:40.786334Z","shell.execute_reply.started":"2025-11-03T01:27:40.777525Z","shell.execute_reply":"2025-11-03T01:27:40.785399Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def generate_weighted_angle():\n \"\"\"\n Generates a random angle with a distribution weighted by abs(sin(2*angle)).\n This helps place more trees in corners, and makes the packing less round.\n \"\"\"\n while True:\n angle = random.uniform(0, 2 * math.pi)\n if random.uniform(0, 1) < abs(math.sin(2 * angle)):\n return angle","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-11-03T01:27:50.013056Z","iopub.execute_input":"2025-11-03T01:27:50.013383Z","iopub.status.idle":"2025-11-03T01:27:50.01847Z","shell.execute_reply.started":"2025-11-03T01:27:50.01336Z","shell.execute_reply":"2025-11-03T01:27:50.017625Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def initialize_trees(num_trees, existing_trees=None):\n \"\"\"\n This builds a simple, greedy starting configuration, by using the previous n-tree\n placements, and adding more tree for the (n+1)-tree configuration. We place a tree\n fairly far away at a (weighted) random angle, and the bring it closer to the center\n until it overlaps. Then we back it up until it no longer overlaps.\n\n You can easily modify this code to build each n-tree configuration completely\n from scratch.\n \"\"\"\n if num_trees == 0:\n return [], Decimal('0')\n\n if existing_trees is None:\n placed_trees = []\n else:\n placed_trees = list(existing_trees)\n\n num_to_add = num_trees - len(placed_trees)\n\n if num_to_add > 0:\n unplaced_trees = [\n ChristmasTree(angle=random.uniform(0, 360)) for _ in range(num_to_add)]\n if not placed_trees: # Only place the first tree at origin if starting from scratch\n placed_trees.append(unplaced_trees.pop(0))\n\n for tree_to_place in unplaced_trees:\n placed_polygons = [p.polygon for p in placed_trees]\n tree_index = STRtree(placed_polygons)\n\n best_px = None\n best_py = None\n min_radius = Decimal('Infinity')\n\n # This loop tries 10 random starting attempts and keeps the best one\n for _ in range(10):\n # The new tree starts at a position 20 from the center, at a random vector angle.\n angle = generate_weighted_angle()\n vx = Decimal(str(math.cos(angle)))\n vy = Decimal(str(math.sin(angle)))\n\n # Move towards center along the vector in steps of 0.5 until collision\n radius = Decimal('20.0')\n step_in = Decimal('0.5')\n\n collision_found = False\n while radius >= 0:\n px = radius * vx\n py = radius * vy\n\n candidate_poly = affinity.translate(\n tree_to_place.polygon,\n xoff=float(px * scale_factor),\n yoff=float(py * scale_factor))\n\n # Looking for nearby objects\n possible_indices = tree_index.query(candidate_poly)\n # This is the collision detection step\n if any((candidate_poly.intersects(placed_polygons[i]) and not\n candidate_poly.touches(placed_polygons[i]))\n for i in possible_indices):\n collision_found = True\n break\n radius -= step_in\n\n # back up in steps of 0.05 until it no longer has a collision.\n if collision_found:\n step_out = Decimal('0.05')\n while True:\n radius += step_out\n px = radius * vx\n py = radius * vy\n\n candidate_poly = affinity.translate(\n tree_to_place.polygon,\n xoff=float(px * scale_factor),\n yoff=float(py * scale_factor))\n\n possible_indices = tree_index.query(candidate_poly)\n if not any((candidate_poly.intersects(placed_polygons[i]) and not\n candidate_poly.touches(placed_polygons[i]))\n for i in possible_indices):\n break\n else:\n # No collision found even at the center. Place it at the center.\n radius = Decimal('0')\n px = Decimal('0')\n py = Decimal('0')\n\n if radius < min_radius:\n min_radius = radius\n best_px = px\n best_py = py\n\n tree_to_place.center_x = best_px\n tree_to_place.center_y = best_py\n tree_to_place.polygon = affinity.translate(\n tree_to_place.polygon,\n xoff=float(tree_to_place.center_x * scale_factor),\n yoff=float(tree_to_place.center_y * scale_factor),\n )\n placed_trees.append(tree_to_place) # Add the newly placed tree to the list\n\n all_polygons = [t.polygon for t in placed_trees]\n bounds = unary_union(all_polygons).bounds\n\n minx = Decimal(bounds[0]) / scale_factor\n miny = Decimal(bounds[1]) / scale_factor\n maxx = Decimal(bounds[2]) / scale_factor\n maxy = Decimal(bounds[3]) / scale_factor\n\n width = maxx - minx\n height = maxy - miny\n # this forces a square bounding using the largest side\n side_length = max(width, height)\n\n return placed_trees, side_length","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-11-03T01:29:10.194954Z","iopub.execute_input":"2025-11-03T01:29:10.195288Z","iopub.status.idle":"2025-11-03T01:29:10.210816Z","shell.execute_reply.started":"2025-11-03T01:29:10.195239Z","shell.execute_reply":"2025-11-03T01:29:10.209562Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def plot_results(side_length, placed_trees, num_trees):\n \"\"\"Plots the arrangement of trees and the bounding square.\"\"\"\n _, ax = plt.subplots(figsize=(6, 6))\n colors = plt.cm.viridis([i / num_trees for i in range(num_trees)])\n\n all_polygons = [t.polygon for t in placed_trees]\n bounds = unary_union(all_polygons).bounds\n\n for i, tree in enumerate(placed_trees):\n # Rescale for plotting\n x_scaled, y_scaled = tree.polygon.exterior.xy\n x = [Decimal(val) / scale_factor for val in x_scaled]\n y = [Decimal(val) / scale_factor for val in y_scaled]\n ax.plot(x, y, color=colors[i])\n ax.fill(x, y, alpha=0.5, color=colors[i])\n\n minx = Decimal(bounds[0]) / scale_factor\n miny = Decimal(bounds[1]) / scale_factor\n maxx = Decimal(bounds[2]) / scale_factor\n maxy = Decimal(bounds[3]) / scale_factor\n\n width = maxx - minx\n height = maxy - miny\n\n square_x = minx if width >= height else minx - (side_length - width) / 2\n square_y = miny if height >= width else miny - (side_length - height) / 2\n bounding_square = Rectangle(\n (float(square_x), float(square_y)),\n float(side_length),\n float(side_length),\n fill=False,\n edgecolor='red',\n linewidth=2,\n linestyle='--',\n )\n ax.add_patch(bounding_square)\n\n padding = 0.5\n ax.set_xlim(\n float(square_x - Decimal(str(padding))),\n float(square_x + side_length + Decimal(str(padding))))\n ax.set_ylim(float(square_y - Decimal(str(padding))),\n float(square_y + side_length + Decimal(str(padding))))\n ax.set_aspect('equal', adjustable='box')\n ax.axis('off')\n plt.title(f'{num_trees} Trees: {side_length:.12f}')\n plt.show()\n plt.close()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-11-03T01:29:27.414855Z","iopub.execute_input":"2025-11-03T01:29:27.415684Z","iopub.status.idle":"2025-11-03T01:29:27.424921Z","shell.execute_reply.started":"2025-11-03T01:29:27.415655Z","shell.execute_reply":"2025-11-03T01:29:27.423953Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"tree_data = []\ncurrent_placed_trees = [] # Initialize an empty list for the first iteration\n\nfor n in range(200):\n # Pass the current_placed_trees to initialize_trees\n current_placed_trees, side = initialize_trees(n+1, existing_trees=current_placed_trees)\n if (n+1) % 10 == 0:\n plot_results(side, current_placed_trees, n+1)\n for tree in current_placed_trees:\n tree_data.append([tree.center_x, tree.center_y, tree.angle])\n \ncols = ['x', 'y', 'deg']\nsubmission = pd.DataFrame(\n index=index, columns=cols, data=tree_data).rename_axis('id')\n\nfor col in cols:\n submission[col] = submission[col].astype(float).round(decimals=6)\n \n# To ensure everything is kept as a string, prepend an 's'\nfor col in submission.columns:\n submission[col] = 's' + submission[col].astype('string')\nsubmission.to_csv('sample_submission.csv')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-11-03T01:35:12.726307Z","iopub.execute_input":"2025-11-03T01:35:12.726605Z","iopub.status.idle":"2025-11-03T01:35:27.151304Z","shell.execute_reply.started":"2025-11-03T01:35:12.726586Z","shell.execute_reply":"2025-11-03T01:35:27.150143Z"}},"outputs":[],"execution_count":null}]}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# coding: utf-8
|
|
3
|
+
|
|
4
|
+
# # Getting Started
|
|
5
|
+
# - Shows collision detection
|
|
6
|
+
# - Provides a plotting function
|
|
7
|
+
# - Creates a slightly optimized submission
|
|
8
|
+
|
|
9
|
+
# In[ ]:
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
import shapely
|
|
13
|
+
print(f'Using shapely {shapely.__version__}')
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# In[ ]:
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
import math
|
|
20
|
+
import os
|
|
21
|
+
import random
|
|
22
|
+
from decimal import Decimal, getcontext
|
|
23
|
+
|
|
24
|
+
import matplotlib.pyplot as plt
|
|
25
|
+
import numpy as np
|
|
26
|
+
import pandas as pd
|
|
27
|
+
from matplotlib.patches import Rectangle
|
|
28
|
+
from shapely import affinity, touches
|
|
29
|
+
from shapely.geometry import Polygon
|
|
30
|
+
from shapely.ops import unary_union
|
|
31
|
+
from shapely.strtree import STRtree
|
|
32
|
+
|
|
33
|
+
pd.set_option('display.float_format', '{:.12f}'.format)
|
|
34
|
+
|
|
35
|
+
# Set precision for Decimal
|
|
36
|
+
getcontext().prec = 25
|
|
37
|
+
scale_factor = Decimal('1e15')
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# In[ ]:
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
# Build the index of the submission, in the format:
|
|
44
|
+
# <trees_in_problem>_<tree_index>
|
|
45
|
+
|
|
46
|
+
index = [f'{n:03d}_{t}' for n in range(1, 201) for t in range(n)]
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# In[ ]:
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class ChristmasTree:
|
|
53
|
+
"""Represents a single, rotatable Christmas tree of a fixed size."""
|
|
54
|
+
|
|
55
|
+
def __init__(self, center_x='0', center_y='0', angle='0'):
|
|
56
|
+
"""Initializes the Christmas tree with a specific position and rotation."""
|
|
57
|
+
self.center_x = Decimal(center_x)
|
|
58
|
+
self.center_y = Decimal(center_y)
|
|
59
|
+
self.angle = Decimal(angle)
|
|
60
|
+
|
|
61
|
+
trunk_w = Decimal('0.15')
|
|
62
|
+
trunk_h = Decimal('0.2')
|
|
63
|
+
base_w = Decimal('0.7')
|
|
64
|
+
mid_w = Decimal('0.4')
|
|
65
|
+
top_w = Decimal('0.25')
|
|
66
|
+
tip_y = Decimal('0.8')
|
|
67
|
+
tier_1_y = Decimal('0.5')
|
|
68
|
+
tier_2_y = Decimal('0.25')
|
|
69
|
+
base_y = Decimal('0.0')
|
|
70
|
+
trunk_bottom_y = -trunk_h
|
|
71
|
+
|
|
72
|
+
initial_polygon = Polygon(
|
|
73
|
+
[
|
|
74
|
+
# Start at Tip
|
|
75
|
+
(Decimal('0.0') * scale_factor, tip_y * scale_factor),
|
|
76
|
+
# Right side - Top Tier
|
|
77
|
+
(top_w / Decimal('2') * scale_factor, tier_1_y * scale_factor),
|
|
78
|
+
(top_w / Decimal('4') * scale_factor, tier_1_y * scale_factor),
|
|
79
|
+
# Right side - Middle Tier
|
|
80
|
+
(mid_w / Decimal('2') * scale_factor, tier_2_y * scale_factor),
|
|
81
|
+
(mid_w / Decimal('4') * scale_factor, tier_2_y * scale_factor),
|
|
82
|
+
# Right side - Bottom Tier
|
|
83
|
+
(base_w / Decimal('2') * scale_factor, base_y * scale_factor),
|
|
84
|
+
# Right Trunk
|
|
85
|
+
(trunk_w / Decimal('2') * scale_factor, base_y * scale_factor),
|
|
86
|
+
(trunk_w / Decimal('2') * scale_factor, trunk_bottom_y * scale_factor),
|
|
87
|
+
# Left Trunk
|
|
88
|
+
(-(trunk_w / Decimal('2')) * scale_factor, trunk_bottom_y * scale_factor),
|
|
89
|
+
(-(trunk_w / Decimal('2')) * scale_factor, base_y * scale_factor),
|
|
90
|
+
# Left side - Bottom Tier
|
|
91
|
+
(-(base_w / Decimal('2')) * scale_factor, base_y * scale_factor),
|
|
92
|
+
# Left side - Middle Tier
|
|
93
|
+
(-(mid_w / Decimal('4')) * scale_factor, tier_2_y * scale_factor),
|
|
94
|
+
(-(mid_w / Decimal('2')) * scale_factor, tier_2_y * scale_factor),
|
|
95
|
+
# Left side - Top Tier
|
|
96
|
+
(-(top_w / Decimal('4')) * scale_factor, tier_1_y * scale_factor),
|
|
97
|
+
(-(top_w / Decimal('2')) * scale_factor, tier_1_y * scale_factor),
|
|
98
|
+
]
|
|
99
|
+
)
|
|
100
|
+
rotated = affinity.rotate(initial_polygon, float(self.angle), origin=(0, 0))
|
|
101
|
+
self.polygon = affinity.translate(rotated,
|
|
102
|
+
xoff=float(self.center_x * scale_factor),
|
|
103
|
+
yoff=float(self.center_y * scale_factor))
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
# In[ ]:
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def generate_weighted_angle():
|
|
110
|
+
"""
|
|
111
|
+
Generates a random angle with a distribution weighted by abs(sin(2*angle)).
|
|
112
|
+
This helps place more trees in corners, and makes the packing less round.
|
|
113
|
+
"""
|
|
114
|
+
while True:
|
|
115
|
+
angle = random.uniform(0, 2 * math.pi)
|
|
116
|
+
if random.uniform(0, 1) < abs(math.sin(2 * angle)):
|
|
117
|
+
return angle
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
# In[ ]:
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def initialize_trees(num_trees, existing_trees=None):
|
|
124
|
+
"""
|
|
125
|
+
This builds a simple, greedy starting configuration, by using the previous n-tree
|
|
126
|
+
placements, and adding more tree for the (n+1)-tree configuration. We place a tree
|
|
127
|
+
fairly far away at a (weighted) random angle, and the bring it closer to the center
|
|
128
|
+
until it overlaps. Then we back it up until it no longer overlaps.
|
|
129
|
+
|
|
130
|
+
You can easily modify this code to build each n-tree configuration completely
|
|
131
|
+
from scratch.
|
|
132
|
+
"""
|
|
133
|
+
if num_trees == 0:
|
|
134
|
+
return [], Decimal('0')
|
|
135
|
+
|
|
136
|
+
if existing_trees is None:
|
|
137
|
+
placed_trees = []
|
|
138
|
+
else:
|
|
139
|
+
placed_trees = list(existing_trees)
|
|
140
|
+
|
|
141
|
+
num_to_add = num_trees - len(placed_trees)
|
|
142
|
+
|
|
143
|
+
if num_to_add > 0:
|
|
144
|
+
unplaced_trees = [
|
|
145
|
+
ChristmasTree(angle=random.uniform(0, 360)) for _ in range(num_to_add)]
|
|
146
|
+
if not placed_trees: # Only place the first tree at origin if starting from scratch
|
|
147
|
+
placed_trees.append(unplaced_trees.pop(0))
|
|
148
|
+
|
|
149
|
+
for tree_to_place in unplaced_trees:
|
|
150
|
+
placed_polygons = [p.polygon for p in placed_trees]
|
|
151
|
+
tree_index = STRtree(placed_polygons)
|
|
152
|
+
|
|
153
|
+
best_px = None
|
|
154
|
+
best_py = None
|
|
155
|
+
min_radius = Decimal('Infinity')
|
|
156
|
+
|
|
157
|
+
# This loop tries 10 random starting attempts and keeps the best one
|
|
158
|
+
for _ in range(10):
|
|
159
|
+
# The new tree starts at a position 20 from the center, at a random vector angle.
|
|
160
|
+
angle = generate_weighted_angle()
|
|
161
|
+
vx = Decimal(str(math.cos(angle)))
|
|
162
|
+
vy = Decimal(str(math.sin(angle)))
|
|
163
|
+
|
|
164
|
+
# Move towards center along the vector in steps of 0.5 until collision
|
|
165
|
+
radius = Decimal('20.0')
|
|
166
|
+
step_in = Decimal('0.5')
|
|
167
|
+
|
|
168
|
+
collision_found = False
|
|
169
|
+
while radius >= 0:
|
|
170
|
+
px = radius * vx
|
|
171
|
+
py = radius * vy
|
|
172
|
+
|
|
173
|
+
candidate_poly = affinity.translate(
|
|
174
|
+
tree_to_place.polygon,
|
|
175
|
+
xoff=float(px * scale_factor),
|
|
176
|
+
yoff=float(py * scale_factor))
|
|
177
|
+
|
|
178
|
+
# Looking for nearby objects
|
|
179
|
+
possible_indices = tree_index.query(candidate_poly)
|
|
180
|
+
# This is the collision detection step
|
|
181
|
+
if any((candidate_poly.intersects(placed_polygons[i]) and not
|
|
182
|
+
candidate_poly.touches(placed_polygons[i]))
|
|
183
|
+
for i in possible_indices):
|
|
184
|
+
collision_found = True
|
|
185
|
+
break
|
|
186
|
+
radius -= step_in
|
|
187
|
+
|
|
188
|
+
# back up in steps of 0.05 until it no longer has a collision.
|
|
189
|
+
if collision_found:
|
|
190
|
+
step_out = Decimal('0.05')
|
|
191
|
+
while True:
|
|
192
|
+
radius += step_out
|
|
193
|
+
px = radius * vx
|
|
194
|
+
py = radius * vy
|
|
195
|
+
|
|
196
|
+
candidate_poly = affinity.translate(
|
|
197
|
+
tree_to_place.polygon,
|
|
198
|
+
xoff=float(px * scale_factor),
|
|
199
|
+
yoff=float(py * scale_factor))
|
|
200
|
+
|
|
201
|
+
possible_indices = tree_index.query(candidate_poly)
|
|
202
|
+
if not any((candidate_poly.intersects(placed_polygons[i]) and not
|
|
203
|
+
candidate_poly.touches(placed_polygons[i]))
|
|
204
|
+
for i in possible_indices):
|
|
205
|
+
break
|
|
206
|
+
else:
|
|
207
|
+
# No collision found even at the center. Place it at the center.
|
|
208
|
+
radius = Decimal('0')
|
|
209
|
+
px = Decimal('0')
|
|
210
|
+
py = Decimal('0')
|
|
211
|
+
|
|
212
|
+
if radius < min_radius:
|
|
213
|
+
min_radius = radius
|
|
214
|
+
best_px = px
|
|
215
|
+
best_py = py
|
|
216
|
+
|
|
217
|
+
tree_to_place.center_x = best_px
|
|
218
|
+
tree_to_place.center_y = best_py
|
|
219
|
+
tree_to_place.polygon = affinity.translate(
|
|
220
|
+
tree_to_place.polygon,
|
|
221
|
+
xoff=float(tree_to_place.center_x * scale_factor),
|
|
222
|
+
yoff=float(tree_to_place.center_y * scale_factor),
|
|
223
|
+
)
|
|
224
|
+
placed_trees.append(tree_to_place) # Add the newly placed tree to the list
|
|
225
|
+
|
|
226
|
+
all_polygons = [t.polygon for t in placed_trees]
|
|
227
|
+
bounds = unary_union(all_polygons).bounds
|
|
228
|
+
|
|
229
|
+
minx = Decimal(bounds[0]) / scale_factor
|
|
230
|
+
miny = Decimal(bounds[1]) / scale_factor
|
|
231
|
+
maxx = Decimal(bounds[2]) / scale_factor
|
|
232
|
+
maxy = Decimal(bounds[3]) / scale_factor
|
|
233
|
+
|
|
234
|
+
width = maxx - minx
|
|
235
|
+
height = maxy - miny
|
|
236
|
+
# this forces a square bounding using the largest side
|
|
237
|
+
side_length = max(width, height)
|
|
238
|
+
|
|
239
|
+
return placed_trees, side_length
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
# In[ ]:
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
def plot_results(side_length, placed_trees, num_trees):
|
|
246
|
+
"""Plots the arrangement of trees and the bounding square."""
|
|
247
|
+
_, ax = plt.subplots(figsize=(6, 6))
|
|
248
|
+
colors = plt.cm.viridis([i / num_trees for i in range(num_trees)])
|
|
249
|
+
|
|
250
|
+
all_polygons = [t.polygon for t in placed_trees]
|
|
251
|
+
bounds = unary_union(all_polygons).bounds
|
|
252
|
+
|
|
253
|
+
for i, tree in enumerate(placed_trees):
|
|
254
|
+
# Rescale for plotting
|
|
255
|
+
x_scaled, y_scaled = tree.polygon.exterior.xy
|
|
256
|
+
x = [Decimal(val) / scale_factor for val in x_scaled]
|
|
257
|
+
y = [Decimal(val) / scale_factor for val in y_scaled]
|
|
258
|
+
ax.plot(x, y, color=colors[i])
|
|
259
|
+
ax.fill(x, y, alpha=0.5, color=colors[i])
|
|
260
|
+
|
|
261
|
+
minx = Decimal(bounds[0]) / scale_factor
|
|
262
|
+
miny = Decimal(bounds[1]) / scale_factor
|
|
263
|
+
maxx = Decimal(bounds[2]) / scale_factor
|
|
264
|
+
maxy = Decimal(bounds[3]) / scale_factor
|
|
265
|
+
|
|
266
|
+
width = maxx - minx
|
|
267
|
+
height = maxy - miny
|
|
268
|
+
|
|
269
|
+
square_x = minx if width >= height else minx - (side_length - width) / 2
|
|
270
|
+
square_y = miny if height >= width else miny - (side_length - height) / 2
|
|
271
|
+
bounding_square = Rectangle(
|
|
272
|
+
(float(square_x), float(square_y)),
|
|
273
|
+
float(side_length),
|
|
274
|
+
float(side_length),
|
|
275
|
+
fill=False,
|
|
276
|
+
edgecolor='red',
|
|
277
|
+
linewidth=2,
|
|
278
|
+
linestyle='--',
|
|
279
|
+
)
|
|
280
|
+
ax.add_patch(bounding_square)
|
|
281
|
+
|
|
282
|
+
padding = 0.5
|
|
283
|
+
ax.set_xlim(
|
|
284
|
+
float(square_x - Decimal(str(padding))),
|
|
285
|
+
float(square_x + side_length + Decimal(str(padding))))
|
|
286
|
+
ax.set_ylim(float(square_y - Decimal(str(padding))),
|
|
287
|
+
float(square_y + side_length + Decimal(str(padding))))
|
|
288
|
+
ax.set_aspect('equal', adjustable='box')
|
|
289
|
+
ax.axis('off')
|
|
290
|
+
plt.title(f'{num_trees} Trees: {side_length:.12f}')
|
|
291
|
+
plt.show()
|
|
292
|
+
plt.close()
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
# In[ ]:
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
tree_data = []
|
|
299
|
+
current_placed_trees = [] # Initialize an empty list for the first iteration
|
|
300
|
+
|
|
301
|
+
for n in range(200):
|
|
302
|
+
# Pass the current_placed_trees to initialize_trees
|
|
303
|
+
current_placed_trees, side = initialize_trees(n+1, existing_trees=current_placed_trees)
|
|
304
|
+
if (n+1) % 10 == 0:
|
|
305
|
+
plot_results(side, current_placed_trees, n+1)
|
|
306
|
+
for tree in current_placed_trees:
|
|
307
|
+
tree_data.append([tree.center_x, tree.center_y, tree.angle])
|
|
308
|
+
|
|
309
|
+
cols = ['x', 'y', 'deg']
|
|
310
|
+
submission = pd.DataFrame(
|
|
311
|
+
index=index, columns=cols, data=tree_data).rename_axis('id')
|
|
312
|
+
|
|
313
|
+
for col in cols:
|
|
314
|
+
submission[col] = submission[col].astype(float).round(decimals=6)
|
|
315
|
+
|
|
316
|
+
# To ensure everything is kept as a string, prepend an 's'
|
|
317
|
+
for col in submission.columns:
|
|
318
|
+
submission[col] = 's' + submission[col].astype('string')
|
|
319
|
+
submission.to_csv('sample_submission.csv')
|
|
320
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"},"kaggle":{"accelerator":"none","dataSources":[],"dockerImageVersionId":31153,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"\"\"\"\nSanta 2025 Metric\nFor each N-tree configuration, calculate the bounding square divided by N.\nFinal score is the sum of the scores across all configurations.\n\nA scaling factor is used to maintain reasonably precise floating point\ncalculations in the shapley (v 2.1.2) library.\n\"\"\"\n\nfrom decimal import Decimal, getcontext\n\nimport pandas as pd\nfrom shapely import affinity, touches\nfrom shapely.geometry import Polygon\nfrom shapely.ops import unary_union\nfrom shapely.strtree import STRtree\n\n# Decimal precision and scaling factor\ngetcontext().prec = 25\nscale_factor = Decimal('1e18')\n\n\nclass ParticipantVisibleError(Exception):\n pass\n\n\nclass ChristmasTree:\n \"\"\"Represents a single, rotatable Christmas tree of a fixed size.\"\"\"\n\n def __init__(self, center_x='0', center_y='0', angle='0'):\n \"\"\"Initializes the Christmas tree with a specific position and rotation.\"\"\"\n self.center_x = Decimal(center_x)\n self.center_y = Decimal(center_y)\n self.angle = Decimal(angle)\n\n trunk_w = Decimal('0.15')\n trunk_h = Decimal('0.2')\n base_w = Decimal('0.7')\n mid_w = Decimal('0.4')\n top_w = Decimal('0.25')\n tip_y = Decimal('0.8')\n tier_1_y = Decimal('0.5')\n tier_2_y = Decimal('0.25')\n base_y = Decimal('0.0')\n trunk_bottom_y = -trunk_h\n\n initial_polygon = Polygon(\n [\n # Start at Tip\n (Decimal('0.0') * scale_factor, tip_y * scale_factor),\n # Right side - Top Tier\n (top_w / Decimal('2') * scale_factor, tier_1_y * scale_factor),\n (top_w / Decimal('4') * scale_factor, tier_1_y * scale_factor),\n # Right side - Middle Tier\n (mid_w / Decimal('2') * scale_factor, tier_2_y * scale_factor),\n (mid_w / Decimal('4') * scale_factor, tier_2_y * scale_factor),\n # Right side - Bottom Tier\n (base_w / Decimal('2') * scale_factor, base_y * scale_factor),\n # Right Trunk\n (trunk_w / Decimal('2') * scale_factor, base_y * scale_factor),\n (trunk_w / Decimal('2') * scale_factor, trunk_bottom_y * scale_factor),\n # Left Trunk\n (-(trunk_w / Decimal('2')) * scale_factor, trunk_bottom_y * scale_factor),\n (-(trunk_w / Decimal('2')) * scale_factor, base_y * scale_factor),\n # Left side - Bottom Tier\n (-(base_w / Decimal('2')) * scale_factor, base_y * scale_factor),\n # Left side - Middle Tier\n (-(mid_w / Decimal('4')) * scale_factor, tier_2_y * scale_factor),\n (-(mid_w / Decimal('2')) * scale_factor, tier_2_y * scale_factor),\n # Left side - Top Tier\n (-(top_w / Decimal('4')) * scale_factor, tier_1_y * scale_factor),\n (-(top_w / Decimal('2')) * scale_factor, tier_1_y * scale_factor),\n ]\n )\n rotated = affinity.rotate(initial_polygon, float(self.angle), origin=(0, 0))\n self.polygon = affinity.translate(rotated,\n xoff=float(self.center_x * scale_factor),\n yoff=float(self.center_y * scale_factor))\n\n\n\ndef score(solution: pd.DataFrame, submission: pd.DataFrame, row_id_column_name: str) -> float:\n \"\"\"\n For each n-tree configuration, the metric calculates the bounding square\n volume divided by n, summed across all configurations.\n\n This metric uses shapely v2.1.2.\n\n Examples\n -------\n >>> import pandas as pd\n >>> row_id_column_name = 'id'\n >>> data = [['002_0', 's-0.2', 's-0.3', 's335'], ['002_1', 's0.49', 's0.21', 's155']]\n >>> submission = pd.DataFrame(columns=['id', 'x', 'y', 'deg'], data=data)\n >>> solution = submission[['id']].copy()\n >>> score(solution, submission, row_id_column_name)\n 0.877038143325...\n \"\"\"\n\n # remove the leading 's' from submissions\n data_cols = ['x', 'y', 'deg']\n submission = submission.astype(str)\n for c in data_cols:\n if not submission[c].str.startswith('s').all():\n raise ParticipantVisibleError(f'Value(s) in column {c} found without `s` prefix.')\n submission[c] = submission[c].str[1:]\n\n # enforce value limits\n limit = 100\n bad_x = (submission['x'].astype(float) < -limit).any() or \\\n (submission['x'].astype(float) > limit).any()\n bad_y = (submission['y'].astype(float) < -limit).any() or \\\n (submission['y'].astype(float) > limit).any()\n if bad_x or bad_y:\n raise ParticipantVisibleError('x and/or y values outside the bounds of -100 to 100.')\n\n # grouping puzzles to score\n submission['tree_count_group'] = submission['id'].str.split('_').str[0]\n\n total_score = Decimal('0.0')\n for group, df_group in submission.groupby('tree_count_group'):\n num_trees = len(df_group)\n\n # Create tree objects from the submission values\n placed_trees = []\n for _, row in df_group.iterrows():\n placed_trees.append(ChristmasTree(row['x'], row['y'], row['deg']))\n\n # Check for collisions using neighborhood search\n all_polygons = [p.polygon for p in placed_trees]\n r_tree = STRtree(all_polygons)\n\n # Checking for collisions\n for i, poly in enumerate(all_polygons):\n indices = r_tree.query(poly)\n for index in indices:\n if index == i: # don't check against self\n continue\n if poly.intersects(all_polygons[index]) and not poly.touches(all_polygons[index]):\n raise ParticipantVisibleError(f'Overlapping trees in group {group}')\n\n # Calculate score for the group\n bounds = unary_union(all_polygons).bounds\n # Use the largest edge of the bounding rectangle to make a square boulding box\n side_length_scaled = max(bounds[2] - bounds[0], bounds[3] - bounds[1])\n\n group_score = (Decimal(side_length_scaled) ** 2) / (scale_factor**2) / Decimal(num_trees)\n total_score += group_score\n\n return float(total_score)","metadata":{"_uuid":"2a1239f3-55fc-4dbb-9d3a-e90bfffa038c","_cell_guid":"4cf02a6f-b7e9-4360-892d-b1a50793eb12","collapsed":false,"jupyter":{"outputs_hidden":false},"trusted":true},"outputs":[],"execution_count":null}]}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# coding: utf-8
|
|
3
|
+
|
|
4
|
+
# In[ ]:
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
Santa 2025 Metric
|
|
9
|
+
For each N-tree configuration, calculate the bounding square divided by N.
|
|
10
|
+
Final score is the sum of the scores across all configurations.
|
|
11
|
+
|
|
12
|
+
A scaling factor is used to maintain reasonably precise floating point
|
|
13
|
+
calculations in the shapley (v 2.1.2) library.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
from decimal import Decimal, getcontext
|
|
17
|
+
|
|
18
|
+
import pandas as pd
|
|
19
|
+
from shapely import affinity, touches
|
|
20
|
+
from shapely.geometry import Polygon
|
|
21
|
+
from shapely.ops import unary_union
|
|
22
|
+
from shapely.strtree import STRtree
|
|
23
|
+
|
|
24
|
+
# Decimal precision and scaling factor
|
|
25
|
+
getcontext().prec = 25
|
|
26
|
+
scale_factor = Decimal('1e18')
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class ParticipantVisibleError(Exception):
|
|
30
|
+
pass
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class ChristmasTree:
|
|
34
|
+
"""Represents a single, rotatable Christmas tree of a fixed size."""
|
|
35
|
+
|
|
36
|
+
def __init__(self, center_x='0', center_y='0', angle='0'):
|
|
37
|
+
"""Initializes the Christmas tree with a specific position and rotation."""
|
|
38
|
+
self.center_x = Decimal(center_x)
|
|
39
|
+
self.center_y = Decimal(center_y)
|
|
40
|
+
self.angle = Decimal(angle)
|
|
41
|
+
|
|
42
|
+
trunk_w = Decimal('0.15')
|
|
43
|
+
trunk_h = Decimal('0.2')
|
|
44
|
+
base_w = Decimal('0.7')
|
|
45
|
+
mid_w = Decimal('0.4')
|
|
46
|
+
top_w = Decimal('0.25')
|
|
47
|
+
tip_y = Decimal('0.8')
|
|
48
|
+
tier_1_y = Decimal('0.5')
|
|
49
|
+
tier_2_y = Decimal('0.25')
|
|
50
|
+
base_y = Decimal('0.0')
|
|
51
|
+
trunk_bottom_y = -trunk_h
|
|
52
|
+
|
|
53
|
+
initial_polygon = Polygon(
|
|
54
|
+
[
|
|
55
|
+
# Start at Tip
|
|
56
|
+
(Decimal('0.0') * scale_factor, tip_y * scale_factor),
|
|
57
|
+
# Right side - Top Tier
|
|
58
|
+
(top_w / Decimal('2') * scale_factor, tier_1_y * scale_factor),
|
|
59
|
+
(top_w / Decimal('4') * scale_factor, tier_1_y * scale_factor),
|
|
60
|
+
# Right side - Middle Tier
|
|
61
|
+
(mid_w / Decimal('2') * scale_factor, tier_2_y * scale_factor),
|
|
62
|
+
(mid_w / Decimal('4') * scale_factor, tier_2_y * scale_factor),
|
|
63
|
+
# Right side - Bottom Tier
|
|
64
|
+
(base_w / Decimal('2') * scale_factor, base_y * scale_factor),
|
|
65
|
+
# Right Trunk
|
|
66
|
+
(trunk_w / Decimal('2') * scale_factor, base_y * scale_factor),
|
|
67
|
+
(trunk_w / Decimal('2') * scale_factor, trunk_bottom_y * scale_factor),
|
|
68
|
+
# Left Trunk
|
|
69
|
+
(-(trunk_w / Decimal('2')) * scale_factor, trunk_bottom_y * scale_factor),
|
|
70
|
+
(-(trunk_w / Decimal('2')) * scale_factor, base_y * scale_factor),
|
|
71
|
+
# Left side - Bottom Tier
|
|
72
|
+
(-(base_w / Decimal('2')) * scale_factor, base_y * scale_factor),
|
|
73
|
+
# Left side - Middle Tier
|
|
74
|
+
(-(mid_w / Decimal('4')) * scale_factor, tier_2_y * scale_factor),
|
|
75
|
+
(-(mid_w / Decimal('2')) * scale_factor, tier_2_y * scale_factor),
|
|
76
|
+
# Left side - Top Tier
|
|
77
|
+
(-(top_w / Decimal('4')) * scale_factor, tier_1_y * scale_factor),
|
|
78
|
+
(-(top_w / Decimal('2')) * scale_factor, tier_1_y * scale_factor),
|
|
79
|
+
]
|
|
80
|
+
)
|
|
81
|
+
rotated = affinity.rotate(initial_polygon, float(self.angle), origin=(0, 0))
|
|
82
|
+
self.polygon = affinity.translate(rotated,
|
|
83
|
+
xoff=float(self.center_x * scale_factor),
|
|
84
|
+
yoff=float(self.center_y * scale_factor))
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def score(solution: pd.DataFrame, submission: pd.DataFrame, row_id_column_name: str) -> float:
|
|
89
|
+
"""
|
|
90
|
+
For each n-tree configuration, the metric calculates the bounding square
|
|
91
|
+
volume divided by n, summed across all configurations.
|
|
92
|
+
|
|
93
|
+
This metric uses shapely v2.1.2.
|
|
94
|
+
|
|
95
|
+
Examples
|
|
96
|
+
-------
|
|
97
|
+
>>> import pandas as pd
|
|
98
|
+
>>> row_id_column_name = 'id'
|
|
99
|
+
>>> data = [['002_0', 's-0.2', 's-0.3', 's335'], ['002_1', 's0.49', 's0.21', 's155']]
|
|
100
|
+
>>> submission = pd.DataFrame(columns=['id', 'x', 'y', 'deg'], data=data)
|
|
101
|
+
>>> solution = submission[['id']].copy()
|
|
102
|
+
>>> score(solution, submission, row_id_column_name)
|
|
103
|
+
0.877038143325...
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
# remove the leading 's' from submissions
|
|
107
|
+
data_cols = ['x', 'y', 'deg']
|
|
108
|
+
submission = submission.astype(str)
|
|
109
|
+
for c in data_cols:
|
|
110
|
+
if not submission[c].str.startswith('s').all():
|
|
111
|
+
raise ParticipantVisibleError(f'Value(s) in column {c} found without `s` prefix.')
|
|
112
|
+
submission[c] = submission[c].str[1:]
|
|
113
|
+
|
|
114
|
+
# enforce value limits
|
|
115
|
+
limit = 100
|
|
116
|
+
bad_x = (submission['x'].astype(float) < -limit).any() or \
|
|
117
|
+
(submission['x'].astype(float) > limit).any()
|
|
118
|
+
bad_y = (submission['y'].astype(float) < -limit).any() or \
|
|
119
|
+
(submission['y'].astype(float) > limit).any()
|
|
120
|
+
if bad_x or bad_y:
|
|
121
|
+
raise ParticipantVisibleError('x and/or y values outside the bounds of -100 to 100.')
|
|
122
|
+
|
|
123
|
+
# grouping puzzles to score
|
|
124
|
+
submission['tree_count_group'] = submission['id'].str.split('_').str[0]
|
|
125
|
+
|
|
126
|
+
total_score = Decimal('0.0')
|
|
127
|
+
for group, df_group in submission.groupby('tree_count_group'):
|
|
128
|
+
num_trees = len(df_group)
|
|
129
|
+
|
|
130
|
+
# Create tree objects from the submission values
|
|
131
|
+
placed_trees = []
|
|
132
|
+
for _, row in df_group.iterrows():
|
|
133
|
+
placed_trees.append(ChristmasTree(row['x'], row['y'], row['deg']))
|
|
134
|
+
|
|
135
|
+
# Check for collisions using neighborhood search
|
|
136
|
+
all_polygons = [p.polygon for p in placed_trees]
|
|
137
|
+
r_tree = STRtree(all_polygons)
|
|
138
|
+
|
|
139
|
+
# Checking for collisions
|
|
140
|
+
for i, poly in enumerate(all_polygons):
|
|
141
|
+
indices = r_tree.query(poly)
|
|
142
|
+
for index in indices:
|
|
143
|
+
if index == i: # don't check against self
|
|
144
|
+
continue
|
|
145
|
+
if poly.intersects(all_polygons[index]) and not poly.touches(all_polygons[index]):
|
|
146
|
+
raise ParticipantVisibleError(f'Overlapping trees in group {group}')
|
|
147
|
+
|
|
148
|
+
# Calculate score for the group
|
|
149
|
+
bounds = unary_union(all_polygons).bounds
|
|
150
|
+
# Use the largest edge of the bounding rectangle to make a square boulding box
|
|
151
|
+
side_length_scaled = max(bounds[2] - bounds[0], bounds[3] - bounds[1])
|
|
152
|
+
|
|
153
|
+
group_score = (Decimal(side_length_scaled) ** 2) / (scale_factor**2) / Decimal(num_trees)
|
|
154
|
+
total_score += group_score
|
|
155
|
+
|
|
156
|
+
return float(total_score)
|
|
157
|
+
|
|
Binary file
|