// /  / Cf  oral  l Ve  rsio  
n 1.  0.0   Copy  righ  t (C  
) 20  17 U  nive  rsit  y of  
 Wat  erlo  o///  / Th  e co  
nten  ts o  f th  is f  ile   
are   cove  red   unde  r th  
e li  cenc  e ag  reem  ent   
in t  he//   fil  e "L  ICEN  
CE"   dist  ribu  ted   with  
 Cfo  rall  .//   // f  mtLi  
nes.  cc -  - //   //   Auth  
or                 : P  eter  
 A.   Buhr  // C  reat  ed O  
n           : Su  n Se  p 17  
 21:  56:1  5 20  17//   Las  
t Mo  difi  ed B  y :   Pete  
r A.   Buh  r//   Last   Mod  
ifie  d On   : M  on S  ep 1  
8 11  :35:  57 2  017/  / Up  
date   Cou  nt       :   31/  
/ #i  nclu  de <  fstr  eam>  
#inc  lude   <co  rout  ine>  
coro  utin  e Fo  rmat   {	c  
har   ch;	  				  				  		//  
 use  d fo  r co  mmun  icat  
ion	  int   g, b  ;			  				  
				  // g  loba  l be  caus  
e us  ed i  n de  stru  ctor  
};vo  id ?  {}(   Form  at &  
 fmt   ) {        resu  me(   
fmt   );		  				  				  // s  
tart   cor  outi  ne}v  oid   
^?{}  ( Fo  rmat   & f  mt )  
 {      if   ( f  mt.g   !=   
0 ||   fmt  .b !  = 0   ) so  
ut |   end  l;}v  oid   main  
( Fo  rmat   & f  mt )   {	f  
or (   ;;   ) {	  				  				  
	//   for   as m  any   char  
acte  rs		  for   ( fm  t.g   
= 0;   fmt  .g <   5;   fmt.  
g +=   1 )   {		  // g  roup  
s of   5 b  lock  s			  for   
( fm  t.b   = 0;   fmt  .b <  
 4;   fmt.  b +=   1 )   {	/  
/ bl  ocks   of   4 ch  arac  
ters  				  for   ( ;;   ) {  
				  			/  / fo  r ne  wlin  
e ch  arac  ters  				  	sus  
pend  ();	  				  if (   fmt  
.ch   != '  \n'   ) br  eak;  
		//   ign  ore   newl  ine	  
			}   //   for	  			s  out   
| fm  t.ch  ;			  				  // p  
rint   cha  ract  er		  	} /  
/ fo  r			  sout   | "    ";  
				  				  // p  rint   blo  
ck s  epar  ator  		}   // f  
or		  sout   | e  ndl;  				  
				  	//   prin  t gr  oup   
sepa  rato  r	}   // f  or}   
// m  ainv  oid   prt(   For  
mat   & fm  t, c  har   ch )  
 {      fm  t.ch   = c  h;    
  re  sume  ( fm  t );  } //  
 prt  int   main  () {  	For  
mat   fmt;  	cha  r ch  ;	fo  
r (   ;; )   {		  sin   | ch  
;			  				  			/  / re  ad o  
ne c  hara  cter  	  i  f (   
eof(   sin   ) )   bre  ak;	  
				  		//   eof   ?		  prt(  
 fmt  , ch   );	  } //   for  
} //   mai  n//   Loca  l Va  
riab  les:   ///  / ta  b-wi  
dth:   4 /  ///   comp  ile-  
comm  and:   "cf  a fm  tLin  
es.c  " //  // E  nd:   //
