* installing *source* package 'C50' ... ** package 'C50' successfully unpacked and MD5 sums checked ** using staged installation ** libs using C compiler: 'gcc.exe (GCC) 12.3.0' make[1]: Entering directory '/d/temp/2024_11_18_01_50_01_1577/RtmpGyTC2u/R.INSTALL21d643f24236e/C50/src' gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c attwinnow.c -o attwinnow.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c classify.c -o classify.o classify.c: In function 'FindOutcome': classify.c:534:10: warning: 'Outcome' may be used uninitialized [-Wmaybe-uninitialized] 534 | return Outcome; | ^~~~~~~ classify.c:503:17: note: 'Outcome' was declared here 503 | DiscrValue v, Outcome; | ^~~~~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c confmat.c -o confmat.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c construct.c -o construct.o construct.c: In function 'EvaluateSingle': construct.c:435:36: warning: unused variable 'RawErrs' [-Wunused-variable] 435 | CaseNo *ConfusionMat, *Usage, i, RawErrs = 0, Errs = 0; | ^~~~~~~ construct.c: In function 'ConstructClassifiers': construct.c:295:25: warning: 'BaseLeaves' may be used uninitialized [-Wmaybe-uninitialized] 295 | LEAFRATIO = 1.1 * BaseLeaves / (MaxCase + 1.0); | ~~~~^~~~~~~~~~~~ construct.c:69:7: note: 'BaseLeaves' was declared here 69 | int BaseLeaves; | ^~~~~~~~~~ construct.c: In function 'EvaluateSingle': construct.c:573:13: warning: 'SaveUtility' may be used uninitialized [-Wmaybe-uninitialized] 573 | UTILITY = SaveUtility; | ~~~~~~~~^~~~~~~~~~~~~ construct.c:434:13: note: 'SaveUtility' was declared here 434 | int x, u, SaveUtility; | ^~~~~~~~~~~ In file included from construct.c:50: defns.h:80:5: warning: 'Usage' may be used uninitialized [-Wmaybe-uninitialized] 80 | free(x); \ | ^~~~ construct.c:435:26: note: 'Usage' was declared here 435 | CaseNo *ConfusionMat, *Usage, i, RawErrs = 0, Errs = 0; | ^~~~~ defns.h:80:5: warning: 'ConfusionMat' may be used uninitialized [-Wmaybe-uninitialized] 80 | free(x); \ | ^~~~ construct.c:435:11: note: 'ConfusionMat' was declared here 435 | CaseNo *ConfusionMat, *Usage, i, RawErrs = 0, Errs = 0; | ^~~~~~~~~~~~ construct.c: In function 'EvaluateBoost': construct.c:634:7: warning: 'Usage' may be used uninitialized [-Wmaybe-uninitialized] 634 | RecordAttUsage(Case[i], Usage); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ construct.c:582:26: note: 'Usage' was declared here 582 | CaseNo *ConfusionMat, *Usage, i, *Errs, BoostErrs = 0; | ^~~~~ construct.c:630:19: warning: 'ConfusionMat' may be used uninitialized [-Wmaybe-uninitialized] 630 | ConfusionMat[RealClass * (MaxClass + 1) + PredClass]++; | ^ construct.c:582:11: note: 'ConfusionMat' was declared here 582 | CaseNo *ConfusionMat, *Usage, i, *Errs, BoostErrs = 0; | ^~~~~~~~~~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c contin.c -o contin.o contin.c: In function 'EvalContinuousAtt': contin.c:173:15: warning: 'BestInfo' may be used uninitialized [-Wmaybe-uninitialized] 173 | Info[Att] = BestInfo; | ~~~~~~~~~~^~~~~~~~~~ contin.c:54:58: note: 'BestInfo' was declared here 54 | double LowInfo, LHInfo, LeastInfo = 1E38, w, BestGain, BestInfo, | ^~~~~~~~ contin.c:175:28: warning: 'BestI' may be used uninitialized [-Wmaybe-uninitialized] 175 | GEnv.LowVal = GEnv.SRec[BestI].V; | ^ contin.c:53:16: note: 'BestI' was declared here 53 | CaseNo i, j, BestI, Tries = 0; | ^~~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c discr.c -o discr.o discr.c: In function 'EvalOrderedAtt': discr.c:167:15: warning: 'BestInfo' may be used uninitialized [-Wmaybe-uninitialized] 167 | Info[Att] = BestInfo; | ~~~~~~~~~~^~~~~~~~~~ discr.c:96:30: note: 'BestInfo' was declared here 96 | double BaseInfo, ThisGain, BestInfo, BestGain = None; | ^~~~~~~~ discr.c:168:14: warning: 'BestV' may be used uninitialized [-Wmaybe-uninitialized] 168 | Bar[Att] = BestV; | ~~~~~~~~~^~~~~~~ discr.c:95:17: note: 'BestV' was declared here 95 | DiscrValue v, BestV; | ^~~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c formrules.c -o formrules.o formrules.c: In function 'PruneRule': formrules.c:325:14: warning: variable 'Bestid' set but not used [-Wunused-but-set-variable] 325 | int d, id, Bestid, Remaining = NCond; | ^~~~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c formtree.c -o formtree.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c getdata.c -o getdata.o getdata.c: In function 'GetData': getdata.c:130:46: warning: 'LeftTest' may be used uninitialized [-Wmaybe-uninitialized] 130 | (!Train && AltRandom >= WantTest / (float)LeftTest--)) { | ^~~~~~~~~~~~~~~~~ getdata.c:82:53: note: 'LeftTest' was declared here 82 | CaseNo CaseSpace, WantTrain, LeftTrain, WantTest, LeftTest; | ^~~~~~~~ getdata.c:136:17: warning: 'WantTest' may be used uninitialized [-Wmaybe-uninitialized] 136 | WantTest--; | ~~~~~~~~^~ getdata.c:82:43: note: 'WantTest' was declared here 82 | CaseNo CaseSpace, WantTrain, LeftTrain, WantTest, LeftTest; | ^~~~~~~~ getdata.c:117:45: warning: 'LeftTrain' may be used uninitialized [-Wmaybe-uninitialized] 117 | SelectTrain = KRandom() < WantTrain / (float)LeftTrain--; | ^~~~~~~~~~~~~~~~~~ getdata.c:82:32: note: 'LeftTrain' was declared here 82 | CaseNo CaseSpace, WantTrain, LeftTrain, WantTest, LeftTest; | ^~~~~~~~~ getdata.c:126:18: warning: 'WantTrain' may be used uninitialized [-Wmaybe-uninitialized] 126 | WantTrain--; | ~~~~~~~~~^~ getdata.c:82:21: note: 'WantTrain' was declared here 82 | CaseNo CaseSpace, WantTrain, LeftTrain, WantTest, LeftTest; | ^~~~~~~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c getnames.c -o getnames.o getnames.c: In function 'ExplicitAtt': getnames.c:419:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 419 | AttValName[MaxAtt][0] = (char *)(long)v + 1; | ^ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c global.c -o global.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c hash.c -o hash.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c hooks.c -o hooks.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c implicitatt.c -o implicitatt.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c info.c -o info.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c mcost.c -o mcost.o mcost.c: In function 'GetMCosts': mcost.c:66:26: warning: 'Real' may be used uninitialized [-Wmaybe-uninitialized] 66 | if (Pred > 0 && Real > 0 && Pred != Real && Val != 1) { | ~~~~~^~~ mcost.c:41:17: note: 'Real' was declared here 41 | ClassNo Pred, Real, p, r; | ^~~~ mcost.c: In function 'PredictGetMCosts': mcost.c:147:26: warning: 'Real' may be used uninitialized [-Wmaybe-uninitialized] 147 | if (Pred > 0 && Real > 0 && Pred != Real && Val != 1) { | ~~~~~^~~ mcost.c:123:17: note: 'Real' was declared here 123 | ClassNo Pred, Real, p, r; | ^~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c modelfiles.c -o modelfiles.o modelfiles.c: In function 'ReadHeader': modelfiles.c:495:16: warning: 'Att' may be used uninitialized [-Wmaybe-uninitialized] 495 | MaxAttVal[Att] = 1; | ^ modelfiles.c:451:13: note: 'Att' was declared here 451 | Attribute Att; | ^~~ modelfiles.c: In function 'PredictReadHeader': modelfiles.c:561:16: warning: 'Att' may be used uninitialized [-Wmaybe-uninitialized] 561 | MaxAttVal[Att] = 1; | ^ modelfiles.c:524:13: note: 'Att' was declared here 524 | Attribute Att; | ^~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c p-thresh.c -o p-thresh.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c prune.c -o prune.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c rc50.c -o rc50.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c redefine.c -o redefine.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c rsample.c -o rsample.o rsample.c: In function 'rpredictmain': rsample.c:75:24: warning: unused variable 'RealTrials' [-Wunused-variable] 75 | CurrentPosition, RealTrials; | ^~~~~~~~~~ rsample.c:75:7: warning: unused variable 'CurrentPosition' [-Wunused-variable] 75 | CurrentPosition, RealTrials; | ^~~~~~~~~~~~~~~ rsample.c:74:55: warning: variable 'StartList' set but not used [-Wunused-but-set-variable] 74 | int CaseNo = 0, MaxClassLen = 5, o, TotalRules = 0, StartList, | ^~~~~~~~~ rsample.c:74:36: warning: unused variable 'o' [-Wunused-variable] 74 | int CaseNo = 0, MaxClassLen = 5, o, TotalRules = 0, StartList, | ^ rsample.c:74:19: warning: unused variable 'MaxClassLen' [-Wunused-variable] 74 | int CaseNo = 0, MaxClassLen = 5, o, TotalRules = 0, StartList, | ^~~~~~~~~~~ rsample.c:74:7: warning: unused variable 'CaseNo' [-Wunused-variable] 74 | int CaseNo = 0, MaxClassLen = 5, o, TotalRules = 0, StartList, | ^~~~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c rulebasedmodels.c -o rulebasedmodels.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c rules.c -o rules.o In file included from rules.c:32: rules.c: In function 'NewRule': defns.h:176:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] 176 | (n1->Tested < n2->Tested || n1->Tested == n2->Tested && n1->Cut < n2->Cut) rules.c:72:37: note: in expansion of macro 'Before' 72 | if (!Deleted[id] && (!dd || Before(Cond[id], Cond[dd]))) { | ^~~~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c ruletree.c -o ruletree.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c siftrules.c -o siftrules.o siftrules.c: In function 'HillClimb': siftrules.c:502:7: warning: variable 'LastCost' set but not used [-Wunused-but-set-variable] 502 | int LastCost = 1E9, CurrentCost, AltCost, NewCost; | ^~~~~~~~ siftrules.c: In function 'UpdateDeltaErrs': siftrules.c:689:48: warning: suggest parentheses around '&&' within '||' [-Wparentheses] 689 | #define Prefer(d, c1, c2) ((d) > 0 || (d) == 0 && c1 < c2) | ^ siftrules.c:720:13: note: in expansion of macro 'Prefer' 720 | Prefer(TotVote[i][Alt] - (TotVote[i][Top] - Rule[r]->Vote), Alt, | ^~~~~~ siftrules.c:689:48: warning: suggest parentheses around '&&' within '||' [-Wparentheses] 689 | #define Prefer(d, c1, c2) ((d) > 0 || (d) == 0 && c1 < c2) | ^ siftrules.c:727:13: note: in expansion of macro 'Prefer' 727 | Prefer(TotVote[i][Rhs] + Rule[r]->Vote - TotVote[i][Top], Rhs, | ^~~~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c sort.c -o sort.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c strbuf.c -o strbuf.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c subset.c -o subset.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c top.c -o top.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c trees.c -o trees.o trees.c: In function 'MaxLine': trees.c:379:10: warning: 'Ll' may be used uninitialized [-Wmaybe-uninitialized] 379 | Ll += CharWidth(ClassName[T->Branch[v]->Leaf]) + 6; | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trees.c:318:7: note: 'Ll' was declared here 318 | int Ll, One, MaxLl = 0; | ^~ In file included from trees.c:36: transform.h: In function 'ShowBranch': transform.h:19:17: warning: 'Last' may be used uninitialized [-Wmaybe-uninitialized] 19 | #define fprintf rbm_fprintf | ^~~~~~~~~~~ trees.c:172:18: note: 'Last' was declared here 172 | DiscrValue Pv, Last; | ^~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c update.c -o update.o gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c utility.c -o utility.o utility.c: In function 'Cleanup': utility.c:850:16: warning: unused variable 'PropVal' [-Wunused-variable] 850 | extern char *PropVal; | ^~~~~~~ utility.c:848:18: warning: unused variable 'Active' [-Wunused-variable] 848 | extern RuleNo *Active; | ^~~~~~ utility.c:847:37: warning: unused variable 'PropValSize' [-Wunused-variable] 847 | extern int SubSpace, ActiveSpace, PropValSize; | ^~~~~~~~~~~ utility.c:847:24: warning: unused variable 'ActiveSpace' [-Wunused-variable] 847 | extern int SubSpace, ActiveSpace, PropValSize; | ^~~~~~~~~~~ gcc -I"D:/RCompile/recent/R-4.3.3/include" -DNDEBUG -DNDEBUG -I"d:/rtools43/x86_64-w64-mingw32.static.posix/include" -pedantic -Wstrict-prototypes -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c xval.c -o xval.o gcc -shared -s -static-libgcc -o C50.dll tmp.def attwinnow.o classify.o confmat.o construct.o contin.o discr.o formrules.o formtree.o getdata.o getnames.o global.o hash.o hooks.o implicitatt.o info.o mcost.o modelfiles.o p-thresh.o prune.o rc50.o redefine.o rsample.o rulebasedmodels.o rules.o ruletree.o siftrules.o sort.o strbuf.o subset.o top.o trees.o update.o utility.o xval.o -Ld:/rtools43/x86_64-w64-mingw32.static.posix/lib/x64 -Ld:/rtools43/x86_64-w64-mingw32.static.posix/lib -LD:/RCompile/recent/R-4.3.3/bin/x64 -lR make[1]: Leaving directory '/d/temp/2024_11_18_01_50_01_1577/RtmpGyTC2u/R.INSTALL21d643f24236e/C50/src' make[1]: Entering directory '/d/temp/2024_11_18_01_50_01_1577/RtmpGyTC2u/R.INSTALL21d643f24236e/C50/src' make[1]: Leaving directory '/d/temp/2024_11_18_01_50_01_1577/RtmpGyTC2u/R.INSTALL21d643f24236e/C50/src' installing to d:/Rcompile/CRANpkg/lib/4.3/00LOCK-C50/00new/C50/libs/x64 ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * MD5 sums packaged installation of 'C50' as C50_0.1.8.zip * DONE (C50)