`fffff&bffÂ,f&ÌÌbfÄÌffÌÎffffffffffffffîîfîþïnÿÿÿnÿÿÿnîþïnfîîffffffþïffþïfæþïnæÿÿnæÿÿnæþïnfîîffffffffffîîfæþïîæÿÿÿæÿÿÿæþïîfîîffffffþïffþïfîþïfÿÿïfÿÿïfîînffffffffffffffîîfæþïnæÿÿnæÿÿnæþïnfþïffþïfffffffffîîîîÿÿÿÿÿÿÿÿîîîîffffffffffffffffîînfÿÿïfÿÿïfîþïffþïffþïffþïffþïffþïîfþÿÿfþÿÿfæîîfffffffffþïffþïffþïffþïffþïffþïffþïffþïffþïffþïfîþïîÿÿÿÿÿÿÿÿîîîîfffffffffffffffffæîîfþÿÿfþÿÿfþïîfþïffþïffþïffþïfîþïfÿÿïfÿÿïfîþïffþïffþïfffffffffîîîîÿÿÿÿÿÿÿÿîþïîfþïffþïffþïffþïffþïîfþÿÿfþÿÿfþïîfþïffþïffþïffþïfîþïîÿÿÿÿÿÿÿÿîþïîfþïffþïf >À?fðffðffþïffffffþïffffffffffþïffðffffffþïffðffðffffffþïffffffffffffffþïffðffðffþïffðffffffffffðffffffffffðffffffðffðffþïffffffþïffffffffþïffðffffffþïffðffðffffþïffffffffffîîffþïffðffðffþïffðffffffffffðffffffffffðffîîfðfðîþïffîþïîð`æþïnð`fæîîîþïffðð`ðîþïîîîîîîîîîîþïnfþïîðfðfæþïnfðîîîîðîîîîîîîîðfæþïîÿÿfÿÿÿÿÿÿïffðÿÿÿÿÿÿÿÿÿÿÿÿÿ`æÿÿnÿÿ`fþÿÿÿÿïffðÿÿÿÿ`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnfþÿÿÿÿfÿÿfæÿÿnfðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfæÿÿÿÿÿfÿÿÿÿÿÿïffðÿÿÿÿÿÿÿÿÿÿÿÿÿ`æÿÿnÿÿ`fþÿÿÿÿïffðÿÿÿÿ`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnfþÿÿÿÿfÿÿfæÿÿnfðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfæÿÿÿðfðîþïffðîîîîðð`æþïnð`fþïîîþïffðð`ðîþïîîîîîîþïîîþïnfþïîðfðfæþïnfîîîîððîîîîîþïîðfæþïîfðffðffþïffðffffffðffffîîffffþïffþïffðffffffþïffffffþïffîîffþïffðffðffîîffffffffffðffðffffffþïffðffîîffðffðffþïffðffffffðffffffffffffffþïffþïffðffffffffffþïffffffþïffffffþïffðffðffffffffffffffðffðffffffþïffðffffffðffðffþïffþïffffffffffffffffffffffþïffðffðffffffffffþïffffffþïffffffþïffþïffþïffffffffffffffðffþïffffffþïffþïffffffðffðffþïffþïffîîffffffîîffîîffffffþïffðffðffîîffffffþïffffffþïffffffþïffþïffþïffîîffffffîîffðffþïffîîffþïffþïfffffð`ðîþïîîþïfæþïî`fæþïnæþïîîþïîðfð`æþïîîîîîîþïîîþïîîîîîîþïfæþïnæþïnæþïî`fæþïnfðffþïîîþïnfþïîîþïîîîîîÿÿ`ÿÿÿÿÿÿÿÿÿÿïfæÿÿÿÿÿfæÿÿnæÿÿÿÿÿÿÿÿÿÿÿÿÿfÿÿ`æÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïfæÿÿnæÿÿnæÿÿÿÿÿfæÿÿnfðffþÿÿÿÿÿnfþÿÿÿÿÿÿÿÿÿÿÿÿ`ÿÿÿÿÿÿÿÿÿÿïfæÿÿÿÿÿfæÿÿnæÿÿÿÿÿÿÿÿÿÿÿÿÿfÿÿ`æÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïfæÿÿnæÿÿnæÿÿÿÿÿfæÿÿnfðffþÿÿÿÿÿnfþÿÿÿÿÿÿÿÿÿÿð`ðîîîîîþïfæþïîðfæþïnæþïîðîþïîðfð`æþïîîîîîîîîîîîîîîþïîîþïfæþïnæþïnæþïîðfæþïnfðffþïîîþïnfþïîîîîîîþïîfffðffffffþïffîîffðffþïffîîffðffþïffðffffîîffffffffffffffffffþïffþïffîîffîîffîîffðffþïffðffþïffîîffþïffffffþïffffffðffffffþïffffffðffþïffffffðffþïffðffffffffffffffffffffffffffþïffþïffffffffffffffðffþïffðffþïffffffþïffffffþïffffffffffffffðffffffþïffþïffffffffffðffffffffffffffffffffffðffffffðffðffffffffffffffffffþïffffffþïffffffþïffffffþïffîîffffîîffðffffffþïffþïffffffffðffffffffffffffffffîîffðffffffðffðffîîffffffîîffffþïffffffþïffffffþïffîîffþïfæþïîð`æþïnfðffîþïîîþïîð`ðîîîî`ffîþïnfðððfæþïîîîîîîþïnð`fþïîîþïîîîîîîþïîîþïnæþïnæÿÿÿÿÿÿ`æÿÿnfðffðÿÿÿÿÿÿÿÿÿÿÿÿÿ`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿffðÿÿÿÿÿnfðÿÿÿÿÿÿÿÿÿÿÿÿfæÿÿÿÿÿÿÿÿÿÿnÿÿ`fþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnæÿÿnæÿÿÿÿÿÿ`æÿÿnfðffðÿÿÿÿÿÿÿÿÿÿÿÿÿ`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿffðÿÿÿÿÿnfðÿÿÿÿÿÿÿÿÿÿÿÿfæÿÿÿÿÿÿÿÿÿÿnÿÿ`fþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnæÿÿnæþïîð`æþïnfðffðîîîîîþïîð`ððîþïîðffðîþïnfððððfæþïîîþïîîþïnð`fæîîðîþïîîþïîîîîîîþïnæþïnfîîffffþïffðffðffffffþïffffffffðffðffþïffðffðffîîffðffðffðffðffîîffþïffîîffðffffffðffþïffþïffffffîîffîîffffffffffþïffðffðffffffþïffffffffffðffðffþïffðffðffffffðffðffðffðffffffþïffffffðffffffðffþïffþïffffffffffffffffffffffþïffþïffþïffffffþïffffffffffðffðffþïffþïffþïffffffþïffþïffffffðffffffþïffffffffffffffþïffþïffþïffffffffffffffîîffffþïffþïffþïffîîffþïffffffffffðffðffþïffþïffþïffffffþïffþïffffffðffffffþïffffffffffffffþïffþïffþïfffffffffîþïnð`æþïnfþïîîþïîîþïnfþïîîînffððffþïîîþïîîþïîîþïffþïîðîîîîîþïîîîîîîþïîîþïîîþïîð`ðÿÿÿnÿÿ`æÿÿnfþÿÿÿÿÿÿÿÿÿnfþÿÿÿÿÿÿÿÿïffðÿÿÿÿffþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïffþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`ÿÿÿÿÿÿnÿÿ`æÿÿnfþÿÿÿÿÿÿÿÿÿnfþÿÿÿÿÿÿÿÿïffðÿÿÿÿffþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïffþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`ÿÿÿîþïnð`æþïnfæîîîîîîîþïnfæîîðîþïffðffæîîîþïîîþïîðîþïffþïîððîþïîîþïîîîîîîîîîîþïîîþïîðð`ðfîîffðffîîffffffffffîîffffffðffþïffffffðffffffþïffþïffðffþïffþïffðffðffþïffþïffffffffffffffffffþïffþïffðffffffffffðffffffffffffffffffffffðffþïffffffðffffffþïffþïffðffþïffþïffðffðffþïffþïffffffffffffffffffþïffþïffðffffffffffffffþïffffffffffffffffffffffþïffðffffffffffffffþïffþïffffffþïffþïffþïffþïffþïffþïffffffffffffffffffþïffðffþïffffffðffffffþïffîîffîîffffffffffffffþïffðffffffffffffþïffþïffffþïffþïffþïffþïffþïffþïffîîffffffffffîîffþïffðffþïffffffðfîþïfæþïnæþïîîîîîîîîîîîîîîþïffðf`fð`fþïîîþïfð`fþïîîþïffþïfæþïnfþïîîþïfæþïîîînfæþïnæþïnfðffþïîfðÿÿÿÿÿÿïfæÿÿnæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïffðfÿÿÿÿÿÿfÿÿÿ`fþÿÿÿÿïfÿÿ`fþÿÿÿÿïffþïfæÿÿnfþÿÿÿÿïfæÿÿÿÿÿÿÿÿÿïfæÿÿnæÿÿnfðffþÿÿÿÿÿÿfðÿÿÿÿÿÿÿÿïfæÿÿnæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïffðfÿÿÿÿÿÿfÿÿÿ`fþÿÿÿÿïfÿÿ`fþÿÿÿÿïffþïfæÿÿnfþÿÿÿÿïfæÿÿÿÿÿÿÿÿÿïfæÿÿnæÿÿnfðffþÿÿÿÿÿÿfðÿÿîþïfæþïnæþïîîîîîîîîîîîîîîþïffðfððfð`fæîîîþïfð`fæîîîþïffþïfæþïnfæîîîþïfæþïîðîþïfæþïnæþïnfðffæîîffffffþïffþïffîîffffffffffffffþïffðffðffðffffffffþïffðffffffþïffþïffîîffffffþïffîîffðffþïffþïffîîffðffffffffffffffffffþïffþïffffffffffffffffffþïffðffðffðffffffffffþïffðffffffþïffþïffffffffffþïffffffðffþïffþïffffffðffffffffffffffffffðffðffffffffffffffffffþïffðffþïffðffffffffffþïffffffffffðffðffffffffffþïffffffþïffðffþïffffffðffffffffffffffffffðffðffîîffîîffffffîîffþïffðffþïffðffffffffþïffffffffffðffðffffffîîffþïffîîffþïffðffþïffffffðffîîffffffîîfððfæþïnæþïîîînfæþïnfþïîðîþïîððfîþïffîînffðffðffæîîîþïnæþïnæþïnfþïîðîþïîðîþïnfæîîîþïnÿÿÿÿÿÿÿÿÿÿfæÿÿnæÿÿÿÿÿïfæÿÿnfþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfðÿÿÿÿïffðÿÿÿÿïffðffðffþÿÿÿÿÿnæÿÿnæÿÿnfþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnfþÿÿÿÿÿnÿÿÿÿÿÿÿÿÿÿfæÿÿnæÿÿÿÿÿïfæÿÿnfþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfðÿÿÿÿïffðÿÿÿÿïffðffðffþÿÿÿÿÿnæÿÿnæÿÿnfþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnfþÿÿÿÿÿnððfæþïnæþïîîþïfæþïnfæîîîîîîðfðîþïffðîþïffðffðffþïîîþïnæþïnæþïnfæîîðîþïîððîþïnfþïîîþïnfffffðffðffþïffîîffþïffþïffffffffffffffffffffðffþïffðffþïffðffðffþïffîîffîîffþïffffffðffþïffðffðffîîffþïffîîffffffðffðffþïffffffþïffþïffffffffffffffffffffffðffþïffðffþïffðffðffþïffffffffffþïffffffðffþïffðffðffffffþïffffffðffffffþïffþïffffffþïffþïffffffðffffffffffffffþïffþïffðffðffffffðffðffffffffffþïffffffffffðffffffþïffffffþïffffffðffffffþïffþïffffffþïffþïffîîffðffîîffffffîîffþïffþïffðffðffffðffðffffffffþïffffffffffðffffþïffîîffþïffîîfðf`ffþïîîþïffæîîîþïfæþïnæþïîðîþïnfîþïnæþïnfþïffðfð`ð`ðfðð`fþïîffðfð`fþïîîþïnfþïîîþïnÿÿfÿÿffþÿÿÿÿïffþÿÿÿÿïfæÿÿnæÿÿÿÿÿÿÿÿÿÿnfðÿÿÿÿÿnæÿÿnfþïffðfÿÿ`ÿÿÿ`ÿÿfÿÿÿÿÿÿÿÿÿÿÿ`fþÿÿÿÿÿÿfðÿÿfðfÿÿÿ`fþÿÿÿÿÿnfþÿÿÿÿÿnÿÿfÿÿffþÿÿÿÿïffþÿÿÿÿïfæÿÿnæÿÿÿÿÿÿÿÿÿÿnfðÿÿÿÿÿnæÿÿnfþïffðfÿÿ`ÿÿÿ`ÿÿfÿÿÿÿÿÿÿÿÿÿÿ`fþÿÿÿÿÿÿfðÿÿfðfÿÿÿ`fþÿÿÿÿÿnfþÿÿÿÿÿnðfðffþïîîþïffþïîîþïfæþïnæþïîðîþïnfðîþïnæþïnfþïffðfð`ð`ðfðð`fæîîðfðfðfð`fþïîîþïnfþïîîþïnfðffðffþïffþïffþïffþïffîîffîîffðffîîffðffîîffîîffþïffðffffffðffðffffffffffffðffðffðffffþïffîîffþïffîîffðffðffþïffþïffþïffþïffffffffffðffffffðffffffffffþïffðffffffffffðffðffffffffffffffðffðffðffffffþïffffffþïffffffþïffþïffðffðffþïffþïffffffffffþïffffffþïffffffffffþïffþïffffffffffþïffþïffffffffffffffþïffðffðffffffþïffffffðffffffþïffþïffðffðffþïffþïffffffffffþïffîîffþïffffîîffþïffþïffffffîîffþïffþïffffffffffffþïffðffðffffffþïffîîffðffffþïîîþïîðffðîþïîîþïîîîîîîînffþïîîþïnæþïnðîþïnæþïnfþïîîþïnæþïnfþïî`ffð`fþïffððîînfæþïnæþïîððfþÿÿÿÿÿÿÿÿffðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïffþÿÿÿÿÿnæÿÿnÿÿÿÿÿÿnæÿÿnfþÿÿÿÿÿÿÿÿÿnæÿÿnfþÿÿÿÿffðÿÿÿÿÿ`fþïffðÿÿÿÿÿÿÿÿïfæÿÿnæÿÿÿÿÿÿÿÿÿÿfþÿÿÿÿÿÿÿÿffðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïffþÿÿÿÿÿnæÿÿnÿÿÿÿÿÿnæÿÿnfþÿÿÿÿÿÿÿÿÿnæÿÿnfþÿÿÿÿffðÿÿÿÿÿ`fþïffðÿÿÿÿÿÿÿÿïfæÿÿnæÿÿÿÿÿÿÿÿÿÿfþïîîîîîðffîþïîîþïîîþïîîþïffæîîîþïnæþïnðîþïnæþïnfæîîðîþïnæþïnfæîîðffðð`fþïffîþïfæþïnæþïîððfþïffffffðffffffþïffþïffþïffþïffffffîîffîîffffîîffîîffffffðffîîffîîffffffðffðffffþïffffffffffþïffîîffîîffðffffþïffffffðffffffþïffþïffþïffþïffffffffffffffffffffffffffffffðffffffffffffffðffðffffffþïffffffffffþïffffffffffðffffffþïffffffðffffffðffþïffþïffþïffffffffffffffffffffffffffffffþïffffffffffffffðffþïffðffðffðffffffðffffffffffffffffffþïffffffðffîîffðffþïffþïffþïffffffffffffffffîîffîîffîîffþïffîîffffffffffðffþïffðffðffðffîîffðffîîfffffffffffîþïîîîîîðfæþïnfðîþïffþïîîþïîîîîîð`æþïnæþïnæþïnfþïfæþïnfæîî`fð`æþïnfððfðfæþïnfðîþïnfæîîð`fæîîÿÿÿÿÿÿÿÿÿÿfæÿÿnfðÿÿÿÿïffþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`æÿÿnæÿÿnæÿÿnfþïfæÿÿnfþÿÿÿÿfÿÿ`æÿÿnfðÿÿÿÿÿÿfðfæÿÿnfðÿÿÿÿÿnfþÿÿÿÿÿ`fþÿÿÿÿÿÿÿÿÿÿÿÿfæÿÿnfðÿÿÿÿïffþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`æÿÿnæÿÿnæÿÿnfþïfæÿÿnfþÿÿÿÿfÿÿ`æÿÿnfðÿÿÿÿÿÿfðfæÿÿnfðÿÿÿÿÿnfþÿÿÿÿÿ`fþÿÿîîîîîîîîðfæþïnfðîþïffþïîîîîîîîîîð`æþïnæþïnæþïnfþïfæþïnfþïîðfð`æþïnffðfæþïnfîþïnfþïîð`fþïîfffffffffðffþïffðffþïffþïffffffffffffffffffffþïffþïffþïffþïffþïffþïffðffffîîffffffffffðffþïffffffîîffþïffffþïffffffffffðffþïffðffþïffþïffffffffffffffffffffffþïffþïffþïffþïffþïffþïffðffffffffffffffffffðffþïffffffffffþïffffffþïffffffffffffffðffðffþïffþïffffffðffffffðffðffðffðffðffðffðffþïffþïffffffffffðffffffþïffþïffffffffffþïffffffðffîîffffffffðffðffþïffþïffîîffðffîîffðffðffðffðffðffðffðffþïffþïffîîffffffðffffþïffþïffffffffffþïffffðfæþïîð``fðffðîþïîîþïîîþïnfðîþïnð`ðððfð`ð`ðfæþïnæþïnæþïîîînffðð`fþïîîþïîîîîîîþïîð`fðæÿÿÿÿÿÿ`ÿÿfÿÿffðÿÿÿÿÿÿÿÿÿÿÿÿÿnfðÿÿÿÿÿnÿÿ`ÿÿÿÿÿÿÿÿÿÿfÿÿ`ÿÿ`ÿÿfæÿÿnæÿÿnæÿÿÿÿÿïffðÿÿÿÿÿ`fþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`fðÿÿæÿÿÿÿÿÿ`ÿÿfÿÿffðÿÿÿÿÿÿÿÿÿÿÿÿÿnfðÿÿÿÿÿnÿÿ`ÿÿÿÿÿÿÿÿÿÿfÿÿ`ÿÿ`ÿÿfæÿÿnæÿÿnæÿÿÿÿÿïffðÿÿÿÿÿ`fþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`fðÿÿæþïîð`ðfðffîþïîîîîîîþïnfðîþïnð`ðfð`ð`ðfæþïnæþïnæþïîîþïffð`fæîîîþïîîþïîîþïîð`ffîîffffðffðffffffþïffffffîîffðffîîffffffffffffðffffffðffîîffîîffîîffþïffffffffffffþïffffffþïffþïffffffffffffffffðffðffffffþïffffffffffðffffffffffffffffffðffffffffffðffffffffffffffþïffffffffffffffþïffffffþïffþïffffffffffffffffffþïffþïffðffþïffffffffffðffffffffffffffffffðffðffffffðffffffffffffffþïffffffffffffffþïffffffþïffþïffffffffffffffffffþïffþïffðffþïffffffffffðffffîîffffffffffðffðffffffðffffffffffîîffþïffîîffffffffffþïffîîffþïffþïffffffffffæîîîîîîîþïîîþïîðîþïîîînffð`ð`æþïîîîîîîînfð`ðîînfð``ffæîîîþïnfþïfæþïnfæîîîînffþïîîþïnæþïnfþïffîîîîfþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïffðÿÿÿÿ`ÿÿ`æÿÿÿÿÿÿÿÿÿïfÿÿ`ÿÿÿÿÿÿïfÿÿ`ÿÿffþÿÿÿÿÿnfþïfæÿÿnfþÿÿÿÿïffþÿÿÿÿÿnæÿÿnfþïffðÿÿÿÿÿÿfþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïffðÿÿÿÿ`ÿÿ`æÿÿÿÿÿÿÿÿÿïfÿÿ`ÿÿÿÿÿÿïfÿÿ`ÿÿffþÿÿÿÿÿnfþïfæÿÿnfþÿÿÿÿïffþÿÿÿÿÿnæÿÿnfþïffðÿÿÿÿÿÿfþïîîîîîîîîîîîîîîþïîîþïffðð`ð`æþïîîîîîîþïfð`îþïfð`ðffþïîîþïnfþïfæþïnfþïîîþïffþïîîþïnæþïnfþïffðîþïîfþïffffffffffffffffffþïffþïffðffffðffîîffffffþïffffffffþïffffðffþïffîîffþïffþïffþïffþïffþïffîîffîîffþïffðffþïffþïffffffffffffffffffþïffþïffðffffffðffffffffffþïffffffffffþïffffffðffþïffffffþïffþïffþïffþïffþïffffffffffþïffðffþïffþïffffffffffffffffffðffðffffffffffþïffffffffffþïffffffffffðffffffþïffþïffffffðffðffþïffþïffðffffffffffþïffþïffðffþïffffffîîffîîffffffðffðffffffffffþïffîîffffffþïffîîffffffðffffffþïffþïffffffðffðffþïffþïffðffffffîîffþïffþïffðffþïîîînfæþïnæþïîîînfð`ð`fîþïîîþïnfæîîîþïfæþïnfæîîðf`fæþïnfþïîîîîîðfðîþïîîþïffðîîîîîþïnfþïffþïffðffþÿÿÿÿïfæÿÿnæÿÿÿÿÿïfÿÿ`ÿÿ`ÿÿÿÿfðÿÿÿÿÿÿÿÿÿnfþÿÿÿÿïfæÿÿnfþÿÿÿÿfÿÿfæÿÿnfþÿÿÿÿÿÿÿÿÿÿfðÿÿÿÿÿÿÿÿïffðÿÿÿÿÿÿÿÿÿnfþïffþïffðffþÿÿÿÿïfæÿÿnæÿÿÿÿÿïfÿÿ`ÿÿ`ÿÿÿÿfðÿÿÿÿÿÿÿÿÿnfþÿÿÿÿïfæÿÿnfþÿÿÿÿfÿÿfæÿÿnfþÿÿÿÿÿÿÿÿÿÿfðÿÿÿÿÿÿÿÿïffðÿÿÿÿÿÿÿÿÿnfþïffþïffðffþïîîþïfæþïnæþïîîþïfð`ð`fðîîîîîþïnfþïîîþïfæþïnfþïîðfðfæþïnfæîîîþïîfðîîîîîþïffîîîîîþïnfþïffþïffðffþïffþïffþïffîîffþïffffffffffðffffffîîffþïffþïffþïffþïffðffðffîîffffffþïffffffðffffffþïffffffffffîîffþïffþïffðffþïffþïffþïffffffþïffffffffffffffðffffffffffþïffþïffþïffþïffðffðffffffffffþïffffffðffffffþïffffffffffffffþïffþïffðffþïffþïffþïffffffþïffffffffffffffþïffffffffffþïffðffðffþïffþïffþïffffffffffðffffffðffffffðffffffffffffffþïffþïffðffþïffþïffþïffîîffþïffffffffffffffþïffffffffffþïffðffðffþïffþïffþïffîîffffffðffffffðffffffðffffffffffffþïffþïffðffþïîîþïffþïîîþïnæþïnfîîîîîînffþïîîîîîîþïîðfðfæþïnfþïfæþïnæþïîîîîîð`ffððfð`fæîîîîîîîþïîîþïîðfþÿÿÿÿïffþÿÿÿÿÿnæÿÿnfðÿÿÿÿÿÿÿÿïffþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfðfæÿÿnfþïfæÿÿnæÿÿÿÿÿÿÿÿÿÿÿÿÿffðÿÿÿÿÿÿÿÿfÿÿÿ`fþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfþÿÿÿÿïffþÿÿÿÿÿnæÿÿnfðÿÿÿÿÿÿÿÿïffþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfðfæÿÿnfþïfæÿÿnæÿÿÿÿÿÿÿÿÿÿÿÿÿffðÿÿÿÿÿÿÿÿfÿÿÿ`fþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfþïîîþïffæîîîþïnæþïnfðîþïîîþïffæîîîîîîîîîîðfðfæþïnfþïfæþïnæþïîîîîîððffððfð`fþïîîîîîîþïîîîîîfþïffþïffffffîîffîîffðffþïffþïffffffffffffffffffðffðffîîffþïffîîffîîffffffðffðffðffffffðffffþïffffffþïffffffffffþïffþïffffffffffffffðffþïffþïffffffffffffffffffðffðffffffþïffffffffffffffðffðffðffffffðffffffþïffffffþïffffffffffðffþïffffffffffffffðffðffðffffffffffffffffffþïffþïffffffþïffffffffffffffffffðffffffffffþïffffffþïffffffþïffffffðffðffþïffffffîîffîîffðffðffðffîîffffffffffffþïffþïffffffþïffîîffffffffffðffffîîffþïffffffþïffîîffþïffîîffðfð`fþïîîînfæþïîîþïnfðfðfðfæþïîð`îînffþïîîþïîîîîîîþïîîþïnðîîîîð`ðð`æþïnfþïffæîîîþïîîþïnfþïîîþïnfðÿÿ`fþÿÿÿÿïfæÿÿÿÿÿÿnfðÿÿfðfÿÿfæÿÿÿÿÿÿ`ÿÿÿÿÿÿïffþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnÿÿÿÿÿÿÿÿÿÿ`ÿÿÿÿÿÿ`æÿÿnfþïffþÿÿÿÿÿÿÿÿÿnfþÿÿÿÿÿnfðÿÿÿÿ`fþÿÿÿÿïfæÿÿÿÿÿÿnfðÿÿfðfÿÿfæÿÿÿÿÿÿ`ÿÿÿÿÿÿïffþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnÿÿÿÿÿÿÿÿÿÿ`ÿÿÿÿÿÿ`æÿÿnfþïffþÿÿÿÿÿÿÿÿÿnfþÿÿÿÿÿnfðÿÿð`fþïîîþïfæþïîîþïnffðfðfæþïîð`ðîþïffþïîîîîîîîîîîþïîîþïnðîþïîð`ð`æþïnfþïffþïîîîîîîþïnfþïîîþïnfðfffþïffþïffîîffîîffffffðffðffîîffffðffþïffþïffffffffffþïffîîffffþïffffffffðffþïffþïffþïffffffîîffþïffîîffðffffffþïffþïffffffffffffffðffðffffffffffðffþïffþïffffffffffþïffffffffffþïffffffffffðffþïffþïffþïffffffffffþïffffffðffffffðffðffffffffffffffffffðffffffffffðffðffþïffffffffffðffffffðffðffðffffffðffðffðffðffffffffffðffffffffffffffðffðffîîffffffîîffffffðffffffffðffðffþïffffffffffðffffffðffðffðffîîffðffðffðffðffîîffffffðfffffff`ffðfðîþïnfæîîîþïnffðð`ðfðffþïîîîîîîînffðffððfðfæþïîðfðffððîþïnfæîîðffðÿÿffðfÿÿÿÿÿÿÿnfþÿÿÿÿÿnfðÿÿfðÿÿÿÿ`ÿÿÿÿÿÿÿÿfðffþÿÿÿÿÿÿÿÿïffðffðÿÿÿÿÿÿÿÿÿÿfðfæÿÿÿÿÿfÿÿffðÿÿÿÿÿÿÿÿÿnfþÿÿÿÿffðÿÿÿÿÿÿÿffðfÿÿÿÿÿÿÿnfþÿÿÿÿÿnfðÿÿfðÿÿÿÿ`ÿÿÿÿÿÿÿÿfðffþÿÿÿÿÿÿÿÿïffðffðÿÿÿÿÿÿÿÿÿÿfðfæÿÿÿÿÿfÿÿffðÿÿÿÿÿÿÿÿÿnfþÿÿÿÿffðÿÿÿÿÿðffðfîþïnfþïîîþïnfðfðð`fðffþïîîþïîîþïffðffðfðfæþïîðfðffðîþïnfþïîðffððfðffðffffffîîffþïffîîffðffðffðffffffffffðffþïffþïffþïffðffðffffffffffðffîîffðffðffffffðffîîffþïffðffðffffðffðffffffffffþïffffffðffðffðffffffffffðffþïffþïffþïffðffðffffffffffðffffffðffðffffffðffffffþïffðffðffffffþïffffffffffffffðffffffþïffðffþïffffffffffðffðffðffþïffþïffþïffðffffffþïffffffþïffþïffffffþïffffffðffffffðffffffþïffffîîffffðffffffþïffðffþïffîîffffffðffðffðffþïffþïffþïffðffffþïffffffþïffþïffîîffþïffffffðffffffðffffffþïfð`æþïnð`fðf`fæþïnfðfæþïnæþïî`ffðfððîþïîîþïîîþïffðð`fþïîîînffþïffþïfæþïnæþïnfæîîðfðffþïfÿÿ`æÿÿnÿÿ`fðfÿÿfæÿÿnfðfæÿÿnæÿÿÿÿÿffðÿÿfðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïffðÿÿÿÿÿ`fþÿÿÿÿïffþïffþïfæÿÿnæÿÿnfþÿÿÿÿfÿÿÿÿÿÿfÿÿÿÿfþïfÿÿ`æÿÿnÿÿ`fðfÿÿfæÿÿnfðfæÿÿnæÿÿÿÿÿffðÿÿfðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïffðÿÿÿÿÿ`fþÿÿÿÿïffþïffþïfæÿÿnæÿÿnfþÿÿÿÿfÿÿÿÿÿÿfÿÿÿÿfþïfð`æþïnð`fðfðfæþïnfðfæþïnæþïîðfffîþïîîþïîîþïffð`fæîîîþïffþïffþïfæþïnæþïnfþïîðfðfðfþïffðffþïffðffðffðffîîffðffîîffîîffðffffffffffffffþïffþïffþïffffffffffffþïffþïffþïffþïffîîffþïffðffffffðffðffþïffðffþïffðffðffðffffffðffffffffffðffffffffffffffþïffþïffþïffffffffffffffþïffþïffþïffþïffffffþïffðffffffðffðffðffðffðffffffþïffðffffffþïffffffffffffffffffffffffffðffþïffðffffffffffffffþïffþïffþïffðffffffðffðffffffþïffðffðffðffðffffþïffðffffþïffîîffffffffffîîffîîffîîffðffþïffðffffffffffffþïffþïffþïffðffffffðffðffîîffþïffðffððfðð`fþïîððîþïfæþïnf`fæþïnæþïîîþïnð`fþïîð`fðîþïffþïîîþïffðîînffðfðfæþïîîþïîðfðÿÿÿÿÿÿfðÿÿÿÿ`fþÿÿÿÿÿÿÿÿÿÿÿïfæÿÿnfðÿÿÿÿfæÿÿnæÿÿÿÿÿÿnÿÿ`fþÿÿÿÿÿÿÿÿÿÿÿÿfÿÿÿÿÿïffþÿÿÿÿïffðÿÿÿÿïffðÿÿfðfæÿÿÿÿÿÿÿÿÿÿÿfðÿÿÿÿÿÿfðÿÿÿÿ`fþÿÿÿÿÿÿÿÿÿÿÿïfæÿÿnfðÿÿÿÿfæÿÿnæÿÿÿÿÿÿnÿÿ`fþÿÿÿÿÿÿÿÿÿÿÿÿfÿÿÿÿÿïffþÿÿÿÿïffðÿÿÿÿïffðÿÿfðfæÿÿÿÿÿÿÿÿÿÿÿfððfð`fæîîðîþïfæþïnfððfæþïnæþïîîþïnð`fæîîððfðîþïffæîîîþïffðîþïffðfðfæþïîîîîîðfðffðffffffðffffffffffffþïffþïffðffðffþïffîîffîîffffffffðffffffðffffþïffffffþïffðffþïffðffðffîîffffffðffðffðffffffðffffffffffffffþïffþïffðffðffþïffffffffffffffffffðffffffðffffffþïffffffþïffðffþïffðffðffffffffffðfÞ-- title: WFC -- author: diguh -- desc: wave function collapse algorithm implementation -- script: lua CS=8 W=240/CS H=136/CS -- AUX functions function listHas(lst,v) for _,val in pairs(lst) do if val==v then return true end end return false end function copy(tab) local copy={} for okey,oval in pairs(tab) do copy[okey]=oval end return copy end le={} -- existance rule -- if true the rules describe what cells can exist EX=true states={2,3,5,7,5,14,15,35,10,21,30,42,70,105,210} -- rules: non existance rules -- cell won't allow these cells to exist -- allows opened up a_u=function(v) if v%3 == 0 then return true end return false end a_d=function(v) if v%7 == 0 then return true end return false end a_l=function(v) if v%2 == 0 then return true end return false end a_r=function(v) if v%5 == 0 then return true end return false end -- denies opened up n_u=function(v) if not (v%3 == 0) then return true end return false end n_d=function(v) if not (v%7 == 0) then return true end return false end n_l=function(v) if not (v%2 == 0) then return true end return false end n_r=function(v) if not (v%5 == 0) then return true end return false end rules={ [0]={ u=n_d, d=n_u, l=n_r, r=n_l }, [2]={ u=n_d, d=n_u, l=a_r, r=n_l }, [3]={ u=a_d, d=n_u, l=n_r, r=n_l }, [5]={ u=n_d, d=n_u, l=n_r, r=a_l }, [7]={ -- 7 connects down u=n_d,-- up blocks can't go down d=a_u,-- down blocks can go up l=n_r,-- lft blocks can't go rght r=n_l -- rght blocks can't go lft }, [6]={ u=a_d, d=n_u, l=a_r, r=n_l }, [14]={ u=n_d, d=a_u, l=a_r, r=n_l }, [15]={ u=a_d, d=n_u, l=n_r, r=a_l }, [35]={ u=n_d, d=a_u, l=n_r, r=a_l }, [10]={ u=n_d, d=n_u, l=a_r, r=a_l }, [21]={ u=a_d, d=a_u, l=n_r, r=n_l }, [30]={ u=a_d, d=n_u, l=a_r, r=a_l }, [42]={ u=a_d, d=a_u, l=a_r, r=n_l }, [70]={ u=n_d, d=a_u, l=a_r, r=a_l }, [105]={ u=a_d, d=a_u, l=n_r, r=a_l }, [210]={ u=a_d, d=a_u, l=a_r, r=a_l } } function Cell() local this={} -- possible states this.stts=copy(states) -- neighbors this.h={} -- entropy this.e=#this.stts --has collapsed this.c=false -- pos: position of this cell -- cell: reference cell sending in changes this.change=function(cell,pos,dpth) if this.c then return end local keep={} for _,stt in pairs(cell.stts) do for i,v in pairs(this.stts) do if not listHas(keep,v) and rules[stt][pos](v) then table.insert(keep,v) end end end if #keep==0 then keep={0} this.c=true end if #keep==1 then this.c=true end this.stts=copy(keep) if this.e~=#keep and dpth<15 then this.alert(dpth+1) end this.e=#keep if this.e<=1 then this.collapse(true) end if this.e1 then le=this end end this.alert=function(dpth) if not dpth then dpth=1 end if type(this.h['u'])=='table' then this.h['u'].change(this,'u',dpth+1) end if this.h['d'] then this.h['d'].change(this,'d',dpth+1) end if this.h['l'] then this.h['l'].change(this,'l',dpth+1) end if this.h['r'] then this.h['r'].change(this,'r',dpth+1) end end this.readh=function() if not dpth then dpth=1 end if this.h['u'] then this.change(this.h['u'],'d',dpth+1) end if this.h['d'] then this.change(this.h['d'],'u',dpth+1) end if this.h['l'] then this.change(this.h['l'],'r',dpth+1) end if this.h['r'] then this.change(this.h['r'],'l',dpth+1) end end this.collapse=function(al) this.c=true this.readh() this.stts={this.stts[math.random(#this.stts)]} this.e=1 if al then this.alert(1) end end this.addN=function(n,pos,notadd) this.h[pos]=n if notadd then return end local np='' if pos=='u' then np='d' elseif pos=='l' then np='r' elseif pos=='r' then np='l' elseif pos=='d' then np='u' end n.addN(this,np,true) end return this end board={} function setup() for x=0,W do board[x]={} for y=0,H do board[x][y]=Cell() end end for x=0,W do for y=0,H do if x>0 then board[x][y].addN(board[x-1][y],'l') end if y>0 then board[x][y].addN(board[x][y-1],'u') end if x<((W/CS)-1) then board[x][y].addN(board[x+1][y],'r') end if y<((H/CS)-1) then board[x][y].addN(board[x][y+1],'d') end end end -- lowest entropy le=board[10][10] le.collapse(true) end setup() function drawB() for x=0,W do for y=0,H do local stts=board[x][y].stts local i=math.random(#stts) local clrk=-1 if not board[x][y].c then clrk=14 end spr(stts[i],x*CS,y*CS,clrk,CS/8) end end end DEPTHC=0 function wfc() if le==nil then le=board[10][10] else le.collapse(true) end while le.c and DEPTHC<20 do DEPTHC=DEPTHC+1 local x=math.random(0,math.floor(W)) local y=math.random(0,math.floor(H)) le=board[x][y] end DEPTHC=0 end function listHas(list,value) for _,v in pairs(list) do if v==value then return EX end end return not EX end LP=-1000 function setuptst() c1=Cell() cu=Cell() cd=Cell() c1.addN(cu,'u') c1.addN(cd,'d') cd.collapse(true) cu.collapse(true) c1.collapse(true) end function tst() local stts=c1.stts local i=math.random(#stts) local s=4 spr(stts[i],8*s*2,8*s*2,-1,s) stts=cu.stts i=math.random(#stts) spr(stts[i],8*s*2,8*s*1,-1,s) stts=cd.stts i=math.random(#stts) spr(stts[i],8*s*2,8*s*3,-1,s) end function TIC() cls(0) drawB() --tst() LP=LP+1 --if btn(1) and time()-LP>1000 then wfc() --end end