[jboss-cvs] jboss-seam/examples/wiki/src/etc ...

Christian Bauer christian at hibernate.org
Wed Mar 7 13:37:35 EST 2007


  User: cbauer  
  Date: 07/03/07 13:37:35

  Added:       examples/wiki/src/etc          components.properties
                        wiki-dev-ds.xml seam.properties wiki-prod-ds.xml
                        import-dev.sql messages_en.properties
                        import-test.sql security.drl import-prod.sql
  Log:
  Moved to hot-redeploy WAR build structure
  
  Revision  Changes    Path
  1.1      date: 2007/03/07 18:37:35;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/etc/components.properties
  
  Index: components.properties
  ===================================================================
  embeddedEjb true
  jndiPattern #{ejbName}/local
  
  
  1.1      date: 2007/03/07 18:37:35;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/etc/wiki-dev-ds.xml
  
  Index: wiki-dev-ds.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <datasources>
     
     <local-tx-datasource>
        <jndi-name>wikiDatasource</jndi-name>
        <connection-url>jdbc:hsqldb:hsql://localhost</connection-url>
        <driver-class>org.hsqldb.jdbcDriver</driver-class>
        <user-name>sa</user-name>
        <password></password>
  <!-- 
        <exception-sorter-class-name>
           org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
        </exception-sorter-class-name>
        <metadata>
           <type-mapping>mySQL</type-mapping>
        </metadata>
  -->
     </local-tx-datasource>
      
  </datasources>
  
  
  
  
  1.1      date: 2007/03/07 18:37:35;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/etc/seam.properties
  
  	<<Binary file>>
  
  
  1.1      date: 2007/03/07 18:37:35;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/etc/wiki-prod-ds.xml
  
  Index: wiki-prod-ds.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <datasources>
     
     <local-tx-datasource>
        <jndi-name>wikiDatasource</jndi-name>
        <connection-url>jdbc:hsqldb:hsql://localhost</connection-url>
        <driver-class>org.hsqldb.jdbcDriver</driver-class>
        <user-name>sa</user-name>
        <password></password>
  <!-- 
        <exception-sorter-class-name>
           org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
        </exception-sorter-class-name>
        <metadata>
           <type-mapping>mySQL</type-mapping>
        </metadata>
  -->
     </local-tx-datasource>
      
  </datasources>
  
  
  
  
  1.1      date: 2007/03/07 18:37:35;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/etc/import-dev.sql
  
  Index: import-dev.sql
  ===================================================================
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (1, 0, 'Admin', 'Admin', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (2, 0, 'Member', 'Member', 'member', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  
  insert into ROLE (ROLE_ID, OBJ_VERSION, DISPLAY_NAME, NAME, ACCESS_LEVEL, CREATED_ON) values (1, 0, 'Administrator', 'admin', 999, '2006-06-27 13:45:00')
  insert into ROLE (ROLE_ID, OBJ_VERSION, DISPLAY_NAME, NAME, ACCESS_LEVEL, CREATED_ON) values (2, 0, 'Member', 'member', 10, '2006-06-27 13:45:00')
  insert into ROLE (ROLE_ID, OBJ_VERSION, DISPLAY_NAME, NAME, ACCESS_LEVEL, CREATED_ON) values (3, 0, 'Guest', 'guest', 1, '2006-06-27 13:45:00')
  
  insert into USER_ROLE (USER_ID, ROLE_ID) values (1,1)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (2,2)
  
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (3, 0, 'Foo1', 'Foo1', 'foo1', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (4, 0, 'Foo2', 'Foo2', 'foo2', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (5, 0, 'Foo3', 'Foo3', 'foo3', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (6, 0, 'Foo4', 'Foo4', 'foo4', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (7, 0, 'Foo5', 'Foo5', 'foo5', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (8, 0, 'Foo6', 'Foo6', 'foo6', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (9, 0, 'Foo7', 'Foo7', 'foo7', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (10, 0, 'Foo8', 'Foo8', 'foo8', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (11, 0, 'Foo9', 'Foo9', 'foo9', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (12, 0, 'Foo10', 'Foo10', 'foo10', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (13, 0, 'Foo11', 'Foo11', 'foo11', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (14, 0, 'Bar1', 'Bar1', 'bar1', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  insert into USERS (USER_ID, OBJ_VERSION, FIRSTNAME, LASTNAME, USERNAME, PASSWORDHASH, EMAIL, ACTIVATED, CREATED_ON) values (15, 0, 'Bar2', 'Bar2', 'bar2', 'aa08769cdcb26674c6706093503ff0a3', 'member at email.tld', true, '2006-06-27 13:45:00')
  
  insert into USER_ROLE (USER_ID, ROLE_ID) values (3,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (4,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (5,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (6,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (7,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (8,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (9,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (10,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (11,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (12,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (13,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (14,2)
  insert into USER_ROLE (USER_ID, ROLE_ID) values (15,2)
  
  insert into NODE (NODE_ID, NODE_TYPE, NODE_REVISION, CREATED_BY_USER_ID, AREA_NR, NODE_POSITION, DEFAULT_DOCUMENT_ID, OBJ_VERSION, NAME, WIKINAME, MENU_ITEM, CREATED_ON, WRITE_ACCESS_LEVEL, READ_ACCESS_LEVEL) values (1, 'DIRECTORY', 1, 1, 1, 0, null, 0, 'ROOT', 'ROOT', false, '1976-06-26 11:11:11', 10, 10)
  
  insert into NODE (NODE_ID, NODE_TYPE, NODE_REVISION, CREATED_BY_USER_ID, AREA_NR, PARENT_NODE_ID, NODE_POSITION, DEFAULT_DOCUMENT_ID, OBJ_VERSION, NAME, WIKINAME, MENU_ITEM, CREATED_ON, LAST_MODIFIED_ON, WRITE_ACCESS_LEVEL, READ_ACCESS_LEVEL) values (2, 'DIRECTORY', 1, 1, 2, 1, 0, null, 0, 'News', 'News', true, '2009-06-27 13:45:00', '2009-06-27 13:45:00', 10, 10)
  insert into NODE (NODE_ID, NODE_TYPE, NODE_REVISION, CREATED_BY_USER_ID, AREA_NR, PARENT_NODE_ID, NODE_POSITION, DEFAULT_DOCUMENT_ID, OBJ_VERSION, NAME, WIKINAME, MENU_ITEM, CREATED_ON, LAST_MODIFIED_ON, WRITE_ACCESS_LEVEL, READ_ACCESS_LEVEL) values (3, 'DIRECTORY', 1, 1, 3, 1, 1, null, 0, 'Documentation Area', 'DocumentationArea', true, '2009-06-27 13:45:00', '2009-06-27 13:45:00', 10, 10)
  insert into NODE (NODE_ID, NODE_TYPE, NODE_REVISION, CREATED_BY_USER_ID, AREA_NR, PARENT_NODE_ID, NODE_POSITION, DEFAULT_DOCUMENT_ID, OBJ_VERSION, NAME, WIKINAME, MENU_ITEM, CREATED_ON, LAST_MODIFIED_ON, WRITE_ACCESS_LEVEL, READ_ACCESS_LEVEL) values (4, 'DIRECTORY', 1, 1, 4, 1, 2, null, 0, 'Download Overview', 'DownloadOverview', false, '2009-06-27 13:45:00', '2009-06-27 13:45:00', 10, 10)
  
  insert into NODE (NODE_ID, NODE_TYPE, NODE_REVISION, CREATED_BY_USER_ID, AREA_NR, PARENT_NODE_ID, NODE_POSITION, OBJ_VERSION, NAME, WIKINAME, MENU_ITEM, CONTENT, CREATED_ON, LAST_MODIFIED_ON, WRITE_ACCESS_LEVEL, READ_ACCESS_LEVEL) values (5, 'DOCUMENT', 1, 1, 2, 2, 0, 0, 'Welcome!', 'Welcome', false,'+Welcome!@@LF@@@@LF@@<div style="float:right;border: 1px solid grey; padding:4px;margin-left:10px;margin-bottom:1px;">[=>wiki://11]</div>Login with admin-admin or member-member.@@LF@@@@LF@@To attach or embedd a file, click /Browse/, upload it, and then simply link to it like you would link to another document.@@LF@@@@LF@@[A link=>wiki://6] to some page, a [broken link=>wiki://123], a normal link to [=>wiki://7], a link to [=>some page that does not exist] and a link to a [different area=>Documentation Area|FooBar].@@LF@@@@LF@@Seam Text is a human-friendly language for formatting text in blogs, forums and wikis. It''s easy to enter text in *bold*, /italic/, |monospace|, ~delete!
 d~ or ^superscript^; you can easily enter links, lists, quotes and code blocks.@@LF@@@@LF@@[This is a link.=>http://hibernate.org]@@LF@@@@LF@@You can *not* enter HTML entities, even escaped: \&amp; \&lt; \&gt; \&quot; \&nbsp;@@LF@@@@LF@@And even emoticons: ;) :-) :-{ ;-)@@LF@@@@LF@@Here is an ordered list:@@LF@@@@LF@@#JBoss@@LF@@#Seam@@LF@@#Hibernate@@LF@@@@LF@@And this is an unordered list:@@LF@@@@LF@@=jBPM@@LF@@=Drools@@LF@@=Ajax4JSF@@LF@@=Facelets@@LF@@@@LF@@"Here is a quote from someone else"@@LF@@@@LF@@`<p>Here is some code</p>`@@LF@@@@LF@@And some plain HTML (restricted subset):@@LF@@@@LF@@<b>Foo</b>','2009-06-27 13:45:00', '2009-06-27 13:45:00', 10, 10)
  update NODE set DEFAULT_DOCUMENT_ID = '5' where NODE_ID = '2'
  
  insert into NODE (NODE_ID, NODE_TYPE, NODE_REVISION, CREATED_BY_USER_ID, AREA_NR, PARENT_NODE_ID, NODE_POSITION, OBJ_VERSION, NAME, WIKINAME, MENU_ITEM, CONTENT, CREATED_ON, LAST_MODIFIED_ON, WRITE_ACCESS_LEVEL, READ_ACCESS_LEVEL) values (6, 'DOCUMENT', 1, 1, 2, 2, 1, 0, 'Foo', 'Foo', true, 'Welcome *to the* /Wiki/!', '2009-06-27 13:45:00', '2009-06-27 13:45:00', 10, 10)
  insert into NODE (NODE_ID, NODE_TYPE, NODE_REVISION, CREATED_BY_USER_ID, AREA_NR, PARENT_NODE_ID, NODE_POSITION, OBJ_VERSION, NAME, WIKINAME, MENU_ITEM, CONTENT, CREATED_ON, LAST_MODIFIED_ON, WRITE_ACCESS_LEVEL, READ_ACCESS_LEVEL) values (7, 'DOCUMENT', 1, 1, 2, 2, 2, 0, 'Bar', 'Bar', true, 'Welcome *to the* /Wiki/!', '2009-06-27 13:45:00', '2009-06-27 13:45:00', 10, 10)
  
  insert into NODE (NODE_ID, NODE_TYPE, NODE_REVISION, CREATED_BY_USER_ID, AREA_NR, PARENT_NODE_ID, NODE_POSITION, DEFAULT_DOCUMENT_ID, OBJ_VERSION, NAME, WIKINAME, MENU_ITEM, CREATED_ON, LAST_MODIFIED_ON, WRITE_ACCESS_LEVEL, READ_ACCESS_LEVEL) values (8, 'DIRECTORY', 1, 1, 3, 3, 0, null, 0, 'FAQ', 'FAQ', true, '2009-06-27 13:45:00', '2009-06-27 13:45:00', 10, 10)
  
  insert into NODE (NODE_ID, NODE_TYPE, NODE_REVISION, CREATED_BY_USER_ID, AREA_NR, PARENT_NODE_ID, NODE_POSITION, OBJ_VERSION, NAME, WIKINAME, MENU_ITEM, CONTENT, CREATED_ON, LAST_MODIFIED_ON, WRITE_ACCESS_LEVEL, READ_ACCESS_LEVEL)  values (9, 'DOCUMENT', 1, 1, 3, 3, 1, 0, 'FooBar', 'FooBar', true, 'Another one', '2009-06-27 13:45:00', '2009-06-27 13:45:00', 10, 10)
  insert into NODE (NODE_ID, NODE_TYPE, NODE_REVISION, CREATED_BY_USER_ID, AREA_NR, PARENT_NODE_ID, NODE_POSITION, OBJ_VERSION, NAME, WIKINAME, MENU_ITEM, CONTENT, CREATED_ON, LAST_MODIFIED_ON, WRITE_ACCESS_LEVEL, READ_ACCESS_LEVEL)  values (10, 'DOCUMENT', 1, 1, 3, 8, 0, 0, 'An FAQ Page', 'AnFAQPage', true, 'FAQ!', '2009-06-27 13:45:00', '2009-06-27 13:45:00', 10, 10)
  
  insert into NODE (NODE_ID, NODE_TYPE, NODE_REVISION, CREATED_BY_USER_ID, AREA_NR, PARENT_NODE_ID, NODE_POSITION, OBJ_VERSION, NAME, WIKINAME, MENU_ITEM, FILENAME, FILESIZE, FILEDATA, CONTENT_TYPE, IMAGE_SIZE_X, IMAGE_SIZE_Y, IMAGE_THUMBNAIL, CREATED_ON, LAST_MODIFIED_ON, WRITE_ACCESS_LEVEL, READ_ACCESS_LEVEL)  values (11, 'FILE', 1, 1, 2, 2, 3, 0, 'The Moon', 'TheMoon', true, 'moon.jpg', '27831', 'ffd8ffe000104a46494600010100000100010000ffed02f650686f746f73686f7020332e30003842494d04040000000002d91c0200000200021c0241000244431c0282000233501c020a0001341c026700066b61723030321c026e00036470611c020f0002564d1c0237000832303037303330341c02690015546f74616c65204d6f6e6466696e737465726e69731c027a000275641c0250000e413333383620556c69204465636b1c0265000b446575747363686c616e641c025a00094b61726c73727568651c025f0011426164656e2d57fc727474656d626572671c027300036470611c0214001757697373656e7363686166742f417374726f6e6f6d69651c027802064b7570666572726f7420736368696d6d65727420616d20536f6e6e7461672028!
 30342e30332e3230303729206265692065696e657220746f74616c656e204d6f6e6466696e737465726e697320646572204d6f6e6420fc6265722064656d204e6163687468696d6d656c20696e204b61726c73727568652e205a756d2065727374656e204d616c207365697420666173742064726569204a616872656e2074617563687420646572204d6f6e6420766f6c6c7374e46e64696720696e2064656e20536368617474656e2064657220457264652065696e202d206573206b6f6d6d74207a752065696e657220746f74616c656e204d6f6e6466696e737465726e69732e204469652046696e737465726e697320626567616e6e20616d2053616d7374616720756d2032322e3330205568722c20756d2032332e34342055687220776172206465722045726474726162616e74207363686c6965df6c6963682067616e7a20696e2064656e20536368617474656e20756e736572657320506c616e6574656e2065696e67657461756368742e20446965736520736f2067656e616e6e746520746f74616c6520506861736520646175657274652062697320303a35382055687220616d20536f6e6e7461676d6f7267656e2e20466f746f3a20556c69204465636b206470612f6c7377202b2b2b28632920647061202d2042696c6466756e6b2b2b2b00ffdb0043000806!
 06070605080707070909080a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e
2720222c231c1c2837292c30313434341f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232ffc000110801f401f403012200021101031101ffc4001f0000010501010101010100000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b51100020102040403040705040400010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a!
 3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00f02e9c63341e9ef4672739a38ee69085c7033c526467a51c668ce7eb4000edc74a3193483a75a5c8a0053c8a4cf146327ad07b7140075a0e7a5264e3d29473d281876ee2931cd3b93ef498c628010e4f38c52804fbe2838f7a0e08e39a620a307b52f6eb4848e94804e73934a31c13c81da9401f5a4e3a50018e3ae3eb47349dbad2f6392698c3a9ce690fd29463d68e98eb400719cd047a52719e3ad293ed81480403826940273477c678a3183d78a0039fca81edd2838ffebd191ffeaa6027f2a5e3149d4d28e7d6800eab41eb8cd1c76a334007f2a418e9d3f0a3e947e0680173ee68cf6cd1df39e68383d4d200e09ea71f4a4ef4743834a3a5001ebce281c0eb487afa51dfd6980bd4f071463bf5fc283f95263ffadef4805fc28cfbd252e07ad3002727eb4727a1a4e01a5cf6a401d7ad1c668cfbd079eb40099fc29473c5040c0c1e7e9474e281084f18a5ebdff0a4e8697823ad3187b72293ea29dd0f7a438c8e73eb480060fd68c60529233e9f4a4e339c9340831cf5a5ea29303b507dfad001d08ff0a0e71da839f5147e340c063b93f851d3af4a3a10738a339ce4d020279a29327d68a0614b8!
 1ebf9d19c1a0e00ef9a003bfb51f4347b5039393d6810739e0527ad3ba11f3503eef3e
b40083a5277e78a3eb4ecd301a4fe740273d71f8d29fd680719e7140c3bd06933cf7a5071cd020cf1d3f4a3de8e3f0fa50319a43139f4cd1d4f3f951c93ed4bc7bf1ef4c04cfb5283c63007e1413ffd7a060f4a40028c1f5a3807bfe3475a005fa11487349d38cd2e462810638e2933eb474a5e3b0a63133eb4bfd69319fad1fad0029a30739a4cfa528e3b9cd200fc69327d68347d298074f4346718a29324f1400a28ef471c75a3bd001c9ef4734bda93f1a402e4d04e78fe94983462800a3a51c77a3248a00281f4a39a5ef4c04cd2e7d07149c13466800c0c5181da8383eb466801401487ae7a5039fad049cf7a005e28ebf85368a003eb4a09a07d28a0009ed8c51d3af3477a5e31d2800382314828c0a5ff0038a0000ee4d079e9fce8fc38a3f0e290801c76a3af392293be39a339e3ad318bc628cf3d71de9063be683d78a007000f7fce8a4038e9452100c9a3f8792293be714bcf4a0050700f02931cfb518e700d1f5a0007bd07141fbd8a5ebd338a004c51ebde8e45267d698c5ce476a5c81d29bd051d3bd210edd9e00e69a7934a302907be68017240a3eb49dfa7e7477a63168623349c668f4a041918c52fe18a43d71450317827a51d3fc33499147d29007e028ed494be94c038a5a4a3069000ce0d1c528524e0726b7348f0778835e23fb3749ba9c671b95303f3!
 354a2e5b213696e617e74bfcebd534af805e2ebe21af3ecd6287af98fb9bf215d8d87ecdf6ea17fb435d773dc43163f9d5fb3eed0b9bb1f3ce0d2e39c77afaa6cfe01783add479ff006cb96ee5e5c03f80ad787e10781adc6068f19ff7dc9fe74b961d585df63e3ec529071922becb87e1ff0083acc1f2346b4071dd334d7f07e85c2c7a5d8e17a1110c8a7cb0ee1af63e36da7d0d263dabecaff8443470019f47b3655e98887eb44de0df084e87ced06cfd38880a3963dffafbc7a9f1b639a4c0fa57d7127c34f03cb292745887fb8302b2eebe0bf82ee3732413c208e04721a5cb1ee2d7b1f2e038cd27d057bfdf7ecffa6c8adfd9fac4b1bf612a022b8ed4fe06f8a2c8335b1b7bb40323cb6c31fc0d1c9d98cf31a33cd6cea7e12d7b48cfdbb4bb98557ab14c8fcc5631e3352e2d6e82e98719a33da92834862fd28e2928cd002d19e2933ef45002f1401ce45149f4a007703b0a4edd290d2d200e2978a4a3b7514007e3460f140e8697d2800e29476a6fd69703140852467bd27cbeb49d4f3c1a28b0585e33934eca8f4a6e4f5ce6901cd0038e33d05274f6a07e147273400a02fa8a29a4f345160b0a4f39e9f8d1db3411cf5147d4714c629c900f6a407da8c71da939cfad02173f9d1ce69383de8e9db340c53d79cd271e947e140a0028fc28e051da800a3f1a4c734b91!
 400678eb47e34525002f6a3bd147d6800cf34527b51d0d002d252f53de802800a2baef
0afc36f1278b4abd8d8b476a4f371282a9f87ad7b9f853e05681a2f9771ab336a1723076b708a7e956a9db59684b7d8f9e346f09eb9e209963d334db89f71fbc10851f8f4af58f0dfecf1793949b5fbf5b74ead0c1cb7d335efd6f1d9e9f12dbdb431c48a301235000144976aa3ae0fbf6a7cd15f0afbc766ce5b42f853e10f0f95921d3126994e7ccb83bcfeb5d8c6915ba08e2458d074550001544dee4f3c77e6905cf9dc1381dc8c1a4e527b8f96c690208e0d2798a0e335456ea38e3da84e3a67de95af3182403c540eccb2f26572781eb50965c93b41e3827bd5696f2238c9041f4a81af636c8520127039a69058927bd5b7caba8cf7e0d16f7515da111ff000f7c567c97859183aabb2fe04d402e1b6e02ec38c9dbd282ac69cf73246818025738f6a8dafd597f783a7358f7534e2367859883c7e3553ed53edcca4af1f9532b94e84c88e0b231cf4c524b7223da5c95c7b57326eae59b6c6df74f2054c6f263195752eb8e73c81fe3458563663bf867fde46c38e86acc73a8001c64d73889045f3a651ba6dcff003ab4d2c82253c00473ed49b416ec6d4c44abb2454756047383c5723adfc3ef0c6b79fb4e9f0c52118f322014d5f5bc93254397f5e6a07bd265c7201ea4e7029a9340e099e67ad7c093879345d4437a4737f435e63adf8435cf0fc85750b095147fcb450!
 597f3afa7d2eca9e49f639ebffd6a95a686ed5a3b98d1e23c10cb9fd0d3ba7b92e9db667c7dd2978f4afa13c45f0b341d57cc92d10d8dc1c90d17284fd2bc9bc47f0f75df0e3b34b6e6e2dc749a2191f88a9b7625ab6e729d68a39070452520034bda928a0053f5a4a297f0a003347d281cd25002fe1413473403c74a002973c73487eb4bd7b50027e14a38fe9477e05040a00377d3f2a0e0fa0a3dcf5a4c62810678e334b939e695477e0d201cfbd201430f4a2909fa5145800673c52f149de9481d87b5031bd28ef8a51d290f229807141e28cf1498c5002f5e68e48a2939f5a005a4ef451f4a0028e945140051f85145001451477a002969511a460a8a5989c00075af5ef007c14bcd68c7a86bfbad2c880c21fe371fd055462dea26cf39f0ef85758f145f2da6956724cc4fccf8c2a0f526be85f03fc0cd2b430979af14bfbc1c88c8fdda1feb5e97a2e87a6e81a7a59e99691dbc4831851c9fa9ef56a69760393c8f5aae64be10b37b827936b12c50c691c6a30aaa300556b89f00e72b5524bb01b3bf27f4aa77372c49c9fa0a82f94b66e541cf248aaf35d8ce791ede959935d95ce1f93daab0b86dacc492475ed4ee5dacb535d274c1279e3819a82e2fc460e0e33d475ac1b9d57c8000391d6b12e75469549dd905b39f5a571f2753a79358db8fde0f97ae3a8aacdaea8!
 03ca9ce739c13d6b95de77b02a48c01d79a488b37faace49a2e525dcecedf527670ecd
946078ab7e7a36ec10bc703a735ca58de8dab1370547e75a325d08a4cbb7c8064f18a9e641cb7358dc9283919ef4c172149ce71ea2b3d6ed3cc2d21f940f97079ff00eb5673df8c601208ce09ef4b987cb73a417c4010488a471861c8aa97655a665520af7c62b0e3d458850b90f93dba54e97477e5c71d49a5cc5f2175ae046b861b769e09ef52c1a8aba852a0003a9f5aa6f71172cf8c7a7e155229320944c0e475e94af72794d7678e55ec49ec39353412c206c7dcc3b1cf359067f20e1b009e59bb73d695ee148490119ea314f98ae534248cc603c40b29fcb1514cdb7e62001ea6a38b500d18de8d903a9e82993c84a6f51927de973342e514dd44319c803b8eb5325e44c700807ea335912ab36dc281df81d7eb4919625a42bb71c668b8f9575379662109df91d473c1fa52bb82c15c7988dd431c823d08ac959cb22b649c7de04e714d92ec432a97ce0e051cde62e4b98de27f867a46bc1e7b2db657bd8afdd6fa8af16d7bc2faaf876e0c57f6eca99c2caa32adf8d7d0ed70e240c58951c0c7f3a75cc76fa9dbbc1771a4c8c3a30cd573f722546ff09f2ed0066bd2fc5bf0dbecde65de8d965072d013923e86bcd9e378a468e4528ebc1561822ab730945c746368a28fce8107d28a2973fe7140067b66819c75a31df1462800c914bc93d7f2a4e9da940cf514805e7d3f!
 3a69f5a09268c668014738eb41cf4a07be738a0003d281077a39fce839e84f4a074e2980628a3383452180c51483af514b9e30698067d39fc28ebed47f9e94847a9a003eb471403eff009d1f5a000521e694d02800a293bd06800a5a4cd14005145140055ed2747bed72fe3b2d3ed9e79dce02a8e9ee7d2aef863c2da9f8af554b1d36067248df211f2c63d49afa9fc13e05d1fc1761e5db209af58625b861cb1f6f4ab514b590b5e873df0efe1169fe1889350d5d23bbd4c8c807948bd87bd7aa2285009edd3deaa19f070147e35049a8e1704fcdede94a526cb513426b848d08cfe158d777a371c31db9ff00f55453ea236b16ebc0183cd605d5e2962acc473fe73497995ca5f9652df307e33c9e954df5558f29d075f5acdb8ba648ced7e3d326b39e773f2ab90e476e98a2e68969a1a7717e1a32e4f7ec6b3aeb51902858dbe66f5ace9a5937319199ba9ce7802aacb7070071b8f2727ad4dfb95cacb325cb32839c10707d2a204329dc30064727fad4896ed28625b602052cea1408cb101786c7f4a195ca550855946d273ce49e82af44c12cdf68c13c9278ef50c2084c9c8c1e87d2a3b99d8131ed18231c0e4d4f33687cbd812efcb9578c91c726af5cddf996ca43100e3a1e9eb594248a38c663dd276ab16e336eea194b1c7ca78c54f30b959209e57c30200231d781f9!
 d2348a8adbc824ff0077b555925559086e141c601e0d4370e00cc596f4cf7a8d2e5d9f
53462bb48b2e40047dd0dfcea7f3778578d87273c8e79ae526bb9988f37eea9fcffcff004abb65aa180e0824d176c77bb376772b1e14ab119e054d1c65adc4bbb6393d0d621d4c46e309b91ba823a55eb7bd5980dc9b70338f4f7a57ec528979ff007cb20624123a6699bb014600c73e99aac6465981c1c0f5e73ef5612e2376f994007d3ad0ddd09c57443d6e70ecb92323030dfe714e5b83e61c4876a8ec7a7e15556302e1885397ce32dd3bd4728fdf04381ef4b9ba8eccb17ceb04a187cdc71834d8ef11402482319cb76aa13ee963e18861dbd7e955e30db48c1273ebc669dee2b34cd1b89833e22c85e07dec5451dcfda5dd84a818745eb922b22eee1a38cb061b987ddf5038acf8ef9d245641ef8cf1ee295d8ddb43a3975502e15199933c6d3d8fb5588afc6edaafc8e5813d3f1fad7213ea2d238764c8ce0815241aa45148eaa1b6b0efdffc69ea2e68ecced45c8948cb152382ddeb97f157856c75b89a745586f541fde2f01beb572d2f091e60625411819c9fc6ac4adbcee1f32919f4a39dad825052566787df69d73a75c186e622ac3a1ec7e9556bd7b54d32df50b39209d0c91b7dc7c7cd19f6f6af30d4f4b9f4d9ca4ab9527e571d0d6f19267154a6e051e281f4a071ce68cfeb54661f87146681467f3a00297a7391480f1da9722900a3f3a4245213cfad1d7bd!
 310b81fa527d7ad28a3bd21863b8a31c75a3e8693b72698808e78a294628a4313f0ef4b9e79cf4a33d78a43c9a602fd32693eb463de8340831de8ce719a39c5005030e3b519a3b514009452e73464e280128a5a4a002b73c2de15d43c59ab258d8c7919cc9291f2a2fa9aada06857be22d5a1d3ac63679243c9c70a3b935f50f84bc3761e0ed196d2d821988ccb21eae7bfe154bb859b347c21e19d3bc1ba2258da47fbc2332cb8f99dbbd6ac97237f271e8056635f33fde63b71c73daa94ba832efc636af7cf34a4f5d4d9434b1a973a888908de0f638e82b224bfddf2a91c7e158573ab3282bc125b39cf5aa571abe657da07230bb4d4b958a51352ef5648d8a6f25987526b21b51763d0b119383fad623cd3cd23be4e4ff9f5ab76f0c922805001d78a97dcabd9d89defda4402420fe1d0d352e1b25c367af6aaf711918001e79c1a9c2b9b6524f279254d26faa2baea31774c58293c0c918eb4d53bb24ff0f205266583e55e41391ce33491b39930ce003dbb543655b434d2f1520c6c192074e6ab09049827b9393da99e4b8ddb78edd6adc3144b6e0e0127824f15372a298622f2d7e73bbb9c66a8cca0be47017be31562660b390801e806de6a9dca19617c100819e39a571ad3448ad2b450b9d84b107249ef4c1763e6f9b1b89edeb4c9219586460823938e6aa798795c1!
 e3a7229737443d8b2afb5f24f0013d7fad2c93b9c32151dba0c8aaad2f971648cb63d3
a1a852760bc8386e318ef46e1a684b2a30e5b04b1e09a6c63c99012a0f4f97fcfb55f8912541b860fa83de9d2da8c07048078c01cd2b94a3d512c10acb12b4a14e1be520faf6357917240f9403fc381c56746a51c027760f524726af275dff36d1e833c52721a4922567daa03152a7f1a73cd942a40201cf03f4aae8096decbc7507bfe34d42c7207dd19e339001a575b0ec4ab7862b8560785e9c673ec6a2b8bcdd29c8dadd73d6a3390e581c0edd39fc2a8bcb31b804e17d41a48458fb5618ab2e38c123a9a4595966955480a08c0c0fa1a8dd4e0b6c1b7a60ff8d3c62520f3903b9fe954d872f4b19ba8ca267e31b97822a912aa9c7af63d0d59bb85d6e49241079e954a56c70c073d707f5aa4d33392ee4670005ce70783d4fd2a061b0e4b71ce33daa665ea41183d066a37fbd8039cf381d6aae45bb93db5cc91485810c0f519ea2ba7b2bf8ee23ee5b1deb908c846f94f07823a66b7ac0a490ef8d86e3c9cff002a99772a2ddac5f92d2456fddb964ea57158ba8e9b15e59c885772f718fbb5b6b72c24113290c0f07279a7ab125848995fad42934cb9413563c7b53d326d3a6dafcc6c7e46ec4551c57adea7a6417b0b5bcaaa53b7afd6bcd756d2a6d2ae4c720cc6c4ec71d0d75427cc70d5a7c8f4d8ce00518f4c75a3df14beff00ceb432107e94bc63e946290f1d0d02!
 0e7bf4a503de81ef47140c3e9fca819233401c7a7bd2e78e463e948437af7a5c71d4668e339c7e74601f4340c00e28a334531064fd6939a771ce6909f7a4020383d2834b93df34700503133451474eb4c03f9d20e6971c75a4a005e9499f6a5a290054d65673dfdec3696d1979a66088a3b9a87a9e3935eebf097c12ba742baeea3166e5c661561f707afd6a90257763abf01f82edfc1da2233aefd42700cf2f5c7b0f6adc9eeb0324f07a669d7d7df3361b2335cf5e5e4859893803a838e949c8e88c6c8baf7803738c8e9ed58b7daa9569215238e3e9542f6f8bb0453856e4f0326b2c49c1031c1f5e87daa1bbe85a5745a798ba939c9048c13d29b04267e73b474ce7ad56814bc9b49e7771ed5a534e96883eea22f73ebf8d4376dcae5b683f36f1300082dcfe353dac9b5cb7000e9c67358b6ba9b5cc8f184c281c30ab71ccf2719545c81f31e6a5b2d2d4d622394e48185e4639fd2a1211d981c861d33e9509944636c922aa9e82a179c29c80081d1b1d6a1b2ac912cd1ab020b6e078cf6a83ca0bb1fab0e48cf233daa613c7b172bcf3c9e99f6a66f5f33633057cf247a52b8d453dc58773c8c49385e833cfe14aef95c8caf18e9c7bd3111049f78b75fba783ff00d7a9241bad995c2609071d71f852b9492b5882290100e06ecf43ce2a3761c9c0c1e98aaf753c76e1bc!
 b501bdcd64cba8cce06d9171920f5c11495db06d2d0d8966551f7d1481c67d6aa09222
c49504f24e4567adc3b672d938fcea392e731f2d8ec29a5a93cc4d70eb712f002b038273d6aa87dae4a9078ea48a48d86e2dfc43de92500c9904600e78e48aad09d56a5cb4be589be60c08e3f0ab6da927965003f37539c60d603ee46e9c1f6fe94df3c82426dc63903a50d2dc6aa35a1d2473ac839c86079abf6f2811853c9f4ae4e1b9958808fc0fc335ad14eebb5b39e7b7af7ace49970699bf1ba1601c8e9c7f9fc6ab34caa08c15f4e41e2a9b5dee54e5938e7350cd2b483e53c8ebcf3526bd0b8db438c7201e73cd569e30d36490a0f4e38cd52374e67cb649c80307a56835ec7243897040e4738e7fa53bb4468c5520a26fe71c1626a644660d82324f4e95520bb865ca300493d2aea5d47ce578f42727f1a5293438ad18d92d44c9f2e0f1826b22e6c19034841ebc803815d145716e55d54e1cf238e86a94f0b4921d8d90fd8f7a4a6c6e1a6872b216230428e7d866a30093dfae3f1ad6bab0752c4a9f7eb81541ada4404820a81d71c8ad94f439a54deec806c703183ed57f4c768e62141db8dc38aa280939390739e4d6c5941e5e58be323a66893d07049bb9a2660efbf6e303a63a546b3efb8608770eeadf4aade7ac595271918233efc54574fe5347345925b83ffebaccd5ec6a07f3a30c58e33f749e7359fabe8d06a366d138c03ca37756a6db4be64b8278ec7b8!
 3ef5acb282acac090475f4a136985a338ea78d5f59cda7de496d38c3a1ebea3d6ab13ed5e87e2bd185ec2274004ea320ff7bdabcf594ab9041c8ebdabb21352573cca94dc256637f97d297a8ec28c9c7069412075ab33133cd1da827dc528e9d7ad00273ec7f0a0fb63341e3de9719e334008093c51c7a7e34b9ed8a6f39c66801d903aff002a28c7a9a2801bde8c9c1a5e33467be2818946694d277a003afb51463de8045300ef499c9a5a0648f6a401ea2804d1ea7b55ad3b4f9f53d420b3b652d2cce14014c0ebfe1af84c6bfac7daee97fd0ad482723876ec2bdfcdc0b78c202a02ae00eddbfa562685a45bf87745834fb6fe05f99b1f798f24d3eeae48040c63be2a5c93d0e9842caec8eeeeb7091d9b04f1ef5893cad2c670e401c6e3d68bbbb44718718cfeb50444dc19593eee3a91d7fce6b36fb1a4522b7322fdd620f0066960870de538383c927d2a66da8fb9d9428e7915033ac3be49065d87ad4b99718e85e8ded6d8040a0328e32383552f2e229a06463f78e73fd2b0e59d9a70c495cfbf6ab2a2394b1f33e51c0a96256bd87074b61fba55dcf8c927ad466ea49324e3af073c52657cd3bc803b5404e0f5c6e1d4f6a372add0b0d336776e6007626ad477db88f35372f4c83d2b3d18c870a400077a963d8dc6e03b8c0a9b8d334669e32aa15c63a927b53cc8863!
 259fe7edb7a63d6b350e0e0671f4a3ccc3fb9c9e4706a7d0bbf565fb695639d093bb8e
3f9558773b8bab6467a1e959ab3280170339ea3f954c972be5fce465b233f4a96526ba197a95c6663f2fcf9c11551970b9273c6738ab5a890f2fc8800ee47d2b2da560bc92493f8568b63293d4b3bc6588209351392064f1e98351a9e18b6467d3b5216079ce7ea72290ac3d240182938cfb548ee090431539ed514992e081819cf3d4d21e5720b2fb8ed4db0f790484ab14ec477ea69bb43af503a64638a256618ce0f19ce7a5316462c033671d4f5cd2b89bb3d432f1be32319c823a1ab90cecea4138c7420638fa7ad546c37cc7f0ef5192d12e548e463e828dc169b1d12cb1fc855bb75c77a59252b92769f7acab37314054f1ce4035664943c7bc1c0e99c74a868d93b8c6950f4e31dfa557b894ab024b15e80760289c2b6d64dd93c938eb55a6661940495c7a63154ac4b7a1a36770a771de09273d39ab8186ef988009c738ae7482b8c71c6473deae5adf0310123107d4d26ba8e334bddb1b3bf661b3c0f4ab96d7604443b67df1fceb066d4d1631e590c71dbb52a5f799b1470cdd46739150e2dee5f3abd91be650fc821c01c1e98aa642f5e02e79f7aaf6f75b33b88014faff4a99ae51c6430273d3de92f32fdd62bc6a08629b4e71c771499c0c01927a102812e46e030071ed4a08396e146368cd2e6ee251b6c06156cf983a8c118e94c96057891718c700fa7bd48ae!
 760c9f6c7ad5732f97c16c80d9e0e714ee2690d89f61fba55979356a4b9d9f32b600e067b8aa534be532be4f96ff008f3534322bc472783c83eb557bee4a5d098e2784a9ce0f201ed5c1f8974bfb3ca6e610369fbe07afad76e07000f957bd53bcb6593396050e548c76aaa72e56635a1ceb5dcf32c62827a0fe757350b26b2bc78db94cee53ea2aa7535dc9dd5cf39ab3b313b8c73452e36f5a063af34000241e0d1cf273473d40a3771d6800041ea3f1a3b7b7ad03ad009140003c714519f6cd14c03af18a5ed4d345200c7bd2f1e99a3eb9a4e39ed4c00fd2969294750290067d290027b519a2810bdf35eaff0009fc3e614975b9d76b32948370eddcd79b68fa749aaeaf6d631024cae01c0e83b9afa2ac20874dd3a2b689008e340807a5293491ad28733269ae0ed1cf27a907a573d7f7cc8ac8a416ce073daac5ede2ae719dc7b66b24c45c096424e78eb58f31d7ca92b10c711ba90ae403c1c0ad352228f64792401c918a4b68951598f52320eeedfe735567946fe98f439ce6a5c8a4890c9bc119dca73d0e6b2a79559b04b0551823d6acc92958c90cb823aeeac19ae3e6e0f5ee475a482494516a793cc2a36e00ce00ed4cde10005704ff002a8048a7ebdf3d29c24ce371efdbfad3179a272c48ddb867b80724e3d2a3321385caf1fa537702bb707a1ce45421813d06!
 4fe952d85ac5a4dfb942e00353c4ccbc0191ce48eb54d64031b811d39a76fdabd4007a
e3bff9e2917a5ae5b96518e3e6e3a038a6bc6eca1b6e48efd315097053191b8f426a58e61b553ae075cd4ec5eadd9913ca036481927073d4d4b0b0520370a4f7e9513c7972411cfe18a8a66da402df80ef45d0b51d713365d0005477cd532b94ce4827923a1a924dcc493bb81804d55690a2edf51de84fa09ad751599829ec9ed51eee7713951d734172ce32c173daa2660467df1d6a8cec5866ca81938f4cd48ac1948c0381d31d6aa161b790c41f4e29e92f40490391c77a9772f41edd368625463f1ff0a889f94af4c0e714e90105b1d31fa545cf7191fdeff0a6269f41e58f24e7d3ad31c8232b9ce33f4a0bb0e4139c75e98a8848092cc38e9f5a6894f52c2dc491a9c0e08efc8a5172cabb72cc39f97ae335034bb8b16c723a534901810300d1643e62caca539c7ca3919a6348387c706a10327af1edfe7e9517fb5819c74a3d05ccd2277903272b9239c919a61c103031f89a6ee00704014d248600f41d39c535613d4b07698d72006c608c62b42d16330868c95901f5acc6914e0e3e6efce2ada4e56d999028e707d6a64cb85ae5891e425fe4007fbdc9a555902165edcf06abc52ee7cb0539e3eb568c888339dbc918a8668969a11c977205054e7dcb034e5d45d5409403fafe754e6721cb0f949e411cfe955cef3924e0f706a925621c9a66caea2ad19563f37622a18!
 ef5dce4ff00175c8acbdc7192063b5391cab67771e9e9cd1656d0399ec6b31324461c8c1e41c6462a4b70c15517180720e7181e954a3b8208c6495fe11dc55e8767ca376d62d93cd416b5d8b09c060572a3f5a7b6190a63903f3aacd2b21f9ff0c1cf34f470ddfa63be39a5a97b985e20b037162595712c3f30e7923b8feb5c61ebcd7a54e9e76719c8191ef5c2eb1626c6f0ed5fdd49f32fb7b575509fd9670e2a959f3233c75e29067934bc7b0a31c715d07200a43804628e3a006823b5300c7b8a50bc1a0640e718a3af39a42019a28c376a298c524678cd20e3ad21e29719fad210b9e73de90503dc526703a50029a4f5a5e71463d68003e9487da8fc2a48626b999218c12eec1540ee698cf43f869a508cc9ab4880b3131c39fd48af45bab909082ec1493c8233581a75ba697656b64a40581006f5ddd4f3f5a5d4af5a46650413d79f4f4ae79bbbb9dd4928ab31971704cdf78ed3cfbd5db622789491c274c7ad6144fb8ee25b77f08c56dc43cb8c0760a4f2558e2a1b5d4d16af425332463748c4803db8ac2babb33c8cca7033f5ab1ab4d27dc0c71d7ad63ac8370cb67b6719a4bb86da31b2dc4855b71386c706a9b49f312011cfa54d70e379e85aa16c9072d8c77ea6a8cda7b0aac571f3104f4cf34f59090bc8233c7bd41bb0a0640a5ea10804127be39a4f6124d32!
 d4726d0017c0fcc5231254e4f7e33d85408cc3e57e1bd3dfda97cc05323031c1a9d0bb
7717ce2a41181c77ef52f9f1f91863839cae01e6ab6ece70c464753f4a8c1246339c771d3348ae62f79bf2ed2370ec3dfeb53c5b700e3e6f5aa8bf2a820863c9273d2a5f38ed8c0183c938ea2a5aec52bf52d890b29da31cf3cd47203b86080c318ff003deaa8b924be06d24f503b5426e988392718c734ac6974cbf30d801208e33803f5acfb9de881cafb8f6abe164915720823a557b9dc328cc08eb8cd17d41aea6613ec714dc8ec0fd05232b229cb7ca7ae3b53031076e0f5efc55276463d75252e4312c493c76e9417dddf04f4ef4c39db9504827b52f9641076b631c1a7a0b52467dcdc9f9b8e0d210cf2601c8c7f0d4b05acf38c283e9934e6b46858ee6c951d2a4b517bd8aed13156700edec08eb4426058cf99bb775000a96672b1e391c7af5aa04ff7b273d8d3d59326931fb81e49e09fd694374c8e0fe35192a32413c75e78a50e1464f4fa62a9f9108914e633ce31d7351a73b88fbbdb1fd69ece002428c9fd45459218e00f43da921bd37243c7cdce07f7a9ac46ec1c119edeb48720e739c8ea697391bb0719c62816b614e4e7008ff0f6a9564ea14e40fd29a198e187271dc523fdd1b49e2969b3295d7bc89a262a4e4e3d723a559625e3c9623039240eb54a36240e4e7d8f4ab0ce56320fdd039e7a54c9171b8c2c1989182c7d0d46ce3cce7f87bd0a36b1e4e0!
 9ce299f79c9c60e7bfad3b6a4cb6118ee60dc3363918fd69ea4f7c8e0118cf4a8d376f2fbb049e9fe14ec90c0af38e07d2a89df52da901320673c10454d0487cce3b7b7355633c1e547a7a8ff3cd4d1465a4193d7b8a8f5348a65d2db9b8ddcf5e7bd481b0f86383d060e7e94d10155f98670318269c4eef9ba2e318a86cd5263816dd9e703a0f4fad67f882cfed7a648c002d1fcea7bd5d47299420953c64d4c31246431e0f040c7229a7caee270e68b8f73cc4631c0a00e3356750b56b3d426808e158ede3a8ed558f515e8a77573c769ad180c0f734b8279a4efd08f5a0f5f5a620c0c71463939c50b8c1cd03da800e476a28068a061c8efc52f5ea693fce282474e940839031da93a5386def4848f5a0007068eb9f6a01c76a4381cd002e3dff004aeabc07a70bcd70dc30ca5aaefe9fc5dab951d2bd2bc196c2cbc3be71043dd49bb3df68e054ce564694e3cd2b1bec4658b60ee6cd53ba2081b791d0807a54cd291dc853c823d6a19240b167f88b640ae6b9ded685db78162c1249c8c02453e7933c9c738e83a0a852e03420f0d81c1e9cd31e7dc00209c0c75a96cb8a5622d55818d30327d7fc6b0a521368e33d7af7adabd971180dd01039ac491d59c85002f714e3266735adc859f246ec82299bf000c67f4a7c980c3e538f5183fe454641e491ed914ee4d87654e31f!
 af19fc297974031d33cff2a8792029c81f5eb4b9218633bb149842f7b13b4982b95cfa
8cd300dfbf6e42f53d3349bf2830a41f639e699ce1b03af5f5a2e3e5ec484a80deac3d680d939c648c67daa3cee3923b8352400162c769f6f534ae55b6562d60ba2ee08481c64e29c4614ee04a93c1c734dc858c12a724f3e829c18e1738240e429e951735495f52328a10007939c669b0c4fe6e0a658fa0c0a9158eee4f3ea0f353c408667c1076e48a9726914a29bd45919900c75038c55699b20ed0371e4b62acc8eb8e4a8e380c6a9485802719c76142ee369159f680770031c0f4fc6a3c2b206655ff007ba53d99a425768031c7626a397e6c7ca57bf5aa4cce43e3600e07d327b1a6b3991c1618fa77fe952436cd26197ee93da92e9641b515471df3cd17d4395f2d896def1a262a3031d29cf349239c8e1bbd568b0831d5b3eb56971b19403b9863e5a4da4f42e29f294a697ef21c1c75c5545255b3dbdcf5ab934057254e413dfb554913cb6200c9cf7356998493ea05c6ec803349192411d3d453412c3183bbbd3d4301838073c67d3eb557b68425677070429ed8fca932c7a824e38a57ce36e01ef9cf5a603bbae01c751de90df9932c81877e39e2917b81823d0d46dc260838ec6a60a04795e71efd296c349b62a657231b4e7b9e71418dd5b27ab7156acc0917632e1ba83d4d5b9625caeee07407d2a39accd634d328476aebbb04061ea6a60b8b725b1b7f3fc2a6d!
 99ca0e323233cd35c3125467fefa149cdb29412b99db943e32319ce09ce29db93d31e9daac187e405701bdf8aaef19185f979e99ef577b99b8343599588edd871fce856f9f181edd0e6909c643019e30477a47c07ce4faae4d326d6d49572ca4f1c7356e16cb2e720f4e39ef59eac4ff09fcaadae4742bcf4079c54c8b83d4db8e5c8239271dcd561285dc83695ce4fad575b82a30d8da477ff003c52a31f37a6e4fc2b2377a9319142f1c03dcf7a58d8e09ddf80e9509c90ddfb0e69f1b055e140c1e738155727c8c4f155ae560ba5e806c6e3f2ae60f27d6bd035281aeb49b988a9276ee5e7d2b8107d715d98795e167d0f3b150e59dd75139273d283cf3c5271d8fe14a00ee2ba0e60c8e0638a3247714118e9cd2e09ebc77a42133eb8a29a71e945318ef618a3b62969001d39a4212940cf078a0fbd181f4a00323d72697bf238ec293f13487af5a00500b1000e49af5b8e35b4d36d2cd4f30c001f638e6bcd343b7373ad5a460027cc0c79e001cd7a1cefba690e3233c1158d67aa474d05bb25593736d0307be00154e572e4e0920fa0fe552173ce179f5cfe550b306255bafa81595ac74ab6c68da63c95241c8fbc4e477a763702001c738155ad1b6c3cf4e7827ad233c922ee19dabef8acdee6ab6d482fcb86009c64faf5aa25942f20e73ffeba9aed8bb857208ef8ed5!
 515417e5873fe78aae8677d741c7008ee09c8ef51b9f90753f875a599b037291d7a0ea
6abb1230e003d88f4a7706ecacc7725b28403fcbeb4848032189edcd27de00f7f534ac4b0dca3918c9eb45c8b3dd1228deadce300719c0a60e0f3827a75fe5511241c1ffebd3d89ea7b8c83e868772d49175635110cf27b0aacf855c838c75e2a3f39b006e66038c63a520e3a9071cf15293ea34d13adc8c367713e98c5385e854c83919aa3b4e7ee819e99cf4a73a9e307b74c76a56571a9b45859f0e09c039e455edd84044986cf61fa565c68cf2af239e339ab839c639c0efdaa6491a424ec5867620ece3bf1ebeb54da42183649c7a7f3a924327cbd88c743ed549e5dedc11f427a7d2841377dc7c928604a1e82a21210010005c7049e314c24b7240273eb9a6c84ab1c30e793d2aac8cdcba97e3bc6854ab6483d08a6b4e4a96cf041c73cd67176cf3ce3ae2a40e5947403b11c9a396da8d4efa13c6a24c64f1dc55c8880f90496c63d7354a30abf3860a7383ef57c7cc038dacc7f8aa5b3485c88072086e79e83bd559623b4907a9fa55fe186e181b483f855564e7919c75a4a439c6eb729156247cbdbad3998aa80d8c76f6a7cb111f3023dbb54722b71f2f23a739ad3467359a1acc0f5240ed479602b37193eb4d28dc86da318c66a41db952a39c51b06ac6e50e0a9c678e29464927e6500f4ce79a52bb9b0ca40e3b526092549f94e3de8dc169b972c58a4e1fd3d0fe7!
 c55d9a4dee327209e00e715970398e401b18c60d5fdc5a3e80807819ace4b53a29bf76c39810d9de33d876c533207607be7de949cc830081d3a735246819c280b8ef9edfa54dec5b8ab95a46241da793cf4c544ea48048c9f5abde414936b15c13cf7e2a19227328570074620034d4911283ea526404f1c83c9c77fc6a319247249abd20f24ed50bcf4cf5aaec237c8070c3b0e6ad3b994a296830f070403eb93d2a604edc01db3cfad22a367120e3b71c1fa52b03e4ff00b39c74a4df404ba8e5c6d183f80353b00bd7ef30cf19aa4a5895e98f5ce6a79199954839f41dff001a4d5cb4d7625c8741bf3c0e2a58588664e3078fc3e9556305559481e871dbf1a91010f9c0c01c8a9293f234612143310082b839f4ae06fa0fb35f4f0f4dac718aede36fdd14c8f4c135cb78823d9a96f000dea0f5ce4f7adb0ced368c31914e09a3268e3a9a303ae68cf1f5aee3cc139fc294007145040f5cfd681811cd1401ee28a601dfad2f18e3349f9d1c0e7148404d1d851d46467340c5030c6d14809fce9738ec68e339a04743e0e883eaeee412638c918eddabac95d8b13f78af604f18e95cff00826301af673900285fe75b2cfbc11d7dab96abf78efa1f00ecfc8db4fcd9c01d299c6dce075e371a6b90233c60b723914d8d8f0485ce7047b7a66a2e8b772c43288f2a7383ea7bd0f3!
 e4041951dfe9554b023ef7273d78fc2a12c08c0ebcf4a97a9577b21f70dbd8b6372938
151c72723240c1c669ef1875c2803dce3351203e5b1270c0f4c9cd34d585adf5095b38c707b63d2a3e00253049eb818a749c632d96f71cd40d263b64fe7f8d340ed7b92b331030bf291c1079a62e0743ce3b9ce29182b2919380393e94c441b89dc7ae0517275bdc590b64301c0f43d69c0fc9b48e0f200f4a4660a320700e393dfe9432aa004311f414ae52430e369c2f39e69fb81607047aff00fae999e321be61ea2972aa405c6295c690aa0eedbb719f7cd1202b272091d81e281c1c8383edde9db373eee0ff003a0a4ba2258517cb590e49c763de9e5c80385c16aacd22a2305ea39e4629448186490a7b0c54b2af6d095a50158602e7247cd9aaeea40c9e403d3a540f3ee3b8f5fad395b721cb6467b64d55992e7ccec852dd71907dcd46cc49202f27d6a68e20d93f754e69c631f2edebd06075a2e8566cac4176e0e493c9ce6a448c85047eb52246039c0cafa834ed85998818cfb74a4d8d42ef51c233d493f37a71566342141c1273c5416e377de3d7a0c75abd1c432771523159b76368453d6c46e32df74142303a9fad42597042f033d7356b1cbede9df0bc0a85914e768e0e71c6714932f9574228f63b37988581e00a85a3d9b80e98e3d79ab210025bb6719eb934c2a325179f73d7eb55721a76b153ca32e140edcd3843fbc557c919c0e7157238c28da41c1ef8e!
 bcd48212072010792dedf4a1cc954995cdb6d8ca823271d7ad5568c003700306b4e42a626385031902b3e662f927a1c0048a22d8ea412d46a2aae48c01e956239392307d8fa542117ae493fe7ad246c031ce076e2a9a22374f52d82c5371c11c60fbd3e390e3279f4cd578dd4373803a123bd124e12420123e838a8b5f435d16a599e56ced600914f2c5f6b7200e460d67f9e724b1273c1c0fe94f33fccaa3014ff009e94f946a5d4b5718620b007d3daa131143b946080777a53d8799c120646306924550bd3191d7bd24d2412577700ff003065fc89e94d765546c0073cf5ef487010aee20f7c5562c01048e0f4e7ad3489949ec190dd00c81935345b9872a081cf1502315dcd8049eddbf4abd184c2f003753e9449d89a71e6645ca8fbbc1e99a901240c703b8ffeb535c92739c01ce4503b103903b7ad22ed6d0b11b617206de833589e25466f2a63d3257d315acac42e3241c74ed5435c1e669a18824a9047a555276a888c42bd268e638c628f6ed467dbf4a33cf4cd7a478a2606297b74eb475ec68e07b7b5030c0f5068a3eb4501700093d6823048a314719a0009c7079a07b66978edfca9320f4a04283c527738cd1fd28c77a00ec3c2cacba54ae3abca78f5c0ad4ddd70586ef4acdd003268513e70ad2355e6caaf3d00c1c8ae3a8fde677d2d2081f8908c9247a7f5a!
 8e362588dc4a8e87ad2b64b152739f7eb4d52e15988f63db9a8bb48d6d71c09dcc41c0
5e3b53588c9c67763e94e00e08e4fbe38cd32552a79c8c678ea295f52ad6237970d82063b73488c3209e4639c524830bcb679e4546edb9012bdb80698ae931646eab9e3d3d6a36fbb8c723d05340c9271c75a744c1645dc0e3bf3d28b8af777630bec5c30ebd33da9cb8da1803c9ea78a7cb18df907231c7706a36c63613da936985b51ca637639e07634d65e59700ed3dc50d1ff00175c74ce699f70919fa01e94c6df71c87240da31d49f7a7e0063bb8c76e94d0074dbdf8cd4a0062a8704f6e3f0a04ae3361da481df19a57326cc8e063ad3c3662ddd88c7b67fad33f87ef2fa822a4d396c885b2d83ebcfbd31b2c40c9c631ef4e2467a81eb8ef4d6e3939fa8ed5488dc85d0023040e6a589406dbcfd7a526cdcb9391e9cd4f1120e0124f466f7a1b08c5122edc03fcc53c3a3a93838edc74a4d8026f238ed5196cb702b3dcd762518dd80060fad4a542f3c8c8c1155555958b12092dd306a6f372b8ce05268b8b43c330638e79a99582f39209ec38a80600c63f3e6a46dae7e5c819ea7ad4b348ab167cc0cb939c83c311c1fc2a195b381d07a62a30e7690dc9f4146edc5ba9e3a7ff5ea5277d4abdd0e5662d83c1ec3148eb856639c64f19c5371c6e391b86393fe78a4da4e0f39e801aa13bf6241956049e07a54d92cfca9c6320f6a85188619c820f51dfd2ac92ad1edf3!
 09f5a9652454983329e180033c55691012323fc6adc8339d84907b540211cfca01c6466aa2ec8ca714dd910eccae391cfa63f4a6ec2a3d475c67356923c9619553d68915f6e73c1e323bd5736b617b35622f28b47b98e066a164c671ce7b0a980080025877e3355e51bb7053d38aa4b53394741aadf3600ebdb34e4ca8c8eb9cf22a32db4e739a5121dbee3a8f5aa6468b52fc6fbd0305017a1ed515c0c382096c76eb505bcdb4e08041e9dbf5ab0ed9c827af5047350d599add4a2217dc809239e94c963e8c73cf38c7348d1178b3b892072334aa0b13cfcb4fcc4d37a344233b81c104f07bd5c8d894c6381d38e94c540a382738e9e94f04b1ea063da937708439751f9decbbba007b7146d4de3b03d3834464ae400307af1ce29e76e700e401c63ad43354bb8c6c093a1c541a98dda54a001800123d2a62724b118a65c287d32e327a29ed4e2ed244cd5e2d238fe703d3eb4668ce40a00c91fe15ea9e08a09e3d2838ef483a1347e06800dc68a28a761d84a5cf18a4ce29704e48fccd200c1c7d28ed4741467b8fd681094bc0a28edcd00767a39ff892daa06e4b330e3df9ab9744a6c54c293ce71c567e8abff127b7209c92c39e475ab331775cbf1b700006b827f1b3d3a6d3821158821b9e4f3914f25bcb048e73dffc6a12d86c1e39e83d29e012a463927a03d293b6e5a2!
 c26e111e3af7a881c92491cf07f0ab16d263707ced1ef8e6a0908f31b2b8c773d6a7a9
aa5719703a866191d78e6aa970b95c935348e54e385e3b77aaaebb8eeddf503a9aa496c64fc800246d1dff000a7007786c1f98e78a682c8c4382401d2903104314273c0c1a64ab2dc99880c467e9d2a3401881f367ae7148ca4b0039f41524519ce4f38193e95372acdb10a02140cf1d70339148222339e463a54ac4719e476f7a7603afcd9fa77345cb504c620cf23d3b8eb48c300927a1eb520e14043c8ea39a46dc8bb4f7e78a5d4690cc95438e83a1c714df948031db3cd296e795cfd699bbd4903d3b556961697d4693c753eb5049ceece73df8a9485e18eee3b935048db79c034222561a5f6f04e08f41fe7152a4847ddff22aaaee760bea7826a64396001e3f2ab69110bee5b590be4818e318f4a43203c018f53daaa876dd819523a60d398fcb939e3aff008547297cc58f30b26016c13cd2872236c8c7e95556420b1c9cf41e99a9918e39cf3db3da871b0d54b973248cf27ea29727b9c83db3512bf039c9c75a7ee27822b3b1d116ac48d90a3b03e83ad363392495f6268321c0041e38041a4239186cfb7f8d2be85b57ea3949c6df4cf22801ba12369cf23a9a4391b486c8cf1cf07fcf34024e58920fbd20b02b1424119207702a5121249078e338ed50e479801c91fecf5a9563daa0800afa3526545bb8f56dc70320f6f7a256dadb88ce31c534baab919c81d08a8!
 d5b764feb8a562890f31efe1bde9a7e6c93f439a9d1805c1c648e33dea20df3ed5c0faf6a0565d48648c8fbdc73daab3a90c17d3a66b4a50244e010071f8d5291007c6303af06ae32ee65561d8a9919209ce793c734c661925793d01ab3e51e4b60e3a7b9a622a9723033dfdeb54d6e60e2d6888911880e0919fc6a7f994f39ff001a9a188c6083ebd4f7a89c331eb83dcd4b95d94a0d2d479271803ef0ce3da9d18c903d7da8dbb382739ec39a700464738ed52d9a28bbde43d07cc548e0f193d283128c8038078c537b7ccb920559453b549241c71ea6a19a2571a09c7d39c63bd309666c60fd31d2a4553c919071c03d851b984ac320e79352528ed72397873cf4a82f32b6728e369424558de72402307af1552f9c8b37ce7ee9ab86e8caa69067299c9c519edc521c9e4d03d31f957ac7802e4e39a5fae6931e9d281f414084cfa74a2978a28181fa52014bdf3d694824f03afe34c0083482973c702900229080027814a0718e0527e340ce6803b3f0de65d21500e5198823eb56aeb629236900f71ce6b33c313116732a80595b35a3720051823773c8af3ea69519ea5277a48ac4a805864638cd098ce037e9de9189e493c31e334d076020824f4e28be83f334ad1c79814ae4f1c114ed42e2192ef31280a46085f5fa554598c7c6e1f30c1c540c7031f2f3ef59f2dddcddc!
 ad1b0adb58e07071c115048181e0e79c014ec9047cd9eff00853b3b95472413d7deb43
14dbdc88e78f9caf7a8dba649fd2a568f031dfae3b540ca5704e793f8d3ba60d59ea4e830e72c41ebc9ab48ca53681b4fad530d84dd8c6deb8f7a963c7967e6e48cf22a5ab971767624c13bb3cfa629a014601bfc29776338ec78a37163d79ef8a9b94a298e87e60783f88c9c54ecca5067a7d3bd408c638f24fcb9ef4c92e4e305b19ebef4ada9a5d25a8c670599509cfa9aaf2bb776c807bd2b382a4e7e5ce47d6a3901619c819ce00cf02b448c2720670bb97bfa8a45c32905481e9d2a34032d8e0e3bd394961b73863c5558852bb2268b0471f90e94f520fa82286cabe0f5fcf142105c7008f5ff00eb55116b12eddc0b03d78ce29c14953918e31934e50ab1fdec8f73d29570fcf7e40e2b36cd922111b31eb81e9520fba37678f51d69e777258f7ecb436718041c1ef4ae572dae381246d19c1e318e94bb829f98b1f6f4a19b030e739e99a41c83f3138a45abec498e38391d4022acc0771c31ce3a1155470fd7834f57d8c4afa6338eb50d5cd6362691b91d3d0ed15011eed807a63a537792c4ee247a628e79e7dfd80a12b0af7242cb95e075e953472e1300e3239c555dfd0e0edfa75a14b12081c0ec0f5a1a4f71a7624ce4e320f3c522b91f2f0467a8a42c4120003d88a447f9f039c7145857b3260c47192571cfb50af939cf23b0151b928739393edd6911b2dc9ce7!
 ae314ad72ef6659f3b726d63c1edef5092189193ea3da999c7000ff1a51966f94607d684ac0e6e40e3726cc7cbea0d5745e47185ce6acca8627dbfc5ed50291bb201dde8474aa4fb19ca3ef6a3c9f2dba1c9e39fce98e7a11d4feb5238071d41ce78a691d0e4e71e9da8b8a511e1b230d9e0fa52a90581f981cf20fa53140ea1bf239fc29e012e4e79cf41da932bd4b0bb586001923b0e4d3c1d8858138f7eb5555b0df37e246735724947d9d4670d59c8d935b842720e4671508750c4648c0e00ee6a585c459f9b1c7a66ab3b1f9db7707b75fca85b89b76b8170e4e001c0e4d53d48e2ce4c7276f5353e0055e4907bd50d49f366e493f856d08fbc8e5af3f71b660640038e681ea451c63a527615e99e207045291cf5147af53f5a01c9e7b5021768a2939cff00f5a8a061c8ed9a00ce4f4a33fe71474ef9a041c73c519f4a0fd0518f53c5001d7ae28c7ad18f4e94019ea4d033a2f0bb13f6b4079c038f6adfbd41f2b6304f2c07515cc7861ca6aa63600f991918fd7fa57517ccdbc37623bfb579f5d7ef0f5308d7b233dc2c400ef924e6a20b9395c9c9ab573ce0a9c83ce2a973efd79cd4a65495bd093392176ed1d78ed499e338240ea4530e3031c0ef8ed48401ce0f3c9e3ad305215b920e79f5269db80c77fad42e42f3dbda972c3e5c9e69d896f5d49e39581551c8ee!
 0d412461c92a0fb53d406e9c7a0fa53d57009c73d3a7f2a9db52dde51b32bc9951b718
cf7e6847760b8c83d31d2a67c3a61793e8dc542bc29c0fe557d086b5d193efc0db9248f7a4f3067737041fad42d2955e01247539a76d3b037e99a968d14bb130f98649c62a120e08e7b74a901c1c64fae734d385639e5719fc69260c8dcfcd9efdf07a5215e080464f5e6a4d9f213dff002a608c3104124555c4d320dac80e719e838a4f9bae581ef8381533292c41e09f7a88a7cc01048ef9354999b56d1084e5f9e94ffbc78fccd26dd84292477c669422939239cfe540e29d89155bb11fe15246767cb824f7e69c9b7047e47bd2328c7de38359dcdd2b6a3890ec39cf3d8d2e720e477e49a88e415e304feb431c283c633c8a2c36fa0e2c54f6c7e942b119c8edd6a32c47b03d08a405803d47ae3bd3b129d9926e382093cfbf142b9078ce3fcf34d049fef01e94ed9970b8efdf9a43572539c1038e3b9e9518f5dc4e69368185ce71ebe9f5a55393c1efda958abdf41db72a460e48f5e94f538240e3df34d8caee048f5e7a8a462480dfa8a5e45a7a5d8a417901031db19c669147cd82c319c633463e7c8c61a94060c4918e793410b717238183c673934d04e72703dc50e3aae3e6c5378fbc319e38a3a14f7b128c900e001ec7ad4aa39ce3a0e39e6aba8e091839fc6ac020460f56c718a965c2cf71ae4f52324d35461803fcf2680d9278e7775a6a9da391839cd03f51d96!
 e9cf1d0669a170d839e7a014a70ddf3c6739ef48a01ce01cf5208a627aec382e38270bf9d018f38ebeb9fd682db8640fc54d236d214818f7ef487e83e3560a3907db352760a09c7f9eb50820018c9efe94f42000d92477c526877d474bbba0ebea0d42a0a91f31ebf9505c799d38ed919a4243c9bb2c31ce3de9a4449abdc777032738cf2322b23567c4202838639ce6b43241ce0b2e3079ac9d5e45678d40c601278c56f423efa393152fddb6669e47341191e9ed498f5a09c01ed5e81e48bcd192680323a75a3ee8a42019a2907e3450314e4fe14818f4c52e5718229338a005ebda8049231d68e08f7a4c0f5a005c8a4e3b1a50714607ae7e9408bba54a60d5ad6418e2400fd0f1fd6bb3bd4daff002eeca93824e2b805c86043608e457a0239beb0b7ba1ff2d10023d0f7ae2c5ab34cf4702d3e6899ef9f2d5fae38f4a830411c77ce6a7943052075cf4f4a88f079c647e958ad8e99257d46139e393839e698c7e62dc8fa50dec463d714d50d9e0f07d79ab466ee3c1471c93d79c1a08559783cf38e734d2769ce303a934d3f3004e393f8d016b6e3c9395fe2e3b55a50b852e4920600ff00ebd528df6f04e01ebcd5b888603bf71c54cb42e9b4c5d9866dc2a2740381c01edd05592ff36e38008e879aaf7072db80c83d6926ee5ca096a889461b070c4f414170707e50071!
 c534603641c73c7151b609ce2aed732ba26f33e6047348cf9539dded8a89776ce8abce
72682cc1b0a4e09a2c1cc4c0e232a470075a8f718c851d08cd33773d70473cf348e73d36f231934ec3b9289036781d3bd20c119c727a9a85721705791ed53819e00fa60d0d5814ae863478183eb4dc95c007f1e94f672548ce323939a88ab2c64ff0009ec0f14d6bb932b2244932dbb18cf03de9e5f9238aa8182fbfe146edec067bf5a7ca28d4d0b7955c7434f243a91f37b0f5ff0aaca78f4c1e315233fc9fcc83d2a1a34e6bee3f6e4eeea3d49c629c08c119391c633d2a32c76ee1cfb75a0960809ededd282934870e18fd3a3734e67c723b8e290fdd0013f8d0006e01047a9a434bb0ee8a0e7f3a5e41e09eb4ab820e5972bd8fb53438dc411ed8f4a45dd3d1834849c1e7b139a556c2f0a0e38e4f22a370431fd79a76e2a4838e7da8b2126f663cf0c4f1f8d3803b739001ef9a418504e71de95882b8dc3a73dea4b423fdcf6e9f8d30e412c48c74f7a71603e6c7eb4991e6753f8d342b0a8ccc001f740e95212540cf43d0fa52a91839393d8531bee8208e7d6a772ed68830da381df918a0e4e4138e0934aa3e4cf6c6381d29090dc607e34c5a5b51a395cfa76f4a5dd86c65b9efda938273c16c73dff001a064b60e307da985c9304839070077149bc28dc060f4c1e946f278249c719a06780369c1c735255d2131ce0818c64e3bd4c49d980091fa530e5300e314c624f!
 4c91de8b5c348a109e7078238c761401b71ce78e39eb51e727192413d8538b9c80c0ff0085558cd35d46bb76c600ea6b135270d7871db8e6b62461bd9890428e6b9f95b7ccc49ef5d3878eb7387193f75448fafbd1d052e0773477aea3ce1334b93cf2697a1a4efce4d0027345145300028273d3a0a5e29719e01a4213827d69391d28031df14ecf6a004c7af6a3bfa034607d293a75a062f7e3a0aecbc2f39b8d264b61feb217c803a907ff00d55c763239e95b3e19bc16dabaa3b6d5986c3df9ed586221cd4da3a3095392aafb8dc98b06cedce0f6e73558f2bb587e75ab7b16dc863d0e4607f9f6acc913cb63f373d4f3d2b820ee8f52717aa20239236639e8714ccb2a020f7c1e2a43821c039a6faf2783cd6a998344441c9247d73de9189e38fa0a95863e83934c65e00a69808a3072c0629e24f438a8c9390431fc38a3791cf6ee314ed705bd89fccc271f7876a1a4124448015b19391d6a2237af5e4f38071406280f3c1e07353645276dc62923a0c0c734166c905011ea0523138500f3eb4d70dd727af073576b917690e91f0390282e472073d88a454f95ce4123a63fa511360b03d3a0c0e681f50273e83b926a2ebcf1c76cd3db24800f1d78a6b1e39392381f4a684d8f460c3e650180c64f5a706f9bb5428c176e4e3d71da972036f047d68682e89739209183ec29!
 65423008249e9cd422519071d4e3ad3d64218e587e54acc77e62368dc7cc13a0a66c23
0471cfd2ad0059786c9c77a81c00fc499e7d7bd5264ca161a1d81e71c7e552190b2fcb8381d3bd42a70c777e22a4253030d8e3a8a6d0a327dc7a160c339e7a76a9f392c081ebdaab020b0018e0740454fd1b20f23d6a246b11c3a03839078c71437071900fad01f2067f43de862493c9ebe9525af21c082795c91c0079e69b9e48da0522160724e47bd4832c5b9273d7ad2d869dc4dc09cb608e83be29c06e6c8e99e73c530e4b64faf7e69f18da73ce693295de8c70525b2467078a5cecec493ef8a706c67b914d91886ce4640ec695ee69cb6236214e4f53ebda81c1fafaf6a6e430386e7be453c72338cfb8ed4c85aea4a47015707be29a5b938008ec697a2f0074eb51b70149241ea36d4a3493243231ce083fece299b8f4e33d290118054631fca85f99f19273dbda9d89e690e3966edf81a71e0600e7fcfad376ede7be6819c9dad907ae6932836e4b71c53c300a5768ce30314646368c81ee3f4a064e0fe58e940d79063d48e0e40ed4c665ea0af5f4ff0039a730c039200fd334c739385381ee6844c9d86927a281f87ad2160bc91f363d69f1e50ee62401ed513b64939fa552d4cdd8a777288e07c6031f7ac83c718abda849f32a06f73f5aa3ed922bba92b44f27112bcec1c7d290e3d697f8bda8c71d6b5300e3d693a114bc52e78e9f9d21063dc514991dcd14c000f!
 7a08c9ef49da94fb75a430c1e98a38c9e4fe34703eb4753fd6980741d3f31477ffebd2f41c9e293bf19a421723d2955ca48ae0e0a9c83ef4dc7b7e74718a07b1e8d6d3ff68e9b1dc2ff00160919cfe7556ea0623a7239183c5667842f0334b64e475df19fe75d1dc2ede87033c035e2d58ba551c4fa1a1255e8f33dce75948241001a1b022c8ea455ab8b76dd92a703a1c55275200fff005d6d177319c2da11fdf1d063eb4d7180304f3f852939e47423b533773db1edcd6a61b2d452085ff6bdcd30b1e846091834e61cee3b49ed4c206dce3a76a68350dc4107be714848241df939ed41c331c75a10296e547b77c5317518ed26064fe0294315254f1fd2948192371cf639a686c0c1c7d334c9b6a3d19d471d3de979660464edf534abb76e580cf619e69982496ce7348a77489303190060f1c1a8e442242320fb1ab2aea14018073ce2a29f901b3ce393493d4b9415ae561939ce00e99a736776739f6a693b8e738e281c77e077ad0c6fa01c104e707bfad393e60307007ad21c0e48ce475a7a9d809c0e7a9a5d071dc405d18e7af7e7f9524843b36ec6476ff1a09c30c1c1348a719c73ef9e94798eef61bb7b9e3f1a470d9ed9e9c52b631d8f3cf14b924e7927b9cd511a6c3a1203e0003b726ad6f006de093d2a91c87ea39a99643b09c823d41a8946e6b093458e36e38e0!
 faf5a56edf30c76c0e6a0f3411cf4a9810780d918efce2a1a368cafa0d0c4b923803b8
a9e327238c9fad460127ae7eb52af0b818cd4c8b8a630ab6f6c6452950bce73c7229ea392d9c8c72451f31eb83ee452b9a728d6caa8391823af4c53791d40fa914fe3a9e467b521ea4f414216a21e0ae07ff5a9ddc8ce71c01e94d18539206e14ece0161b771c73431aba119ced001e87a8ed4d39386e39a407ae29f9cb10c3a0efd28d89dc02123a60e79c52edd832c3231c9cd2e49e41f6183da9ac0039e36d2b95656d01be639dbf3034a372b700814c0549c8c8ec2a455ec7a9eb431a5adc072c304fe74f887a9381eb40db9e4526413827008ffeb549492bdc494e7b7e3d2988a3ccc92477e949bbaf04e7b9349b4a91b4738edc5525a58cdbd6e248cc4107a1e38a8262a1411c0504d5a6c1e091803bd675fc8a90955eade9e95a53577631adeea72b9972c86490b1effca9bc678a3a8eb4848aef478addddc51fad1f8d19e314647a7eb4000c64f6a08c63ad1c11d4d27d6810a473d68a51d39c514c0418141c7a73403f375a391d0e2900a07cbd7af6a4fe741c83c7e948dc1f5a061ce79c51c66978f5c519e79c1a60211cd380ca9e6938f6fc681f952027b3b992ceee39d0e1a36cf15e8de74779691cd180438ddcd7996defdaba7f0c6a2487b17208c6e8f3dbd45716328f3c79d6e8efc0623927c8f666fca80c7b49047d6b22e6255930cc07e15bb862db9b9e3d2b!
 36f11590b0e475c7a5705396a7b15609c6e643aed18cf38e335195ee0f18ebef52c8ae0927af4151edc0257a7d735d88f398c61b976e7383d7d29b8641b7208f5a371ea48069c50f96b93871cfad591bec46492028e1b3d4500375e41e0d29c6e20e3d322870cabc95f63bba8a61ea34fccdf311f853c8ce7fa0a6374edc0e94e566519dc07a71402ec33af3b867a8a50e141e7a1e87d29198825b3f90cd30fca300803a0069dae4ca44a1f92776d07b538bb34401271d0540e41e7807d4d282d801483fe7d28e5294d8a5481c6303de9421db9c81efff00d6a66e23b8e4678ef52a05da3e6db9fbdc669bd0956722491415043f7e4115597b93fceac167e806d18f4eb503020f14a2554b36ac1920e49fa7141e5c9ce093d85260e76e78cf7a08c606783eb4c9e835864e7775ef4b9c28008f4343a8241c8cd23601c0c0e3ae29a16a8565ce70714aac40db8248e29809ce3207148a0893e5393eb4ec0b7ba260c41c11c13f80ab08f920e738ea455651b909dc38ec2ad20fe16c702b3958da0d930556e492703bf7a178f95ba1e0034ac8579c8e94a88c4821b38ea08ac6e74a8f4b060019c63d7de9472bdc0ebcd0eac1724834c52db46714b72de8c52a55b3bb71c6300d21f97ef1c9f53eb41690027760638e3a529cb6006e7d698bd079002f2ff30ed51b1039273e838a76!
 30323246718269a4e3bd081ed7b09b727391b7e94ac9823907da9bb950f7c74228dff2
b60e0f638a7a89b5b31dbb6f1b875fad0dce7e6ebc007d2a3ce7e6e33fce977b74fe9da8b09496c4991b36e071f8505b70c64eefa547b7072bc63ad49d54e3f0f7a4d157e82839c8048e3bf7a7e769192338ef4c00e5b381ea40e0d341cb6d3fa52b06c0d8d84e3b734ab93850d8cf5f7a6671f29fc334f52471f291d38a7616e0e540249e319ff1ae7aea6f3672c3a678ad2d46e3ca8bc918cb75fa5647a6715d5878597333cdc6d4bbe413f9d03e94a40c67bd25749c2281c520e29df4a318fad210dc8c52fe62838f5a39fae681801ed451c514008314a7a60f1463eb41f4e3f1a0000c1a3823a51814879ed40853b71471da81f4a0f5e94009d39a52681f5a08001a0001c126a48657b799258d8865391519eb4b918a18d68ee77fa75f25f5909171c801875c1a7edcab7239e1b8cd71da3ea1f62b9d8dfea6438639e9ef5d619486186f91ba915e456a2e9cf4d8fa0c2e223569ae6dd19f3c4c7702460f4c0aa92c662c11c8ad6b89923936e32aded55245040db820f39ce6aa127d45560ba1987a64ee27d00a6925b6963f88ab32458ddf332f3d2a0652060e78cf6e6ba1338dc5ec212ac7e6e480466900dd827f1f6a427e6c7383dc8e295430c12700f52298ba8d619f97b9349d78cf3e9eb52e090486c8ec48c537612a724f18201ee69a60ee2f91940541cd4663dbc37!
 19ee6a753b40c120538a29018b1cd4f3345f226880e0e339c73d477a8f819c9da475e3153bb6d7e7939c01ffd7a61224f98703a73dea9322493ea33661199b9f6f5a40ae002bd7ad0092305b233c1a9f6955001fd29b7608c5362e49500f23eb518197c8cfd3a51b8a30c92401cd233e0f0e33dc75a948a6d751e194a729cf4c1ef519003739c76cd190eddfa7ad0c0a9e738e84e714d09bbab9111866c124838a461c83bbea31d69f91c90793d063149821b1edc735772395d86ee3d08fa5491a3648271dfa74a5453eb827d3ad3db7330ef9ec69365462ef763c2ae3839cfb54c8840e07d6a245c0039f5c54e0f03e539c76ac6475535a122ae4f4c0152a90b0e31f377aae9d393824d4818e0e78c9eb59c91bc1f51cf8763d80f4151e70703afa53f9e9838f5a41c8cab1e4639e3f4a10df718e09c9e98ecd4bbc0c76cf7c75a0c9907d314659979c819fbc6991aee206e7682323af14364f6c63bd1c84e0809d323bd201bb2339c734c18c0c704e307d05264920faf39c5180c73934fe0124f4ee699164fa875072c0e4f414639e092293764e01f7ce3ad2f2833dfde915a317907e63cf4e9406c77c8fa526f0467d3d3a5072a7ae0fd7b501af71fbb0061bd80c53101ce49c9cf534a4608248e7f3a500e46727b0f6a02cfa8aaa77648e7d314d96558a32e70001e9dea46f!
 97a1391f8d63ea575e691121385ea29d38f3b22b5454a0e5d4a734ad3485c8c9a613df
b7bd37d87f3a0753815e82564784ddddd8a718c51c73814871da8ebd0500281df8a07a1fd28a2800f7147d4d277eb4beb400b8079e68a6e7d0d14085c73ce3f1a06470051c8ef40c93d28013b1c52e4e47f4a3907a520e4d031780681c122838c719a4fa5021723bfe9401ed498c1c529fc28014e4f34de3eb470476a3207a9a062e0fa62ba2d1351f3545a4a70e07c87d6b9dc93cfad2a3b2386538607208ed59d5a6aa46ccd68569529f323b5b88da45017ef8ef55ed262b218e451ec703229ba56a31dea957f9651d4763565d06edc57e6f515e634e178491ee45aa894e0c824886f381dbbd5692304fca318fd6ae93b78c73d01c530a13d87d3155193429413d1999270f8272be869e14491e0608fa559960ebeb502a38607803d33c56aa49a39f95a9588f66cc05e4f51c734e030bf32e38f4a590104e54923a11484ee53b7bf7cd3bdc2d141c6080a475cd2a96da768038e46734a17209fc39e2940c1c96238fce81a7a91b80ebb88c8f4c5543f2bfcb9047b7e952c8e5ba0c73c9155ceec06c679fc6b48231a8efb1223ae491c7bfbd4c92863b4f3f8d55248c67d7e9431209c76f7aa71b92a762cb107395381ef4c2005e54641f4ea2985989e09f734f52c0ee0bc9e324e695ac573730c2b85638624f61429c1fbb9c54ced904107f11d6a3dbc8c124fbd17138a15572b!
 927a76ef52085b6641dddf04714636138e0fd69c9290d9cf3d466a5b7d0d5452dc0420803907db14a136b6075f6a955b2063231ebcd1b94838e39ef51cccd9423d062f0df3a91c74f5f6a7295ddd3a77a52782539c0e940ee0963c52295c94632474a4e14e0fd4e6903707918f5eff008d47f79400496fe9529177d3425ce71cf6a40401b473c75eb5106c700018efde9d8ce319c53b13ccd8fc6e3fe34871bb1d4739c73c507073cf42334a01dc471b4fa75a0a7713680bb7afa8a41c3b0239f7e68230080411de9c49f6db8f4e940b4185828e3bd2367d727a72381431ecdf9814d07e6f43d88aab10f4761c095c714ecee193dfd69a001b870093dfbd04e3032720e073d2914b4f4171b4f209cf4cd273ce011ef8a51c283838cd0718c67e9405afe82ab6704a81ed5292030247d40a60c81eff0080a82eee84310ce3393c75a5cae4ec8253508b6c8afaefca4f2c1f98d631c96ce79f5a7492bcb217724b7ad341e704715dd4e1c88f16bd67565717a520fce81d781d3d68e839eb566019ef8fd6938fa52e79ce68ea680007068f7feb47b0a01c7619f7a004e9cd2f39e473463341ebc53186da28a290833ec31f4a33eb9a391d6827d7ad0029f7a4c8e3838a3f0a5c7068010e3b7f2a0e05276ec4d2fb62800eb9e7ad275eb9a3068fc2818702978a00c76a3a76ebeb4c03!
 0568cf1cd073d0f5a003d3b7bf4a404914d2432ac91b6d65e86ba8b2bf4bc8832655c0
f9941ef5c99f7a9609e4b697cc8c952383f4ac6b52551799d187c43a52f23ae23271e87d29add318cf738e2abd8dfa5e45918f307de526ac346339c1cd79ed38bb33da8c9548de3b082405793db800d40e08e3395e9cd0edb73ee7a50e0e060f07b63b55256274d6e46700e02f3f5a8d5719e3183d8d4ccb86078c83d739a691c1c640aa4ccdc6e30773803e869ec13670a727a71c0a8c29c9072391c8e695707079e79c55092b688af3760ac3ad41d4f19c9ebdeaf187cce148fc055664dadcf00706b48c918d483bdc8b183d3f1a664919da327a8a9000540ce47618e69bb460e5581ed5a231946e27ca0e700fd39a9e3753bbaf1c7b546230df283d3a71cd48010307951dea64d32e09a62b27c9904051d6a2563193c678e86ac15dc391b7be3ae6a168f2a4f04fa524fb9738bdd06e24673d4f5f4a23008f5a5553c807f2ef5200dcfcb838a1b0b0e1f740e33ef4e0b8ebc9ef8ef4dcfcbcae49ee4d04f38ed8ec7b541b24876ec31c0e4fa53cb06f7c0ea6984823a8181e86838db80a707d6958a8b6b71e4f381cfa50840424f001ff0038a00193c723826936f1c8c9fe9487d6e0c54a923ef77cd22b0071f91029782739e7de9473ce303a74e682ad7d85380c78c67af6069c727be0918c62a26f9b3c818c503008e49c8c0a2c1ccb6142b672c39cd38330f97a93d7dc535!
 8021b193ea3b526075c0e3be68159ad80e00c1031d8834ef937608cd460e5bb0ed8c5388518cf5cf39ef4ec24fb21c48d8738cfa13c54649183bbaf3eb4f0b9278e339a52a075e31edd68b8ed74200c181dd8e3391dea504e0eee9f4e94cc7a03f966992cc9123b31038c74e695afa0efcbab099d5232cc46d1dbd2b0e795a690b1e4678a92eae1ae2424fdd1d01f4aafc7a575d2a7caaef73c9c4d7f68ecb602083cf341c7a518e683f81ad4e50033d07068efd28cf23a50463da81060e3a1a0f5147e1462800f4e28e476a31ed46463d3d3140c383ed4a3a74a6f53d297d80a601c514abd3b514009f8d1f85275a5fe1a00064e7bfe3494bd3ad21e94000a5cf1d07d7d290120d29f5e680027f2a3268c1c74a0671d734841f8d1c63ad1f5c8a07e54c01bad038a3193411cf7a40071d38a0f228c9c741f951f81cd003e19a48240e8d8615bf65a925ca61be493b8ce01fa5739c77ebf5a72e41054e08e86b3a94a335a9d147112a2f4d8ea9821e08c9340186c91c91eb59765aa0c6d9c02f9e1eb4c38da3186cf439eb5c3384a2eccf5e9d78545cc85e3b1c67be6a364c8230c71d3152e72a72169d1a6e5c01c1f5fe5517b1adb9b42b88f96007039e4d26072319f7cf152b065fe2fc318a85c90c3e6033d6ad3b90e290cd8403b5801ec3ad214249ddcfb1a981cae186e1d0!
 0fc690aa94f97000e83b669dc971ec5530af999041ff0a46501b18e47a75356b63303c
0c2f7ef4c642aa395aae625d3ea57d809033f5e2948c6481903af34adf2e58e304ff0ff008527998500f5abd599ae542818ea7e9cd0594f0075ee78a628dcdc633dea407fdac7b5205dd09c61b807db38cd23640e38feb4e00b718193ed432f196e9d282b94400e47382067a714602b13bb240ebd6972cb8e00fad21627381c77c5021e7041c71c646450086c608cfb1a8b24718ea391dcd38920061c13de8b149a1e1c8e99fa67834e0c3072706a218ec063f952863b4918c13dc52b045bea3c7ca471cfbd3d480bebee0f5a84120fca47e14f0490327afeb49a2d3e82ee1903728c7ad37396ce7eb4e1cf56c1148b9df8273eb405856eb9ce38e9d298dc83f3649f4352393c80475e7149b4609c8c1cf1ef4229205ced24609e833487008ce4d181b71b493d4f1410738e40edde810e4c839edd87b53f8639603af7a15405ea37678e2a9dddf246a514e5c74e9c5249c9d90e738d38de44b7174912fcc4640edd6b1a69da76cbb7d07a536491e56dce724d371ed5d94e9a81e3d7c43aafc843d68cfb52f1eb41c03c0fceb439c31e9c5183dcd1cfff005a8cf6a0038ed4741d68e946722810723d2807fce693bf22941f5c503172739e290fbd18e49a42738a042fe1484e7da97bd1fce98083a77a2941f614520007d78a4e294e076cd18a000e09e38fad2e29a7ad2fd680131e!
 d40e4f5c51c7a52f4ffeb5318a73e9d68db49923ff00af47e34842f349d7ad277ed4a7919140074ef4833e94bd7ad1c81de8180c93d68233476f7a0e3a63f1a04076e7183471da8c0a4f6c5003b6e7bd5ab6be92d982e77a7a1aa99238feb41fc2938a968ca8ca51774ce861bc8e642559723f84f5c54c1d80078c7a7bd7331bb29dc0953ea2b52df55180930c76dc3d3d6b96a506be13d2a38c4f49e869b4b8c2e5734c249c9c8078e4814cde92a8da55b27eb4879c861c28ed58a563af9949dc73658f5239cf5a68661c7f1535b05470703819edef4a4855c643738a7613dee1e630254907e94d2c5863b11de963518c16c521c8e429e298aeec340ca0ce7247a54678ceec67d31521625483c67ae4d3553185e84f1f4aa44bd741ab1e7381f514fdd8c6300f4e94f008076e3a77a89b9c1e9d89145ee4f2a4850c57763a7a74a734991803907f1a8b8ce73cd2ee0aa4724b7a0a7604ec3cb13c13d7b519dca0639a665558738c8e334831b7e63d28b0f9891bd580f4c9a6963d88c63bf14671f503b534f0f83834241763f71c1c15e49edc53831c8e011d4f14dda39c8fc693ab638e73d2829368716ca9c0e3b7bd0a49e3d3d7f4a091f2e00f5cd2939cf7cf51e948050c073fdd3d31ce69e1813d17a77a8f009dbcf4e314bc9e73c0a562e32b225c807254609a674cfb7e66!
 98ac727a0c75a5de01ddd0fafa5162ae85ce4724003db9a1e648be662b8f6aa53df2ab
6231b9877aa1248d23127926b58d16f7392b62e31d23ab2d5cdfbca36a1207723bd53ebd4f34983e94bf862ba2315156479b52a4aa3bc9871f852e7902939cf3fa51da99981ebd68c5079e718a4c9a005e31df3475c51cb76a3b5001df934639feb9a01ed8a07041cd00038393f850783c0eb46e3d334027834006318cf7140a4e49f4a52680038278a3bd260f07d680314c63b8a293af345215853d68e0f7cd21ec694e08eb400a38e808a6924f349d075a51e9eb4009ee334efc45341c1a5e4ff8500193d3b5038e48cd18f534831d38a063b20e68f634dcfe06807dc8a043b18e98a4183c5071c7f3a4038ffeb50029ea723f2a3e82819c75a08ed40c073de8e9c91411e9473c5020383471ef8a0027f9d19f5a062927af7fa5213ef465a8e7f1a043e395e3e51b047357adf52e36ca0fd6b371de9735328465b9ad3ab3a6fdd66f24a92ae55f39ea4529eff37e02b055d94f048ab297d2afdfcb0ac1d16b63b218b8bf8d1a9b5b6e413efeb484b1fe1ebc5411ea113f0c769a983c4c010ff376e6b3716b747546a424bdd62b7b0c9a8dd0963b323dea5c286c0e699ce71cd08728dc602c3209c9f4a1b3c8534f240c80319e7029a3e56fbb834c8b580027a71db14dda73cb0ce69c091903f8ba907f9d2fca00dc39ee68b85ae46436dcfdec1a371607247f9ed4f39cae38ed4!
 60103d3f9d3b872f619b8edca9c7b9e94f032392706a41803af07de907dfc64601ed4ae572db70dad807d07d722908246de9cf5c53b8623278cd18e73819f7a43e5ec34a02bc37039a5c302013d050d2c6a3e6916abbea1102719cfaf6a6949f42652a70f8996181dbd471df148d22a2e5dfaf6359f2dfc8e3e55c0f5aaad2339cb3126b48d17d4e7a98c8af855cbb35f00d84eddfb555966924e4bf151f18ebcd03ebfa56ca096c714eb4e7bb01f8d1de8f5cd20cfad5198efc2939f4a0e734bcf534084ce4f3fca8ce3a52e7de933fe4d0019e3a52f3db814dce0e726947028002c7d68ce7a5275fad2fd7b5001938e0f340c83d68200349c76a061819eb4a3a519e31fca8c531099fa5033dc9e7f5a5e9da93afa50317763a504e7b7eb47538a4f506900a0f1d68a51feee68a04277f4a39240cd1c8ebf85191d719a0760e7d79a52182f5a4efe9f8d1f8d020da71da8e47149d7b5017d2800ff002294671465bb1c51d7eb4007e34118a3f5a30493c5000093c9a5ce38a41d3fc28c1f7fca80133914a0f72011ef47bf7a3b678a06291803141c803bd273dba520cf1df1408518f4fca9314bdfa52f6ce7f0c503106451c13de931934b8c0a041f951de939cf1e946064d3181ce6941cf1d280297e9d6900838fafbd0090720e3f1a3bf5cd1d0fa9f4a00956e268dbe573522!
 deca3ae0f7e6ab01d88a4e2972a7d0b5566b665f1a8b7f769ff006f8c9c1071f4e6b3b
007bd2f07924d43a513458aaaba9a22f23e78007b0c506f2324124f159b8e68dd838a3d922beb533516e6161b77819c75a4fb4c4390413d318acc1ef9a39278a3d920fadcfb1a26ee1ce0648ec714d7bf4e7018d67e3a0a304d3f65113c54d978ea0e57841c7435035d4aff00c58fa542073ed4719e053508ae8672ad525bb14966e59891498f4347be28391e95467b873de8e09eb41cf3c714668014919e83e949d473d28da4f1de8c11d4d0201eb4727bd28e47b7d693140064e7d68fa9a31f4a3393d6818a0120e0f4a6fa8c714ecedef49f88a0418e946338191401cf0d49d0707ad002eec7434a738ea293e9f89a3f1e450003149df3da8ebd69c47bd03139c74a075f4a3fc8a38fc6810679e28c7e740a31ef40c08c76a07a9a0631c75a3bf245020c9fa5149f951400bd0d1d4f4a0f279a00e3ad03b887d0834bd87183463269792704d02139ee72294f4e338a405b03da8c1e99fd6800c76c71477a503d48a4ce38cd003881de9300fd68a43eb8140015c7d693049e681ebcd2e79a00303b734983da9e178c92334809230050020c1ed4678fc78a073e94639ed400a46707349cfad18cd07f2a00403af347b114a7aff5a5edc50020e307a9a08c60e293009f4a5e09ebf4a00393c0a38a0647ff00ae907d6818b8c1eb4801e9d6948a075ec2800c1cd048cf38a4e28c0c!
 743400bce3a51cfa52e0d371cf5a0428c91ec682307d4519e39347b8a004c1f5a5c71473d71fad1ce7a1cd0004628fa75a3be3a5183ebf8d001c918a0e68fa1a5ea7d2801073d8518238a3b51903b76a003009f4146d3d290e7a114a3f0a000020d047a03f8d1818cfe941ea280019edfca9319ce297073814608e3340c369ee28c73d3f3a07d68cf3c9e2810104d18eb47e228e71ce7eb4007fc06938c9ef4a71d68e832314009f88a5c7a8a0723a034018f4a0036f393d294f4e33413ef483afb500262976e3de940c8edf9d379f51400b8f4e68231c8a1811da803d0d0020ebd294e0fad1cd07a73fa500033e945007145030cf4e4d03d683e99a093b7a74a040391d79a3241e4528240246052609e9d3de801793d0f1da933c739a5e71c62933c76c1a00064f6cd0720f71473db9a52380680132694f18a41d3a9fa51de80131cf4e68e4d14a064f18a630c7a9a037228e7d734a31d29083e51dfe949de8e73c529ebd7f4a004ff3d2807d6979eb49923df340077eb413c507f0a063eb40075a31f9d007b8fca973cf5cd002519f73477a0103ae2800228e477a31c7ad1d7fc28001f8e693a1ef9a5e4519cf6e2800c71ed4027b7e7475e9dbd28191de800c6339a00c9ef473dcd18cf7a000f5f6a324fbd19c632694e3f0a00439ee79a3a0a07231da93eb400ec6793cd1b7!
 03a03fce83d01e3f0a424e7a9cd0019e0ff851c753cd1f8d19e3eb4007bf347d39a4a5
fa1a0053f30a4a3a1e38a519ea79a00081ed498f7a0504f1e940083bd2e703a75a4a3a1cff003a631ca71eb413dc5272d4606deb48419f614755ed401cf079a0fbd001d6946071cd27d31c5275f4a005fc68efd68e4f7a5231d4d002023a0140079e4d18f7a391c64d001c0a3bf4a0139ebf9d1cd0004103228fc39fa75a38cf19fc693d81a0038a29df8514c62755068a28a420ce6928a29a1a1472681d28a29084c919a5f4f7a28a630e9475e4f3451400bd0d33bd145021c3af4140eb4514860471483a51453014138eb4000d145210a40033487a0345140213bf4a777a28a004ef4a1411cf7345140c31c7d29bd314514fa0851c934bf80a28a40276a0707d68a28630c734da28a603c0e6938cf4a28a5d400e076a5edd28a28100ea7d7d68c67f2a28a10087a5274a28a630edd28ef45148053c9c1a4c628a280140e2908eb451400114e3c0e828a28010f4a3d28a298831d6941e3a5145260c43c5251450085c641f6a3b51453180e49e7a525145003b1c03eb483b5145210ee84521009e945149021a78345145319fffd9', 'image/jpeg', '500', '500', 'M', '2009-06-27 13:45:00', '2009-06-27 13:45:00', 10, 10)
  
  
  
  
  
  1.1      date: 2007/03/07 18:37:35;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/etc/messages_en.properties
  
  Index: messages_en.properties
  ===================================================================
  up=\u2191
  down=\u2193
  left=\u2039
  right=\u203A
  
  validator.assertFalse=validation failed
  validator.assertTrue=validation failed
  validator.future=must be a future date
  validator.length=length must be between {min} and {max}
  validator.max=must be less than or equal to {value}
  validator.min=must be greater than or equal to {value}
  validator.notNull=may not be null
  validator.past=must be a past date
  validator.pattern=must match "{regex}"
  validator.range=must be between {min} and {max}
  validator.size=size must be between {min} and {max}
  validator.email=must be a well-formed email address	
  
  org.jboss.seam.loginFailed=Login failed
  org.jboss.seam.loginSuccessful=Welcome, #0
  
  org.jboss.seam.TransactionFailed=Transaction failed
  org.jboss.seam.NoConversation=The conversation ended, timed out or was processing another request
  org.jboss.seam.IllegalNavigation=Illegal navigation
  org.jboss.seam.ProcessEnded=Process #0 already ended
  org.jboss.seam.ProcessNotFound=Process #0 not found
  org.jboss.seam.TaskEnded=Task #0 already ended
  org.jboss.seam.TaskNotFound=Task #0 not found
  org.jboss.seam.NotLoggedIn=Please log in first
  
  javax.faces.component.UIInput.CONVERSION=value could not be converted to the expected type
  javax.faces.component.UIInput.REQUIRED=value is required
  javax.faces.component.UIInput.UPDATE=an error occurred when processing your submitted information
  javax.faces.component.UISelectOne.INVALID=value is not valid
  javax.faces.component.UISelectMany.INVALID=value is not valid
  
  javax.faces.converter.BigDecimalConverter.DECIMAL=value must be a number
  javax.faces.converter.BigDecimalConverter.DECIMAL_detail=value must be a signed decimal number consisting of zero or more digits, optionally followed by a decimal point and fraction, eg. {1}
  javax.faces.converter.BigIntegerConverter.BIGINTEGER=value must be a number
  javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail=value must be a signed integer number consisting of zero or more digits
  javax.faces.converter.BooleanConverter.BOOLEAN=value must be true or false
  javax.faces.converter.BooleanConverter.BOOLEAN_detail=value must be true or false (any value other than true will evaluate to false)
  javax.faces.converter.ByteConverter.BYTE=value must be a number between 0 and 255
  javax.faces.converter.ByteConverter.BYTE_detail=value must be a number between 0 and 255
  javax.faces.converter.CharacterConverter.CHARACTER=value must be a character
  javax.faces.converter.CharacterConverter.CHARACTER_detail=value must be a valid ASCII character
  javax.faces.converter.DateTimeConverter.DATE=value must be a date
  javax.faces.converter.DateTimeConverter.DATE_detail=value must be a date,  eg. {1}
  javax.faces.converter.DateTimeConverter.TIME=value must be a time
  javax.faces.converter.DateTimeConverter.TIME_detail=value must be a time,  eg. {1}
  javax.faces.converter.DateTimeConverter.DATETIME=value must be a date and time
  javax.faces.converter.DateTimeConverter.DATETIME_detail=value must be a date and time,  eg. {1}
  javax.faces.converter.DateTimeConverter.PATTERN_TYPE=a pattern or type attribute must be specified to convert the value
  javax.faces.converter.DoubleConverter.DOUBLE=value must be a number
  javax.faces.converter.DoubleConverter.DOUBLE_detail=value must be a number between 4.9E-324 and 1.7976931348623157E308
  javax.faces.converter.EnumConverter.ENUM=value must be convertible to an enum
  javax.faces.converter.EnumConverter.ENUM_detail=value must be convertible to an enum or from the enum that contains the constant {1}
  javax.faces.converter.EnumConverter.ENUM_NO_CLASS=value must be convertible to an enum or from the enum, but no enum class provided
  javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail=value must be convertible to an enum or from the enum, but no enum class provided
  javax.faces.converter.FloatConverter.FLOAT=value must be a number
  javax.faces.converter.FloatConverter.FLOAT_detail=value must be a number between 1.4E-45 and 3.4028235E38
  javax.faces.converter.IntegerConverter.INTEGER=value must be a number
  javax.faces.converter.IntegerConverter.INTEGER_detail=value must be a number between -2147483648 and 2147483647
  javax.faces.converter.LongConverter.LONG=value must be a number
  javax.faces.converter.LongConverter.LONG_detail=must be a number between -9223372036854775808 and 9223372036854775807
  javax.faces.converter.NumberConverter.CURRENCY=value must be a currency amount
  javax.faces.converter.NumberConverter.CURRENCY_detail=value must be a currency amount, eg. {1}
  javax.faces.converter.NumberConverter.PERCENT=value must be a percentage amount
  javax.faces.converter.NumberConverter.PERCENT_detail=value must be a percentage amount, eg. {1}
  javax.faces.converter.NumberConverter.NUMBER=value must be a number
  javax.faces.converter.NumberConverter.NUMBER_detail=value must be a number
  javax.faces.converter.NumberConverter.PATTERN=value must be a number
  javax.faces.converter.NumberConverter.PATTERN_detail=value must be a number
  javax.faces.converter.ShortConverter.SHORT=value must be a number
  javax.faces.converter.ShortConverter.SHORT_detail=value must be a number between -32768 and 32767
  
  javax.faces.validator.DoubleRangeValidator.MAXIMUM=value must be less than or equal to {0}
  javax.faces.validator.DoubleRangeValidator.MINIMUM=value must be greater than or equal to {0}
  javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE=value must be between {0} and {1}
  javax.faces.validator.DoubleRangeValidator.TYPE=value is not of the correct type
  javax.faces.validator.LengthValidator.MAXIMUM=value is must be shorter than or equal to {0} characters
  javax.faces.validator.LengthValidator.MINIMUM=value is must be longer than or equal to {0} characters
  javax.faces.validator.LongRangeValidator.MAXIMUM=value must be less than or equal to {0}
  javax.faces.validator.LongRangeValidator.MINIMUM=value must be greater than or equal to {0}
  javax.faces.validator.LongRangeValidator.NOT_IN_RANGE=value must be between {0} and {1}
  javax.faces.validator.LongRangeValidator.TYPE=value is not of the correct type
  
  javax.faces.validator.NOT_IN_RANGE=value must be between {0} and {1}
  javax.faces.converter.STRING=value could not be converted to a string
  
  
  
  1.1      date: 2007/03/07 18:37:35;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/etc/import-test.sql
  
  	<<Binary file>>
  
  
  1.1      date: 2007/03/07 18:37:35;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/etc/security.drl
  
  Index: security.drl
  ===================================================================
  package Permissions;
  
  import java.security.Principal;
  
  import org.jboss.seam.security.PermissionCheck;
  import org.jboss.seam.security.Role;
  
  rule AdminIsAMember
    salience 10
    no-loop
  when
    Role(name == "admin")
    not Role(name == "member")
  then
    assert(new Role("member"));
  end;
  
  rule AdminIsAGuest
    salience 10
    no-loop
  when
    Role(name == "admin")
    not Role(name == "guest")
  then
    assert(new Role("guest"));
  end;
  
  rule MemberIsAGuest
    salience 10
    no-loop
  when
    Role(name == "member")
    not Role(name == "guest")
  then
    assert(new Role("guest"));
  end;
  
  rule RestrictDocumentEditPage
    no-loop
    activation-group "permissions"
  when
    c: PermissionCheck(name == "/docEdit.xhtml", action == "render", granted == false)
    Role(name == "member")
  then
    c.grant();
    modify(c);
  end;
  
  rule RestrictDirectoryEditPage
    no-loop
    activation-group "permissions"
  when
    c: PermissionCheck(name == "/dirEdit.xhtml", action == "render", granted == false)
    Role(name == "admin")
  then
    c.grant();
    modify(c);
  end;
  
  
  
  1.1      date: 2007/03/07 18:37:35;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/etc/import-prod.sql
  
  	<<Binary file>>
  
  



More information about the jboss-cvs-commits mailing list