--[[ .____ ________ ___. _____ __ | | __ _______ \_____ \\_ |___/ ____\_ __ ______ ____ _____ _/ |_ ___________ | | | | \__ \ / | \| __ \ __\ | \/ ___// ___\\__ \\ __\/ _ \_ __ \ | |___| | // __ \_/ | \ \_\ \ | | | /\___ \\ \___ / __ \| | ( <_> ) | \/ |_______ \____/(____ /\_______ /___ /__| |____//____ >\___ >____ /__| \____/|__| \/ \/ \/ \/ \/ \/ \/ \_Welcome to LuaObfuscator.com (Alpha 0.10.9) ~ Much Love, Ferib ]]-- local v0=game:GetService("Players");local v1=game:GetService("TweenService");local v2=game:GetService("Workspace");local v3=game:GetService("UserInputService");local v4=game:GetService("HttpService");local v5=game:GetService("SoundService");local v6=bit32;local v7=v0.LocalPlayer;local v8="SoPeRa_Builds";local v9=v8 .. "/" ;local v10=v3.TouchEnabled and not v3.KeyboardEnabled ;local v11={guiTransparency=0.15 + 0 ,uiScale=(v10 and (1553.72 -(810 + 743))) or (2 -1) ,mobileMode=v10,windowPosX= -(3 -2),windowPosY= -1,windowWidth= -(1 + 0),windowHeight= -(2 -1),uiMinimized=false,primaryColor=Color3.fromRGB(255,255,193 + 62 ),secondaryColor=Color3.fromRGB(120,120,120)};local v12={BG=Color3.fromRGB(8,8,497 -(457 + 32) ),Panel=Color3.fromRGB(18,8 + 10 ,18),PanelSoft=Color3.fromRGB(14,1416 -(832 + 570) ,14),PanelElevated=Color3.fromRGB(23 + 1 ,7 + 17 ,84 -60 ),Border=Color3.fromRGB(123 + 132 ,1051 -(588 + 208) ,687 -432 ),Text=Color3.fromRGB(2055 -(884 + 916) ,533 -278 ,255),Muted=Color3.fromRGB(82 + 58 ,793 -(232 + 421) ,2029 -(1569 + 320) ),ActiveBG=Color3.fromRGB(63 + 192 ,255,49 + 206 ),ActiveText=Color3.fromRGB(0,0,0),Green=Color3.fromRGB(269 -189 ,200,685 -(316 + 289) ),Red=Color3.fromRGB(523 -323 ,80,4 + 76 ),AccentSoft=Color3.fromRGB(180,1633 -(666 + 787) ,605 -(360 + 65) ),AccentGlow=Color3.fromRGB(235,220 + 15 ,489 -(79 + 175) )};local v13=nil;local function v14(v86) if v13 then v13.Text=v86;end end local function v15(v87) return tostring(v87 or "" ):gsub("^%s*(.-)%s*$","%1");end local function v16(v88) local v89=0 -0 ;local v90;while true do if (v89==1) then for v1061 in v88:gmatch("[^,%s]+") do local v1062=0;local v1063;while true do if (v1062==(0 + 0)) then v1063=tonumber(v1061);if v1063 then table.insert(v90,v1063);end break;end end end return v90;end if (v89==(0 -0)) then if (type(v88)~="string") then return {};end v90={};v89=1;end end end local function v17(v91) return (v91:match("^%a:[/\\]")~=nil) or (v91:sub(1 -0 ,901 -(503 + 396) )=="\\\\") ;end local function v18(v92) local v93=181 -(92 + 89) ;while true do if (v93==(0 -0)) then v92=v15(v92);return (v92:sub(1 + 0 ,1 + 0 )=="/") or v17(v92) ;end end end local function v19(v94) local v95=0 -0 ;local v96;while true do if (v95==(0 + 0)) then v96=tostring(v94 or "" ):match("([^/\\]+)$") or tostring(v94 or "" ) ;return (v96:gsub("%.[^%.]+$",""));end end end local function v20(v97,v98) local v99=0;local v100;while true do if (v99==(2 -1)) then return v97 .. v100 .. v98 ;end if (v99==0) then if (v97=="") then return v98;end v100=(v97:match("[/\\]$") and "") or "/" ;v99=1 + 0 ;end end end local function v21(v101) local v102=v15(v101);if (v102=="") then return nil;end if isfolder(v102) then return v102;end return v102:match("^(.*)[/\\][^/\\]+$");end local function v22() if not isfolder(v8) then makefolder(v8);end end local function v23(v103) local v104=v15(v103);if (v104=="") then return nil,"Select a converter file";end v104=v104:gsub('^"(.*)"$',"%1");if isfile(v104) then return v104;end local v105={};if v18(v104) then v105[ #v105 + 1 + 0 ]=v104;else local v970=0 -0 ;while true do if (v970==(0 + 0)) then v105[ #v105 + 1 ]=v9 .. v104 ;v105[ #v105 + (1 -0) ]=v104;break;end end end for v699,v700 in ipairs(v105) do if isfile(v700) then return v700;end end return nil,"File not found: " .. v104 ;end local function v24(v106,v107,v108) local v109=1244 -(485 + 759) ;while true do if (v109==0) then if ((v106>(2 -1)) or (v107>1) or (v108>(1190 -(442 + 747)))) then v106,v107,v108=v106/(1390 -(832 + 303)) ,v107/(1201 -(88 + 858)) ,v108/(78 + 177) ;end return string.format("%.4f,%.4f,%.4f",math.clamp(v106,0 + 0 ,1 + 0 ),math.clamp(v107,789 -(766 + 23) ,1),math.clamp(v108,0 -0 ,1 -0 ));end end end local function v25(v110) local v111=0 -0 ;local v112;local v113;local v114;while true do if (v111==(0 -0)) then if (type(v110)~="table") then return "1.000000, 1.000000, 1.000000";end v112=(tonumber(v110[1074 -(1036 + 37) ]) or (181 + 74))/(496 -241) ;v111=1;end if (v111==1) then v113=(tonumber(v110[2]) or (201 + 54))/255 ;v114=(tonumber(v110[3]) or (1735 -(641 + 839)))/255 ;v111=915 -(910 + 3) ;end if (v111==2) then return string.format("%.6f, %.6f, %.6f",math.clamp(v112,0 -0 ,1),math.clamp(v113,1684 -(1466 + 218) ,1 + 0 ),math.clamp(v114,1148 -(556 + 592) ,1 + 0 ));end end end local function v26(v115,v116,v117,v118,v119) local v120=808 -(329 + 479) ;local v121;local v122;local v123;local v124;while true do if (v120==(855 -(174 + 680))) then return {ShowShadow=true,CanCollide=true,Color=v117 or v24(1,3 -2 ,1) ,Anchored=true,BoolValues={},Rotation=string.format("%.6f, %.6f, %.6f",math.deg(v121),math.deg(v122),math.deg(v123)),Transparency=v119 or (0 -0) ,Position=string.format("%.6f, %.6f, %.6f",v124.X,v124.Y,v124.Z),ID=v118 or (0 + 0) ,NumberValues={},Size=string.format("%.6f, %.6f, %.6f",v116.X,v116.Y,v116.Z)};end if (v120==0) then v121,v122,v123=v115:ToEulerAnglesXYZ();v124=v115.Position;v120=740 -(396 + 343) ;end end end local function v27(v125,v126,v127) local v128=v15(v125);if (v128=="") then return nil,"Output name is empty";end if ((type(v127)~="table") or ( #v127==(0 + 0))) then return nil,"Nothing to convert";end local v129={};local v130={};for v701,v702 in ipairs(v127) do if (type(v702)=="table") then local v1000=1477 -(29 + 1448) ;local v1001;while true do if (v1000==(1389 -(135 + 1254))) then v1001=table.concat({tostring(v702.Position or "" ),tostring(v702.Rotation or "" ),tostring(v702.Size or "" ),tostring(v702.Color or "" ),tostring(v702.Transparency or (1527 -(389 + 1138)) )},"|");if not v130[v1001] then local v1423=574 -(102 + 472) ;while true do if (v1423==(0 + 0)) then v130[v1001]=true;v129[ #v129 + 1 + 0 ]=v702;break;end end end break;end end end end if ( #v129==0) then return nil,"Nothing to convert";end v22();local v131=v9 .. v128 .. ".Build" ;writefile(v131,v4:JSONEncode({{v126},{[v126]=v129}}));return v131,nil;end local function v28(v132) local v133=0 + 0 ;local v134;local v135;local v136;local v137;while true do if (v133==2) then v136=nil;function v136(v1064,v1065) return ((v1064v1067) and v1066) or v1067 ;end v133=1863 -(821 + 1038) ;end if (v133==1) then v135=v132.data;if (type(v135)~="table") then return nil;end v133=4 -2 ;end if (v133==4) then if (((v134==0) or (v134==2)) and ( #v135>=(1 + 3))) then return {v136(v135[1],v135[3]),v136(v135[2],v135[9 -5 ]),v137(v135[1 + 0 ],v135[1 + 2 ]),v137(v135[2 -0 ],v135[308 -(300 + 4) ])};elseif ((v134==1) and ( #v135>=5)) then local v1403=0 + 0 ;local v1404;local v1405;local v1406;local v1407;local v1408;local v1409;local v1410;while true do if ((5 -3)==v1403) then v1408=math.rad(v135[367 -(112 + 250) ]);v1409=math.sqrt(((v1406 * math.cos(v1408))^2) + ((v1407 * math.sin(v1408))^2) );v1403=2 + 1 ;end if (v1403==(7 -4)) then v1410=math.sqrt(((v1406 * math.sin(v1408))^(2 + 0)) + ((v1407 * math.cos(v1408))^2) );return {v1404-v1409 ,v1405-v1410 ,v1404 + v1409 ,v1405 + v1410 };end if (v1403==(1414 -(1001 + 413))) then v1404=(v135[1] + v135[6 -3 ])/(884 -(244 + 638)) ;v1405=(v135[695 -(627 + 66) ] + v135[4])/(5 -3) ;v1403=1;end if (v1403==1) then v1406=math.abs(v135[605 -(512 + 90) ] -v135[1] )/2 ;v1407=math.abs(v135[1910 -(1665 + 241) ] -v135[719 -(373 + 344) ] )/(1 + 1) ;v1403=1 + 1 ;end end elseif ((v134==(7 -4)) and ( #v135>=(4 -1))) then return {v135[1100 -(35 + 1064) ] -v135[3] ,v135[2] -v135[6 -3 ] ,v135[1 + 0 ] + v135[1239 -(298 + 938) ] ,v135[1261 -(233 + 1026) ] + v135[1669 -(636 + 1030) ] };elseif ((v134==(3 + 1)) and ( #v135>=6)) then local v1563=0 + 0 ;local v1564;local v1565;local v1566;local v1567;local v1568;local v1569;while true do if (v1563==(0 + 0)) then v1564={v135[1 + 0 ],v135[1 + 2 ],v135[5]};v1565={v135[7 -5 ],v135[4],v135[6]};v1563=1;end if (v1563==1) then v1566,v1567=v1564[1369 -(34 + 1334) ],v1564[1];v1568,v1569=v1565[1 + 0 ],v1565[1 + 0 ];v1563=1285 -(1035 + 248) ;end if (v1563==(23 -(20 + 1))) then for v1647=2,3 do v1566=v136(v1566,v1564[v1647]);v1567=v137(v1567,v1564[v1647]);v1568=v136(v1568,v1565[v1647]);v1569=v137(v1569,v1565[v1647]);end return {v1566,v1568,v1567,v1569};end end elseif ((v134==(690 -(314 + 371))) and ( #v135>=(13 -9))) then local v1604=tonumber(v135[5]) or (969 -(478 + 490)) ;local v1605=v1604/2 ;return {v136(v135[1],v135[1175 -(786 + 386) ]) -v1605 ,v136(v135[2],v135[1383 -(1055 + 324) ]) -v1605 ,v137(v135[1 + 0 ],v135[3]) + v1605 ,v137(v135[1 + 1 ],v135[15 -11 ]) + v1605 };end return nil;end if (v133==(0 -0)) then if (type(v132)~="table") then return nil;end v134=tonumber(v132.type) or -(2 -1) ;v133=2 -1 ;end end end local function v29(v138,v139) return not ((v138[2 + 1 ]<=v139[3 -2 ]) or (v139[10 -7 ]<=v138[1]) or (v138[4 + 0 ]<=v139[2]) or (v139[4]<=v138[2]));end local function v30(v140,v141) local v142=0 -0 ;local v143;local v144;local v145;while true do if ((690 -(364 + 324))==v142) then return v145;end if (v142==(0 -0)) then v143=v141;v144={};v142=2 -1 ;end if (v142==(1 + 0)) then v145={};for v1068,v1069 in ipairs(v140) do local v1070=0;local v1071;while true do if (v1070==0) then v1071=v28(v1069);if not v1071 then v145[v1068]=0 -0 ;else local v1477= -v143;for v1529,v1530 in ipairs(v144) do if v29(v1071,v1530[1 -0 ]) then if (v1530[2]>v1477) then v1477=v1530[5 -3 ];end end end local v1478=v1477 + v143 ;v145[v1068]=v1478;v144[ #v144 + (1269 -(1249 + 19)) ]={v1071,v1478};end break;end end end v142=2;end end end local function v31(v146,v147,v148,v149,v150,v151,v152,v153,v154,v155) return {ShowShadow=true,CanCollide=true,Color=v153,Anchored=true,BoolValues={},Rotation=string.format("0.000, 0.000, %.3f", -v152),Transparency=v154,Position=string.format("%.6f, %.6f, %.6f",v146, -v147,v148 + (v151/(7 -5)) ),ID=v155,NumberValues={},Size=string.format("%.6f, %.6f, %.6f",v149,v150,v151)};end local function v32(v156) local v157,v158=math.huge,math.huge;local v159,v160= -math.huge, -math.huge;local function v161(v703,v704) local v705=1086 -(686 + 400) ;while true do if (v705==0) then v703,v704=tonumber(v703),tonumber(v704);if ( not v703 or not v704) then return;end v705=1 + 0 ;end if (v705==2) then v159=math.max(v159,v703);v160=math.max(v160,v704);break;end if (v705==(230 -(73 + 156))) then v157=math.min(v157,v703);v158=math.min(v158,v704);v705=2;end end end for v706,v707 in ipairs(v156) do if ((type(v707)=="table") and (type(v707.data)=="table")) then local v1003=0 + 0 ;local v1004;local v1005;while true do if (v1003==0) then v1004=tonumber(v707.type) or -(812 -(721 + 90)) ;v1005=v707.data;v1003=1 + 0 ;end if ((3 -2)==v1003) then if (((v1004==(470 -(224 + 246))) or (v1004==1) or (v1004==(2 -0))) and ( #v1005>=(6 -2))) then v161(v1005[1 + 0 ],v1005[2]);v161(v1005[1 + 2 ],v1005[3 + 1 ]);elseif ((v1004==3) and ( #v1005>=3)) then local v1531=0 -0 ;local v1532;local v1533;local v1534;while true do if (v1531==(0 -0)) then v1532,v1533,v1534=tonumber(v1005[514 -(203 + 310) ]),tonumber(v1005[1995 -(1238 + 755) ]),tonumber(v1005[1 + 2 ]) or (1534 -(709 + 825)) ;if (v1532 and v1533) then local v1648=0 -0 ;while true do if (v1648==(0 -0)) then v161(v1532-v1534 ,v1533-v1534 );v161(v1532 + v1534 ,v1533 + v1534 );break;end end end break;end end elseif ((v1004==(868 -(196 + 668))) and ( #v1005>=6)) then local v1583=0;while true do if (v1583==(3 -2)) then v161(v1005[10 -5 ],v1005[839 -(171 + 662) ]);break;end if (v1583==(93 -(4 + 89))) then v161(v1005[3 -2 ],v1005[2]);v161(v1005[2 + 1 ],v1005[17 -13 ]);v1583=1 + 0 ;end end elseif ((v1004==5) and ( #v1005>=(1490 -(35 + 1451)))) then local v1632=1453 -(28 + 1425) ;while true do if (v1632==(1993 -(941 + 1052))) then v161(v1005[1 + 0 ],v1005[2]);v161(v1005[1517 -(822 + 692) ],v1005[5 -1 ]);break;end end end break;end end end end if (v157==math.huge) then return nil;end return v157,v158,v159,v160;end local function v33(v162,v163,v164,v165,v166,v167) local v168=0;local v169;local v170;local v171;local v172;local v173;local v174;while true do if (v168==(1 + 0)) then if ((v163<=(297 -(45 + 252))) or (v164<=0)) then return nil,nil,"Scale/thickness must be > 0";end v165=tostring(v165 or "PlasticBlock" );v166=tonumber(v166) or 0 ;v167=tonumber(v167) or 0 ;v168=2;end if (3==v168) then v174=1;for v1072,v1073 in ipairs(v169) do if (type(v1073)~="table") then continue;end local v1074=tonumber(v1073.type) or -(1 + 0) ;local v1075=v1073.data;local v1076=v1073.color;if (type(v1075)~="table") then continue;end local v1077=v25(v1076);local v1078=v172[v1072] or (0 + 0) ;if ((v1074==(2 -1)) and ( #v1075>=(438 -(114 + 319)))) then local v1339=0;local v1340;local v1341;local v1342;local v1343;local v1344;local v1345;local v1346;local v1347;local v1348;while true do if (v1339==(0 -0)) then v1340,v1341,v1342,v1343,v1344=v1075[1 -0 ],v1075[2],v1075[2 + 1 ],v1075[5 -1 ],v1075[10 -5 ];v1345=((v1340 + v1342)/(1965 -(556 + 1407))) * v170 ;v1339=1;end if (v1339==(1208 -(741 + 465))) then v1348=math.abs(v1343-v1341 ) * v171 ;v173[ #v173 + 1 ]=v31(v1345,v1346,v1078,v1347,v1348,v164,tonumber(v1344) or (465 -(170 + 295)) ,v1077,0 + 0 ,v174);v1339=3 + 0 ;end if ((7 -4)==v1339) then v174=v174 + 1 + 0 ;break;end if (v1339==(1 + 0)) then v1346=((v1341 + v1343)/(2 + 0)) * v171 ;v1347=math.abs(v1342-v1340 ) * v170 ;v1339=1232 -(957 + 273) ;end end elseif (((v1074==(0 + 0)) or (v1074==(1 + 1))) and ( #v1075>=(15 -11))) then local v1424=0 -0 ;local v1425;local v1426;local v1427;local v1428;local v1429;local v1430;local v1431;local v1432;while true do if (v1424==(0 -0)) then v1425,v1426,v1427,v1428=v1075[4 -3 ],v1075[2],v1075[1783 -(389 + 1391) ],v1075[4];v1429=((v1425 + v1427)/(2 + 0)) * v170 ;v1424=1;end if (v1424==2) then v1432=math.abs(v1428-v1426 ) * v171 ;v173[ #v173 + 1 + 0 ]=v31(v1429,v1430,v1078,v1431,v1432,v164,0 -0 ,v1077,951 -(783 + 168) ,v174);v1424=3;end if ((9 -6)==v1424) then v174=v174 + 1 + 0 ;break;end if ((312 -(309 + 2))==v1424) then v1430=((v1426 + v1428)/(5 -3)) * v171 ;v1431=math.abs(v1427-v1425 ) * v170 ;v1424=2;end end elseif ((v1074==3) and ( #v1075>=(1215 -(1090 + 122)))) then local v1535=0 + 0 ;local v1536;local v1537;local v1538;local v1539;local v1540;while true do if (v1535==2) then v174=v174 + 1 ;break;end if (v1535==1) then v1540=v1538 * (6 -4) * v171 ;v173[ #v173 + 1 ]=v31(v1536 * v170 ,v1537 * v171 ,v1078,v1539,v1540,v164,0 + 0 ,v1077,1118 -(628 + 490) ,v174);v1535=1 + 1 ;end if ((0 -0)==v1535) then v1536,v1537,v1538=v1075[4 -3 ],v1075[776 -(431 + 343) ],v1075[5 -2 ];v1539=v1538 * (5 -3) * v170 ;v1535=1 + 0 ;end end elseif ((v1074==4) and ( #v1075>=6)) then local v1584=0;local v1585;local v1586;local v1587;local v1588;local v1589;local v1590;local v1591;local v1592;local v1593;local v1594;while true do if (v1584==(0 + 0)) then v1585={v1075[16 -(6 + 9) ],v1075[3],v1075[3 + 2 ]};v1586={v1075[2],v1075[4 -0 ],v1075[6]};v1587=((v1585[1318 -(486 + 831) ] + v1585[5 -3 ] + v1585[3])/(10 -7)) * v170 ;v1588=((v1586[1 + 0 ] + v1586[6 -4 ] + v1586[1266 -(668 + 595) ])/(3 + 0)) * v171 ;v1584=1;end if (v1584==1) then v1589=math.min(v1585[1],v1585[2],v1585[1 + 2 ]);v1590=math.max(v1585[2 -1 ],v1585[2],v1585[293 -(23 + 267) ]);v1591=math.min(v1586[1945 -(1129 + 815) ],v1586[389 -(371 + 16) ],v1586[1753 -(1326 + 424) ]);v1592=math.max(v1586[1],v1586[3 -1 ],v1586[10 -7 ]);v1584=120 -(88 + 30) ;end if (v1584==(773 -(720 + 51))) then v1593=(v1590-v1589) * v170 ;v1594=(v1592-v1591) * v171 ;v173[ #v173 + (2 -1) ]=v31(v1587,v1588,v1078,v1593,v1594,v164,1776 -(421 + 1355) ,v1077,0,v174);v174=v174 + 1 ;break;end end elseif ((v1074==5) and ( #v1075>=(6 -2))) then local v1633=0 + 0 ;local v1634;local v1635;local v1636;local v1637;local v1638;local v1639;local v1640;local v1641;local v1642;local v1643;local v1644;while true do if (v1633==1) then v1639=(v1636-v1634) * v170 ;v1640=(v1637-v1635) * v171 ;v1633=1085 -(286 + 797) ;end if (v1633==(10 -7)) then v1643=math.sqrt((v1639^(2 -0)) + (v1640^(441 -(397 + 42))) );v1644=math.deg(math.atan2( -v1640,v1639));v1633=2 + 2 ;end if (v1633==0) then v1634,v1635,v1636,v1637=v1075[1],v1075[802 -(24 + 776) ],v1075[3],v1075[5 -1 ];v1638=tonumber(v1075[790 -(222 + 563) ]) or (1 -0) ;v1633=1;end if (v1633==(2 + 0)) then v1641=((v1634 + v1636)/2) * v170 ;v1642=((v1635 + v1637)/(192 -(23 + 167))) * v171 ;v1633=1801 -(690 + 1108) ;end if (v1633==(2 + 2)) then v173[ #v173 + 1 + 0 ]=v31(v1641,v1642,v1078,v1643,v1638 * math.min(v170,v171) ,v164, -v1644,v1077,848 -(40 + 808) ,v174);v174=v174 + 1 ;break;end end end end if ( #v173==0) then return nil,nil,"Image produced no blocks";end return v165,v173,nil;end if (v168==(0 + 0)) then v169=v4:JSONDecode(v162);if (type(v169)~="table") then return nil,nil,"Invalid JSON";end v163=tonumber(v163) or 0.035 ;v164=tonumber(v164) or 0.001 ;v168=1;end if (v168==(7 -5)) then v170,v171=v163,v163;if ((v166>(0 + 0)) or (v167>(0 + 0))) then local v1274=0;local v1275;local v1276;local v1277;local v1278;while true do if (v1274==(0 + 0)) then v1275,v1276,v1277,v1278=v32(v169);if v1275 then local v1541=0;local v1542;local v1543;while true do if ((572 -(47 + 524))==v1541) then if (v166>(0 + 0)) then v170=v166/v1542 ;end if (v167>(0 -0)) then v171=v167/v1543 ;end break;end if (v1541==(0 -0)) then v1542=math.max(0.001 -0 ,v1277-v1275 );v1543=math.max(1726.001 -(1165 + 561) ,v1278-v1276 );v1541=1 + 0 ;end end end break;end end end v172=v30(v169,v164);v173={};v168=9 -6 ;end end end local function v34(v175,v176,v177,v178,v179,v180,v181) local v182=0 + 0 ;local v183;local v184;local v185;local v186;local v187;while true do if (v182==(479 -(341 + 138))) then v183,v184,v185=v33(v175,v177,v178,v179,v180,v181);if not v183 then return nil,v185;end v182=1 + 0 ;end if (v182==1) then v186=tostring(v176 or "" ):gsub("^%s*(.-)%s*$","%1");if (v186=="") then return nil,"Output name is empty";end v182=3 -1 ;end if (v182==2) then v22();v187=v9 .. v186 .. ".Build" ;v182=329 -(89 + 237) ;end if ((9 -6)==v182) then writefile(v187,v4:JSONEncode({{v183},{[v183]=v184}}));return v187,nil;end end end local function v35(v188,v189) local v190=881 -(581 + 300) ;local v191;local v192;local v193;while true do if (v190==(1221 -(855 + 365))) then v193=nil;for v1079 in v192:gmatch("[^\r\n]+") do local v1080=0 -0 ;local v1081;local v1082;while true do if (v1080==(0 + 0)) then v1081,v1082=v1079:match("^%s*(%S+)%s*(.-)%s*$");if (v1081=="newmtl") then v193=v15(v1082);elseif ((v1081=="Kd") and v193) then local v1575=1235 -(1030 + 205) ;local v1576;while true do if (v1575==(0 + 0)) then v1576=v16(v1082);if ( #v1576>=(3 + 0)) then v191[v193]=v24(v1576[287 -(156 + 130) ],v1576[2],v1576[6 -3 ]);end break;end end elseif ((v1081=="mtllib") and (v189~="")) then local v1610=0 -0 ;local v1611;while true do if (v1610==(0 -0)) then v1611=v20(v189,v15(v1082));if isfile(v1611) then local v1664=v35(v1611,v189);for v1670,v1671 in pairs(v1664) do v191[v1670]=v1671;end end break;end end end break;end end end v190=1 + 1 ;end if (v190==2) then return v191;end if (v190==(0 + 0)) then v191={};v192=readfile(v188);v190=1;end end end local function v36(v194,v195) local v196=v195:match("^(.*)[/\\]") or "" ;local v197={};local v198={};local v199={};local v200=nil;for v708 in v194:gmatch("[^\r\n]+") do local v709,v710=v708:match("^%s*(%S+)%s*(.-)%s*$");if (v709=="mtllib") then local v1006=69 -(10 + 59) ;local v1007;local v1008;while true do if (v1006==0) then v1007=v15(v710);v1008=(v18(v1007) and v1007) or v20(v196,v1007) ;v1006=1;end if (v1006==(1 + 0)) then if isfile(v1008) then local v1433=0 -0 ;local v1434;while true do if (v1433==0) then v1434=v35(v1008,v196);for v1595,v1596 in pairs(v1434) do v197[v1595]=v1596;end break;end end end break;end end elseif (v709=="usemtl") then v200=v15(v710);elseif (v709=="v") then local v1411=1163 -(671 + 492) ;local v1412;while true do if (v1411==0) then v1412=v16(v710);if ( #v1412>=(3 + 0)) then local v1598={pos=Vector3.new(v1412[1],v1412[2],v1412[3])};if ( #v1412>=(1221 -(369 + 846))) then v1598.color={v1412[4 + 0 ],v1412[5],v1412[9 -3 ]};end v198[ #v198 + (204 -(11 + 192)) ]=v1598;end break;end end elseif (v709=="f") then local v1487=0;local v1488;while true do if ((0 + 0)==v1487) then v1488={};for v1612 in v710:gmatch("%S+") do local v1613=175 -(135 + 40) ;local v1614;while true do if (v1613==0) then v1614=tonumber(v1612:match("([^/]+)"));if v1614 then local v1665=0 -0 ;while true do if (v1665==(0 + 0)) then if (v1614<(0 -0)) then v1614= #v198 + v1614 + 1 ;end if v198[v1614] then v1488[ #v1488 + (1 -0) ]=v1614;end break;end end end break;end end end v1487=1;end if (v1487==(177 -(50 + 126))) then if ( #v1488>=(8 -5)) then v199[ #v199 + 1 ]={indices=v1488,material=v200};end break;end end end end return {vertices=v198,faces=v199,mtlColors=v197};end local function v37(v201,v202,v203,v204) local v205=0;local v206;local v207;local v208;local v209;while true do if (v205==2) then return v24(49 + 171 ,220,1633 -(1233 + 180) );end if (v205==0) then if (v203 and v204[v203]) then return v204[v203];end v206,v207,v208,v209=969 -(522 + 447) ,1421 -(107 + 1314) ,0 + 0 ,0 -0 ;v205=1 + 0 ;end if (v205==1) then for v1083,v1084 in ipairs(v201) do local v1085=v202[v1084];if (v1085 and v1085.color) then local v1349=0 -0 ;while true do if (v1349==(0 -0)) then v206=v206 + v1085.color[1911 -(716 + 1194) ] ;v207=v207 + v1085.color[2] ;v1349=1;end if (v1349==1) then v208=v208 + v1085.color[3] ;v209=v209 + 1 + 0 ;break;end end end end if (v209>0) then return v24(v206/v209 ,v207/v209 ,v208/v209 );end v205=1 + 1 ;end end end local function v38(v210) local v211=0;local v212;local v213;local v214;local v215;while true do if (1==v211) then for v1086,v1087 in ipairs(v210) do local v1088=503 -(74 + 429) ;while true do if (v1088==(0 -0)) then v212=Vector3.new(math.min(v212.X,v1087.X),math.min(v212.Y,v1087.Y),math.min(v212.Z,v1087.Z));v213=Vector3.new(math.max(v213.X,v1087.X),math.max(v213.Y,v1087.Y),math.max(v213.Z,v1087.Z));break;end end end v214=(v212 + v213) * (0.5 + 0) ;v211=4 -2 ;end if (v211==(0 + 0)) then v212=Vector3.new(math.huge,math.huge,math.huge);v213=Vector3.new( -math.huge, -math.huge, -math.huge);v211=2 -1 ;end if (v211==3) then return v215,v214;end if (v211==2) then v215={};for v1089,v1090 in ipairs(v210) do v215[v1089]=v1090-v214 ;end v211=3;end end end local function v39(v216,v217,v218,v219,v220) if ( #v216<(7 -4)) then return nil;end local v221,v222=v38(v216);local v223={};for v711,v712 in ipairs(v221) do v223[v711]=Vector3.new(v712.X * v217 ,v712.Y * v217 ,v712.Z * v217 );end local v224=nil;for v714=435 -(279 + 154) , #v223-1 do local v715=(v223[v714] -v223[1]):Cross(v223[v714 + (779 -(454 + 324)) ] -v223[1 + 0 ] );if (v715.Magnitude>(17.000009999999747 -(12 + 5))) then v224=v715.Unit;break;end end if not v224 then return nil;end local v225,v226=nil,0;for v716=1 + 0 , #v223 do for v971=v716 + (2 -1) , #v223 do local v972=0 + 0 ;local v973;while true do if (0==v972) then v973=(v223[v971] -v223[v716]).Magnitude;if (v973>v226) then local v1413=1093 -(277 + 816) ;while true do if (0==v1413) then v226=v973;v225=v223[v971] -v223[v716] ;break;end end end break;end end end end if ( not v225 or (v225.Magnitude<(0.00001 -0))) then return nil;end local v227=v225-(v224 * v225:Dot(v224)) ;if (v227.Magnitude<(1183.0000099999997 -(1058 + 125))) then v227=v224:Cross(Vector3.new(0 + 0 ,1,975 -(815 + 160) ));if (v227.Magnitude<0.00001) then v227=v224:Cross(Vector3.new(1,0,0 -0 ));end end v227=v227.Unit;local v229=v224:Cross(v227);if (v229.Magnitude<(0.00001 -0)) then return nil;end v229=v229.Unit;local v231,v232=math.huge,math.huge;local v233,v234= -math.huge, -math.huge;local v235=Vector3.zero;for v717,v718 in ipairs(v223) do v235=v235 + v718 ;end v235=v235/ #v223 ;for v719,v720 in ipairs(v223) do local v721=0 + 0 ;local v722;local v723;local v724;while true do if (v721==(0 -0)) then v722=v720-v235 ;v723=v722:Dot(v227);v721=1899 -(41 + 1857) ;end if (v721==(1896 -(1222 + 671))) then v234=math.max(v234,v724);break;end if (v721==(2 -1)) then v724=v722:Dot(v229);v231=math.min(v231,v723);v721=2 -0 ;end if (v721==(1184 -(229 + 953))) then v233=math.max(v233,v723);v232=math.min(v232,v724);v721=3;end end end local v236=math.max(1774.02 -(1111 + 663) ,v233-v231 );local v237=math.max(1579.02 -(874 + 705) ,v234-v232 );local v238=(v222 * v217) + v235 + (v227 * (v231 + v233) * 0.5) + (v229 * (v232 + v234) * (0.5 + 0)) ;local v239=CFrame.fromMatrix(v238,v227,v229,v224);return v26(v239,Vector3.new(v236,v237,v218),v219,v220,0);end local function v40(v240,v241,v242,v243,v244,v245) local v246=0;local v247;local v248;local v249;local v250;local v251;local v252;local v253;while true do if (v246==(1 + 0)) then v250=((math.abs(v249:Dot(Vector3.new(0,1 -0 ,0 + 0 )))>0.98) and Vector3.new(680 -(642 + 37) ,0,0 + 0 )) or Vector3.new(0,1 + 0 ,0 -0 ) ;v251=v249:Cross(v250);if (v251.Magnitude<0.00001) then v251=v249:Cross(Vector3.new(454 -(233 + 221) ,0 -0 ,1));end v251=v251.Unit;v246=2;end if (v246==2) then v252=v251:Cross(v249).Unit;v253=CFrame.fromMatrix(v247,v249,v252,v251);return v26(v253,Vector3.new(v248.Magnitude,v243,v243),v244,v245,0);end if ((0 + 0)==v246) then v247=(v240 + v241) * (1541.5 -(718 + 823)) * v242 ;v248=(v241-v240) * v242 ;if (v248.Magnitude<(0.00001 + 0)) then return nil;end v249=v248.Unit;v246=1;end end end local function v41(v254) local v255={};if ( #v254<(808 -(266 + 539))) then return v255;end for v725=5 -3 , #v254-1 do v255[ #v255 + 1 ]={v254[2 -1 ],v254[v725],v254[v725 + 1 ]};end return v255;end local function v42(v256,v257,v258,v259,v260) local v261=0 + 0 ;local v262;while true do if (v261==(1015 -(657 + 358))) then v262=v257 .. "," .. v258 .. "," .. v259 ;if not v256[v262] then v256[v262]={x=v257,y=v258,z=v259,color=v260};end break;end end end local function v43(v263,v264,v265,v266,v267,v268) local v269=0 -0 ;local v270;local v271;local v272;local v273;local v274;while true do if ((2 -1)==v269) then v272=v266-v265 ;v273=math.max(v270.Magnitude,v271.Magnitude,v272.Magnitude);v269=1189 -(1151 + 36) ;end if (v269==0) then v270=v265-v264 ;v271=v266-v264 ;v269=1 + 0 ;end if (v269==(1 + 1)) then v274=math.max(2 -1 ,math.ceil(v273/math.max(v267 * (1832.7 -(1552 + 280)) ,834.05 -(64 + 770) ) ));for v1092=0,v274 do for v1281=0 + 0 ,v274-v1092 do local v1282=v1092/v274 ;local v1283=v1281/v274 ;local v1284=((2 -1) -v1282) -v1283 ;local v1285=(v264 * v1284) + (v265 * v1282) + (v266 * v1283) ;v42(v263,math.floor((v1285.X/v267) + 0.5 + 0 ),math.floor((v1285.Y/v267) + (1243.5 -(157 + 1086)) ),math.floor((v1285.Z/v267) + (0.5 -0) ),v268);end end break;end end end local function v44(v275) if ( #v275==(0 -0)) then return {};end table.sort(v275,function(v727,v728) local v729=0;while true do if ((0 -0)==v729) then if (v727.y~=v728.y) then return v727.y 0";end local v310=v36(v309,v304);local v311=v46(v310,v305,v306,v307);if ( #v311==0) then return nil,nil,"OBJ produced no blocks";end return v308,v311,nil;end local function v48(v312,v313,v314,v315,v316,v317) local v318,v319,v320=v47(v312,v314,v315,v317,v316);if not v318 then return nil,v320;end return v27(v313,v318,v319);end local function v49(v321,v322,v323,v324) local v325=(((((v324 * (449 -193)) + v323) * 256) + v322) * (114 + 142)) + v321 ;if (v325==0) then return 1174 -(663 + 511) ;end local v326=((v6.band(v325,2147484456 -(633 + 175) )~=(0 -0)) and -1) or (1 + 0) ;local v327=v6.band(v6.rshift(v325,53 -30 ),255);local v328=v6.band(v325,20307296 -11918689 );if (v327==(0 + 0)) then return v326 * (v328/8388608) * (2^ -(245 -119)) ;end if (v327==(182 + 73)) then return v326 * math.huge ;end return v326 * (1 + 0 + (v328/(8389330 -(478 + 244)))) * ((519 -(440 + 77))^(v327-(58 + 69))) ;end local function v50(v329,v330,v331,v332) local v333=readfile(v329);v330=tonumber(v330) or (3 -2) ;v331=tonumber(v331) or (1556.2 -(655 + 901)) ;v332=tostring(v332 or "PlasticBlock" );if ((v330<=(0 + 0)) or (v331<=(0 + 0))) then return nil,nil,"Scale/thickness must be > 0";end local v334={};local v335=v333:sub(1 + 0 ,1031 -775 ):lower();if v335:find("facet normal",1446 -(695 + 750) ,true) then local v976={};local v977=1;for v1020 in v333:gmatch("[^\r\n]+") do local v1021=0 -0 ;local v1022;local v1023;local v1024;while true do if ((0 -0)==v1021) then v1022,v1023,v1024=v1020:match("^%s*vertex%s+([%+%-%.%deE]+)%s+([%+%-%.%deE]+)%s+([%+%-%.%deE]+)");if (v1022 and v1023 and v1024) then local v1442=0 -0 ;while true do if (v1442==(351 -(285 + 66))) then v976[ #v976 + 1 ]=Vector3.new(tonumber(v1022) or (0 -0) ,tonumber(v1023) or 0 ,tonumber(v1024) or (1310 -(682 + 628)) );if ( #v976==(1 + 2)) then local v1618=299 -(176 + 123) ;local v1619;while true do if (v1618==(0 + 0)) then v1619=v39(v976,v330,v331,v24(160 + 60 ,489 -(239 + 30) ,220),v977);if v1619 then v334[ #v334 + 1 + 0 ]=v1619;end v1618=1 + 0 ;end if (v1618==(1 -0)) then v976={};v977=v977 + (2 -1) ;break;end end end break;end end end break;end end end else if ( #v333<(399 -(306 + 9))) then return nil,nil,"Binary STL is too small";end local v978=string.byte(v333,81) + (string.byte(v333,285 -203 ) * 256) + (string.byte(v333,83) * (11398 + 54138)) + (string.byte(v333,52 + 32 ) * (8075556 + 8701660)) ;local v979=243 -158 ;for v1025=1376 -(1140 + 235) ,v978 do if ((v979 + 32 + 17)> #v333) then break;end v979=v979 + 12 ;local v1026={};for v1098=1 + 0 ,3 do local v1099=0 + 0 ;local v1100;local v1101;local v1102;while true do if (v1099==1) then v1102=v49(string.byte(v333,v979 + (60 -(33 + 19)) ),string.byte(v333,v979 + 9 ),string.byte(v333,v979 + 10 ),string.byte(v333,v979 + 4 + 7 ));v1026[ #v1026 + (2 -1) ]=Vector3.new(v1100,v1101,v1102);v1099=1 + 1 ;end if (v1099==(0 -0)) then v1100=v49(string.byte(v333,v979),string.byte(v333,v979 + 1 ),string.byte(v333,v979 + 2 ),string.byte(v333,v979 + 3 ));v1101=v49(string.byte(v333,v979 + 4 + 0 ),string.byte(v333,v979 + 5 ),string.byte(v333,v979 + 6 ),string.byte(v333,v979 + (696 -(586 + 103)) ));v1099=1 + 0 ;end if (2==v1099) then v979=v979 + (36 -24) ;break;end end end local v1027=v39(v1026,v330,v331,v24(220,1708 -(1309 + 179) ,397 -177 ),v1025);if v1027 then v334[ #v334 + 1 ]=v1027;end v979=v979 + 2 ;end end if ( #v334==(0 + 0)) then return nil,nil,"STL produced no blocks";end return v332,v334,nil;end local function v51(v336,v337,v338,v339,v340) local v341=0 -0 ;local v342;local v343;local v344;while true do if (v341==1) then return v27(v337,v342,v343);end if (v341==0) then v342,v343,v344=v50(v336,v338,v339,v340);if not v342 then return nil,v344;end v341=1 + 0 ;end end end local function v52(v345) local v346=0 -0 ;local v347;while true do if (0==v346) then v347={};for v1103=1 -0 , #v345,4705 -(295 + 314) do local v1104=0 -0 ;local v1105;while true do if (v1104==1) then v347[ #v347 + 1 ]=table.concat(v1105);break;end if ((1962 -(1300 + 662))==v1104) then v1105={};for v1443=v1103,math.min(v1103 + (12858 -8763) , #v345) do v1105[ #v1105 + (1756 -(1178 + 577)) ]=string.char(v345[v1443]);end v1104=1 + 0 ;end end end v346=1;end if (v346==1) then return table.concat(v347);end end end local function v53(v348) local v349=0 -0 ;while true do if (v349==(1405 -(851 + 554))) then if (v348==nil) then error("Unexpected end of gzip stream",0 + 0 );end return v348;end end end local function v54(v350,v351) return (v350%(v351 + v351))>=v351 ;end local function v55(v352) return {outbs=v352,window={},windowPos=2 -1 };end local function v56(v353,v354) v353.outbs(v354);v353.window[v353.windowPos]=v354;v353.windowPos=(v353.windowPos%(71166 -38398)) + (303 -(115 + 187)) ;end local function v57(v357) local v358=0 + 0 ;local v359;local v360;local v361;local v362;while true do if ((0 + 0)==v358) then v359=3 -2 ;v360=1161 -(160 + 1001) ;v358=1 + 0 ;end if ((3 + 0)==v358) then return v362;end if (v358==1) then v361=0 -0 ;v362={};v358=360 -(237 + 121) ;end if ((899 -(525 + 372))==v358) then v362.nbitsLeftInByte=function(v1106) return v361;end;v362.read=function(v1107,v1108) local v1109=0 -0 ;local v1110;while true do if (v1109==(0 -0)) then v1108=v1108 or (143 -(96 + 46)) ;while v361 #v357) then return nil;end v1446=string.byte(v357,v359);v1445=1;end if (v1445==1) then v359=v359 + 1 ;v360=v360 + v6.lshift(v1446,v361) ;v1445=2;end end end v1109=2 -1 ;end if (v1109==1) then v1110=nil;if (v1108==0) then v1110=0;elseif (v1108==(118 -86)) then v1110=v360;v360=0;else local v1578=0;while true do if (v1578==0) then v1110=v6.band(v360,v6.rshift(4294967295,32 -v1108 ));v360=v6.rshift(v360,v1108);break;end end end v1109=2;end if (v1109==(2 + 0)) then v361=v361-v1108 ;return v1110;end end end;v358=5 -2 ;end end end local function v58(v363,v364) local v365={};if v364 then for v1030,v1031 in pairs(v363) do if (v1031 and (v1031~=(0 -0))) then v365[ #v365 + (720 -(316 + 403)) ]={value=v1030,nbits=v1031};end end else for v1032=1 + 0 , #v363-(5 -3) ,2 do local v1033=0 + 0 ;local v1034;local v1035;local v1036;while true do if (v1033==(0 -0)) then v1034,v1035,v1036=v363[v1032],v363[v1032 + 1 ],v363[v1032 + 2 + 0 ];if (v1035 and (v1035~=0)) then for v1496=v1034,v1036-(1 + 0) do v365[ #v365 + 1 ]={value=v1496,nbits=v1035};end end break;end end end end table.sort(v365,function(v750,v751) return ((v750.nbits==v751.nbits) and (v750.value=(1 + 1)) and (string.byte(v413,1 -0 )==(80 -49)) and (string.byte(v413,2)==(2109 -(582 + 1388)))) then return v67(v413);end v414=1 -0 ;end if (v414==(1 + 0)) then return v413,nil;end end end local function v69(v415) local v416={data=v415,pos=1};v416.u8=function(v772) local v773=364 -(326 + 38) ;local v774;while true do if (v773==(0 -0)) then v774=string.byte(v772.data,v772.pos);v772.pos=v772.pos + 1 ;v773=1;end if (v773==1) then return v774 or (0 -0) ;end end end;v416.s8=function(v775) local v776=0;local v777;while true do if (v776==0) then v777=v775:u8();return ((v777>=(748 -(47 + 573))) and (v777-(91 + 165))) or v777 ;end end end;v416.u16=function(v778) local v779=0 -0 ;local v780;local v781;while true do if (v779==(0 -0)) then v780=v778:u8();v781=v778:u8();v779=1;end if (v779==1) then return (v780 * (1920 -(1269 + 395))) + v781 ;end end end;v416.s16=function(v782) local v783=492 -(76 + 416) ;local v784;while true do if (v783==(443 -(319 + 124))) then v784=v782:u16();return ((v784>=(74904 -42136)) and (v784-65536)) or v784 ;end end end;v416.u32=function(v785) local v786=v785:u8();local v787=v785:u8();local v788=v785:u8();local v789=v785:u8();return (((((v786 * (1263 -(564 + 443))) + v787) * (708 -452)) + v788) * 256) + v789 ;end;v416.s32=function(v790) local v791=458 -(337 + 121) ;local v792;while true do if (v791==(0 -0)) then v792=v790:u32();return ((v792>=(2050623732 - -96859916)) and (v792-(4294969207 -(1261 + 650)))) or v792 ;end end end;v416.float32=function(v793) local v794=0 + 0 ;local v795;local v796;local v797;local v798;while true do if (v794==(3 -0)) then if (v797==255) then return v796 * math.huge ;end return v796 * ((1818 -(772 + 1045)) + (v798/(1183290 + 7205318))) * ((146 -(102 + 42))^(v797-(1971 -(1524 + 320)))) ;end if (v794==(1271 -(1049 + 221))) then v796=((v6.band(v795,2147483804 -(18 + 138) )~=(0 -0)) and -(1103 -(67 + 1035))) or 1 ;v797=v6.band(v6.rshift(v795,23),603 -(136 + 212) );v794=8 -6 ;end if (v794==(2 + 0)) then v798=v6.band(v795,7733069 + 655538 );if (v797==(1604 -(240 + 1364))) then return v796 * (v798/(8389690 -(1050 + 32))) * ((7 -5)^ -(75 + 51)) ;end v794=1058 -(331 + 724) ;end if (v794==(0 + 0)) then v795=v793:u32();if (v795==(644 -(269 + 375))) then return 725 -(267 + 458) ;end v794=1 + 0 ;end end end;v416.float64=function(v799) local v800=0 -0 ;local v801;local v802;local v803;local v804;local v805;local v806;while true do if (v800==(822 -(667 + 151))) then return v803 * ((1498 -(1410 + 87)) + (v806/(4503599627372393 -(1504 + 393)))) * ((5 -3)^(v804-(2653 -1630))) ;end if (v800==(796 -(461 + 335))) then v801=v799:u32();v802=v799:u32();v800=1 + 0 ;end if ((1762 -(1730 + 31))==v800) then v803=((v6.band(v801,2147485315 -(728 + 939) )~=0) and -(3 -2)) or 1 ;v804=v6.band(v6.rshift(v801,40 -20 ),2047);v800=4 -2 ;end if (v800==2) then v805=v6.band(v801,1049643 -(138 + 930) );v806=(v805 * 4294967296) + v802 ;v800=3;end if (v800==(3 + 0)) then if (v804==0) then return v803 * (v806/(4503599627371614 -(163 + 955))) * ((8 -6)^ -(2788 -(459 + 1307))) ;end if (v804==2047) then return v803 * math.huge ;end v800=1874 -(474 + 1396) ;end end end;v416.str=function(v807) local v808=0 -0 ;local v809;local v810;while true do if (v808==(1 + 0)) then v807.pos=v807.pos + v809 ;return v810;end if (v808==0) then v809=v807:u16();v810=v807.data:sub(v807.pos,(v807.pos + v809) -(1 + 0) );v808=2 -1 ;end end end;return v416;end local function v70(v426,v427) local v428=0 + 0 ;while true do if ((0 -0)==v428) then if (v427==1) then return v426:s8();elseif (v427==(8 -6)) then return v426:s16();elseif (v427==(594 -(562 + 29))) then return v426:s32();elseif (v427==(4 + 0)) then local v1579=v426:u32();local v1580=v426:u32();return {hi=v1579,lo=v1580};elseif (v427==(1424 -(374 + 1045))) then return v426:float32();elseif (v427==6) then return v426:float64();elseif (v427==7) then local v1662=v426:s32();local v1663={};for v1668=1 + 0 ,v1662 do v1663[v1668]=v426:u8();end return v1663;elseif (v427==(24 -16)) then return v426:str();elseif (v427==(647 -(448 + 190))) then local v1675=0 + 0 ;local v1676;local v1677;local v1678;while true do if (v1675==(1 + 1)) then return v1678;end if (v1675==0) then v1676=v426:u8();v1677=v426:s32();v1675=1;end if (v1675==1) then v1678={};for v1683=1 + 0 ,v1677 do v1678[v1683]=v70(v426,v1676);end v1675=7 -5 ;end end elseif (v427==(31 -21)) then local v1681=1494 -(1307 + 187) ;local v1682;while true do if (v1681==1) then return v1682;end if (v1681==(0 -0)) then v1682={};while true do local v1688=v426:u8();if (v1688==0) then break;end local v1689=v426:str();v1682[v1689]=v70(v426,v1688);end v1681=2 -1 ;end end elseif (v427==(33 -22)) then local v1685=0;local v1686;local v1687;while true do if (v1685==(684 -(232 + 451))) then for v1695=1,v1686 do v1687[v1695]=v426:s32();end return v1687;end if (v1685==(0 + 0)) then v1686=v426:s32();v1687={};v1685=1 + 0 ;end end elseif (v427==12) then local v1691=v426:s32();local v1692={};for v1693=1,v1691 do v1692[v1693]={hi=v426:u32(),lo=v426:u32()};end return v1692;end return nil;end end end local function v71(v429) local v430=564 -(510 + 54) ;local v431;local v432;local v433;while true do if ((1 -0)==v430) then if (v432~=(46 -(13 + 23))) then return nil,"NBT root is not a compound";end v433=v431:str();v430=3 -1 ;end if (v430==(2 -0)) then return v70(v431,18 -8 ),nil;end if (v430==(1088 -(830 + 258))) then v431=v69(v429);v432=v431:u8();v430=3 -2 ;end end end local v72={white=v24(156 + 93 ,217 + 38 ,254),orange=v24(1690 -(860 + 581) ,128,106 -77 ),magenta=v24(158 + 41 ,319 -(237 + 4) ,443 -254 ),light_blue=v24(58,452 -273 ,413 -195 ),yellow=v24(254,177 + 39 ,36 + 25 ),lime=v24(483 -355 ,86 + 113 ,17 + 14 ),pink=v24(1669 -(85 + 1341) ,139,170),gray=v24(120 -49 ,223 -144 ,454 -(45 + 327) ),light_gray=v24(295 -138 ,157,151),cyan=v24(22,658 -(444 + 58) ,68 + 88 ),purple=v24(24 + 113 ,25 + 25 ,532 -348 ),blue=v24(1792 -(64 + 1668) ,2041 -(1227 + 746) ,170),brown=v24(402 -271 ,155 -71 ,544 -(415 + 79) ),green=v24(3 + 91 ,615 -(142 + 349) ,10 + 12 ),red=v24(241 -65 ,46,38),black=v24(29,15 + 14 ,24 + 9 )};local v73={"light_blue","light_gray","magenta","orange","yellow","purple","brown","white","black","gray","lime","cyan","blue","green","pink","red"};local function v74(v434) local v435=0 -0 ;local v436;local v437;while true do if (0==v435) then v436=tostring(v434 or "" ):lower();v437=v436:match("^[^%[]+") or v436 ;if (v437=="") then return v24(190,904 -714 ,30 + 160 );end if ((v437=="minecraft:air") or v437:find("cave_air",2 -1 ,true) or v437:find("void_air",1 + 0 ,true)) then return nil;end v435=1665 -(674 + 990) ;end if (v435==(1 + 0)) then for v1126,v1127 in ipairs(v73) do if v437:find(v1127,1 + 0 ,true) then return v72[v1127];end end if (v437:find("water",1,true) or v437:find("ice",1,true)) then return v24(64,190 -70 ,255);end if (v437:find("lava",1,true) or v437:find("magma",1056 -(507 + 548) ,true)) then return v24(255,111,837 -(289 + 548) );end if (v437:find("grass",1,true) or v437:find("fern",1,true) or v437:find("leaf",1819 -(821 + 997) ,true) or v437:find("vine",1,true) or v437:find("moss",1,true) or v437:find("bush",256 -(195 + 60) ,true) or v437:find("crop",1,true) or v437:find("beetroot",1,true) or v437:find("bamboo",1 + 0 ,true)) then return v24(88,1649 -(251 + 1250) ,216 -142 );end v435=2;end if ((2 + 0)==v435) then if (v437:find("sand",1033 -(809 + 223) ,true) or v437:find("end_stone",1 -0 ,true)) then return v24(657 -438 ,211,529 -369 );end if (v437:find("dirt",1 + 0 ,true) or v437:find("mud",1 + 0 ,true) or v437:find("farmland",618 -(14 + 603) ,true) or v437:find("root",130 -(118 + 11) ,true)) then return v24(22 + 112 ,80 + 16 ,195 -128 );end if (v437:find("log",1,true) or v437:find("plank",950 -(551 + 398) ,true) or v437:find("wood",1 + 0 ,true) or v437:find("slab",1,true) or v437:find("fence",1 + 0 ,true) or v437:find("trapdoor",1,true) or v437:find("ladder",1,true) or v437:find("campfire",1 + 0 ,true) or v437:find("barrel",1,true)) then return v24(561 -410 ,250 -141 ,77);end if (v437:find("brick",1,true) or v437:find("nether",1,true) or v437:find("terracotta",1 + 0 ,true)) then return v24(153,84,285 -213 );end v435=1 + 2 ;end if (v435==(93 -(40 + 49))) then if v437:find("copper",3 -2 ,true) then return v24(683 -(99 + 391) ,90 + 18 ,325 -251 );end if (v437:find("quartz",2 -1 ,true) or v437:find("snow",1,true)) then return v24(238,232 + 6 ,238);end if (v437:find("obsidian",2 -1 ,true) or v437:find("deepslate",1605 -(1032 + 572) ,true) or v437:find("blackstone",1,true)) then return v24(472 -(203 + 214) ,52,1883 -(568 + 1249) );end if (v437:find("stone",1 + 0 ,true) or v437:find("cobble",2 -1 ,true) or v437:find("andesite",1,true) or v437:find("diorite",3 -2 ,true) or v437:find("granite",1307 -(913 + 393) ,true) or v437:find("ore",1,true) or v437:find("iron",1,true)) then return v24(137,386 -249 ,193 -56 );end v435=5;end if (v435==5) then return v24(595 -(269 + 141) ,185,411 -226 );end if (v435==3) then if v437:find("glass",1982 -(362 + 1619) ,true) then return v24(190,220,235);end if v437:find("gold",1,true) then return v24(1874 -(950 + 675) ,91 + 145 ,78);end if (v437:find("diamond",1,true) or v437:find("prismarine",1,true)) then return v24(1271 -(216 + 963) ,1506 -(485 + 802) ,213);end if v437:find("emerald",560 -(432 + 127) ,true) then return v24(72,186,88);end v435=4;end end end local v75={[0]="minecraft:white_wool",[1074 -(1065 + 8) ]="minecraft:orange_wool",[2]="minecraft:magenta_wool",[3]="minecraft:light_blue_wool",[3 + 1 ]="minecraft:yellow_wool",[1606 -(635 + 966) ]="minecraft:lime_wool",[5 + 1 ]="minecraft:pink_wool",[7]="minecraft:gray_wool",[50 -(5 + 37) ]="minecraft:light_gray_wool",[21 -12 ]="minecraft:cyan_wool",[5 + 5 ]="minecraft:purple_wool",[17 -6 ]="minecraft:blue_wool",[6 + 6 ]="minecraft:brown_wool",[26 -13 ]="minecraft:green_wool",[53 -39 ]="minecraft:red_wool",[15]="minecraft:black_wool"};local v76={[0 -0 ]="minecraft:white_stained_glass",[2 -1 ]="minecraft:orange_stained_glass",[2 + 0 ]="minecraft:magenta_stained_glass",[3]="minecraft:light_blue_stained_glass",[4]="minecraft:yellow_stained_glass",[5]="minecraft:lime_stained_glass",[535 -(318 + 211) ]="minecraft:pink_stained_glass",[7]="minecraft:gray_stained_glass",[39 -31 ]="minecraft:light_gray_stained_glass",[9]="minecraft:cyan_stained_glass",[1597 -(963 + 624) ]="minecraft:purple_stained_glass",[5 + 6 ]="minecraft:blue_stained_glass",[858 -(518 + 328) ]="minecraft:brown_stained_glass",[29 -16 ]="minecraft:green_stained_glass",[22 -8 ]="minecraft:red_stained_glass",[332 -(301 + 16) ]="minecraft:black_stained_glass"};local v77={[0 -0 ]="minecraft:white_concrete",[1]="minecraft:orange_concrete",[5 -3 ]="minecraft:magenta_concrete",[7 -4 ]="minecraft:light_blue_concrete",[4 + 0 ]="minecraft:yellow_concrete",[3 + 2 ]="minecraft:lime_concrete",[12 -6 ]="minecraft:pink_concrete",[7]="minecraft:gray_concrete",[8]="minecraft:light_gray_concrete",[6 + 3 ]="minecraft:cyan_concrete",[1 + 9 ]="minecraft:purple_concrete",[34 -23 ]="minecraft:blue_concrete",[4 + 8 ]="minecraft:brown_concrete",[1032 -(829 + 190) ]="minecraft:green_concrete",[14]="minecraft:red_concrete",[53 -38 ]="minecraft:black_concrete"};local function v78(v438,v439) local v440=0 -0 ;local v441;local v442;while true do if ((2 -0)==v440) then if ((v438==95) or (v438==(397 -237))) then return v76[v441] or "minecraft:white_stained_glass" ;end if ((v438==251) or (v438==(60 + 192))) then return v77[v441] or "minecraft:white_concrete" ;end v440=1 + 2 ;end if (v440==(2 -1)) then if (v438==5) then local v1305=0 + 0 ;local v1306;while true do if (v1305==0) then v1306={"oak_planks","spruce_planks","birch_planks","jungle_planks","acacia_planks","dark_oak_planks"};return "minecraft:" .. (v1306[(v441% #v1306) + (2 -1) ] or "oak_planks") ;end end end if (v438==(1796 -(440 + 1321))) then return v75[v441] or "minecraft:white_wool" ;end v440=2;end if (v440==(1829 -(1059 + 770))) then v441=tonumber(v439) or (0 -0) ;v442={[545 -(424 + 121) ]="minecraft:air",[1 + 0 ]="minecraft:stone",[2]="minecraft:grass_block",[3]="minecraft:dirt",[1351 -(641 + 706) ]="minecraft:cobblestone",[12]="minecraft:sand",[13]="minecraft:gravel",[7 + 10 ]="minecraft:oak_log",[458 -(249 + 191) ]="minecraft:oak_leaves",[87 -67 ]="minecraft:glass",[11 + 13 ]="minecraft:sandstone",[157 -116 ]="minecraft:gold_block",[42]="minecraft:iron_block",[472 -(183 + 244) ]="minecraft:bricks",[3 + 45 ]="minecraft:mossy_cobblestone",[779 -(434 + 296) ]="minecraft:obsidian",[57]="minecraft:diamond_block",[251 -172 ]="minecraft:ice",[80]="minecraft:snow_block",[594 -(169 + 343) ]="minecraft:clay",[77 + 10 ]="minecraft:netherrack",[89]="minecraft:glowstone",[172 -74 ]="minecraft:stone_bricks",[112]="minecraft:nether_bricks",[121]="minecraft:end_stone",[133]="minecraft:emerald_block",[454 -299 ]="minecraft:quartz_block",[131 + 28 ]="minecraft:orange_terracotta",[476 -308 ]="minecraft:prismarine",[1295 -(651 + 472) ]="minecraft:terracotta",[173]="minecraft:coal_block",[132 + 42 ]="minecraft:packed_ice",[78 + 101 ]="minecraft:red_sandstone"};v440=1 -0 ;end if (v440==3) then return v442[v438] or "minecraft:stone" ;end end end local function v79(v443,v444) local v445=483 -(397 + 86) ;local v446;local v447;local v448;while true do if ((877 -(423 + 453))==v445) then v448=0;for v1128,v1129 in ipairs(v443 or {} ) do v447=v447 + v6.lshift(v6.band(v1129,127),v448) ;if (v6.band(v1129,14 + 114 )==(0 + 0)) then v446[ #v446 + 1 + 0 ]=v447;v447=0;v448=0 + 0 ;if (v444 and ( #v446>=v444)) then break;end else v448=v448 + 7 + 0 ;end end v445=2;end if (v445==(1192 -(50 + 1140))) then return v446;end if (v445==(0 + 0)) then v446={};v447=0 + 0 ;v445=1 + 0 ;end end end local function v80(v449) local v450=0 -0 ;local v451;local v452;local v453;local v454;local v455;local v456;local v457;local v458;local v459;local v460;while true do if (1==v450) then v455=v449.BlockData or v449.Blocks ;if ((v451<=(0 + 0)) or (v452<=(596 -(157 + 439))) or (v453<=(0 -0))) then return nil,"Bad schematic size";end if ((type(v454)~="table") or (type(v455)~="table")) then return nil,"Palette or block data missing";end v456={};v450=6 -4 ;end if (2==v450) then for v1130,v1131 in pairs(v454) do v456[tonumber(v1131) or (0 -0) ]=v1130;end v457=v451 * v452 * v453 ;v458=v79(v455,v457);if ( #v458 0";end local v479,v480;if (type(v477.Palette)=="table") then v479,v480=v80(v477);else v479,v480=v81(v477);end if not v479 then return nil,nil,v480;end local v481=v44(v479.voxels);local v482={};for v811,v812 in ipairs(v481) do local v813=Vector3.new(((v812.x2-v812.x1) + 1 + 0) * v472 ,((v812.y2-v812.y1) + 1 + 0) * v472 ,((v812.z2-v812.z1) + (3 -2)) * v472 );local v814=Vector3.new((((v812.x1 + v812.x2 + (2 -1))/(1 + 1)) -(v479.width/2)) * v472 ,((v812.y1 + v812.y2 + 1)/(2 + 0)) * v472 ,(((v812.z1 + v812.z2 + (448 -(133 + 314)))/(1 + 1)) -(v479.length/2)) * v472 );v482[ #v482 + (214 -(199 + 14)) ]=v26(CFrame.new(v814),v813,v812.color,v811,0 -0 );end if ( #v482==(1549 -(647 + 902))) then return nil,nil,"Schematic produced no blocks";end return v473,v482,nil;end local function v83(v483,v484,v485,v486) local v487=0 -0 ;local v488;local v489;local v490;while true do if (v487==(234 -(85 + 148))) then return v27(v484,v488,v489);end if (v487==(1289 -(426 + 863))) then v488,v489,v490=v82(v483,v485,v486);if not v488 then return nil,v490;end v487=1;end end end local function v84() local v491=0;while true do if (v491==0) then v12.Border=v11.secondaryColor;v12.Text=v11.primaryColor;v491=1;end if (v491==(13 -10)) then v12.AccentGlow=v11.primaryColor:Lerp(Color3.fromRGB(1909 -(873 + 781) ,341 -86 ,688 -433 ),0.28);break;end if (v491==(1 + 0)) then v12.ActiveBG=v11.primaryColor;v12.ActiveText=Color3.new((3 -2) -(v11.primaryColor.R * 0.92) ,(1 -0) -(v11.primaryColor.G * (0.92 -0)) ,1 -(v11.primaryColor.B * (1947.92 -(414 + 1533))) );v491=2 + 0 ;end if (v491==(557 -(443 + 112))) then v12.Muted=v11.secondaryColor:Lerp(Color3.fromRGB(1734 -(888 + 591) ,658 -403 ,15 + 240 ),0.18 -0 );v12.AccentSoft=v11.secondaryColor:Lerp(v11.primaryColor,0.4 + 0 );v491=2 + 1 ;end end end local function v85() v84();local v492=Instance.new("ScreenGui");v492.Name="SPRB_Converter";v492.ResetOnSpawn=false;v492.ZIndexBehavior=Enum.ZIndexBehavior.Sibling;v492.IgnoreGuiInset=true;local v498=Instance.new("Frame");v498.Name="DropdownLayer";v498.Size=UDim2.new(1,0 + 0 ,1,0);v498.BackgroundTransparency=1 -0 ;v498.BorderSizePixel=0 -0 ;v498.ZIndex=2178 -(136 + 1542) ;v498.Parent=v492;local v505=nil;local v506=480;local v507=360;local v508=v11.mobileMode;if v508 then v11.uiScale=math.min(v11.uiScale,0.78 -0 );end local function v509(v816,v817,v818) return v1:Create(v816,v817,v818);end local function v510(v819,v820) local v821=0 + 0 ;local v822;while true do if (v821==0) then v822=v819:FindFirstChild("HoverScale");if not v822 then local v1379=0;while true do if (v1379==(0 -0)) then v822=Instance.new("UIScale");v822.Name="HoverScale";v1379=1 + 0 ;end if (v1379==(487 -(68 + 418))) then v822.Scale=1;v822.Parent=v819;break;end end end v821=2 -1 ;end if (v821==(1 -0)) then v509(v822,TweenInfo.new(0.14,Enum.EasingStyle.Quart,Enum.EasingDirection.Out),{Scale=v820}):Play();break;end end end local function v511(v823,v824,v825,v826) local v827=0;local v828;local v829;while true do if (v827==1) then v828.Parent=v823;v829=v823:FindFirstChildOfClass("UIStroke") or Instance.new("UIStroke") ;v829.Color=v825 or v12.Border ;v829.Transparency=0.5;v827=2 + 0 ;end if (v827==(1094 -(770 + 322))) then v829.Thickness=1 + 0 ;v829.Parent=v823;return v828,v829;end if (v827==(0 + 0)) then v823.BackgroundColor3=v824 or v12.Panel ;v823.BorderSizePixel=0 + 0 ;v828=v823:FindFirstChildOfClass("UICorner") or Instance.new("UICorner") ;v828.CornerRadius=UDim.new(0 -0 ,v826 or (7 -3) );v827=2 -1 ;end end end local v512=Instance.new("Frame");v512.Name="MainFrame";v512.Size=UDim2.new(0,v506 * v11.uiScale ,0,v507 * v11.uiScale );v512.Position=UDim2.new(0.5 -0 , -(v506 * v11.uiScale)/(2 + 0) ,0.5 -0 , -(v507 * v11.uiScale)/(1 + 1) );v512.BackgroundColor3=v12.BG;v512.BackgroundTransparency=v11.guiTransparency;v512.BorderSizePixel=0 + 0 ;v512.Active=true;v512.Parent=v492;local v523=Instance.new("UICorner");v523.CornerRadius=UDim.new(0 + 0 ,22 -16 );v523.Parent=v512;local v526=Instance.new("UIStroke");v526.Color=v12.Border;v526.Transparency=0.52 -0 ;v526.Thickness=1;v526.Parent=v512;local v532=(v508 and (102 + 198)) or (1658 -1298) ;local v533=(v508 and 240) or (925 -645) ;local v534,v535,v536=false,nil,nil;local v537,v538,v539,v540=false,nil,nil,nil;local function v541(v830,v831,v832,v833) local v834=0 + 0 ;local v835;while true do if (v834==0) then v835=(v2.CurrentCamera and v2.CurrentCamera.ViewportSize) or Vector2.new(1280,3562 -2842 ) ;return math.clamp(v830,0,math.max(831 -(762 + 69) ,v835.X-v832 )),math.clamp(v831,0 -0 ,math.max(0,v835.Y-v833 ));end end end local function v542(v836,v837) local v838=0;local v839;while true do if (v838==0) then v839=(v2.CurrentCamera and v2.CurrentCamera.ViewportSize) or Vector2.new(1280,621 + 99 ) ;return math.clamp(v836,v532,math.max(v532,v839.X-(8 + 4) )),math.clamp(v837,v533,math.max(v533,v839.Y-(28 -16) ));end end end local v543=Instance.new("Frame");v543.Size=UDim2.new(1,0 + 0 ,0 + 0 ,171 -127 );v543.BackgroundColor3=v12.PanelElevated;v543.BackgroundTransparency=157.02 -(8 + 149) ;v543.BorderSizePixel=0;v543.ZIndex=2;v543.Parent=v512;local v551=Instance.new("UICorner");v551.CornerRadius=UDim.new(0,1326 -(1199 + 121) );v551.Parent=v543;local v554=Instance.new("TextLabel");v554.Size=UDim2.new(0.7 -0 ,0 -0 ,0 + 0 ,64 -46 );v554.Position=UDim2.new(0 -0 ,11 + 1 ,1807 -(518 + 1289) ,9 -3 );v554.BackgroundTransparency=1;v554.Text="SPR-CONVERTER join in tgc @SoPeRaChan";v554.TextColor3=v12.Text;v554.TextSize=2 + 12 ;v554.Font=Enum.Font.GothamBold;v554.TextXAlignment=Enum.TextXAlignment.Left;v554.ZIndex=3 -0 ;v554.Parent=v543;local v568=Instance.new("TextLabel");v568.Size=UDim2.new(0.7 + 0 ,469 -(304 + 165) ,0,14);v568.Position=UDim2.new(0,12 + 0 ,160 -(54 + 106) ,1993 -(1618 + 351) );v568.BackgroundTransparency=1 + 0 ;v568.Text="JSON · OBJ/STL · Schematic";v568.TextColor3=v12.Muted;v568.TextSize=9;v568.Font=Enum.Font.GothamMedium;v568.TextXAlignment=Enum.TextXAlignment.Left;v568.ZIndex=1019 -(10 + 1006) ;v568.Parent=v543;local function v581(v840,v841) local v842=Instance.new("TextButton");v842.Size=UDim2.new(0,8 + 20 ,0 + 0 ,90 -62 );v842.Position=UDim2.new(1034 -(912 + 121) ,v841,0.5 + 0 , -(1303 -(1140 + 149)));v842.BackgroundColor3=v12.Panel;v842.BorderSizePixel=0 + 0 ;v842.Text=v840;v842.TextColor3=v12.Text;v842.TextSize=16 -3 ;v842.Font=Enum.Font.GothamBold;v842.ZIndex=1 + 3 ;v842.Parent=v543;v511(v842,v12.Panel,v12.Border,4);v842.MouseEnter:Connect(function() v510(v842,3.06 -2 );end);v842.MouseLeave:Connect(function() v510(v842,1 -0 );end);return v842;end local v582=v581("X", -36);local v583=Instance.new("TextLabel");v583.Name="StatusLabel";v583.Size=UDim2.new(1, -(2 + 6),0 -0 ,208 -(165 + 21) );v583.Position=UDim2.new(0,115 -(61 + 50) ,1 + 0 , -26);v583.BackgroundColor3=v12.PanelSoft;v583.BackgroundTransparency=0;v583.BorderSizePixel=0 -0 ;v583.Text=" Ready";v583.TextColor3=v12.Text;v583.TextSize=20 -10 ;v583.Font=Enum.Font.GothamSemibold;v583.TextXAlignment=Enum.TextXAlignment.Left;v583.ZIndex=3;v583.Parent=v512;v511(v583,v12.PanelSoft,v12.Border,3);v13=v583;local v599=Instance.new("ScrollingFrame");v599.Name="Content";v599.Size=UDim2.new(1 + 0 , -8,1461 -(1295 + 165) , -80);v599.Position=UDim2.new(0,1 + 3 ,0 + 0 ,1445 -(819 + 578) );v599.BackgroundTransparency=1;v599.ScrollBarThickness=0;v599.ScrollBarImageColor3=Color3.fromRGB(70,1472 -(331 + 1071) ,813 -(588 + 155) );v599.CanvasSize=UDim2.new(1282 -(546 + 736) ,1937 -(1834 + 103) ,0 + 0 ,0 -0 );v599.Parent=v512;local v608=Instance.new("UIListLayout");v608.Padding=UDim.new(1766 -(1536 + 230) ,5);v608.SortOrder=Enum.SortOrder.LayoutOrder;v608.Parent=v599;v608:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() local v856=491 -(128 + 363) ;local v857;local v858;while true do if (v856==(1 + 0)) then v858=math.max(0 -0 ,v857-v599.AbsoluteSize.Y );if (v599.CanvasPosition.Y>v858) then v599.CanvasPosition=Vector2.new(0 + 0 ,v858);end break;end if (v856==(0 -0)) then v857=math.floor(v608.AbsoluteContentSize.Y + (29 -19) );v599.CanvasSize=UDim2.new(0 -0 ,0,0 + 0 ,v857);v856=1;end end end);local function v613(v859,v860) local v861=1009 -(615 + 394) ;local v862;while true do if ((1 + 0)==v861) then v862.BackgroundTransparency=1 + 0 ;v862.Text=v859;v861=5 -3 ;end if (v861==2) then v862.TextColor3=v12.Muted;v862.TextSize=40 -31 ;v861=654 -(59 + 592) ;end if (v861==(6 -3)) then v862.Font=Enum.Font.GothamBold;v862.TextXAlignment=Enum.TextXAlignment.Left;v861=7 -3 ;end if ((3 + 1)==v861) then v862.Parent=v860;return v862;end if (v861==(171 -(70 + 101))) then v862=Instance.new("TextLabel");v862.Size=UDim2.new(1,0,0 -0 ,12 + 4 );v861=1;end end end local function v614(v863,v864,v865,v866) local v867=0 -0 ;local v868;local v869;local v870;while true do if (v867==(243 -(123 + 118))) then v868.TextSize=3 + 8 ;v868.Font=Enum.Font.GothamSemibold;v868.Parent=v865;v869,v870=v511(v868,v12.PanelElevated,v12.Border,3);v867=1 + 2 ;end if ((1400 -(653 + 746))==v867) then v868.BackgroundTransparency=0 -0 ;v868.BorderSizePixel=0 -0 ;v868.Text=v864;v868.TextColor3=v12.Text;v867=5 -3 ;end if (v867==0) then v868=Instance.new("TextButton");v868.Name=v863;v868.Size=UDim2.new(1 + 0 ,0,0 + 0 ,28 + 4 );v868.BackgroundColor3=v12.PanelElevated;v867=1 + 0 ;end if ((1 + 2)==v867) then v870.Transparency=0.62 -0 ;v868.MouseEnter:Connect(function() v510(v868,1.015);v509(v870,TweenInfo.new(0.12 + 0 ,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Transparency=0.18 -0 ,Color=v12.ActiveBG}):Play();end);v868.MouseLeave:Connect(function() local v1308=1234 -(885 + 349) ;while true do if (v1308==(0 + 0)) then v510(v868,1);v509(v870,TweenInfo.new(0.12 -0 ,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Transparency=0.62 -0 ,Color=v12.Border}):Play();break;end end end);v868.MouseButton1Click:Connect(function() v510(v868,968.985 -(915 + 53) );v509(v868,TweenInfo.new(801.07 -(768 + 33) ),{BackgroundTransparency=0.35}):Play();task.wait(0.07 -0 );v510(v868,1 -0 );v509(v868,TweenInfo.new(328.09 -(287 + 41) ),{BackgroundTransparency=847 -(638 + 209) }):Play();if v866 then task.spawn(v866);end end);v867=3 + 1 ;end if ((1690 -(96 + 1590))==v867) then return v868;end end end local function v615(v871,v872,v873) local v874=1672 -(741 + 931) ;local v875;local v876;local v877;local v878;while true do if (v874==6) then v878.FocusLost:Connect(function() v509(v877,TweenInfo.new(0.12 + 0 ),{Color=v12.Border,Transparency=0.68}):Play();end);return v878;end if (v874==5) then v878.TextXAlignment=Enum.TextXAlignment.Left;v878.ClearTextOnFocus=false;v878.Parent=v875;v878.Focused:Connect(function() v509(v877,TweenInfo.new(0.12 -0 ),{Color=v12.ActiveBG,Transparency=0.18 -0 }):Play();end);v874=3 + 3 ;end if (v874==0) then v875=Instance.new("Frame");v875.Name=v871 .. "Frame" ;v875.Size=UDim2.new(1,0,0 + 0 ,10 + 20 );v875.BackgroundColor3=v12.PanelSoft;v874=3 -2 ;end if (2==v874) then v877.Transparency=0.68 + 0 ;v878=Instance.new("TextBox");v878.Name=v871;v878.Size=UDim2.new(1 + 0 , -16,1,0 -0 );v874=3 + 0 ;end if (v874==1) then v875.BackgroundTransparency=494 -(64 + 430) ;v875.BorderSizePixel=0;v875.Parent=v873;v876,v877=v511(v875,v12.PanelSoft,v12.Border,3 + 0 );v874=2;end if (v874==(367 -(106 + 257))) then v878.Text="";v878.TextColor3=v12.Text;v878.TextSize=8 + 3 ;v878.Font=Enum.Font.Gotham;v874=5;end if (v874==3) then v878.Position=UDim2.new(0,729 -(496 + 225) ,0 -0 ,0 -0 );v878.BackgroundTransparency=1659 -(256 + 1402) ;v878.PlaceholderText=v872;v878.PlaceholderColor3=v12.Muted;v874=4;end end end local function v616(v879,v880,v881,v882) local v883=1899 -(30 + 1869) ;local v884;local v885;local v886;local v887;local v888;local v889;local v890;local v891;local v892;while true do if (v883==(1378 -(213 + 1156))) then v890.Padding=UDim.new(188 -(96 + 92) ,1 + 1 );v890.Parent=v889;v891=nil;function v891() local v1309=0;while true do if (v1309==0) then v889.Visible=false;v884.ZIndex=909 -(142 + 757) ;v1309=1 + 0 ;end if (v1309==1) then v889.ZIndex=41 + 59 ;v889.Size=UDim2.new(0,179 -(32 + 47) ,0,1977 -(1053 + 924) );v1309=2 + 0 ;end if (v1309==(2 -0)) then v888.Text="v";break;end end end v892=nil;v883=1658 -(685 + 963) ;end if (v883==(3 -1)) then v887=Instance.new("TextButton");v887.Name=v879;v887.Size=UDim2.new(1, -(39 -13),1,0);v887.Position=UDim2.new(1709 -(541 + 1168) ,1605 -(645 + 952) ,0,838 -(669 + 169) );v887.BackgroundTransparency=3 -2 ;v883=6 -3 ;end if ((2 + 3)==v883) then v888.BackgroundTransparency=1;v888.Text="v";v888.TextColor3=v12.Muted;v888.TextSize=3 + 8 ;v888.Font=Enum.Font.GothamBold;v883=771 -(181 + 584) ;end if (v883==(1402 -(665 + 730))) then v889.BackgroundColor3=v12.Panel;v889.BackgroundTransparency=0 -0 ;v889.BorderSizePixel=0;v889.ScrollBarThickness=0 -0 ;v889.ScrollBarImageColor3=Color3.fromRGB(80,80,1430 -(540 + 810) );v883=31 -23 ;end if (v883==8) then v889.Visible=false;v889.ZIndex=274 -174 ;v889.Parent=v498;v511(v889,v12.Panel,v12.Border,3);v890=Instance.new("UIListLayout");v883=8 + 1 ;end if ((209 -(166 + 37))==v883) then v888.ZIndex=2084 -(22 + 1859) ;v888.Parent=v884;v889=Instance.new("ScrollingFrame");v889.Size=UDim2.new(1772 -(843 + 929) ,362 -(30 + 232) ,0 -0 ,0);v889.Position=UDim2.new(0,0,777 -(55 + 722) ,0);v883=14 -7 ;end if (v883==(1676 -(78 + 1597))) then v884.BorderSizePixel=0 + 0 ;v884.ZIndex=10 + 0 ;v884.Parent=v881;v885,v886=v511(v884,v12.PanelSoft,v12.Border,3 + 0 );v886.Transparency=549.68 -(305 + 244) ;v883=2 + 0 ;end if (v883==(108 -(95 + 10))) then v887.Text="Select...";v887.TextColor3=v12.Muted;v887.TextSize=8 + 3 ;v887.Font=Enum.Font.Gotham;v887.TextXAlignment=Enum.TextXAlignment.Left;v883=12 -8 ;end if (v883==10) then function v892() for v1381,v1382 in pairs(v889:GetChildren()) do if v1382:IsA("TextButton") then v1382:Destroy();end end local v1310=v880();local v1311=math.min(160 -42 ,math.max(792 -(592 + 170) ,( #v1310 * (97 -69)) + (19 -11) ));local v1312=math.max(75 + 85 ,v884.AbsoluteSize.X);v889.Size=UDim2.new(0 + 0 ,v1312,0 -0 ,v1311);for v1383,v1384 in pairs(v1310) do local v1385=0 + 0 ;local v1386;local v1387;while true do if (v1385==(3 -1)) then v1386.TextSize=517 -(353 + 154) ;v1386.Font=Enum.Font.Gotham;v1386.TextXAlignment=Enum.TextXAlignment.Left;v1386.ZIndex=268 -66 ;v1385=3 -0 ;end if (v1385==(3 + 0)) then v1386.Parent=v889;v1387=Instance.new("UICorner");v1387.CornerRadius=UDim.new(0 + 0 ,3 + 1 );v1387.Parent=v1386;v1385=5 -1 ;end if (v1385==(0 -0)) then v1386=Instance.new("TextButton");v1386.Name=v1384.name or v1384 ;v1386.Size=UDim2.new(2 -1 , -(90 -(7 + 79)),0 + 0 ,207 -(24 + 157) );v1386.BackgroundColor3=v12.PanelElevated;v1385=1 -0 ;end if (v1385==4) then v1386.MouseEnter:Connect(function() v509(v1386,TweenInfo.new(0.12 -0 ),{BackgroundColor3=v12.ActiveBG:Lerp(v12.PanelElevated,0.7)}):Play();end);v1386.MouseLeave:Connect(function() v509(v1386,TweenInfo.new(0.12 + 0 ),{BackgroundColor3=v12.PanelElevated}):Play();end);v1386.MouseButton1Click:Connect(function() local v1558=0;while true do if (v1558==(2 -1)) then v891();if v882 then v882(v1384.name or v1384 );end break;end if (v1558==(380 -(262 + 118))) then v887.Text=v1384.display or v1384 ;v887.TextColor3=v12.Text;v1558=1084 -(1038 + 45) ;end end end);break;end if (v1385==(1 -0)) then v1386.BackgroundTransparency=230 -(19 + 211) ;v1386.BorderSizePixel=0;v1386.Text=" " .. (v1384.display or v1384) ;v1386.TextColor3=v12.Text;v1385=115 -(88 + 25) ;end end end local v1314=math.floor(v890.AbsoluteContentSize.Y + (25 -15) );v889.CanvasSize=UDim2.new(0,0,0 + 0 ,v1314);end v887.MouseButton1Click:Connect(function() local v1316=0;local v1317;local v1318;local v1319;local v1320;local v1321;local v1322;local v1323;local v1324;while true do if (v1316==(0 + 0)) then if v889.Visible then local v1559=0;while true do if (v1559==(1037 -(1007 + 29))) then return;end if (v1559==(0 + 0)) then v891();if (v505==v891) then v505=nil;end v1559=2 -1 ;end end end if v505 then pcall(v505);end v505=v891;v1316=4 -3 ;end if (v1316==(1 + 3)) then v1322=v1317.X;v1323=v1317.Y + v1318.Y + (814 -(340 + 471)) ;v1324=v1323;v1316=12 -7 ;end if (v1316==(592 -(276 + 313))) then v1319=(v2.CurrentCamera and v2.CurrentCamera.ViewportSize) or Vector2.new(3124 -1844 ,664 + 56 ) ;v1320=v889.AbsoluteSize.X;v1321=v889.AbsoluteSize.Y;v1316=2 + 2 ;end if (v1316==1) then v892();v884.ZIndex=19 + 181 ;v889.ZIndex=201;v1316=1974 -(495 + 1477) ;end if (v1316==2) then v888.Text="^";v1317=v884.AbsolutePosition;v1318=v884.AbsoluteSize;v1316=8 -5 ;end if (v1316==5) then if ((v1323 + v1321)>(v1319.Y-(4 + 2))) then v1324=(v1317.Y-v1321) -(406 -(342 + 61)) ;end v1322=math.clamp(v1322,3 + 3 ,math.max(6,(v1319.X-v1320) -(171 -(4 + 161)) ));v1324=math.clamp(v1324,4 + 2 ,math.max(6,(v1319.Y-v1321) -6 ));v1316=18 -12 ;end if (v1316==(15 -9)) then v889.Position=UDim2.new(497 -(322 + 175) ,v1322,563 -(173 + 390) ,v1324);v889.Visible=true;break;end end end);v498.InputBegan:Connect(function(v1325) local v1326=0;local v1327;local v1328;local v1329;local v1330;local v1331;local v1332;while true do if (v1326==1) then v1327,v1328=v1325.Position.X,v1325.Position.Y;v1329,v1330=v884.AbsolutePosition,v884.AbsoluteSize;v1326=1 + 1 ;end if (v1326==(316 -(203 + 111))) then v1331,v1332=v889.AbsolutePosition,v889.AbsoluteSize;if ( not ((v1327>=v1329.X) and (v1327<=(v1329.X + v1330.X)) and (v1328>=v1329.Y) and (v1328<=(v1329.Y + v1330.Y))) and not ((v1327>=v1331.X) and (v1327<=(v1331.X + v1332.X)) and (v1328>=v1331.Y) and (v1328<=(v1331.Y + v1332.Y)))) then local v1560=0 + 0 ;while true do if ((0 + 0)==v1560) then v891();if (v505==v891) then v505=nil;end break;end end end break;end if (v1326==(0 -0)) then if not v889.Visible then return;end if ((v1325.UserInputType~=Enum.UserInputType.MouseButton1) and (v1325.UserInputType~=Enum.UserInputType.Touch)) then return;end v1326=1 + 0 ;end end end);return v887,v892;end if (v883==(710 -(57 + 649))) then v887.ZIndex=587 -(328 + 56) ;v887.Parent=v884;v888=Instance.new("TextLabel");v888.Size=UDim2.new(0 + 0 ,530 -(433 + 79) ,1,0 + 0 );v888.Position=UDim2.new(1, -22,0 + 0 ,0);v883=5;end if (v883==0) then v884=Instance.new("Frame");v884.Name=v879 .. "DF" ;v884.Size=UDim2.new(3 -2 ,0 -0 ,0,22 + 8 );v884.BackgroundColor3=v12.PanelSoft;v884.BackgroundTransparency=0;v883=1 + 0 ;end end end local v617=nil;local v618=nil;local v619="face";local function v620(v893) local v894=1036 -(562 + 474) ;local v895;while true do if (v894==(2 -1)) then if (v895:match("%.obj$") or v895:match("%.stl$")) then return "obj";end if (v895:match("%.schem$") or v895:match("%.schematic$")) then return "schem";end v894=3 -1 ;end if (v894==(907 -(76 + 829))) then return nil;end if (v894==0) then v895=tostring(v893 or "" ):lower();if v895:match("%.json$") then return "json";end v894=1674 -(1506 + 167) ;end end end local function v621() v22();local v896={};local v897={};local function v898(v989) local v990=0 -0 ;local v991;while true do if (v990==0) then v991=v15(v989);if ((v991~="") and isfolder(v991) and not v897[v991:lower()]) then v897[v991:lower()]=true;v896[ #v896 + (267 -(58 + 208)) ]=v991;end break;end end end v898(v8);v898(".");v898(v21(v617) or "" );local v899={};local v900={};for v992,v993 in ipairs(v896) do for v1052,v1053 in ipairs(listfiles(v993)) do local v1054=0 + 0 ;local v1055;while true do if (v1054==(0 + 0)) then v1055=tostring(v1053):lower();if (v1055:match("%.json$") or v1055:match("%.obj$") or v1055:match("%.stl$") or v1055:match("%.schem$") or v1055:match("%.schematic$")) then local v1474=0 + 0 ;local v1475;while true do if (v1474==(0 -0)) then v1475=v1055;if not v900[v1475] then local v1623=337 -(258 + 79) ;local v1624;local v1625;local v1626;while true do if (1==v1623) then v1625=v21(v1053) or v993 ;v1626=(((v1625==".") or (v1625==v8)) and v1624) or (v1624 .. " [" .. v1625 .. "]") ;v1623=1 + 1 ;end if (v1623==2) then v899[ #v899 + (1 -0) ]={name=v1053,display=v1626};break;end if (v1623==(1470 -(1219 + 251))) then v900[v1475]=true;v1624=tostring(v1053):match("([^/\\]+)$") or tostring(v1053) ;v1623=1672 -(1231 + 440) ;end end end break;end end end break;end end end end table.sort(v899,function(v994,v995) return tostring(v994.display):lower()=v1252.X) and (v940.Position.X<=(v1252.X + v1253.X)) and (v940.Position.Y>=v1252.Y) and (v940.Position.Y<=(v1252.Y + v1253.Y))) then return;end break;end if (v1251==0) then v1252=v997.AbsolutePosition;v1253=v997.AbsoluteSize;v1251=1;end end end end v534=true;v535=Vector2.new(v940.Position.X,v940.Position.Y);v536=v512.Position;end);v3.InputChanged:Connect(function(v942) local v943=0 + 0 ;local v944;local v945;local v946;local v947;while true do if (v943==2) then v946,v947=v541(v536.X.Offset + v944 ,v536.Y.Offset + v945 ,v512.AbsoluteSize.X,v512.AbsoluteSize.Y);v512.Position=UDim2.new(0 -0 ,v946,0 + 0 ,v947);v943=1173 -(943 + 227) ;end if (v943==0) then if ((v942.UserInputType~=Enum.UserInputType.MouseMovement) and (v942.UserInputType~=Enum.UserInputType.Touch)) then return;end if not v534 then return;end v943=1 + 0 ;end if (v943==(1632 -(1539 + 92))) then v944=v942.Position.X-v535.X ;v945=v942.Position.Y-v535.Y ;v943=1948 -(706 + 1240) ;end if (v943==(261 -(81 + 177))) then v512.Rotation=math.clamp(v944/(226 -146) , -4,261 -(212 + 45) );break;end end end);v3.InputEnded:Connect(function(v948) if ((v948.UserInputType==Enum.UserInputType.MouseButton1) or (v948.UserInputType==Enum.UserInputType.Touch)) then local v1059=0 -0 ;while true do if (v1059==(1946 -(708 + 1238))) then v534=false;v1:Create(v512,TweenInfo.new(0.18,Enum.EasingStyle.Elastic,Enum.EasingDirection.Out),{Rotation=0 + 0 }):Play();break;end end end end);local function v698(v949,v950,v951,v952) local v953=0 + 0 ;local v954;while true do if (v953==(1669 -(586 + 1081))) then v954.Text="";v954.AutoButtonColor=false;v954.Active=true;v953=514 -(348 + 163) ;end if (v953==0) then v954=Instance.new("TextButton");v954.Name=v949;v954.Position=v950;v953=1;end if (v953==(1 + 0)) then v954.Size=v951;v954.BackgroundTransparency=1;v954.BorderSizePixel=280 -(215 + 65) ;v953=4 -2 ;end if (v953==4) then return v954;end if (v953==(1862 -(1541 + 318))) then v954.ZIndex=107 + 13 ;v954.Parent=v512;v954.InputBegan:Connect(function(v1335) if ((v1335.UserInputType~=Enum.UserInputType.MouseButton1) and (v1335.UserInputType~=Enum.UserInputType.Touch)) then return;end v537=true;v538=v952;v535=Vector2.new(v1335.Position.X,v1335.Position.Y);v539=v512.AbsolutePosition;v540=v512.AbsoluteSize;end);v953=3 + 1 ;end end end v698("ResizeRight",UDim2.new(1 + 0 , -(1759 -(1036 + 714)),0 + 0 ,5 + 3 ),UDim2.new(0,18,1281 -(883 + 397) , -16),"right");v698("ResizeLeft",UDim2.new(590 -(563 + 27) , -9,0 -0 ,8),UDim2.new(1986 -(1369 + 617) ,1505 -(85 + 1402) ,1, -(6 + 10)),"left");v698("ResizeBottom",UDim2.new(0 -0 ,8,404 -(274 + 129) , -9),UDim2.new(1, -(233 -(12 + 205)),0 + 0 ,69 -51 ),"bottom");v698("ResizeBR",UDim2.new(1 + 0 , -(402 -(27 + 357)),481 -(91 + 389) , -18),UDim2.new(297 -(90 + 207) ,26,0 + 0 ,26),"bottomright");v3.InputChanged:Connect(function(v955) local v956=861 -(706 + 155) ;local v957;local v958;local v959;local v960;local v961;local v962;local v963;local v964;while true do if (v956==(1796 -(730 + 1065))) then v958=v955.Position.Y-v535.Y ;v959,v960=v539.X,v539.Y;v961,v962=v540.X,v540.Y;v956=1565 -(1339 + 224) ;end if (v956==(2 + 1)) then v963,v964=v542(v961,v962);if v538:find("left") then v959=v539.X + (v540.X-v963) ;end v959,v960=v541(v959,v960,v963,v964);v956=4 + 0 ;end if (v956==(5 -1)) then v512.Size=UDim2.new(843 -(268 + 575) ,v963,0,v964);v512.Position=UDim2.new(0,v959,1294 -(919 + 375) ,v960);break;end if (v956==(0 -0)) then if ((v955.UserInputType~=Enum.UserInputType.MouseMovement) and (v955.UserInputType~=Enum.UserInputType.Touch)) then return;end if ( not v537 or not v539 or not v540) then return;end v957=v955.Position.X-v535.X ;v956=972 -(180 + 791) ;end if (v956==(1807 -(323 + 1482))) then if v538:find("right") then v961=v540.X + v957 ;end if v538:find("bottom") then v962=v540.Y + v958 ;end if v538:find("left") then local v1402=0;while true do if (0==v1402) then v961=v540.X-v957 ;v959=v539.X + v957 ;break;end end end v956=1921 -(1177 + 741) ;end end end);v3.InputEnded:Connect(function(v965) if ((v965.UserInputType==Enum.UserInputType.MouseButton1) or (v965.UserInputType==Enum.UserInputType.Touch)) then local v1060=0;while true do if (v1060==0) then v537=false;v538=nil;break;end end end end);v582.MouseButton1Click:Connect(function() local v966=0 + 0 ;while true do if (v966==(3 -2)) then v492:Destroy();break;end if (v966==0) then v1:Create(v512,TweenInfo.new(0.18 + 0 ,Enum.EasingStyle.Quint,Enum.EasingDirection.In),{BackgroundTransparency=1 -0 ,Size=UDim2.new(0,4 + 36 ,109 -(96 + 13) ,1961 -(962 + 959) )}):Play();task.wait(0.2 -0 );v966=1 + 0 ;end end end);pcall(function() v492.Parent=game:GetService("CoreGui");end);if not v492.Parent then v492.Parent=v7:WaitForChild("PlayerGui");end return v492;end v22();v85();