Upgrade to Pro — share decks privately, control downloads, hide ads and more …

出前館の大変革:React NativeからFlutterへの大胆な移行戦略 / Demae-...

出前館の大変革:React NativeからFlutterへの大胆な移行戦略 / Demae-can's Tech Journey: From React Native to Flutter

このセッションでは、出前館アプリをサービス運用と変更しながらReact NativeからFlutterを移行した際に経験したことについて紹介します。

Contents:
・Flutterに移行することを決めた理由
・Flutterを導入した際に経験した課題と解決策
・Flutterに移行した出前館アプリが採用するアーキテクチャ

More Decks by LINEヤフーTech (LY Corporation Tech)

Other Decks in Technology

Transcript

  1. "CPVU.F ⎯ "OESPJE&OHJOFFS .BTBZPTIJ /PZBNB ⎯ d ⎯ -*/& "*$PNQBOZ

    ⎯ "OESPJE"QQ 4%, ⎯ d ⎯ %FNBFDBO $POTVNFS ⎯ "OESPJEJ04"QQ 3FBDU/BUJWF  'MVUUFS 
  2. "HFOEB • About Demae-can • Why Flutter? • Architecture: Payment

    Feature ⎯ *UTDPNQMFYJUZBOEDPNQMJDBUFEEPNBJO LOPXMFEHF ⎯ )PXEPXFTPMWFJU 
  3. "HFOEB • About Demae-can • Why Flutter? • Architecture: Payment

    Feature ⎯ *UTDPNQMFYJUZBOEDPNQMJDBUFEEPNBJO LOPXMFEHF ⎯ )PXEPXFTPMWFJU 
  4. "CPVU%FNBFDBO 0OFPGUIFMBSHFTUGPPEEFMJWFSZDPNQBOZJO+BQBO .*440/ 7*4*0/ ⎯ -JGF*OGSBTUSVDUVSFUIBU$POOFDUT1FPQMFbT )BQQJOFTTJOUIF-PDBM$PNNVOJUZ ஍Ҭͷਓʑͷ޾ͤΛͭͳ͙ϥΠϑΠϯϑϥ 7"-6& ⎯

    )PTQJUBMJUZɾ$IBMMFOHFɾ$SFBUJWJUZ ϗεϐλϦςΟɾνϟϨϯδɾΫϦΤΠςΟϏ ςΟ ⎯ &OSJDIJOHUIF7BMVFPG5JNFXJUI5FDIOPMPHZ ςΫϊϩδʔͰ࣌ؒՁ஋ΛߴΊΔ 
  5. %FNBFDBO4ZTUFN $POTVNFS "QQ8FC 6TFS %FNBF DBO4FSWFS .FSDIBOU "QQ .FSDIBOU %SJWFS

    %FNBF DBO%SJWFS %SJWFS"QQ %SJWFS 4UPSF4UBGG .BOBHFS "QQ  %FNBF DBO%SJWFS
  6. %FNBFDBO4ZTUFN 6TFS %FNBF DBO4FSWFS .FSDIBOU %SJWFS %FNBF DBO%SJWFS %SJWFS 4UPSF4UBGG

    $POTVNFS "QQ8FC .FSDIBOU "QQ %SJWFS"QQ .BOBHFS "QQ /BUJWF3FBDU/BUJWF 'MVUUFS 3FBDU/BUJWF ,PUMJO.VMUJQMBUGPSN.PCJMF 'MVUUFS 'MVUUFS  9BNBSJO/BUJWF 'MVUUFS
  7. %FNBFDBO4ZTUFN 6TFS %FNBF DBO4FSWFS .FSDIBOU %SJWFS %FNBF DBO%SJWFS %SJWFS 4UPSF4UBGG

    .FSDIBOU "QQ %SJWFS"QQ .BOBHFS "QQ 3FBDU/BUJWF ,PUMJO.VMUJQMBUGPSN.PCJMF 'MVUUFS 'MVUUFS  9BNBSJO/BUJWF 'MVUUFS $POTVNFS "QQ8FC /BUJWF3FBDU/BUJWF 'MVUUFS
  8. %FNBFDBO4ZTUFN $POTVNFS "QQ8FC 6TFS %FNBF DBO4FSWFS .FSDIBOU "QQ .FSDIBOU %SJWFS

    %FNBF DBO%SJWFS %SJWFS"QQ %SJWFS 4UPSF4UBGG .BOBHFS "QQ  %FNBF DBO%SJWFS
  9. %FNBFDBO4ZTUFN $POTVNFS "QQ8FC 6TFS %FNBF DBO4FSWFS .FSDIBOU "QQ .FSDIBOU %SJWFS

    %FNBF DBO%SJWFS %SJWFS"QQ %SJWFS 4UPSF4UBGG .BOBHFS "QQ  %FNBF DBO%SJWFS
  10. %FNBFDBO4ZTUFN $POTVNFS "QQ8FC 6TFS %FNBF DBO4FSWFS .FSDIBOU "QQ .FSDIBOU %SJWFS

    %FNBF DBO%SJWFS %SJWFS"QQ %SJWFS 4UPSF4UBGG .BOBHFS "QQ  %FNBF DBO%SJWFS
  11. %FNBFDBO4ZTUFN $POTVNFS "QQ8FC 6TFS %FNBF DBO4FSWFS .FSDIBOU "QQ .FSDIBOU %SJWFS

    %FNBF DBO%SJWFS %SJWFS"QQ %SJWFS 4UPSF4UBGG .BOBHFS "QQ  %FNBF DBO%SJWFS
  12. "HFOEB • About Demae-can • Why Flutter? • Architecture: Payment

    Feature ⎯ *UTDPNQMFYJUZBOEDPNQMJDBUFEEPNBJO LOPXMFEHF ⎯ )PXEPXFTPMWFJU 
  13. 8IZ'MVUUFS ⎯ %FWFMPQFS0QFOTPVSDF6*GSBNFXPSLEFWFMPQFECZ(PPHMF ⎯ 4VQQPSUFE1MBUGPSNT.PCJMF J04 "OESPJE XFC BOEEFTLUPQ ⎯

    1SPHSBNNJOH-BOHVBHF%BSU ⎯ )JHIQFSGPSNBODF ⎯ 3JDIMJCSBSZPGXJEHFUT ⎯ 'BTUIPUSFMPBE  <"QQFOEJY>"CPVU'MVUUFS
  14. #BDLHSPVOE ⎯ 'FBUVSFTBOE"UUSBDUJPOTPG'MVUUFS ⎯ 5IFPUIFSBQQTXFSFSFBSDIJUFDUFEXJUI 'MVUUFS #BDLHSPVOE 8IZ'MVUUFS  ⎯

    .BYJNJ[JOH0VUQVUCZVTJOH'MVUUFS .PUJWBUJPO ⎯ "QQFOHJOFFSBTTJHONFOUGMFYJCJMJUZ ⎯ *NQSPWFLOPXMFEHFTIBSJOH FGGJDJFODZ ⎯ $VSJPTJUZBCPVUOFXUFDIOPMPHJFT
  15. #BDLHSPVOE ⎯ 'FBUVSFTBOE"UUSBDUJPOTPG'MVUUFS ⎯ 5IFPUIFSBQQTXFSFSFBSDIJUFDUFEXJUI 'MVUUFS #BDLHSPVOE 8IZ'MVUUFS  ⎯

    .BYJNJ[JOH0VUQVUCZVTJOH'MVUUFS .PUJWBUJPO ⎯ "QQFOHJOFFSBTTJHONFOUGMFYJCJMJUZ ⎯ *NQSPWFLOPXMFEHFTIBSJOH FGGJDJFODZ ⎯ $VSJPTJUZBCPVUOFXUFDIOPMPHJFT
  16. .PUJWBUJPO ⎯ 'FBUVSFTBOE"UUSBDUJPOTPG'MVUUFS ⎯ 5IFPUIFSBQQTXFSFSFBSDIJUFDUFEXJUI 'MVUUFS #BDLHSPVOE 8IZ'MVUUFS  ⎯

    .BYJNJ[JOH0VUQVUCZVTJOH'MVUUFS .PUJWBUJPO ⎯ "QQFOHJOFFSBTTJHONFOUGMFYJCJMJUZ ⎯ *NQSPWFLOPXMFEHFTIBSJOH FGGJDJFODZ ⎯ $VSJPTJUZBCPVUOFXUFDIOPMPHJFT  "4*4%JGGJDVMUUPBTTJHOFOHJOFFS SFTPVSDFTUPUIFPUIFSBQQT  50#&&BTJMZBMMPDBUFFOHJOFFS SFTPVSDFTUPUIFPUIFSBQQT
  17. .PUJWBUJPO ⎯ 'FBUVSFTBOE"UUSBDUJPOTPG'MVUUFS ⎯ 5IFPUIFSBQQTXFSFSFBSDIJUFDUFEXJUI 'MVUUFS #BDLHSPVOE 8IZ'MVUUFS  ⎯

    .BYJNJ[JOH0VUQVUCZVTJOH'MVUUFS .PUJWBUJPO ⎯ "QQFOHJOFFSBTTJHONFOUGMFYJCJMJUZ ⎯ *NQSPWFLOPXMFEHFTIBSJOH FGGJDJFODZ ⎯ $VSJPTJUZBCPVUOFXUFDIOPMPHJFT  "4*4/POFFEUPTIBSFUIF3FBDU /BUJWFEFWFMPQNFOULOPXMFEHFUP UIF'MVUUFSEFWFMPQFST  50#&8FDBOTIBSFUIF'MVUUFS LOPXMFEHFUPBMMUIFNFNCFST
  18. .PUJWBUJPO ⎯ 'FBUVSFTBOE"UUSBDUJPOTPG'MVUUFS ⎯ 5IFPUIFSBQQTXFSFSFBSDIJUFDUFEXJUI 'MVUUFS #BDLHSPVOE 8IZ'MVUUFS  ⎯

    .BYJNJ[JOH0VUQVUCZVTJOH'MVUUFS .PUJWBUJPO ⎯ "QQFOHJOFFSBTTJHONFOUGMFYJCJMJUZ ⎯ *NQSPWFLOPXMFEHFTIBSJOH FGGJDJFODZ ⎯ $VSJPTJUZBCPVUOFXUFDIOPMPHJFT  "IJHIJOUFSFTUJO'MVUUFS (BSPVOE)  'MVUUFSJTUIFGSBNFXPSLUIBU (PPHMFGPDVTFTPO  %SBXJOHQFSGPSNBODFJTCFUUFS UIBO3FBDU/BUJWF  5FBNNFNCFSTBSFIJHIMZ NPUJWBUFEUPMFBSO
  19. 'MVUUFS1SPKFDU%JGGJDVMUJFT ⎯ -FBSOJOH$PTU ⎯ 4DIFEVMF ⎯ .BOZUFBNNFNCFSTBSFCFHJOOFSTJO'MVUUFS ⎯ 1BSBMMFMEFWFMPQNFOUPG3FBDU/BUJWFBOE 'MVUUFS

    ⎯ $PNQMJDBUFETQFDT ⎯ -PUTPGTDSFFOT BOEDPNQMFYTQFDT ⎯ 1BZNFOUGFBUVSFJTQBSUJDVMBSMZ DPNQMFY 
  20. 'MVUUFS1SPKFDU%JGGJDVMUJFT  ⎯ -FBSOJOH$PTU ⎯ 4DIFEVMF ⎯ .BOZUFBNNFNCFSTBSFCFHJOOFSTJO'MVUUFS ⎯ 1BSBMMFMEFWFMPQNFOUPG3FBDU/BUJWFBOE

    'MVUUFS ⎯ $PNQMJDBUFETQFDT ⎯ -PUTPGTDSFFOT BOEDPNQMFYTQFDT ⎯ 1BZNFOUGFBUVSFJTQBSUJDVMBSMZ DPNQMFY
  21. 'MVUUFS1SPKFDU4DIFEVMF 'MVUUFS1SPKFDU%JGGJDVMUJFT  3FBDU /BUJWF 'MVUUFS    

     /FX'FBUVSF 1BZNFOU /FX'FBUVSF $PVQPO )PUGJY ,JDL0GG 2" $#5 "QQ3FMFBTF 1P$
  22. 'MVUUFS1SPKFDU4DIFEVMF 'MVUUFS1SPKFDU%JGGJDVMUJFT  3FBDU /BUJWF 'MVUUFS /FX'FBUVSF 1BZNFOU /FX'FBUVSF $PVQPO

    )PUGJY ,JDL0GG 2" $#5 "QQ3FMFBTF 1P$     
  23. 'MVUUFS1SPKFDU4DIFEVMF 'MVUUFS1SPKFDU%JGGJDVMUJFT  3FBDU /BUJWF 'MVUUFS /FX'FBUVSF 1BZNFOU /FX'FBUVSF $PVQPO

    )PUGJY ,JDL0GG 2" $#5 "QQ3FMFBTF 1P$       SEQBSUZMPHJO  1BZNFOUNFUIPE  4FSWFSDPNNVOJDBUJPO 3FTU"1*  (SBQI2-  -PDBUJPO .BQ $BNFSB  1VTIOPUJGJDBUJPO
  24. 'MVUUFS1SPKFDU4DIFEVMF 'MVUUFS1SPKFDU%JGGJDVMUJFT  3FBDU /BUJWF 'MVUUFS /FX'FBUVSF 1BZNFOU /FX'FBUVSF $PVQPO

    )PUGJY ,JDL0GG 2" $#5 "QQ3FMFBTF 1P$     
  25. 'MVUUFS1SPKFDU4DIFEVMF 'MVUUFS1SPKFDU%JGGJDVMUJFT  3FBDU /BUJWF 'MVUUFS /FX'FBUVSF 1BZNFOU /FX'FBUVSF $PVQPO

    )PUGJY ,JDL0GG 2" $#5 "QQ3FMFBTF 1P$     
  26. 'MVUUFS1SPKFDU4DIFEVMF 'MVUUFS1SPKFDU%JGGJDVMUJFT  3FBDU /BUJWF 'MVUUFS /FX'FBUVSF 1BZNFOU /FX'FBUVSF $PVQPO

    )PUGJY ,JDL0GG 2" $#5 "QQ3FMFBTF 1P$     
  27. 'MVUUFS1SPKFDU%JGGJDVMUJFT  ⎯ -FBSOJOH$PTU ⎯ 4DIFEVMF ⎯ .BOZUFBNNFNCFSTBSFCFHJOOFSTJO'MVUUFS ⎯ 1BSBMMFMEFWFMPQNFOUPG3FBDU/BUJWFBOE

    'MVUUFS ⎯ $PNQMJDBUFETQFDT ⎯ -PUTPGTDSFFOT BOEDPNQMFYTQFDT ⎯ 1BZNFOUGFBUVSFJTQBSUJDVMBSMZ DPNQMFY 'MVUUFS1SPKFDU%JGGJDVMUJFT
  28. "HFOEB • About Demae-can • Why Flutter? • Architecture: Payment

    Feature ⎯ *UTDPNQMFYJUZBOEDPNQMJDBUFEEPNBJO LOPXMFEHF ⎯ )PXEPXFTPMWFJU  ⎯ 'PMEFS4USBUFHZ ⎯ 4UBUF.BOBHFNFOU
  29. ⎯ 5ZQF%PNBJO ⎯ 'PMEFST CZ'FBUVSF ⎯ 1BDLBHF CZ'FBUVSF 'PMEFS4USBUFHZ 

    ⎯ .BJOUBJOBCJMJUZ ⎯ /FFEUPNBOBHFDPNQMFYGVODUJPOT JOTPVSDFQSPKFDU *TTVF 'PMEFS4USBUFHZ
  30. ⎯ 5ZQF%PNBJO ⎯ 'PMEFST CZ'FBUVSF ⎯ 1BDLBHF CZ'FBUVSF 'PMEFS4USBUFHZ 

    ⎯ .BJOUBJOBCJMJUZ ⎯ /FFEUPNBOBHFDPNQMFYGVODUJPOT JOTPVSDFQSPKFDU *TTVF 'PMEFS4USBUFHZ  MJC  TSD  QSFTFOUBUJPO  GFBUVSF  GFBUVSF  BQQMJDBUJPO  GFBUVSF  GFBUVSF  EPNBJO  GFBUVSF  GFBUVSF  EBUB  GFBUVSF  GFBUVSF
  31. ⎯ 5ZQF%PNBJO ⎯ 'PMEFST CZ'FBUVSF ⎯ 1BDLBHF CZ'FBUVSF 'PMEFS4USBUFHZ 

    ⎯ .BJOUBJOBCJMJUZ ⎯ /FFEUPNBOBHFDPNQMFYGVODUJPOT JOTPVSDFQSPKFDU *TTVF 'PMEFS4USBUFHZ  MJC  TSD  GFBUVSFT  GFBUVSF  QSFTFOUBUJPO  BQQMJDBUJPO  EPNBJO  EBUB  GFBUVSF  QSFTFOUBUJPO  BQQMJDBUJPO  EPNBJO  EBUB
  32. ⎯ 5ZQF%PNBJO ⎯ 'PMEFST CZ'FBUVSF ⎯ 1BDLBHF CZ'FBUVSF 'PMEFS4USBUFHZ 

    ⎯ .BJOUBJOBCJMJUZ ⎯ /FFEUPNBOBHFDPNQMFYGVODUJPOT JOTPVSDFQSPKFDU *TTVF 'PMEFS4USBUFHZ  MJC  TSD  QSFTFOUBUJPO  BQQMJDBUJPO  EPNBJO  EBUB  QBDLBHFT  GFBUVSF  MJC  TSD  GFBUVSF  MJC  TSD
  33. ⎯ 5ZQF%PNBJO ⎯ 'PMEFST CZ'FBUVSF ⎯ 1BDLBHF CZ'FBUVSF 'PMEFS4USBUFHZ 

    ⎯ .BJOUBJOBCJMJUZ ⎯ /FFEUPNBOBHFDPNQMFYGVODUJPOT JOTPVSDFQSPKFDU *TTVF 'PMEFS4USBUFHZ 0VS"QQSPBDI ⎯ -BSHFTDBMFQSPKFDU NBOZ GFBUVSFT ⎯ 4FBSDIBCJMJUZ ⎯ .FNCFSBTTJHONFOUCZGFBUVSF 3FBTPOT
  34. 4UBUF.BOBHFNFOU ⎯ 6TFSQSPDFEVSFTGPS PSEFSJOH ⎯ -PUTPGQBZNFOUNFUIPET ⎯ %FMJWFSZBEESFTT BOE .BQ

    $PVQPO FUD ⎯ $BTI $SFEJU$BSE 1BZ1BZ $BSSJFS &UD "CPVU0SEFS1BHF  ⎯ -PUTPGTUBUFTJOUIFQBHF *TTVF ⎯ $PNQMFYEPNBJOLOPXMFEHF ⎯ #-P$ 1BUUFSO 4UBUF.BOBHFNFOU
  35. ⎯ %FTJHOQBUUFSOGPSTFQBSBUJOHBQQMJDBUJPOCVTJOFTTMPHJDGSPN6* ⎯ /FFEUPXSJUFNPSFCPJMFSQMBUFDPEFGPS6*BOE#-P$JOUFSBDUJPO ⎯ "EESFTTUIJTJTTVFXJUICVJME@SVOOFSBOE*%&TVQQPSU 6* 3FQPTJUPSZ #-P$ FWFOUT

    SFRVFTU SFTQPOTF TUBUFT &YUFSOBM 4FSWJDFT SFRVFTU SFTQPOTF 4UBUF.BOBHFNFOU  <"QQFOEJY>8IBUJT4UBUF .BOBHFNFOU ⎯ #-P$ #VTJOFTT-PHJD$PNQPOFOU
  36. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD <6*-BZFS> ⎯ $IBOHFEQBZNFOUNFUIPECZVTFS -PBEFE 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ "1*  $BTF$IBOHF 1BZNFOU.FUIPET
  37. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF$IBOHF 1BZNFOU.FUIPET #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* -PBEFE 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ FWFOU 
  38. 4UBUF.BOBHFNFOU 6* $BTF$IBOHF 1BZNFOU.FUIPET #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD <4UBUF> ⎯ -PBEFE-PBEJOH

    <6*-BZFS> ⎯ 4IPXMPBEJOHWJFX "1* 4UBUF -PBEJOH 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ  "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO
  39. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF$IBOHF 1BZNFOU.FUIPET #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* -PBEJOH 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ SFRVFTU SFRVFTU 
  40. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF$IBOHF 1BZNFOU.FUIPET #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* 4UBUF 1BZNFOU.FUIPE$IBO HFE 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ SFTQPOTF SFTQPOTF <#-P$-BZFS> ⎯ 6QEBUFTUBUFVTJOHSFTQPOTFJO#-P$ MBZFS <4UBUF> ⎯ -PBEJOH1BZNFOU.FUIPE$IBOHFE 
  41. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF$IBOHF 1BZNFOU.FUIPET #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* 1BZNFOU.FUIPE$IBO HFE 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ SFTQPOTF SFTQPOTF <6*-BZFS> ⎯ %JTNJTTMPBEJOHWJFX ⎯ 3FESBX6*QBSUTVTJOHVQEBUFETUBUF 
  42. 4UBUF.BOBHFNFOU $BTF&YFDVUF1BZNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF

    #VUUPO 6* #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD <6*-BZFS> ⎯ &YFDVUFQBZNFOUCZVTFS -PBEFE 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ "1* 
  43. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* -PBEFE 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ FWFOU 
  44. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD <4UBUF> ⎯ -PBEFE-PBEJOH <6*-BZFS> ⎯ 4IPXMPBEJOHWJFX "1* -PBEJOH 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ 
  45. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* -PBEJOH 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ SFRVFTU SFRVFTU 8BJUUJNF DIBOHFE 
  46. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* %FMJWFSZ5JNF$IBO HFE 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ SFTQPOTF SFTQPOTF <#-P$-BZFS> ⎯ 6QEBUFTUBUFVTJOHSFTQPOTFJO#-P$ MBZFS <4UBUF> ⎯ -PBEJOH%FMJWFSZ5JNF$IBOHFE 
  47. 4UBUF.BOBHFNFOU "EESFTT $PVQPO -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO %FMJWFSZ5JNF

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* %FMJWFSZ5JNF$IBO HFE 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ <6*-BZFS> ⎯ %JTNJTTMPBEJOHWJFX ⎯ 3FESBX6*QBSUTVTJOHVQEBUFETUBUF ⎯ 4IPXEFMJWFSZUJNFDIBOHFEEJBMPH 
  48. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* %FMJWFSZ5JNF$IBO HFE 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ FWFOU <6*-BZFS> ⎯ "MMPXVTFSUPDIBOHFMBUFODZBOE SFTVNFQBZNFOU 
  49. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD <4UBUF> ⎯ %FMJWFSZ5JNF$IBOHFE -PBEJOH <6*-BZFS> ⎯ 4IPXMPBEJOHWJFX "1* -PBEJOH 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ  SFRVFTU SFRVFTU
  50. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* 8BJUJOH1BZNFOU1 BHF 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ SFTQPOTF SFTQPOTF <#-P$-BZFS> ⎯ 6QEBUFTUBUFVTJOHSFTQPOTFJO#-P$ MBZFS <4UBUF> ⎯ -PBEJOH8BJUJOH1BZNFOU1BHF 
  51. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* 8BJUJOH1BZNFOU1 BHF 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ <6*-BZFS> ⎯ %JTNJTTMPBEJOHWJFX ⎯ 4IPXFYUFSOBMQBZNFOUQBHF 
  52. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* 8BJUJOH1BZNFOU1 BHF 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ FWFOU <6*-BZFS> ⎯ 5SBOTJUJPOUPOFYUQBZNFOUGMPX 
  53. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* -PBEJOH 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ SFRVFTU SFRVFTU <4UBUF> ⎯ 8BJUJOH1BZNFOU1BHF-PBEJOH <6*-BZFS> ⎯ 4IPXMPBEJOHWJFX 
  54. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* $PNQMFUFE 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ <#-P$-BZFS> ⎯ 6QEBUFTUBUFVTJOHSFTQPOTFJO#-P$ MBZFS <4UBUF> ⎯ -PBEJOH$PNQMFUFE 
  55. 4UBUF.BOBHFNFOU "EESFTT $PVQPO %FMJWFSZ5JNF -PDBUJPO 5PUBM"NPVOU 1BZNFOU NFUIPE %FUFSNJOF #VUUPO

    6* $BTF&YFDVUF1BZNFOU #-P$ 0SEFS1BHF#MPD 4FUUMFNFOU#MPD "1* $PNQMFUFE 4UBUF 3FQPTJUPSZ 0SEFS1BHF3FQPTJU PSZ 4FUUMFNFOU3FQPTJU PSZ <6*-BZFS> ⎯ %JTNJTTMPBEJOHWJFX ⎯ 5SBOTJUJPOUPDPNQMFUFQBHF 
  56. ⎯ $PNQMJDBUFETQFDT ⎯ 1SPCMFN %FNBFDBOT5FDI+PVSOFZ'SPN3FBDU/BUJWFUP'MVUUFS 3FDBQ 8IZ'MVUUFS 1BZNFOU'FBUVSF ⎯ 'PMEFS4USVDUVSF'PMEFST

    CZ'FBUVSF ⎯ 0VS"QQSPBDI ⎯ 4UBUF.BOBHFNFOU#-P$1BUUFSO .VMUJ$MBTT4UBUF 'SFF[FE ⎯ #BDLHSPVOE5IFPUIFSBQQTXFSFSFBSDIJUFDUFEXJUI 'MVUUFS ⎯ .PUJWBUJPO.BYJNJ[JOH0VUQVUCZVTJOH'MVUUFS  ⎯ -PUTPGTUBUFTJOUIFQBHF
  57. ⎯ $PNQMJDBUFETQFDT ⎯ 1SPCMFN %FNBFDBOT5FDI+PVSOFZ'SPN3FBDU/BUJWFUP'MVUUFS 3FDBQ 8IZ'MVUUFS 1BZNFOU'FBUVSF ⎯ 'PMEFS4USVDUVSF'PMEFST

    CZ'FBUVSF ⎯ 0VS"QQSPBDI ⎯ 4UBUF.BOBHFNFOU#-P$1BUUFSO .VMUJ$MBTT4UBUF 'SFF[FE ⎯ #BDLHSPVOE5IFPUIFSBQQTXFSFSFBSDIJUFDUFEXJUI 'MVUUFS ⎯ .PUJWBUJPO.BYJNJ[JOH0VUQVUCZVTJOH'MVUUFS  ⎯ -PUTPGTUBUFTJOUIFQBHF