From 11b48ba07062b2975286d468b9a75f7d06293d78 Mon Sep 17 00:00:00 2001 From: charles Date: Fri, 31 May 2002 08:59:42 +0000 Subject: [PATCH] *** empty log message *** --- Documentation/yaffs_on_mtd.html | 29 ++++++++++++------ snMakefile | 21 +++++++------ yaffs_fileem.c | 22 ++++++++------ yaffs_fs.c | 38 ++++++++++++++++++++++- yaffs_guts.c | 52 ++++++++++++++++++++++++++------ yaffs_guts.h | 6 ++-- yaffsdev | Bin 93829 -> 104490 bytes yaffsdev.c | 18 ++++++++++- yaffsdev.proj | Bin 28672 -> 28672 bytes 9 files changed, 144 insertions(+), 42 deletions(-) diff --git a/Documentation/yaffs_on_mtd.html b/Documentation/yaffs_on_mtd.html index b994fba..bba25e7 100644 --- a/Documentation/yaffs_on_mtd.html +++ b/Documentation/yaffs_on_mtd.html @@ -6,11 +6,11 @@ - +

Running up YAFFS using the MTD interface

-

Here are the steps required to get YAFFS going with the +

Here are the steps required to get YAFFS going with the NANDemulation MTD that I have written.

Warning: This is experimental stuff that plugs into the kernel. It has only @@ -21,10 +21,10 @@ you're working from the 2.4.18 kernel code base.

Preparing the kernel

First off, you need to patch the mtdcore services.

    -
  1. Replace the devices/mtd/mtdpart.c file with the one enclosed. - This patches the problem where special NAND functions are not being - copied through the partition handler. The changes are marked with a - comment containing my initials cdhm.

    +
  2. Replace the mtd files with the latest from the mtd cvs. This + fixes problems where special NAND functions are not being copied + through the partition handler. +

  3. Build the kernel including the following configurations to support mtd.

@@ -39,14 +39,13 @@ used only to find the device for mounting

CONFIG_MTD_DEBUG=y

    CONFIG_MTD_DEBUG_VERBOSE=3

    -

Setting up yaffs

  1. Run the mtd utility MAKEDEV to make the /dev/mtdxxx entries.

  2. Load up the NANDemul MTD by typing
    #/sbin/insmod mtdemul/nandemul.o
    You should now be able to see the - device in the mtd list by typing
    #cat + device in the mtd list by typing
    #cat /proc/mtd
    If all is well, the device will now be accessible as /dev/mtd0 and /dev/mtdblock0 (or whatever).

    @@ -69,8 +68,18 @@ real NAND device.

    NANDemul tests out the mtd interface so in theory it should work on real NAND too.

    Note though that since YAFFS applies the -ECC, it does not expect the NAND device to be applying ECC. You -probably want to configure the NAND driver with ECC disabled.

    +ECC and verify, it does not expect the NAND device to be applying ECC +or verification.
    +

    +

    You probably need to configure the NAND +with the following disabled:

    +

    CONFIG_MTD_NAND_ECC

    +

    CONFIG_MTD_NAND_VERIFY_WRITE

    +

    Nick Banes has had YAFFS working on real +NAND, with a few issues. +

    +



    +



    diff --git a/snMakefile b/snMakefile index 4557fa5..d7f5966 100644 --- a/snMakefile +++ b/snMakefile @@ -1,13 +1,13 @@ ######################################################### # Makefile auto generated by Cygnus Source Navigator. -# Target: yaffsdev_RAM Date: May 03 2002 Time: 07:11:35 PM +# Target: yaffsdev_disk Date: May 29 2002 Time: 08:12:41 PM # .SUFFIXES: .cc .class .java .cxx .C .cpp .o .c .l .y -VPATH = /opt/aleph1/yaffs/. +VPATH = /opt/yaffs/. YACC = bison @@ -18,7 +18,7 @@ CPP = g++ YACC_FLAGS = LEX_FLAGS = JAVA_FLAGS = -CC_FLAGS = -g -Wall +CC_FLAGS = -g -Wall -DYAFFS_PARANOID -DYAFFS_FILEEM CPP_FLAGS = YACC_INCLUDES = LEX_INCLUDES = @@ -30,16 +30,16 @@ LEX_DEFINES = JAVA_DEFINES = CC_DEFINES = CPP_DEFINES = -yaffsdev_RAM_LIBS = +yaffsdev_disk_LIBS = LINKER = gcc LINKER_FLAGS = LINKER_ENTRY = -yaffsdev_RAM_OBJECTS = yaffs_guts.o yaffs_ramem.o yaffsdev.o +yaffsdev_disk_OBJECTS = nand_ecc.o yaffs_fileem.o yaffs_guts.o yaffsdev.o all: yaffsdev -yaffsdev: $(yaffsdev_RAM_OBJECTS) - $(LINKER) -o yaffsdev $(LINKER_ENTRY) $(LINKER_FLAGS) $(yaffsdev_RAM_OBJECTS) $(yaffsdev_RAM_LIBS) +yaffsdev: $(yaffsdev_disk_OBJECTS) + $(LINKER) -o yaffsdev $(LINKER_ENTRY) $(LINKER_FLAGS) $(yaffsdev_disk_OBJECTS) $(yaffsdev_disk_LIBS) .y.c: $(YACC) $< $(YACC_FLAGS) $(YACC_DEFINES) $(YACC_INCLUDES) @@ -69,9 +69,10 @@ yaffsdev: $(yaffsdev_RAM_OBJECTS) $(CPP) -c $< $(CPP_FLAGS) $(CPP_DEFINES) $(CPP_INCLUDES) -yaffs_guts.o: /opt/aleph1/yaffs/yaffs_guts.h /opt/aleph1/yaffs/yaffsinterface.h /opt/aleph1/yaffs/yportenv.h -yaffs_ramem.o: yaffs_nandemul.h /opt/aleph1/yaffs/devextras.h /opt/aleph1/yaffs/yaffs_guts.h /opt/aleph1/yaffs/yaffsinterface.h /opt/aleph1/yaffs/yportenv.h -yaffsdev.o: yaffs_nandemul.h /usr/include/stdio.h /usr/include/stdlib.h /usr/include/string.h /opt/aleph1/yaffs/yaffs_guts.h /opt/aleph1/yaffs/yaffsinterface.h +nand_ecc.o: /opt/yaffs/yportenv.h +yaffs_fileem.o: /opt/2.4.18/linux/include/linux/stat.h /opt/2.4.18/linux/include/linux/types.h /usr/include/fcntl.h /usr/include/stdio.h /usr/include/stdlib.h /usr/include/string.h /usr/include/unistd.h /opt/yaffs/yaffs_fileem.h /opt/yaffs/yaffs_guts.h /opt/yaffs/yaffsinterface.h +yaffs_guts.o: /opt/yaffs/yaffs_guts.h /opt/yaffs/yaffsinterface.h /opt/yaffs/yportenv.h +yaffsdev.o: yaffs_nandemul.h /usr/include/stdio.h /usr/include/stdlib.h /usr/include/string.h /opt/yaffs/yaffs_fileem.h /opt/yaffs/yaffs_guts.h /opt/yaffs/yaffsinterface.h clean: rm -f *.o diff --git a/yaffs_fileem.c b/yaffs_fileem.c index a137fb4..a034610 100644 --- a/yaffs_fileem.c +++ b/yaffs_fileem.c @@ -14,7 +14,7 @@ */ //yaffs_fileem.c -#include "yaffs_nandif.h" +#include "yaffs_fileem.h" #include "yaffs_guts.h" #include "yaffsinterface.h" @@ -39,7 +39,7 @@ static __u8 ffChunk[528]; -static void CheckInit(void) +static void CheckInit(yaffs_Device *dev) { static int initialised = 0; @@ -67,19 +67,19 @@ static void CheckInit(void) printf("Creating emulation file...\n"); for(i = 0; i < FILE_SIZE_IN_BLOCKS; i++) { - yaffs_EraseBlockInNAND(i); + yaffs_FEEraseBlockInNAND(dev,i); } } } } -int yaffs_WriteChunkToNAND(int chunkInNAND,__u8 *data, yaffs_Spare *spare) +int yaffs_FEWriteChunkToNAND(yaffs_Device *dev,int chunkInNAND,const __u8 *data, yaffs_Spare *spare) { int pos; pos = chunkInNAND * 528; - CheckInit(); + CheckInit(dev); if(data) @@ -100,14 +100,14 @@ int yaffs_WriteChunkToNAND(int chunkInNAND,__u8 *data, yaffs_Spare *spare) } -int yaffs_ReadChunkFromNAND(int chunkInNAND, __u8 *data, yaffs_Spare *spare) +int yaffs_FEReadChunkFromNAND(yaffs_Device *dev,int chunkInNAND, __u8 *data, yaffs_Spare *spare) { int pos; pos = chunkInNAND * 528; - CheckInit(); + CheckInit(dev); if(data) { @@ -127,11 +127,11 @@ int yaffs_ReadChunkFromNAND(int chunkInNAND, __u8 *data, yaffs_Spare *spare) } -int yaffs_EraseBlockInNAND(int blockInNAND) +int yaffs_FEEraseBlockInNAND(yaffs_Device *dev,int blockInNAND) { int i; - CheckInit(); + CheckInit(dev); printf("Erasing block %d\n",blockInNAND); @@ -143,3 +143,7 @@ int yaffs_EraseBlockInNAND(int blockInNAND) return YAFFS_OK; } +int yaffs_FEInitialiseNAND(yaffs_Device *dev) +{ + return YAFFS_OK; +} diff --git a/yaffs_fs.c b/yaffs_fs.c index de71211..c3f57d7 100644 --- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -60,6 +60,8 @@ +static void yaffs_put_super(struct super_block *sb); + static ssize_t yaffs_file_read(struct file *f, char *buf, size_t n, loff_t *pos); static ssize_t yaffs_file_write(struct file *f, const char *buf, size_t n, loff_t *pos); @@ -128,6 +130,7 @@ static struct super_operations yaffs_super_ops = { statfs: yaffs_statfs, read_inode: yaffs_read_inode, put_inode: yaffs_put_inode, + put_super: yaffs_put_super, // read_inode: // remount_fs: // clear_inode: @@ -177,6 +180,9 @@ static struct dentry * yaffs_lookup(struct inode *dir, struct dentry *dentry) static void yaffs_put_inode(struct inode *inode) { T(("yaffs_put_inode: ino %d, count %d\n",(int)inode->i_ino, atomic_read(&inode->i_count))); + + yaffs_FlushFile(yaffs_InodeToObject(inode)); + } #ifdef YAFFS_ADDRESS_OPS @@ -626,6 +632,34 @@ static void yaffs_read_inode (struct inode *inode) } +static void yaffs_put_super(struct super_block *sb) +{ + yaffs_Device *dev = yaffs_SuperToDevice(sb); + + if(dev->putSuperFunc) + { + dev->putSuperFunc(sb); + } +} + + +#ifdef YAFFS_MTD_ENABLED + +static void yaffs_MTDPutSuper(struct super_block *sb) +{ + + struct mtd_info *mtd = yaffs_SuperToDevice(sb)->genericDevice; + + if(mtd->sync) + { + mtd->sync(mtd); + } + + put_mtd_device(mtd); +} + +#endif + static struct super_block *yaffs_internal_read_super(int useRam, struct super_block * sb, void * data, int silent) { struct inode * inode; @@ -653,7 +687,7 @@ static struct super_block *yaffs_internal_read_super(int useRam, struct super_bl if(useRam) { -#if YAFFS_RAM_ENABLED +#ifdef YAFFS_RAM_ENABLED // Set the yaffs_Device up for ram emulation sb->u.generic_sbp = dev = kmalloc(sizeof(yaffs_Device),GFP_KERNEL); @@ -675,6 +709,7 @@ static struct super_block *yaffs_internal_read_super(int useRam, struct super_bl dev->readChunkFromNAND = nandemul_ReadChunkFromNAND; dev->eraseBlockInNAND = nandemul_EraseBlockInNAND; dev->initialiseNAND = nandemul_InitialiseNAND; + #endif } @@ -755,6 +790,7 @@ static struct super_block *yaffs_internal_read_super(int useRam, struct super_bl dev->eraseBlockInNAND = nandmtd_EraseBlockInNAND; dev->initialiseNAND = nandmtd_InitialiseNAND; + dev->putSuperFunc = yaffs_MTDPutSuper; #endif } diff --git a/yaffs_guts.c b/yaffs_guts.c index 66014bb..88b02a3 100644 --- a/yaffs_guts.c +++ b/yaffs_guts.c @@ -82,8 +82,8 @@ loff_t yaffs_GetFileSize(yaffs_Object *obj); static int yaffs_AllocateChunk(yaffs_Device *dev,int useReserve); -#if YAFFS_PARANOID -static int yaffs_CheckFileSanity(yaffs_Object *in) +#ifdef YAFFS_PARANOID +static int yaffs_CheckFileSanity(yaffs_Object *in); #else #define yaffs_CheckFileSanity(in) #endif @@ -136,6 +136,39 @@ int yaffs_ReadChunkFromNAND(struct yaffs_DeviceStruct *dev,int chunkInNAND, __u8 return retVal; } +#ifdef YAFFS_PARANOID + +static int yaffs_CheckChunkErased(struct yaffs_DeviceStruct *dev,int chunkInNAND) +{ + static int init = 0; + static __u8 cmpbuf[YAFFS_BYTES_PER_CHUNK]; + static __u8 data[YAFFS_BYTES_PER_CHUNK]; + static __u8 spare[16]; + + int retVal; + + retVal = YAFFS_OK; + + dev->readChunkFromNAND(dev,chunkInNAND,data,(yaffs_Spare *)spare); + + + + if(!init) + { + memset(cmpbuf,0xff,YAFFS_BYTES_PER_CHUNK); + init = 1; + } + + if(memcmp(cmpbuf,data,YAFFS_BYTES_PER_CHUNK)) retVal = YAFFS_FAIL; + if(memcmp(cmpbuf,spare,16)) retVal = YAFFS_FAIL; + + return retVal; + +} + +#endif + + int yaffs_EraseBlockInNAND(struct yaffs_DeviceStruct *dev,int blockInNAND) { return dev->eraseBlockInNAND(dev,blockInNAND); @@ -1429,7 +1462,7 @@ static int yaffs_AllocateChunk(yaffs_Device *dev,int useReserve) } #ifdef YAFFS_PARANOID - if(yaffs_CheckChunkErased(retVal) == YAFFS_FAIL) + if(yaffs_CheckChunkErased(dev,retVal) == YAFFS_FAIL) { T(("..................Trying to allocate non-erased page %d\n",retVal)); } @@ -1677,7 +1710,7 @@ int yaffs_FindChunkInFile(yaffs_Object *in,int chunkInInode,yaffs_Tags *tags) theChunk = tn->level0[chunkInInode & YAFFS_TNODES_LEVEL0_MASK] << dev->chunkGroupBits; // Now we need to do the shifting etc and search for it - for(i = 0,found = 0; i < dev->chunkGroupSize && !found; i++) + for(i = 0,found = 0; theChunk && i < dev->chunkGroupSize && !found; i++) { yaffs_ReadChunkTagsFromNAND(dev,theChunk,tags); if(tags->chunkId == chunkInInode && @@ -1719,7 +1752,7 @@ int yaffs_FindAndDeleteChunkInFile(yaffs_Object *in,int chunkInInode,yaffs_Tags theChunk = tn->level0[chunkInInode & YAFFS_TNODES_LEVEL0_MASK] << dev->chunkGroupBits; // Now we need to do the shifting etc and search for it - for(i = 0,found = 0; i < dev->chunkGroupSize && !found; i++) + for(i = 0,found = 0; theChunk && i < dev->chunkGroupSize && !found; i++) { yaffs_ReadChunkTagsFromNAND(dev,theChunk,tags); if(tags->chunkId == chunkInInode && @@ -1780,20 +1813,20 @@ static int yaffs_CheckFileSanity(yaffs_Object *in) for(chunk = 1; chunk <= nChunks; chunk++) { - tn = yaffs_FindLevel0Tnode(&in->variant.fileVariant, chunk); + tn = yaffs_FindLevel0Tnode(in->myDev,&in->variant.fileVariant, chunk); if(tn) { - theChunk = tn->level0[chunk & YAFFS_TNODES_LEVEL0_MASK] << dev->chunkGroupBits; + theChunk = tn->level0[chunk & YAFFS_TNODES_LEVEL0_MASK] << in->myDev->chunkGroupBits; - yaffs_ReadChunkTagsFromNAND(theChunk,tags); + yaffs_ReadChunkTagsFromNAND(in->myDev,theChunk,tags); if(tags->chunkId == chunk && tags->objectId == in->objectId) { // found it; - + } else { @@ -2370,6 +2403,7 @@ int yaffs_FlushFile(yaffs_Object *in) int retVal; if(in->dirty) { + T(("flushing object header\n")); retVal = yaffs_UpdateObjectHeader(in,NULL); } else diff --git a/yaffs_guts.h b/yaffs_guts.h index e6f74dd..7b059aa 100644 --- a/yaffs_guts.h +++ b/yaffs_guts.h @@ -334,9 +334,11 @@ struct yaffs_DeviceStruct int (*readChunkFromNAND)(struct yaffs_DeviceStruct *dev,int chunkInNAND, __u8 *data, yaffs_Spare *spare); int (*eraseBlockInNAND)(struct yaffs_DeviceStruct *dev,int blockInNAND); int (*initialiseNAND)(struct yaffs_DeviceStruct *dev); - - +#ifdef __KERNEL__ + void (*putSuperFunc)(struct super_block *sb); +#endif + // Runtime parameters. yaffs_BlockInfo *blockInfo; int nErasedBlocks; diff --git a/yaffsdev b/yaffsdev index 6e51051b859dcc7fdd205bf6b372f0915281d490..70d4cc2136bc2f54eedded57b3a4a67290d7ee49 100755 GIT binary patch literal 104490 zcmd?Sd3;nw)<0a`eR}~TiHOQ5YSe(JsED9!YKYw!6*RIqxB@~j?3hJBMH@mKnoKmK z;656a8JBTE2bGy|35$S=V^o}BM%0Lmc1(0oqehM7{eDl~TelL(Gtc|`z0V)-=P9^- zzjbacr%s(Zb*gT4=cdG{k%2%!c_FAmin02eo!CI!H_q432C8foQGL}B>M-1u;e&sdr+5dhD4C8q-7Vt$pSp9`%S&u|S#hQ2+N)XV2V zBsu$rs|ImifXEKeh{tu&rg z+SZ>y&vMaZoDtvAjoJ&4ajJPbjy{++mPK>R1% z8DEO)*NC6(#>;TO5Apll_yf4dcQ`Tj+X0Z~ZMZ*y=O?<)=i&Y$;<;{|{pE#hfJ1R@ z#q<8SvpzL(;?=X~&Y4(JI=Q%X;zR{?n?f}^O_h`uPnow+%`2Whr*xW{T{v4}g~i2l zi;-!{g2@x7O`kJ)*7WNN)$GZ$X3d?VW|b5c&Q$Y@r&)Mvm#pFSN!E~vhdrx=GA^AQZDjj#<-bjB9mp_^NI$DpX=9i6$2 zcMPKKykk)9;2i_Do_7r3UA&{FH1A!Z!@OeBsSu5`xc&I-L#vI-; z0AswP<1={2z|Z0x#-Io9FaYCI|0-{arB{O0>huXM~HW4vf84AVsy7scOqV(I-*XLIU1^v~FWG*e%; zc*EnfVGzqFAyQFW8f>epyrT8B4XN*{-7voLpkJdA(xVmcl$~37&@x0TgGhX6RcRkp zmFGN6N?UjLN!Ni0dbn`YyTXr_i;*#^K8oKOddgv$VD}wtReRRpQ53R#l?4uCI{W_99m$ey;0V zmH26oYJ55Moi6z&)k#@D?7J+F+`g>J@mb3gKQ0U6p0_;l!?NIO8>;m(BwE3Yz)PWmAjfv{YL`x_U%X~g-Z9cSMxf6si zmXB{M-+5M5Vo!h6)mC1gi}v+cKE4GlCZ%QB`tRQXSN$OZ6x6u7yvb=R%gB5_(OQ6y zp9|6t=uQL+;9$A>zK;9~JGmxSzCO4-vFH1`b@jpWEg`=hU_4854FD^xY$jsJ#^_Io zBA;%SCjGcP@zZ{Z)~<;km)4ebUCZ`0yawf2j^0V1nrJPrAI}ygeyU3kNc<$RJrE#c zKbF^zTZRr_)HXh|f|5xt+5_~Zpr6NOR_p@uHKHxKDe*nhd{2GILB}7HXw@CxR+W&> z`nk4muqx5Up8p;_zfI?Dm*?ojPyZ=T3wzM9@&>OR3Q8dJ`SCwMUv(Ej&U-SSAKj8# z|L#sy**^=BA1cSk&|k}(17!3xtOxtmqM(os^>z>Xi@K)y+~e_ipKe#HDhoFDgxt#O z14tj1Mu?I(?v!!hK8FzP=Rei;)z5!)pF^zn^B=wE-v`Q05{<}Ot~`CnLdOc0Ud@8C zGQJj5fohCYuca+C`dxlTH4KExtXPMqP`RQkBrBpK7pd=HIsW#e40=9ELIGyv6;1j8 z_hn({8S5j(cmQc{H-6{Y#B2G>0%^KeYZKxnrMMg*o@!|)i#K^(mmXw z60M6DwJLR#DjmXN9%C_SU5q=#Qs0#?YPsn~$P-4Ut*oW3ES4UL0%6(on5n1j)Z-R1 zNnsR(1Nd-K5Pwq!lSk2ZBrji-rAkjGAF8da)n%m8~^p6Kw?t`5zk_o-GSX_wm zMLkq$zYe)ao7^+9+RA#kSs&3^MRknKJK=4n9^d=q?ccf_c0+sKrs-<`Yu=tQxozG~ z&{^B_=E~_KZRXd7Nw#-xk;

    iPxa$^uA#KiS7q$r%G@4pb?D$!ZK~Fj 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 literal 93829 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 z zWH}=j0{e+~a-MOdnrMFvK98;zb$e3Q~uKA1~ z(-%c!dZkH|V|RTtrZ+@m`nqUL-w=%{qrbk7Z;HnBR5YeD!|*y*V1wTcR<&H5$|RM`L;$p4{*G{2<<1;L{&+KMm=RxF?1&y3-~1#6IrI z0sjg2+>rj1yCS6jvwLkwe-=;F_Vs_x{il%rg8Otx-{rm>(qD2v59zPChi>p?zvgy^ z^xwKmLi%nzA=T4-!(AKF-*oQ|>HqFN6w=>zpAYHp;OT?D>`&YSGCuuJ?wpYRnHvr1 zd+@X^PxEv4;*h@Ay(^?$pMQ!Heblc6{D!`thIFRy!4LHHoYD8>kbY3#WJqWG4u$kX z`r0A=(7soM^qGBc4C#mWeK4fY>ib$qpWXMpkbYF3KM3J_jvjM{=i$+PdqVm#eU~Dw z^YO(pA4`jzYgfs9T#@ukWIi63^wlySUnuEo9PjzRT+%Odyl-~Bq+jm7iu8?^{u0tU z$FFsFA+2-#6^{4KbdJB$@xIwRh5irSPjE-~R!P6w{TOMT@2_z`jPCAgPxOw*!Wjx} z!WYwbqUH4%64KjJzCHc?zXzWi-D8bHeeb2egnwSG zS3CVBx2@Z5ZELqm+ZNi}_8gj?nb@{et1gr-%=hEpwo<#h%`KHm`9i6&(yZ1h<$e_G z?CNaZzBRYysV(^$y)d5}+%Y&ZFg!Ri8j?FkU1_=464Jbq=C_P)AI;^FQ)|?hHu{PN zGuc6%75 zb8*`tJ-R(`5GRZqsc;QTJEEF*tl=vc*AvpCuD#r7b%IPrSVwMHxEp~i2l6|HM@IQS z1g@lO+T9tI*@<>Xhlhp+hCr_34g;9mPQnqX8|l#tbNLY+$xvlN3&jYuIaZnPE`mE%DOISg)lq*W=_c8P9o z-M)1oKU!TWE*U(KCn6~rv4!Ckg~rfIN+p6_aty`{ald0HVU0G<<+WpJFV6w9M@`crb zk>Lw#)q3~%wo;?MSY1Ln)Yx8amn+TowxxP^TVV>*d2Lp=UOi5_qiB}J7pk51w$5s^ z!lomp7AwV0x7CY9!EL2-WzmRNs_hah3pg<}=+8Eo6Y#gNO&D!e%FD%$@tg18IUKs) z?vzm*T5eY_s}v}#5tG|D=v7$jvBiX#IQhQM#S6wIH%i6X0vm=!XA}Z1M}sw>gD71n z#dsaW0U1Qt6%I_Ny5faBplT}O>$WSf1Ld~$en2%SeWADkMWYs6#8$1pGvUJE(&zZ6l{t z@A%51zH3Gp;6WW=QTfGox|9yHh{b1xazi@Uq8N+q#cC~SZAjJH%4t?oPIX%qs@_QO zl!8q%D0hNa_0CIeokF`*tQEcFhEx*L-%g>M&Qn=fJDp}H6jE7;xZ4=FTBUAM8VYIv zn=dOtXBi7>xgFM!rXqBKFd$kd{8F>-deSZ}!--smQc9}OEVha(yXH6N#Gz~t27Ig9 zXjMC_@iLAnV67Dvi|r284JCJS0pLt)cd#zCSzv&32FpBf&1zlfbSC-LKh#sMv`h3+ zcgkw9lgq;e03hw-?KBapZ*@zZUEtg^QS3mRZD9dJ&>k4Z46SsErDbwbi8;4kH5;{R z$#+S4@i`&}l>%nFGGDDPS0Dosl-0I#*!op!G<^&3#T2>JEw;*>2)kshgdz7*08>ZA zMzkv(t0}irJRuRAW=h7+EnD+>YaiVx$;7hy@m~wYz#S2wB zoRss11jK5PFn>IQE8R}zxN(@{bOaHGznw>wD+TyBmDbTpIX#LiaGbi>|HRrv>c+8p zrIq5H*dx`tFYm`~CGI>2PAq$hrKq1d&U&y#?IKs?II6U#vyFO5tvpKTwCC*hb+?Y0 zd6pT2A!);bD722n49P+xNKW`lOC}RW$txtNk3k_rSADO5XMvtU40`E{_2zr^M1It( zpqM~6+t@;eK`_NkhBx$y8YrF!zTnoR`y2~YHHVG}Ee0hLwQRE`-KaMizD{pZOmoC} zq3sHdE)-j>sx50!X4R~`Xx4V@0pR=7Zjs@j{y?@W&+b-}u6l_hr%6=|I_E`>jP#T- zX(z%lKBC@Z^`JV@DWW>1``M#RI?>Ee!n8g{cU$_L%hBM9m37D9R(hna>zH8CRzXVX z?%`Oey@D7+ggMcR|y27>RRv#1JS zj>g4EfLRa#7*^U=tUObN#b!fYC2e1ur$qyvE*{3%*KG>`n#Ulc z3iaQ#3R}~Kv&{osYOre$l?)9Atw>b@g^)@j;V!`{9<{9*lh|1)Vk6hn9TZZfP?#E@ zo4vR&_q1Kxw|Zc9j<{X92r;o|S3UwSn!IS&K!7JN+CP7|Fg?5f(EP5!fZcm&W~MNA zXr9=ifSsP1nVcG%G3wz2KRZ5m(f*mq`AN&#kz`qsiOGZG2d4MW&mGt`l4Q=#Pac>> zg_8#kAYEbyD0V$iGDMb;)1-n7mQ%>Fob`}bu;7KtX=p&rHA=|2{*WG~C)D3*73=M!h%7=Z z1IDxrSnFv+i(s6w5=6Xlg^=dJq!tC6>lS@>x6)dT+N86`Ho>nHq-k8YU|JYr_E3)I zP0NAlb<3rsA{L0nz^@hq!z{K|ELiW0s>gXQR(aUYL|($OpQJt`mWmJz$=nk^P>XtA zmhTLdeec8alN==1x31Ij=Z-hwvG$1>IVziE4kaFIr?S}fA-;hT^H<|x9L$-o>ZQ$r!Uoza6}REyu{XM% zh3=vXLreh#D=V|;jpjlCp1>A_LSeC1T#fGXU0|Hzu>l6eSXEe?0 zoS~?y-n`{8&|c?MuFS<$h?dF=5uhLz>mC$wyM!pz#(E2DR*+EwodDcmPZg?MsAMf4 zkPzDdw-4PxEYl?uG}OvhdJbE}GNuH^w!CXfM%Qg?G&|dh zwMuh2w{5k!xY*w2tUq!{R(oF)r+|IJWy>Y7#7Gl3{)L7yAzOjKT(O2>$}jju~+h{tY`PsoKYRfz@6KHiUnH zW}l2_A0q@-2T)|+4*Cx~y2wExCn5X`w02P#jKaUj&|XU4LnmP&1K%P1i+*S?Q{i7= zF-WkSNPvI){uRQ%s7D7;x{!o_f!9G?Km3bqc2Q_fs?YO45okLF=3|*VPml)5{?9%DERh*f^7-jk_1dZ2I+<)aS5IP2m2ZM zPuxVBH4E#b#7{tpRT7sw>`-@yc;sjqb$WMUhYUS%AoNa%hEq_QF<$R&0I8N1n|Bx7 z3Sg}_=wsql0IfYj+`@HjQ36uUE1VgZ@MP`~91iC_3Q%g7;8?h%GzAP!(SG7&fK=BM z_!=%bw*}hV2J|&qw;_9T8&I)d{(!VK1hgq*%yUzC^x;@HrZ2uE6pjQ;<|og--SeLaIq5k*c4nD*0(O zkWpQ2uM|tI1~<}?Qwh~k(*fVodGAn02RWP&;y)rMx*32Rvx^u}M1ac(-C0~pos9g* zBF^c-KkerQFv6HEDyCMzn}{qXL`n;0vcdu#Gz%~3N+j5F#b1K6n3G`Jh+m5CdtZXl zzN8%s0^*h)sRu_ARxyR;tn@fJ#mtQao#z<}#t}AR1Tm^ctz0lFAQUGm1rqRwi*(!? zS0%mxR8Cei;EH6-g08Y|re2Qe}FXTF{sNY=U@Q6 zrI5P?ya*w@Qe|Zn?I_L6GRlik=~18>e-eg`$eNQdt;U~(r34ipeGLwgv2Zr@>vr^o z?m^(8d%yhA7b>8{@db(FqTdkBWY5`6I19i<$|3RN@P!#K(!ltp+3(Bbz?@0vh7-^LMROq)(?m`eLp3 z>*$Mw5RvkFA4gxLg9z6-`a+H#eK7$gxZg)#q=$~ny=df3hL1p5ezP-j=r$O!2)6Z1AF1{ODQo18ZSu>zvP4=oPMRr^z@53<>$Um zzx;{Bn&U5jB*A?~`uqzEJ$I*iD3Lw@Ll&I?*$m2p%$xo9|Av3D#h)kO=%C&$ML&xe z@=g->^mN4R>KdFh|04jgn#frxwvNCi%rnRQ5IwmEEQ^WYO{d#((hH1eyZCWlsl|8U z7SQ}?-WMt1j(X{6hj#(HwT`xdA;Z$^a~enFT8#(cgm$Xf>+oic$5mRbMoTW&cuc*) z<4@eLK^xx51pnf9wsUZ?l1Kua5B#!>66A?LM#*oFM#S~g z?Gbi#4b{xWIyYBfnl^;r;toQ9G>D{9RSaa9#X=@tRYcaVRE}VaXO&?F3l-*L@V!tM zf?w@QLItr3RpJsRm-zTY6y$Ojlitk9rb{-5_?gxU>{Du|fotHnrwpu|<0DK}X)P8@ z497(W`^$`3;sQ~t$bbQk+D5?kkhfis0CBltMY6+cTMONRyyDP#HLCofSYa8LYhiv+ z0a$L2sDT3{Yo%b-z~QRs(Oo19?%!w+^9)eoa(Zv4tjm(Yd^9#J`^)yo2--(ysPgcv z{let+i|Qq+4l0ChWnw_ZHR=GIsuxDl!rz!Jz)C&sUB8#P0Z&1=mKs`aJ^H`^=*#}_51jnuu7Sk+*WZ*CimIHWn){F%3xYWZt zS+Jr+o0%x+Op%EOiJP4O^-4_bjf7Fl3 zl(Yo|NRyUO+VBEvQcr^VX_ka^<9B43| zqeWoHs9FrA^R*v@kHO!{f}F+;U)&<*hC9V2R(rOHA3NsXc*j*-y?u10A*lrYo*%~WE{k${9=DiTvw2bwiZe7#;RS;S_}Wc6cPzQ0ilMSRckv3hO0dpx}j94v+2Kd$6!)W^Vjxg@f~B zxPg3V_GzAzK8VG>8aA&MKUsS`UQK?o%6PomeBjNZ8h$_>J^Hx^<)>ld)8+@% z+2gNHupq4Mdwu{e9#$MI7DcsAjF-i|&3R`qKe(N%?M}LbW&-Q{buWJZ2O~Hyg2z0B zZzJ9kuD{A`WwkLC_$914AbmB7fr>W|joN!4iAkP9`BisT?~^b!JB%2e|@@^X5~ zp~6No;%$armHnVk7-V!VI96y#Ju4)@3orX0Gr6h=J*`|wM|^@`hM zWt68q(yM&Z83t=ax{SvhZ!0r8F_jm)Dc@U|vsNXR9uh5jaS?8S9AA@plQ?5EU6r`c zmw~`K0)KpXwCtrA=R$9nWw2)nHj|?srj|8iX znKg-g=JY874!ik9o`h>_War=% zz|O6#PRMow&I_ihj0x}c`7uFewPeb?%jUsyvAs;8NWJJUmU2kSOM}ygTNv>afmfpo zq#TI`pTD|L!wxGD(`bS_io=Nde)2Ii3q^EEq3P zwntPTYNvR4Qb*0JrEMHBpx(ZrRF4VM#uFPR*D1jOuZqMB?CF+{$QeBI%+B!|B}`b2 z2GE9Dri%SQPlc(w32!J;S|pQzI@TV@?HI0$H>7$1Hf>}PViUYH5V%JaD23HVL}#X2 zjczlzMG%D^IVX9#EP^@Y+1c|_1;6L5mXtX<`B*>v{zk$TD8)Sx20nXV`F7+$5vs2aWBF5&1Ldz@;! zl2H5cbeRPm%$ZC!{a_f<@i*%$+}QF==b2#@&+4 z{ctYB_-OR4J}(RCIHb`DKj^jTw%DpvG+She_0`X~`rar@+Oj!kZB@!rPPA3J0|k`s z@XCbE!@6p8JKeO+L^f^tI*y#A>W@j=Ax|2&U3h3bnk&+}R|3WqhSg7Nh=sDrLZacc z+rwug5zTM|19ka9G(ReBi_-W3$PeW;>VQ}yT~(~`oz?N>3MOI8#t0-Dsaz_y7BB+i zjT)~aVXzLQe_Wg&8qmOHtI=RZq36g@4;4|g&g@=nkIOyTDw_1lE$wHVMGM=d2YMlwJtxIlHm+)um@g&tr zU=>r|xTjW!NP#YHAs z^LVjVnuQy35Zj?e8g~qx?1Y+f5C$l5AY4^uKX41WS)zaLCB}*-$Hy^xz+w~-0$+p< zd(M*9<`LtG2@w%!E17o@gHq_+HXE|2Y@5aL{R2zVn|kF~+Sa&ET{k4S`EElpRp|%~ zJBmF32D?KiS(D0OFifD)et@KzrkSYlTv<(X#2Y)Ul_Vp%ZnhxjD_Bgute$0^AUkLk z#ygr)J9qBXJycN6y?6kH>>IZCbZ60AX%Tv`ndrYxi86aa&&LK53IBY8c^JQXrEO-( z$>z+MYV*<>xPldoxEcggKter2w)K9jT%K#)UlyI;`&i-qt!}+?Nkb0*!YC;>p7%1h zjW%=Om`+gt!AejXsUp20Gu0_K>R7)bQq?bxxnB^xl6lzLfp&R}w`JxHVXX~&&@s8X z)~QUcG&`$Guc`)@&8r%dHWy^g+>1>CjInO(66(4}Hm!N_dVT*J3s4uDx=_=hIvw=T zU|MfUwxCX(cAZ9;Lx-_TbiSvsX2goF1nn>_dNqChe5%1LwiB9b%O$lQqjh}O#hQQ$ z2!i_{dYEel2!>B9uz0Tx(jpf!BUj4=V!;S_mr^ zPZm?MR+R}HB_k%mC#e}b0@qo#KKB%twpv=r>Dn~)!2NA*!}#=^y*#17^ygd)b{RT} zY&pCLmf@l!aL2UXWEr*nSm-r(OJ13{N%HC5t#=|P2?!W3p?zgjTI6g?+KVz0%?=Wc zaxE5-l+?gOPYbf~>?uBupW!c=gt>Z&T4K~2m>Z#=5D?v*7#7-|`VYu9JP1v+4`;%u zqJY;cDvp|#q^2D#VqIAEyojGPX+NiRoU=T@bGTa&Yq*w9tp?ON?26J3rC$Z8w$=Kq z9Bnh)6PaWo5%zIpSCg56N^FuRYm)dRy%RZ}>gy6vaUqgU6;o6Qd^d5;RN5?Crh#!F zI-1a|MvCukw9H(>k@a<{Zb<%~N(tl27FD3)QgDxhuA5a{;G~zmj`h*oU-6QBovlje zVumIoCZOot7UsXlP>5=!8Kt07Y{q?>!BZ#bSxwhF4LwYvm88^!xBX%{fS_#xS%ArJSM<&A zL_sVNtovL)sHufc09mPg<_5E%g}&XZJ8C0VKU$cA+{Gu z*Q`|gyB%w_(~x#k+y|M^d!c~S<|p=@VKR(Y4Fg1a9I+5&uCz4jLda>D()~obYSsZF&|7F(N&TmW_+EEOnXdpKhvTK+# z>jgvu&v(M)@f$Q;3kJ&PLz%S&%F~N79%Z}N<5xHt(LK5`VXfl6BJ$*!pKpven)b{& zSD)y07e#g|wz!e{d_!{f;8v5>gt*n*q96?+!$Jg}3SlVEIgi>?)nQ%diH;3|A5fJq zOcH66BOiJG!`$Kw9-JscWtG6OGIU77=3(<76)tmsp}w+i zS!tF-%vDQxqly&_LN{uy@?fbL7AIUT@q=mKWibI>_3?0J|MV9)YVxE=HU-;V z)!J#`wE8`(;`IdQOF{u6SF=#YRU%~Lui31v&L_N$`xB|Xs>Lw0Xgm=%u76S6^^!2Y zLv+*n3)P(LInl(>r$!1S%Cm8-)`+fQ)0}6r98WA|HI$={&Q$74on@~NJp}Ya^=gUr z!ouH?;)cp}SuwhvdgSDQS;2at7?d5SBS*&MSk}AyTJT_{GluIv)df5zvh8`33qT?> zjr8Jv;1(BM0ZIgS-(`(%qPx;m@%aXfX*|v*TG*{abuk_iD?lIc6ENw^f?QFEq!Ig+ zQf=ZBpvSt?np@=V+v@Yx6J=9O*$`(4`wu**l}{*7Px~qGnDU>wGcVu)C}B;+qC{O2 z_gn7Vd4L(MIKu-{1*UhX0-@Q~YN$k^USj>R+ajdFj!G33Mgr38a-*=fTbBT?&r$V< zhk<8T_A)P*{}P7r^fC`fj%Py7fIMK;#2rvU;-S2i6+WMc&n&_t#OmeBO1Fk>Oe=;X}Q0VFZCz@&lvL&g~e?<-JeS6DQN(!}3NV>Kxda$KhhRh&Kd8XRCt6 znP}9GodrolJU>Q52z0eabRz(e`!N1ug_|w;R*x ze{T*VW;Dk%v=AKTaN4$(pNI_T3*jwV_JdXssUFU#{Wq zpJJD5`6M~ulTa|tE{8I~q@YcW{Fpdac%k3qil35{WE9akr0x7j)J$Vy5DNl~keo`y zP2mh;3gL4Lz%Kw#RJf9N_y6fkiur|>8B~_vQBAzt?winvSlK-$Pk$x2M)MYe_pVzOz zlTrS|o1}hm;xQoMaPgIFKR%Jk{utl?27mtJUzl}15PYvV>9WtyWV6WFh_wIMtIr&V zoUbDz-Dc47-Q2H2+UN6|e>?EUcj%JtHqhP1`tZlH_!1hvPnqwACYxsLG{z!K&=*~q3-;d6G_RrIGktVNa;O`pHU4xACkoF(a z@$($~dAd`eJH-s&NhAsK?*#rl-AymbWN%^z_T$e!lpQ};;xEwQonki~a^c2ELH*+9hY{sZW~ z<%#g^>*F_d#ec4y?{nK9=G^0exD0>n2X&BhBd+iEVxPM+l8dhoWNSXOM?`M0R%v$> z)|P2s6xJ4KM-*o3YA+PlQKel_m?Mw;0IOs;&oy7ZWIij*Ug*44m~Ya?`>_K(XFA@K zjCsiK4fdAwoA?etfgu=tIIsAaXu)_QE`rXukbkn zQ@<5fi%mUN_*}`SzAF410#h#)ex$(uzYXqDJ}KWDQkIGQ;04psXM^)^NL1to$5kZx zY>3`vNbCk^MLfGK}Iw=eIm)c&yiQ-R-S{qKW3 z#{heI^|^E8y}~n5{_n9qE6?_x4baQK5AweP@TE~c-%C&V(PsDIO~!mTeKX2G1^8qH zzX$OCsJ#yW_T$;-&UWkdr)m1Z{?JZ%nEd@Wz_n1{*-qLsdgimeg#Sml?*r}x`g7dR zQu$}CJ04zN+5Us00i(PhN%)J9H@^FzzfZ#V=g{BtfoA(p1^o0EXR-x@F9Ceh8#CD- z8GHort;pvRMf&Fg-hWjl`@8rid@a6jcu6K(vHUjx&b%~}{cVHa19%hQS%W_gxC8h? zgZ~EbZC5At{R80a%QD%&!#C?c3nt^cFVAHE%IKc}_>MowWGQFnj{?5-+Dx`<^alZF zUzy4N#PU}FpZDjP?DGu13b6abO!lzBHv-;#T_$^v!M6f_Ci0IM{3*a!-2wl=;4cC$ z1Kwot-GFZZJY?`c0{%G4?=mkH039eXZp` z1Mp_lPy5XNmH?l82jqcv2wx8PyboluPq6&g0RHrAGuam!{4UbpkjZ}1;7<^KLo%LU z2mC|8v=prGr-08qnaOgUC44p*y92Q2ryua8&<{VJlVtqOnQYDIp9%PiQ<*H+5|-}( zzV&UH>|TSf2E6Z2ARimA*8#4fyzk%p0AB-m&gef2_^W`I4gNmhiMJ&1SzID+hCgHZ z{eZ8-cyBUz7VvK5j~QG5dj%#JCOe*p?7X0V6L|iC#?Cy-ID=lVQ;oc z{+VtF@NF31pBX#@_yqL*X$D^c_@0ktvVUg%dp6+f-jm6G&fpgV<~!s0zHzqy8o-%X zXR>X}e=p#Fi~jwE)psZ0&tW_-Hux^U_xy1tyT#zU0pI+IO!ngj-wXKETVXG(zTd*Y zao>P!wD%CV38}jPx1@dNh5_FV_?^h7d=3L%es3oG9V`DVz(2e_lf7HYpXr_h*kS%m z8GJq9ADcaAf8Gn&`!i<&z7_DM>vcXc|E~e>Lw#?t^50{5w9j>j-pRdy?|7fuFVa5( zF4U<{VP9tSj{$uA-I*-k$jtma;7zBJ@tgyE9q8$4F@Fj0e55~3z}~+(8~S-U;49vq z$^NF*cRgUf5Bivue?8!5Vt)DYeFxx6qxx@1uYRk^eft z)Q`Uf{BewD-uU@3;CKE}Ci@(tf7nB@9ztLJeAxnc0_7hl^v>-B9Ls+<;PcSlMk{{_ zVDF!vjUDp};CYnS`R3en0cU@v{p0w(fccQ`1y=smfXkpC7udPC0=^0QNqfis{3+lL z_~(9}@EwFfe}mEg72tX3U(@ox1$aN!uQ`M70elMn1N|D7KNAk=x#&OrI>L_we7D(; zvtd8B0zLtI^fAld4frJN=`z00hCQ9a_Z4WL{s_nC8G!xxorUpR0{l$KQ^)U2cNyT@ zqyAhCcpmzq{XNs20_;B@C0NJ3n?=jGqH=u#^zt>6VGa#cVm zK~-vX@S2ImMI@X3+i^NIF+X>pFf)B{zEH4tG~-tv{W;{68-=A>V*&3#ktkH5*gX#H z?$miFJk$Rfimf$*C2Oq$F%r68NC&5C>(_fY+$&6Zg6~vnkqLPj(JjO9^OZH!>yL}?qpk5bmKb4$W;)3 z;%XUdu1ovc*WP>fIqO_hNLLnLe@^8<%6cMg*!YrjbhxTXoOH_RtI@`1tcFT1c^e`Y ztTyDwK9Q`)ABXbWNwf@L;7yP1ln0zR8`0YPPL_eO?!Cw0>+QMF8qoM9kaCe+Ftxmd zO+64ablk601~mh>E|MFZR)BaROkK&eOv#AuVj7xC8($4H^qNbEhVQ)$XXuIK3Y}qk zZW0dGKa=$wWoRT&+oA?M71y=dUsa zJ+|EVGLxZr8Of487b0Nn{JjC6#EdXnf94-fI3do|Nwlk1%3|^LCoN?tdpK0qI`k|v zRM2~dY7OxsMxvC_kt=^h!3(Lo>IofXgO35J35uJv5CCbpe5|s2a zQAIs6HzGk#;KXKLE`s(P(MApQ{!qfQFxRwc-fZ$XyYpgTxP+fD6XuLRFpnBq@Aj%w z`?&(uXp~Y?!DFKCm!$E-GrP%XO(mC#3=w#uG?H7dy}5y7b4Jwi$`Gvk%LywFIVE?U zIJ|iLMcfgq#$RR(1h1R9D{w^Sbz4N-m2adkZJ zHWqZ+``M9C8tJ{3AoF~oq}Aimc-3|KDr(VdiYP~MQuNkxB0Ob=x6^uYa+}Q~*WR7C z94n8T3x?nnqQ&MkDr3Y=6ixi3rL!2144&49(@oq=Dm7PQypC9pc<~6v<3*Ohm4VAD z33;x6z}k&|1Y;P{9sR|w{ldpGpfhXlp}ETOYA2}}es6{BTamQ`F*P%{2X8W+!{dl1 z@jRWeJu{PVba96*T}R!!2g09U3(#vkc`&BbUh{{u*5Y{bOCYLseO)P`C*ra}CRQx| zU5lZ_Q=|ztm_CK+ARqY0hvVsc?kqob^^iZZ#Z3!btXVsN;-jZjJ$6H^w&W+ih6t7| ST&;vwC%X_h@ifwDo%o;HDSl4? diff --git a/yaffsdev.c b/yaffsdev.c index 64368f4..e38a983 100644 --- a/yaffsdev.c +++ b/yaffsdev.c @@ -14,7 +14,12 @@ */ #include "yaffsinterface.h" +#if YAFFS_FILEEM +#include "yaffs_fileem.h" +#else #include "yaffs_nandemul.h" +#endif + #include "yaffs_guts.h" #include @@ -287,12 +292,23 @@ int main(int argc,char *argv[]) device.nBlocks = (2 * 1024 * 1024) / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK); device.startBlock = 1; // Don't use block 0 device.endBlock = device.nBlocks - 1; - + +#if YAFFS_FILEEM + device.writeChunkToNAND = yaffs_FEWriteChunkToNAND; + device.readChunkFromNAND = yaffs_FEReadChunkFromNAND; + device.eraseBlockInNAND = yaffs_FEEraseBlockInNAND; + device.initialiseNAND = yaffs_FEInitialiseNAND; + + printf("Testing on file emulation\n"); +#else device.writeChunkToNAND = nandemul_WriteChunkToNAND; device.readChunkFromNAND = nandemul_ReadChunkFromNAND; device.eraseBlockInNAND = nandemul_EraseBlockInNAND; device.initialiseNAND = nandemul_InitialiseNAND; + printf("Testing on RAM emulation\n"); +#endif + yaffs_GutsInitialise(&device); // yaffs_GutsTest(); diff --git a/yaffsdev.proj b/yaffsdev.proj index b6f80f5aa93e77e197762d84bdab35ebc16ac520..fc2bac33a6995411fcd1a8d65cf58e8f071abf2c 100644 GIT binary patch delta 1722 zcmaJ?T}&fY6mI9v6qe4N!fyB}P#DrKAV0Nbfd+RGSZE_=L4Ha=i4H?&hK_Bgp`9Xx z;O_dMk!Z5)F>xP^VNLu=hzV;~6U8OLWaCD%zHc@gS55R`{Yj7qeOaAO3k6DinA|hx ze)FAk@A=M|OAn2g9vZKlHE!NG_nW2jA~VHsOgGcTR53Q@AAApQ;{YDR!?+7~;?vlU zD{(nCVG{4sJM?|}9=%CR^b7O^ypjqjP5O*#5eE2d8TqnDGjtd%Z|M-#DtsPJ>mF4paFb-*W0^>tFzuoz#6OvhMH8{5*-%ARR; zv#lK+sdZjk8$E4}?hZHXHa##c@RAf~;kl8L{5$Pct$ZGNwSws@#4*C)OfbODgw25vZBHv($qg%=TAwOalBfL&7 zh;y7E$3uqxKJNe@5_=P|n5d|JSRb9K&=H1+=57x2aaE9GhTfnU2=xY8aQoNbSATV$ zj#*-1b+{ag$KE^X^Nz=4RqPEWl#o9<*fZD%PjhXA&kIfCXQ)1LP7XjP*PgM8CaWkd z1>NV$SVfbyv?5#(=ftqfuSA6u-0YM0U2wUqt}v5_7Q`FlOnE{cMzX1s?#fa^1kLE+e~R8@|01^sB zwJ~#dIV`%4&WEFcP`{ErudPI2Q{y0_3fw_q!|co{$3Dk#h%CoxxL9`rrs|!fFBXkx zXRU>yTC*uFa9F9Uu^dphCU_ApOVz+NoXA!Azjd};X9jK2d%~wlW0cnlu>cx4$CtsH zdcxXCc~}oQaN5kY>|SW|GkiSgODF+Vj>2_E6@B1c*#nUy(WsgVlQuMNqXfqK3fQpM zG$&X+pHy*7%Pcy`MRU0GD;F111^a^*wP8f?6!}gO_ az!6(%_BUZjPkOyC?pYFb4q6^*K@o6Z==hQ^AzdT-9$ zckaFCp7$0XX%`=9-)YnSu+sii*Kw5#aT8oW_c~Y0nK_!>?|(QI=(+2~xOK0HL~~TyIbcX*7L_Gv!NK7^~yq8$$<(VGc&a zEG%0Jm}EfW>b|eEwtILLe~UlIaeM<`$8X`wcmfCTc|3~yaT~6}`*9)8#}vNLy4m|| zB@2mZzKn(OdZuh>UYehmCSy?#i3l@?th}jlfwwhUTj2eAbJe^w7j{Sa*2BE*$PvD& z*~T{?J*uv=%39ZYxX#wn0>9S(2#%3GiH$>-j9OblI2A`7w{$mkpE65KfH}vUVTPCi zrj7ZB{)7IVenQ*mDq2tH&@}ywdQ3f}9#HGlDz!o_Qz%cP@lnf(zF`Li;gMXno6H0~ zgqKVvjS249{YswKpwkgA;JczkkjWsqFa*Cjj9@q&Pds(Tb7AvMj&nwXGU*m%!7A%phvr2z@%BwI8xhIH6K1l>GiNf?~V>b8=rzwAgNWqIFMYrQiVah*2r!mxSX3Y%j&x~{-(eAu}cZn#RQk>jV}OV_Ob9CuQ2%>gc- z%j2HlU+_9!!yhYSox`(=gWhGYu$L95lrZ^>i?-7vbPruk6;T|8C=K-|+CUG{J#-hX zp%ru+-9+!9MRW;8kcdXnS=5hu(J|DHZfn~UOXJtH@P)fH$4h)dOiaYxKO^|NwirIC ztpv+KmR4FNu*b)PMa+Tgq!DJy5Ac?V5b=_5Ol{No?f80^e(Q+4}}h4D|3;_^_NWvnU4x&oifg zn!^IvYN{>&FHyQ0wYyhh$p*r**9F=@*>6}c*u!REqhbxQ?5H#HfRNn|D?Z3cn6CPUNCf~EvNN%x#(j!H#pNUEef z{R@-!!K%p!AC()6cTH2Btm+_T%&LP7&vT|PmukoX67kCc_->-2C>yTYb^IVMRi1^e zKr9k+2IYW5@Jo)#!Q+G7ybZKwLrL;=crgNW!FsxzD5e)DstVMNOp+wYP83#smNPpKZ6g9mGE{$0er3J5?3N~+J6Bmy)*{^ -- 2.30.2