Our Fight Against Super Bad Patterns in Legacy Apps

Our Fight Against Super Bad Patterns in Legacy Apps

Slides for the talk in RedDotRubyConf 2016.

B5689026d84bb3a823c82590eefc3b8f?s=128

Yasuko Ohba

June 24, 2016
Tweet

Transcript

  1. 0VS'JHIU"HBJOTU 4VQFS#BE1BUUFSOTJO -FHBDZ3BJMT"QQT :BTVLP0ICB !OBZ  &WFSZMFBG$PSQ

  2. :BTVLP0ICB େ৔ೡࢠ !OBZ -JWJOHJO5PLZP +BQBO "QSPHSBNNFS 3VCZPO3BJMTTJODF +BWB $ 0CKFDUJWF$

    1)1ʜ 1SFTJEFOUPG&WFSZMFBG$PSQ
  3. ͓͓͹͞Μ PPCBTBO PICBTBO

  4. ͓͓͹͞Μ PPCBTBO PICBTBO ͓͹͞Μ PCBTBO

  5. ͓͓͹͞Μ PPCBTBO PICBTBO ͓͹͞Μ PCBTBO ͓͹͋͞Μ PCBBTBO

  6. &WFSZMFBG$PSQ ສ༿ 8FEFWFMPQXFCBQQMJDBUJPOTGPSPVS DMJFOUTVTJOHNPTUMZ3VCZPO3BJMT 4JODF BMNPTUZFBST  QFPQMF BSFXPNFO 

    BSFXPNFO JOFOHJOFFSJOH
  7. *TUBSUFEUIFDPNQBOZGPS NZTFMGUPLFFQDPEJOH

  8. 4UJDLFST #PPLNBSLT

  9. .ZGBNJMZ

  10. .Z)PCCZ $BSUBʢ͔Δͨʣ

  11. 8FIBWFQSPEVDUT 5IF+BQBOFTF1PFNT

  12. 5IFpSTUUJNFUP 7JTJU4JOHBQPSF "UUFOE3FE%PU3VCZ$POG 5SBWFMUPBGPSFJHODPVOUSZBMPOF )BWFBO&OHMJTIUBMLMPOHFSUIBO -JHIUOJOH5BMLT )FMMP 4JOHBQPSF

  13. $BVUJPO *NJHIUTBZ&FF ͑ʔ  .BB ·͋ JOTUFBEPG8FMM ʜ *NJHIUTBZ5FO ఺

    JOTUFBEPG 1PJOUGPSOVNCFST *IBWFBMPUPGTMJEFT
  14. 0VUMJOF 8IBUXFHFOFSBMMZIBWFUPEP UPVQHSBEF3VCZBOE3BJMTJO MFHBDZBQQMJDBUJPOT *OUSPEVDUJPOPGTVQFSCBE QBUUFSOTXF`WFGPVOE

  15. 3VCZ3BJMT .JHSBUJPO 6QHSBEJOH IUUQTXXXqJDLSDPNQIPUPT!/

  16. 2)PXNBZ QFPQMFIBWFVTFE 3BJMT

  17. 2)PXNBOZ QFPQMFIBWF FYQFSJFODFEUIF NJHSBUJPOGSPN 3BJMTUP

  18. 3BJMTIBECFFO VTFEXJEFMZ JO+BQBOBUMFBTU

  19. .BOZPME3BJMT BQQMJDBUJPOTSFNBJO XBJUJOHUPCFVQHSBEFE IUUQTXXXqJDLSDPNQIPUPTNBTIB@L@TI

  20. 4P LOPXJOHBCPVU IPXUPVQHSBEF 3VCZ3BJMTDBO CFTPNFIFMQ GPSUIBUTJUVBUJPO IUUQTXXXqJDLSDPNQIPUPTUSFFTBOUPT

  21. *TJUQPTTJCMF

  22. *TJUQPTTJCMF &WFO XJUI OP BVUP UFTUJOH

  23. *TJUCFUUFSUP EFWFMPQBO BQQMJDBUJPO GSPNTDSBUDI

  24. *UDPVMECF #VUOPUBMXBZT

  25. "OFYJTUJOH TZTUFN CFJOHVTFE SFqFDUT JUTSFBMOFFET

  26. :PVDBOOFWFS SFNPWFJUTFTTFOUJBM DPNQMFYJUZCZ QSPHSBNJOH UFDIOJRVFT

  27. 5IBUTXIZ NJHSBUJPOBOE SFGBDUPSJOH NBLFTFOTF

  28. -FUTMPPLBU IPXUPVQHSBEF 3VCZ3BJMT

  29. 0VS$BTF

  30. 0VS"QQMJDBUJPOT ,JOEPGIFBMUIDIFDLTFSWJDF #UP# )BOEFEPWFSUPPVSDPNQBOZ GSPNUIFPUIFSEFWFMPQNFOU DPNQBOZXIJDIPSJHJOBMMZ EFWFMPQFEUIFTZTUFN

  31. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

  32. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ %SBXJUBXBZ

    GSPN 3BEJBOU$.4
  33. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ 6QHSBEJOH

    3BJMT3VCZ %SBXJUBXBZ GSPN 3BEJBOU$.4
  34. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST .FSHF 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

    6QHSBEJOH 3BJMT3VCZ %SBXJUBXBZ GSPN 3BEJBOU$.4
  35. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST .FSHF 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

    6QHSBEJOH 3BJMT3VCZ 3FGBDUPSJOH %SBXJUBXBZ GSPN 3BEJBOU$.4
  36. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST .FSHF 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

    6QHSBEJOH 3BJMT3VCZ 3FGBDUPSJOH %SBXJUBXBZ GSPN 3BEJBOU$.4 "/$*&/5$0%&
  37. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST .FSHF 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

    6QHSBEJOH 3BJMT3VCZ 3FGBDUPSJOH "EE 'FBUVSFT %SBXJUBXBZ GSPN 3BEJBOU$.4 "/$*&/5$0%&
  38. 5PUBM4DIFEVMF "VHVTU.BZ NPOUIT QFPQMF      

         .JHSBUJPO 3FGBDUPSJOH /FX 'FBUVSFT" /FX 'FBUVSFT# QMBOOJOHEFTJHOJOH CZPVSDMJFOU PVSEFTJHOJOHBOE JNQMFNFOUBUJPO JOUFHSBUJPOUFTUJOH CZBQBSUOFSDPNQBOZ
  39. .BQPG3BJMT.JHSBUJPO 3BJMT

  40. .BQPG3BJMT.JHSBUJPO 3BJMT 3BJMT 

  41. .BQPG3BJMT.JHSBUJPO 3BJMT 5IF3JWFSPG5FBST 3BJMT 

  42. .BQPG3BJMT.JHSBUJPO 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT 

  43. .BQPG3BJMT.JHSBUJPO 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  5IF.PVOUBJOT PG.PEFSO3BJMT

  44. .BQPG3BJMT.JHSBUJPO 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  3BJMT  5IF.PVOUBJOT

    PG.PEFSO3BJMT
  45. .BQPG3BJMT.JHSBUJPO 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 3BJMT

     5IF.PVOUBJOT PG.PEFSO3BJMT
  46. .BQPG3BJMT.JHSBUJPO 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  3BJMT 4BZ(PPECZF UP3VCZ

    3BJMT  5IF.PVOUBJOT PG.PEFSO3BJMT
  47. .BQPG3BJMT.JHSBUJPO 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  3BJMT 4BZ(PPECZF UP3VCZ

    3BJMT  5IF4USPOH1BSBNFUFST'BMMT 5IF.PVOUBJOT PG.PEFSO3BJMT
  48. .BQPG3BJMT.JHSBUJPO 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  3BJMT 4BZ(PPECZF UP3VCZ

    4BGF 3BJMT  5IF4USPOH1BSBNFUFST'BMMT 5IF.PVOUBJOT PG.PEFSO3BJMT
  49. .JHSBUJPO4DIFEVMF       "QQ UP3BJMT UP3VCZ

    UP3BJMT UP3BJMT "QQ UP3BJMT UP3VCZ UP3BJMT UP3BJMT 'JMF6QMPBEJOH 1BHJOBUJPO &NBJM4FOEJOH #BDLHSPVOE1SPHSBNT 'SPN3BJMT3VCZ
  50. #VSEFOCFGPSF EFGBVMUSPVUFNBQQJOH IUUQTXXXqJDLSDPNQIPUPTU[FKFO NBQDPOOFDUDPOUSPMMFSBDUJPOJE

  51. #VSEFOCFGPSF EFGBVMUSPVUFNBQQJOH IUUQTXXXqJDLSDPNQIPUPTU[FKFO NBQDPOOFDUDPOUSPMMFSBDUJPOJE SFTPVSDFTVTFST SFTPVSDFTDPNQBOJFT POMZ<TIPX> ʜ

  52. #VSEFOCFGPSF EFGBVMUSPVUFNBQQJOH IUUQTXXXqJDLSDPNQIPUPTU[FKFO NBQDPOOFDUDPOUSPMMFSBDUJPOJE :PVOFFEUPLOPX"-- "$5*0/4 SFTPVSDFTVTFST SFTPVSDFTDPNQBOJFT POMZ<TIPX> ʜ

  53. -FUTTFF UIFSPBENBQGSPN 3BJMTUP

  54. 3BJMT 3BJMT 3BJMT  3BJMT  3BJMT 4BZ(PPECZF UP3VCZ 4BGF

    3BJMT  5IF3JWFSPG5FBST 5IF4USPOH1BSBNFUFST'BMMT 5IF.PVOUBJOT PG.PEFSO3BJMT
  55. 5IF3JWFSPG5FBST 3BJMT  "DUJWF3FDPSEDIBJOBCMFRVFSZ MBOHVBHF 4BZHPPECZFUPDPOEJUJPOTBOEJUT GSJFOET 6TFSpOE BMM 

    DPOEJUJPOT\BENJOUSVF^  PSEFSJE
  56. 5IF3JWFSPG5FBST 3BJMT  "DUJWF3FDPSEDIBJOBCMFRVFSZ MBOHVBHF 4BZHPPECZFUPDPOEJUJPOTBOEJUT GSJFOET 6TFSpOE BMM 

    DPOEJUJPOT\BENJOUSVF^  PSEFSJE
  57. 5IF3JWFSPG5FBST 3BJMT  "DUJWF3FDPSEDIBJOBCMFRVFSZ MBOHVBHF 4BZHPPECZFUPDPOEJUJPOTBOEJUT GSJFOET 6TFSpOE BMM 

    DPOEJUJPOT\BENJOUSVF^  PSEFSJE
  58. $POEJUJPOTBOEJUTGSJFOET SFTJEFFWFSZXIFSF .BOJQVMBUJPOPGDPOEJUJPOT IBTINBLFTUIJOHTXPSTF  :PVOFFEUPLOPX"--42-T JOUFOEFE

  59. $POEJUJPOT .BOJQVMBUJPO QSFQBSBUJPOGPS.PEFMpOE BMM DPOEJUJPOTʜ  JGTPNFUIJOH  DPOEJUJPOT@TUSJOH"/%TPNFUIJOH 

    DPOEJUJPOT@QBSBNTWBMVF FOE SFMSFMXIFSF TPNFUIJOHWBMVF JGTPNFUIJOH
  60. "TNBMMCBEQBUUFSO XBTGPVOEIFSF %PTFBSDIpSTUBOE NBOJQVMBUFUIFSFTVMU $IBJORVFSJFTJOTUFBEPG BSSBZDPODBU

  61. 5IF3JWFSPG5FBST 3BJMT  3FXSJUF"KBYDPEFJGJUVTFT PME3BJMTIFMQFSNFUIPET 6OPCUSVTJWF+BWB4DSJQU

  62. 5IF3JWFSPG5FBST 3BJMT  3FXSJUFBMMPGPMEIBOENBEF IFMQFSTTVQQPSUJOHCMPDLT  /POFFEGPSI /FFEUPpYEPVCMFFTDBQJOH )FMQFST7JFXT GPSN@GPS

    GPSN@GPS
  63. 5IF3JWFSPG5FBST 3BJMT  7BMJEBUJPO WBMJEBUFT@QSFTFODF@PGOBNF WBMJEBUFT@MFOHUI@PGOBNF NBYJNVN WBMJEBUFTOBNF QSFTFODFUSVF 

    MFOHUI\NBYJNVN^
  64. 3BJMT   FBTZUPDIBOHF SPVUFTSC SFNPWFNBQ TJNQMFCMPDLTXJUIPVU BOBSHVNFOU

  65. 3BJMT   (PPEQPJOUT #VOEMFS 8FTUBSUFEUPVTF CVOEMFSXJUI3BJMT

  66. 3BJMT   (PPEQPJOUT CFGPSF BGUFS DSFBUF BOFXBQQ SBJMTNZBQQ SBJMTOFXNZBQQ

    DPOTPMF SVCZTDSJQUDPOTPMF SBJMTD TFSWFS SVCZTDSJQUTFSWFS SBJMTT
  67. 4PXFEPOUIBWFUP DSFBUFBQQMJDBUJPOT OBNFEDPSTBOZNPSF IUUQTXXXqJDLSDPNQIPUPTTMJQTUSFBNCMVF

  68. (PUPUIFOFYUTUFQ 3BJMT 3BJMT  3BJMT  3BJMT 4BZ(PPECZF UP3VCZ 4BGF

    3BJMT  5IF3JWFSPG5FBST 5IF.PVOUBJOT PG.PEFSO3BJMT 5IF4USPOH1BSBNFUFST'BMMT
  69. 5IF.PVOUBJOTPG.PEFSO3BJMT 3BJMT  "TTFUT1JQFMJOF .PWFpMFTBOEDPOpHVSFTFUUJOHT 3FEFTJHODTTBOE+4pMFTTUSVDUVSFT (PPEUJNJOHUPVTF4$44 FUD *UUBLFTNVDIUJNF /FFEUPLOPXBCPVUBMMBTTFUpMFTJEFBMMZ

  70. 5IF.PVOUBJOTPG.PEFSO3BJMT 3BJMT  %FGBVMU+4MJCSBSZJTDIBOHFE UPCFK2VFSZGSPNQSPUPUZQFKT /FFEUPSFXSJUF+BWB4DSJQU DPEFJGZPVBSFHPJOHUP TXJUDIUIFMJCSBSZ

  71.  3BJMT 3BJMT  3BJMT  3BJMT 4BZ(PPECZF UP3VCZ 4BGF

    3BJMT  5IF3JWFSPG5FBST 5IF.PVOUBJOT PG.PEFSO3BJMT 5IF4USPOH1BSBNFUFST'BMMT
  72.  *UTFBTZ QMVDL VOJR

  73. 6QHSBEJOH3VCZ  /PUWFSZIBSE  4USJOHFODPEJOH )BTI \BBBWBMVF^UP\BBBWBMVF^ 4UPQVTJOH "DUJWF4VQQPSU0SEFSFE)BTI

  74. "MNPTU%POF 3BJMT 3BJMT  3BJMT  3BJMT 4BZ(PPECZF UP3VCZ 4BGF

    3BJMT  5IF3JWFSPG5FBST 5IF4USPOH1BSBNFUFST'BMMT 5IF.PVOUBJOT PG.PEFSO3BJMT
  75. 5IF4USPOH1BSBNFUFST'BMMT 3BJMT 4FDVSJUZDIFDLXFOUUP $POUSPMMFSGSPN.PEFM *MPWF4USPOH1BSBNFUFST CVU 7FSZIBSEBOE#03*/(KPC  :PVOFFEUPLOPXBMM QBSBNFUFSTGPSBMMBDUJPOT

  76. 0UIFST FSC)BNMJGZPVMJLFJU 3FQMBDFNBOZHFNT  3FXSJUFNPOLFZQBUDIJOHJO DPOpHJOJUJBMJ[FST  5JNF[POF

  77. (FNT :PVOFFEUPSFQMBDFHFNT UISPVHIUIFSBJMTNJHSBUJPOT *UIJOLJONPEFSO3BJMTTVDIBT 3BJMTPSUIJTJTUIFNBJOKPC PGNJHSBUJPO

  78. $POHSBUVMBUJPOT 8FMDPNFUP3BJMT 

  79. )PXUPVQHSBEF3BJMTGSPN $PODMVTJPO /PUPOMZSBLFSBJMTVQEBUF :PVOFFEUPDIBOHFTPNBOZ QMBDFT 'PSUIBUZPVOFFEUPLOPXʜ

  80. ,OPXXFMMBCPVU:063"11 ,OPX8IBU 'PS BMMBDUJPOT SFNPWJOHEFGBVMUSPVUJOH SFGBDUPSJOH63-TBOE)551NFUIPET BMMQBSBNFUFSTPG FBDIBDUJPOT BQQMZJOHTUSPOHQBSBNFUFSTTUSJDUMZ SJHIUMPPLTPGBMM

    QBHFT pYJOHIFMQFSTBOEFTDBQJOHDPSSFDUMZ BMM42-T SFQMBDJOHDPOEJUJPOTUPDIBJOBCMFRVFSZ BMMBTTFUpMFT VTJOHBTTFUTQJQFMJOFFGGFDUJWFMZ BMMNPOLFZ QBUDIJOH NBLJOHUIFNXPSLJONPEFSO3BJMT
  81. *UTUPVHI CVUOPU JNQPTTJCMF 4UFQCZTUFQ IUUQTXXXqJDLSDPNQIPUPTBMJDFQPQLPSO

  82. 8IZEJEU XFIBWF BVUPNBUFE UFTUT

  83. #FDBVTFXFIBE BCBOEPOFE UFTUTHJWFOGSPN UIFQSJPSEFW DPNQBOZ

  84. #FDBVTFXFIBE BCBOEPOFE UFTUTHJWFOGSPN UIFQSJPSEFW DPNQBOZ 8FIBEJNQSPWFEPVSUFTUT SJHIU

  85. 5IPTFUFTUTEJE OPUNBLFTFOTF BUUIBUUJNF

  86. *LOPXUIJTJT EBOHFSPVT )PXFWFS IBWJOHCBE UFTUTDPVMECFFWFO XPSTFUIBO IBWJOHOPUFTUT

  87. 5IFUFTUJOH DPNQBOZIFMQFE VTBMPU

  88. 8FIBEUSJFEUPXSJUF GFBUVSFTQFDT  CVUUIFPME3VCZWFSTJPO EJTDPVSBHFEVT IUUQTXXXqJDLSDPNQIPUPTDBQZCBSBKQ

  89. 4PXFEFDJEFEUP XSJUFNBOZHPPE TQFDTBGUFS NJHSBUJPOQ

  90. "GUFSBZFBS XF IBWFNBOZOJDF TQFDT )BQQZ

  91. 4VQFS#BE 1BUUFSOTJO 3BJMT IUUQTXXXqJDLSDPNQIPUPT!/

  92. 0VSBQQT IBECFFO EFWFMPQFECZ CFHJOOFSTPG3BJMT DPNJOHGSPN+BWB

  93. 8FWFGPVOE NBOZCBE QBUUFSOTUIFSF

  94. 8FMPWF HPPEQBUUFSOT IUUQTXXXqJDLSDPNQIPUPTGSBOTEFXJU

  95. 4PXFIBWF FBTZBDDFTT UPUIFHPPE QBUUFSOT

  96. )PXBCPVU CBEQBUUFSOT

  97. *GZPVSUFBNJT NPEFSOBOEOJDF  JUTIBSEUPpOE OBUVSBMCBEQBUUFSOT JOZPVSEBJMZXPSL IUUQTXXXqJDLSDPNQIPUPTBSNZ@BSDI

  98. *UNFBOTZPV NJHIUNJTTTPNF DIBODFUPOPUJDF XIBUUPBWPJEJO QSPHSBNNJOH

  99. 5IBUTXIZ*XBOU UPTIBSFUIFTF CBEQBUUFSOT

  100. /BUVSBMCBE QBUUFSOTBSFMJLF HPMENJOFT IUUQTXXXqJDLSDPNQIPUPTIFSTFOTQJOTFMT

  101. -FUNFJOUSPEVDF NBKPS CBEQBUUFSOTJO UIFQSPKFDU

  102.  5PPNBOZMBZFST  %SFBNZNFUIPE  (MPCBMIBTI  .BTTIPVTJOHJO POFDPOUSPMMFS

  103. 5PPNBOZMBZFST IUUQTXXXqJDLSDPNQIPUPTTNDDMBO

  104. 8FIBECFFO pHIUJOHBHBJOTU UPPNBOZDMBTTFT BOEMBZFST 'BNJMJBSTUZMF JO+BWB

  105. $POUSPMMFS .BOZ5IJO "DUJWF3FDPSE .PEFMT DPVMECFVOJpFE 4QBHIFUUJ  'BUOPO"3DMBTTFT

  106. $POUSPMMFS .BOZ5IJO "DUJWF3FDPSE .PEFMT DPVMECFVOJpFE 4QBHIFUUJ  'BUOPO"3DMBTTFT QSPDFEVSBM

  107. $POUSPMMFS .BOZ5IJO "DUJWF3FDPSE .PEFMT DPVMECFVOJpFE 4QBHIFUUJ  'BUOPO"3DMBTTFT QSPDFEVSBM QSPDFEVSBM

  108. 5ZQJDBMPWFSNVDI UPSFMBUJPONPEFMT $PNQBOZ  $PNQBOZ"EESFTT  $PNQBOZ4PNFUIJOH  FUDʜ 'BDBEF

    1SPYZ TPPO
  109. 8SPOHSFBTPOTUP TFQBSBUFNPEFMT 5IFZIBWFTMJHIUMZEJGGFSFOU NFBOJOHT 6TBHFJTEJGGFSFOUTPNFUJNFT *XPVMEMJLFUPBWPJEDIBOHJOH FYJTUJOHDMBTTFTGPSNZ TBGFUZ

  110. 8SPOHSFBTPOTUP TFQBSBUFNPEFMT 5IFZIBWFTMJHIUMZEJGGFSFOU NFBOJOHT 6TBHFJTEJGGFSFOUTPNFUJNFT *XPVMEMJLFUPBWPJEDIBOHJOH FYJTUJOHDMBTTFTGPSNZ TBGFUZ 0).:(0%

  111. 4FQBSBUJOHNPEFMT DPTUTWFSZNVDI

  112. 'BDBEF 1SPYZ TPPO /PQSPCMFNJGJUTXFMM EFTJHOFE *OPVSDBTF UIFTFTFFNTUPCF UIFSFTVMUUIBUEFWFMPQFST DPVMEOPUVTF"DUJWF3FDPSE QSPQFSMZ

  113. $POUSPMMFS .BOZ5IJO "DUJWF3FDPSE .PEFMT 4QBHIFUUJ  'BUOPO"3DMBTTFT 3FGBDUPSJOH

  114. $POUSPMMFS 4QBHIFUUJ  'BUOPO"3DMBTTFT 3FGBDUPSJOH

  115. $POUSPMMFS 3FGBDUPSJOH

  116. $POUSPMMFS 3FGBDUPSJOH 3JDIBOE.PEVMBSJ[FE "DUJWF3FDPSE .PEFM

  117. $POUSPMMFS 3FGBDUPSJOH 3JDIBOE.PEVMBSJ[FE "DUJWF3FDPSE .PEFM 6TFUIFNPEFMEJSFDUMZ JONPTUDBTFT

  118. %FBNZNFUIPE IUUQTXXXqJDLSDPNQIPUPTUIFP@SFUI IUUQTXXXqJDLSDPNQIPUPTUIFP@SFUI

  119. %SFBNZNFUIPEJT SFBEZUPEPFWFSZUIJOH EFGEP@FWFSZUIJOH@GPS@ZPV JEFOUJpFS PQUJPOT\^  XIFOJEFOUJpFS DBTF$0/45"/5@ EPBKPC DBTF$0/45"/5@

    EPBOPUIFSKPC DBTF$0/45"/5@ EPUIFSEKPC DBTF$0/45"/5@ EPUIFUIKPC FOE FOE
  120. 0GDPVSTFZPV LOPXUIFSJHIU QBUUFSO

  121. 4JNQMFNFUIPET EFGEP@ PQUJPOT\^  EPBKPC FOE EFGEP@ PQUJPOT\^  EPBOPUIFSKPC

    FOE ʜ
  122. 6TFJOIFSJUBODFTPNFUJNFT DMBTT"CTUSBDU8PSL QSJWBUF EFGTPNF@DPNNPO@XPSL TPNFXPSLDBMMJOHEP@JU FOE FOE DMBTT8PSL"CTUSBDU8PSL EFGEP@JU EPBKPC

    FOE FOE DMBTT8PSL"CTUSBDU8PSL EFGEP@JU EPBOPUIFSKPC FOE FOE
  123. "SFZPVTVSF XIZ ESFBNZNFUIPE QBUUFSOTVDLT

  124. )BSEUPSFBE SFTVMUEP@FWFSZUIJOH@GPS@ZPV $0/45"/5@  0, ZPVNFBOEPJOH $0/45"/5@KPCIFSF

  125. )BSEUPSFBE SFTVMUEP@FWFSZUIJOH@GPS@ZPV $0/45"/5@  0, ZPVNFBOEPJOH $0/45"/5@KPCIFSF SFTVMUEP@FWFSZUIJOH@GPS@ZPV PQUJPOT<UZQF> 

    0I *OFFEUPDIFDL XIBUWBMVFJTJOTJEFʜ
  126. &BTZUPTUBSU EFGEP@UIF@XPSL EPUIFXPSL FOE *OFFEUPDIBOHF UIJTCFIBWJPSJONZDBTFʜ

  127. &BTZUPTUBSU EFGEP@UIF@XPSL EPUIFXPSL FOE *OFFEUPDIBOHF UIJTCFIBWJPSJONZDBTFʜ EFGEP@UIF@XPSL SBSF@DBTFUSVF  JGSBSF@DBTF

    EPUIFSBSFXPSL FMTF EPUIFXPSL FOE FOE 8FMM MFUTBEEBOBSHVNFOU
  128. *UHSPXTMJLFWJSVT SFTVMUEP@FWFSZUIJOH@GPS@ZPV PQUJPOT<UZQF> 

  129. *UHSPXTMJLFWJSVT SFTVMUEP@FWFSZUIJOH@GPS@ZPV PQUJPOT<UZQF>  *OFFEUPBEEBOFXMPHJDBGUFSUIJT

  130. *UHSPXTMJLFWJSVT SFTVMUEP@FWFSZUIJOH@GPS@ZPV PQUJPOT<UZQF>  *OFFEUPBEEBOFXMPHJDBGUFSUIJT 0, MFUTBEE BOFXNFUIPE IBWJOHUIFTBNFJEFOUJpFS

  131. *UHSPXTMJLFWJSVT SFTVMUEP@FWFSZUIJOH@GPS@ZPV PQUJPOT<UZQF>  SFTVMUGPSNBU@TPNFUIJOH  SFTVMU  PQUJPOT<UZQF> ʜ

    *OFFEUPBEEBOFXMPHJDBGUFSUIJT 0, MFUTBEE BOFXNFUIPE IBWJOHUIFTBNFJEFOUJpFS
  132. "OJEFOUJpFS USBWFMTPWFS NFUIPET  DMBTTFT BOE MBZFST &WFSZXIFSF $POUSPMMFS .PEFM

    7JFX
  133. /JHIUNBSF IUUQTXXXqJDLSDPNQIPUPTTUJMMFCFO

  134. "OPUIFSMJUUMFCBEQBUUFSO FOVNMJLFIBTIDPOTUBOU 4*56"5*0/\VOLOPXO HPPE CBE^

  135. "OPUIFSMJUUMFCBEQBUUFSO FOVNMJLFIBTIDPOTUBOU 4*56"5*0/\VOLOPXO HPPE CBE^ 4*56"5*0/@6/,/08/VOLOPXOGSFF[F 4*56"5*0/@(00%HPPEGSFF[F 4*56"5*0/@#"%CBEGSFF[F 0S ZPVDBOVTFTPNFFOVNQBUUFSO

  136. 4*56"5*0/\VOLOPXO HPPE CBE^ w4*56"5*0/<GPP>EPFTOPUDBVTFBOFSSPS w:PVOFFEUPSFNFNCFSPSDIFDLXIBULFZJT BWBJMBCMF*%&DBOEPOPUIJOH w*GWBMVFTBSFJOUFHFS ZPVOFFEUPSFNFNCFS CPUIOBNFBOEWBMVF w%JGpDVMUUPTFBSDI

    ZPVDBOVTFWBSJBCMFBTB LFZ  w)BTIDPOUFOUTDBOCFDIBOHFEUPPFBTJMZ 8IZ*UIJOLUIJTJTCBE
  137. 8FTBXUIFDPNCJOBUJPO EFGEP@FWFSZUIJOH@GPS@ZPV JEFOUJpFS PQUJPOT\^  XIFOJEFOUJpFS DBTF4*56"5*0/<VOLOPXO> EPBKPC DBTF4*56"5*0/<HPPE> EPBOPUIFSKPC

    DBTF4*56"5*0/<CBE> EPUIFSEKPC ʜ
  138. 8BOEFSJOH BSPVOEMPPLJOH GPSTPNFUIJOH JTQBJOGVM 4FQBSBUFUIJOHT BOEHJWFUIFN HPPEOBNFT IUUQTXXXqJDLSDPNQIPUPTGFSHJFGBN

  139. (MPCBMIBTI IUUQTXXXqJDLSDPNQIPUPTHBNVUMFTT

  140. (MPCBMIBTI )BTIJTMPWFE )BTIGFFMTMJLFOPUTDBSZ :PVEPO`UIBWFUPDSFBUFB OFXDMBTT 'MFYJCMF

  141. *UDBOCFB NPOTUFS IUUQTXXXqJDLSDPNQIPUPTEFBEMZDSJTQ

  142. *UTUBSUTMJLFUIJT DMBTT"DUJWF6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDIBDUJWFVTFST EFGTFBSDI TFBSDI@PQUJPOTQBSBNT<TFBSDI>cc\^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT  TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT FOE

    FOE
  143. JUHSPXTMJLFUIJT DMBTT/FX6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDIOFXVTFST EFGTFBSDI TFBSDI@PQUJPOT QBSBNT<TFBSDI>cc\^ NFSHF\ʜ^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT 

    TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT
  144. JUHSPXTMJLFUIJT DMBTT/FX6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDIOFXVTFST EFGTFBSDI TFBSDI@PQUJPOT QBSBNT<TFBSDI>cc\^ NFSHF\ʜ^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT 

    TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT JODMVEJOH FYUSBPQUJPOT
  145. JUHSPXTMJLFUIJT DMBTT/FX6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDIOFXVTFST EFGTFBSDI TFBSDI@PQUJPOT QBSBNT<TFBSDI>cc\^ NFSHF\ʜ^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT 

    TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT JODMVEJOH FYUSBPQUJPOT MFU4FBSDIFSLOPX UIJTJTGPSOFXVTFST
  146. JUHSPXTMJLFUIJT DMBTT/FX6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDIOFXVTFST EFGTFBSDI TFBSDI@PQUJPOT QBSBNT<TFBSDI>cc\^ NFSHF\ʜ^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT 

    TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT JODMVEJOH FYUSBPQUJPOT MFU4FBSDIFSLOPX UIJTJTGPSOFXVTFST DMBTT4QFDJBM6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDITQFDJBMVTFST EFGTFBSDI TFBSDI@PQUJPOT QBSBNT<TFBSDI>cc\^ NFSHF\ʜ^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT  TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT
  147. JUHSPXTMJLFUIJT DMBTT/FX6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDIOFXVTFST EFGTFBSDI TFBSDI@PQUJPOT QBSBNT<TFBSDI>cc\^ NFSHF\ʜ^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT 

    TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT JODMVEJOH FYUSBPQUJPOT MFU4FBSDIFSLOPX UIJTJTGPSOFXVTFST DMBTT4QFDJBM6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDITQFDJBMVTFST EFGTFBSDI TFBSDI@PQUJPOT QBSBNT<TFBSDI>cc\^ NFSHF\ʜ^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT  TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT JODMVEJOH FYUSBPQUJPOT
  148. JUHSPXTMJLFUIJT DMBTT/FX6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDIOFXVTFST EFGTFBSDI TFBSDI@PQUJPOT QBSBNT<TFBSDI>cc\^ NFSHF\ʜ^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT 

    TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT JODMVEJOH FYUSBPQUJPOT MFU4FBSDIFSLOPX UIJTJTGPSOFXVTFST DMBTT4QFDJBM6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDITQFDJBMVTFST EFGTFBSDI TFBSDI@PQUJPOT QBSBNT<TFBSDI>cc\^ NFSHF\ʜ^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT  TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT JODMVEJOH FYUSBPQUJPOT NVDITJNQMFS
  149. JUHSPXTMJLFUIJT DMBTT/FX6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDIOFXVTFST EFGTFBSDI TFBSDI@PQUJPOT QBSBNT<TFBSDI>cc\^ NFSHF\ʜ^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT 

    TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT JODMVEJOH FYUSBPQUJPOT MFU4FBSDIFSLOPX UIJTJTGPSOFXVTFST DMBTT4QFDJBM6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS TFBSDITQFDJBMVTFST EFGTFBSDI TFBSDI@PQUJPOT QBSBNT<TFBSDI>cc\^ NFSHF\ʜ^ 4FBSDIFSTFBSDI TFBSDI@PQUJPOT  TFTTJPO<TFBSDI@PQUJPOT>TFBSDI@PQUJPOT JODMVEJOH FYUSBPQUJPOT MFU4FBSDIFSLOPX UIJTJTGPSTQFDJBMVTFST NVDITJNQMFS
  150. *OUIFTFTTJPOPS4FBSDIFSTFBSDI ZPVGBDFBHMPCBMIBTI \ʜʜ  ʜʜ  ʜʜ^ TFBSDI@PQUJPOT 8FMM ZPVBSF

    HSFBUEBUB BOZXBZ
  151. &WFSZPOFDBOVTFJU \ʜʜ  ʜʜ  ʜʜ^

  152. &WFSZPOFDBOVTFJU \ʜʜ  ʜʜ  ʜʜ^ -PPLTPNF PGUIFN

  153. &WFSZPOFDBOVTFJU \ʜʜ  ʜʜ  ʜʜ^ -PPLTPNF PGUIFN $IFDLPOFLFZ

  154. &WFSZPOFDBOVTFJU \ʜʜ  ʜʜ  ʜʜ^ -PPLTPNF PGUIFN $IFDLPOFLFZ "EETPNFUIJOH

    GPSNZGSJFOE
  155. &WFSZPOFDBOVTFJU \ʜʜ  ʜʜ  ʜʜ^ -PPLTPNF PGUIFN $IFDLPOFLFZ "EETPNFUIJOH

    GPSNZGSJFOE 3FUSJFWFJU
  156. &WFSZPOFDBOVTFJU \ʜʜ  ʜʜ  ʜʜ^ -PPLTPNF PGUIFN $IFDLPOFLFZ "EETPNFUIJOH

    GPSNZGSJFOE 3FUSJFWFJU +VTUTUPSF BMMPGUIFN JODBTF
  157. /PCPEZLOPXT XIBUDPOUFOUTBSF FYQFDUFEGPSFBDI QVSQPTFFYBDUMZ

  158. $IBPT

  159. 8FIBEBMPOHCBUUMF UPEFGFBUUIFN 3FQMBDFUIFQBSUPGIBTIUPCF BPCKFDUCZFBDIGFBUVSFT 6TFS4FBSDI#BTF 6TFS4FBSDI"DUJWF6TFST 6TFS4FBSDI/FX6TFST 6TFS4FBSDI4QFDJBM6TFST

  160. )BTI*4TDBSZ

  161. )BTI*4TDBSZ *U`T UPP qFYJCMF UP CF VTFE XJEFMZ

  162. .BTTIPVTJOH JOPOFDPOUSPMMFS

  163. GFBUVSF GFBUVSF GFBUVSF $POUSPMMFS BDUJPO BDUJPO *UXBTMJLFUIJT

  164. $POUSPMMFSDPEF DMBTT6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS EFGTFBSDI TFBSDI@PQUJPOTQBSBNT<TFBSDI@PQUJPOT> GFBUVSF@UZQFQBSBNT<GFBUVSF@UZQF> DBTFGFBUVSF@UZQF XIFOBDUJWF@VTFST TFBSDI@PQUJPOTTFBSDI@PQUJPOTNFSHF ʜ 

    XIFOOFX@VTFST TFBSDI@PQUJPOTTFBSDI@PQUJPOTNFSHF ʜ   FOE 6TFSTFBSDI GFBUVSF@UZQF TFBSDI@PQUJPOT   FOE "DUVBMMZ JUXBTXPSTF UIBOUIJT
  165. 5IFCFUUFSEFTJHO GFBUVSF GFBUVSF GFBUVSF $POUSPMMFS BDUJPO BDUJPO $POUSPMMFS BDUJPO BDUJPO

    $POUSPMMFS BDUJPO BDUJPO NPEVMFGPS TJNJMBS GFBUVSFT
  166. 5IJTJTUIF DPNCJOBUJPOPG CBEQBUUFSOT

  167. DMBTT6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS EFGTFBSDI TFBSDI@PQUJPOTQBSBNT<TFBSDI@PQUJPOT> GFBUVSF@UZQFQBSBNT<GFBUVSF@UZQF> DBTFGFBUVSF@UZQF XIFOVTFST TFBSDI@PQUJPOTTFBSDI@PQUJPOTNFSHF ʜ  XIFOOFX@VTFST

    TFBSDI@PQUJPOTTFBSDI@PQUJPOTNFSHF ʜ   FOE 6TFSTFBSDI GFBUVSF@UZQF TFBSDI@PQUJPOT   FOE %SFBNZ.FUIPE
  168. (MPCBM)BTI DMBTT6TFST$POUSPMMFS"QQMJDBUJPO$POUSPMMFS EFGTFBSDI TFBSDI@PQUJPOTQBSBNT<TFBSDI@PQUJPOT> GFBUVSF@UZQFQBSBNT<GFBUVSF@UZQF> DBTFGFBUVSF@UZQF XIFOVTFST TFBSDI@PQUJPOTTFBSDI@PQUJPOTNFSHF ʜ 

    XIFOOFX@VTFST TFBSDI@PQUJPOTTFBSDI@PQUJPOTNFSHF ʜ   FOE 6TFSTFBSDI GFBUVSF@UZQF TFBSDI@PQUJPOT   FOE
  169. &YUSFNFMZ EJGpDVMUUPDIBOHF KVTUPOFGFBUVSF

  170. :PVOFFEUP DIBTFUIF JEFOUJpFS OPUUPIBSNPUIFS GFBUVSFT

  171. 8IBUUPEP UPBWPJEUIFTF CBEQBUUFSOT

  172. 5PPNBOZMBZFST 6TF"DUJWF3FDPSEJGZPVDBO %PVCUSFMBUJPO 5IJOLBCPVUNBJOUFOBODF DPTUT

  173. %SFBNZNFUIPE 8SJUFBEJGGFSFOUNFUIPEGPSB EJGGFSFOUOFFE %PVCUBEEJOHBOBSHVNFOUBOEJG &YUSBDUDPNNPOQBSUT 6TFQPMZNPSQIJTN 4UPQUIJTQBUUFSOJOFBSMZTUBHF

  174. (MPCBMIBTI 'FFMGSFFUPBEEBOFX DMBTT 6TFIBTIFTMPDBMMZ

  175. $PODMVTJPO

  176. 4IPXFEXIBUZPVOFFEUPEP UPVQHSBEF3BJMTGSPNUPJO HFOFSBM(PPEMVDL *OUSPEVDFEUIFOBUVSBMCBE QBUUFSOTJO3BJMTXFWFGPVOE -FUTBWPJEUIFUSBQT

  177. 5IBOLZPV ! *GZPVIBWFBOZRVFTUJPOT GFFMGSFFUPBTLNF4-08-: ! !OBZ