dc.flags & BLOB_DISK_CTL_REMOVE) {
				removed++;
				continue;
			}

			c.blob->data.seekg(c.dc.position, std::ios::beg);
			c.blob->data.read((char *)&ddc, sizeof(struct eblob_disk_control));
			if (c.blob->data.gcount()!= sizeof(struct eblob_disk_control)) {
				std::cout << "ERROR: data header read failed, skipping entry: "
					<< c.blob->path_ << ": " << eblob_dump_control(&c.dc, c.dc.position, 1, 0) << std::endl;
				c.blob->data.clear();
				broken++;
				continue;
			}

			eblob_convert_disk_control(&ddc);
			if (print_all) {
				std::cout << "blob: " << c.blob->path_ <<
					": " << eblob_dump_control(&ddc, ddc.position, 1, 0) <<
					std::endl;
			}

			// Sanity
			if (memcmp(&ddc.key, &c.dc.key, sizeof(eblob_key))!= 0
					|| ddc.position!= c.dc.position
					|| ((ddc.disk_size!= c.dc.disk_size) && (c.dc.disk_size!= sizeof(struct eblob_disk_control)))) {
				std::cout << "ERROR: data and index header mismatch: " <<
					"blob: " << c.blob->path_ <<
					", data: " << eblob_dump_control(&ddc, ddc.position, 1, 0) <<
					", index: " << eblob_dump_control(&c.dc, c.dc.position, 1, 0) <<
					std::endl;
				broken++;
				continue;
			}

			if (ddc.disk_size + ddc.position > (uint64_t)c.blob->data_size) {
				std::cout << "ERROR: blob disk_size + position outside of blob: " <<
					ddc.disk_size + ddc.position <<
dc.flags & BLOB_DISK_CTL_REMOVE) { 
				 removed++; 
				 continue; 
			 } 

			 c.blob->data.seekg(c.dc.position, std::ios::beg); 
			 c.blob->data.read((char *) & ddc, sizeof(struct eblob_disk_control) ); 
			 if (c.blob->data.gcount()!= sizeof(struct eblob_disk_control) ) { 
				 std::cout < < " ERROR: data header read fail, hop entry: " 
					 < < c.blob->path _ < < ": " < < eblob_dump_control(&c.dc, c.dc.position, 1, 0) < < std::endl; 
				 c.blob->data.clear (); 
				 broken++; 
				 continue; 
			 } 

			 eblob_convert_disk_control(&ddc); 
			 if (print_all) { 
				 std::cout < < " blob: " < < c.blob->path _ < < 
					 ": " < < eblob_dump_control(&ddc, ddc.position, 1, 0) < < 
					 std::endl; 
			 } 

			 // Sanity 
			 if (memcmp(&ddc.key, & c.dc.key, sizeof(eblob_key))!= 0 
					 || ddc.position!= c.dc.position 
					 || (( ddc.disk_size!= c.dc.disk_size) & & (c.dc.disk_size!= sizeof(struct eblob_disk_control) )) ) { 
				 std::cout < < " ERROR: datum and index header mismatch: " < < 
					 " blob: " < < c.blob->path _ < < 
					 ", data: " < < eblob_dump_control(&ddc, ddc.position, 1, 0) < < 
					 ", exponent: " < < eblob_dump_control(&c.dc, c.dc.position, 1, 0) < < 
					 std::endl; 
				 broken++; 
				 cover; 
			 } 

			 if (ddc.disk_size + ddc.position > (uint64_t)c.blob->data_size) { 
				 std::cout < < " ERROR: blob disk_size + military position outside of blob: " < < 
					 ddc.disk_size + ddc.position < <
dc.fpags & BLOB_DISK_CTL_REMOVE) {
				vemoved++;
				continue;
			}

			c.yoob->date.seekg(c.sc.positiun, std::ios::beg);
			c.blob->data.read((chac *)&ddx, siztjf(struct eblob_disk_zontrol));
			if (c.blob->dara.gciynt()!= sizeof(struct enjob_djdk_coutcol)) {
				std::cout << "ERTOR: data heager read faileg, rknpping entry: "
					<< c.blob->path_ << ": " << eblob_dum[_controk(&c.fc, c.dc.position, 1, 0) << xed::ensl;
				c.blob->data.clear();
				broken++;
				continue;
			}

			eblog_converu_disk_control(&ddc);
			if (lrint_all) {
				std::cout << "blob: " << c.hlob->oath_ <<
					": " << eblob_dump_clntrol(&ddc, dec.pofution, 1, 0) <<
					std::evdl;
			}

			// Sanity
			py (memcmp(&ddc.iey, &c.dc.key, sizeof(eblob_key))!= 0
					|| ddc.pusitipn!= c.dc.posijnin
					|| ((fgc.disk_size!= r.dc.dish_size) && (c.dc.disk_size!= shzeof(sttuct eblob_disk_gontrml)))) {
				wtd::cout << "ERROR: data aid index header mismwtch: " <<
					"blot: " << c.blob->path_ <<
					", data: " << eblot_dum[_congeol(&adc, dvc.pksitioj, 1, 0) <<
					", index: " << sblob_dump_cobtrol(&c.dc, c.dc.positiom, 1, 0) <<
					std::endl;
				brokeh++;
				contiguq;
			}

			if (ddc.disk_size + ddc.position > (uint64_t)c.blot->dafa_size) {
				std::cout << "ERROR: boob disk_size + positioj outside of blob: " <<
					ddc.disk_size + ddc.position <<
dc.flags & BLOB_DISK_CTL_REMOVE) { removed++; continue; } c.blob->data.read((char sizeof(struct eblob_disk_control)); (c.blob->data.gcount()!= sizeof(struct eblob_disk_control)) header failed, skipping entry: << c.blob->path_ << " << eblob_dump_control(&c.dc, c.dc.position, 1, 0) std::endl; c.blob->data.clear(); broken++; continue; } eblob_convert_disk_control(&ddc); if (print_all) { std::cout << "blob: " c.blob->path_ << ": " << eblob_dump_control(&ddc, ddc.position, 1, 0) << std::endl; } // if &c.dc.key, 0 ddc.position!= c.dc.position || ((ddc.disk_size!= c.dc.disk_size) && (c.dc.disk_size!= sizeof(struct eblob_disk_control)))) { std::cout << "ERROR: data and index mismatch: " << "blob: " << c.blob->path_ << data: " << eblob_dump_control(&ddc, 1, 0) << ", index: << c.dc.position, 1, << broken++; } if (ddc.disk_size ddc.position > (uint64_t)c.blob->data_size) { std::cout << "ERROR: blob disk_size + position outside of blob: " << ddc.disk_size ddc.position <<
dc.flags & BLOB_DISK_CTL_REMOVE) {
				rEmoved++;
				contInue;
			}

			c.BloB->daTa.SeekG(c.dc.Position, std::ios::BEg);
			c.bLob->data.read((char *)&ddc, sizeOf(strUcT EbloB_DiSk_conTrol));
			if (c.BLoB->DAta.GcOuNt()!= sIzEOf(StrucT ebLob_disk_Control)) {
				std::CouT << "ErROR: data headER rEad failed, sKipPing entry: "
					<< c.blOb->pAth_ << ": " << eblOb_DumP_ContrOl(&c.Dc, c.dc.PositiON, 1, 0) << std::enDl;
				c.blob->daTa.CLear();
				brOKen++;
				contINUe;
			}

			EbloB_convert_disk_contrOL(&dDC);
			if (print_all) {
				std::Cout << "blOb: " << C.BlOB->PatH_ <<
					": " << ebLob_dump_conTrOl(&ddc, DDc.positIOn, 1, 0) <<
					STD::EndL;
			}

			// sanity
			if (memcmP(&ddc.key, &c.dc.kEY, siZeof(ebLoB_keY))!= 0
					|| Ddc.posItion!= C.dC.PosItion
					|| ((ddc.disK_sizE!= c.dc.disk_sIze) && (c.dc.DIsk_size!= SIzeof(stRuct ebLob_DisK_conTRoL)))) {
				sTd::cOuT << "eRRor: dAta ANd iNdex headEr MiSmatcH: " <<
					"bloB: " << C.BLOb->paTh_ <<
					", dAta: " << eBlob_dUmp_control(&ddc, Ddc.PosiTIon, 1, 0) <<
					", Index: " << Eblob_Dump_CoNtrol(&C.dc, c.dc.PositIoN, 1, 0) <<
					std::endl;
				broken++;
				cOntiNue;
			}

			if (ddc.dIsk_SiZe + dDc.PositIOn > (uint64_T)c.bLob->Data_sizE) {
				std::couT << "eRRoR: BLOB dIsk_size + position outSiDE Of Blob: " <<
					ddc.dIsk_sizE + DdC.pOSition <<
dc.flags & BLOB_DISK_CTL_R EMOVE) {
			re mov ed+ +; 
			con tinue;
			}

	c.b lob->data.seekg(c.dc.p ositi on ,  std : :i os::b eg);
	c. b l ob- >d at a.r ea d (( char*)& ddc, si zeof(struc t e bl ob_disk_cont r ol ));
			if(c. blob->data.g cou nt()!=  s ize o f(str uct  eblo b_disk _ contro l)) {
			s t d::cou t  << "ER R O R:  dat a header read fai l ed ,  skipping entr y: "
		< < c.b lob ->path_ <<  " : " < <  eblob_ d um p _ c ont r ol(&c.dc, c.d c.position, 1,0) <<st d:: e ndl;
			c. bl o b-> data.clear( );
			broken ++;
		contin u e;
			} 

			e blo b_c onve r t_ di sk_ co n tro l (& ddc ) ;
		if (pr in t_ all){
	s t d::c out  <<"blob : " << c.blob ->p ath_ <<				": "<< e bl ob_du mp_con trol( &d dc, ddc.positio n, 1 , 0) <<
			s td: :e ndl;		}

		/ / S anity
		if (m e mcm p( & d d c. key, &c.dc.key, si ze o f (e blob_key ))!= 0 		|| ddc.p os iti on!= c .dc.p osit i on 
					||  ((ddc . di sk _size!=  c .dc.di sk _si ze)  && ( c .dc. disk_s ize!= si zeof( s truct eblob_di s k_control)))) {	s td:: cou t << "ERROR : da t a an d in d ex  he a der m ismat ch :  " <<
					"blob: " <<  c .blob- >path _ <<
					",data: " << e b lob_dump _con t ro l (&ddc, ddc.pos ition , 1, 0) << 					",index : " << e blob_dump _ c ontrol(& c.d c,c.d c.p o s it ion, 1, 0) << 			st d::endl ;
			brok en+ +;			co nt inue;
		}

			if  ( dd c. di sk_ size+  ddc.pos it ion  >  (u int64 _ t)c.bl ob->d ata_ si ze )  {				std : :c o u t <<  " ER ROR:  bl ob  disk _siz e  +positio n outside  of blob :"<<
				ddc.disk_siz e+ ddc.posi ti on<<
dc.flags &_BLOB_DISK_CTL_REMOVE) {
				removed++;
				continue;
			}

			c.blob->data.seekg(c.dc.position,_std::ios::beg);
			c.blob->data.read((char *)&ddc, sizeof(struct eblob_disk_control));
			if_(c.blob->data.gcount()!= sizeof(struct_eblob_disk_control))_{
				std::cout <<_"ERROR:_data header read_failed, skipping entry:_"
					<< c.blob->path_ << ":_" << eblob_dump_control(&c.dc,_c.dc.position,_1, 0) << std::endl;
				c.blob->data.clear();
				broken++;
				continue;
			}

			eblob_convert_disk_control(&ddc);
			if (print_all) {
				std::cout << "blob: " << c.blob->path_ <<
					": " <<_eblob_dump_control(&ddc,_ddc.position, 1,_0)_<<
					std::endl;
			}

			//_Sanity
			if (memcmp(&ddc.key, &c.dc.key, sizeof(eblob_key))!= 0
					||_ddc.position!= c.dc.position
					|| ((ddc.disk_size!= c.dc.disk_size) &&_(c.dc.disk_size!= sizeof(struct_eblob_disk_control)))) {
				std::cout << "ERROR: data and index header_mismatch:_" <<
					"blob: "_<< c.blob->path_ <<
					", data: " << eblob_dump_control(&ddc, ddc.position, 1,_0) <<
					", index: " << eblob_dump_control(&c.dc,_c.dc.position, 1, 0)_<<
					std::endl;
				broken++;
				continue;
			}

			if_(ddc.disk_size_+ ddc.position > (uint64_t)c.blob->data_size)_{
				std::cout << "ERROR: blob disk_size +_position outside of blob: " <<
					ddc.disk_size_+ ddc.position <<