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

The Future of mruby in HTTP Server - RubyKaigi 2015

The Future of mruby in HTTP Server - RubyKaigi 2015

As the HTTP/2 RFC was published, implementations of HTTP/2 have been actively developed. In this session, from the standpoint of an author of an extension mechanism using mruby for typical HTTP/1.x and HTTP/2 servers like apache, nginx and H2O, I show the possibility of design using mruby in HTTP server with new special features of HTTP/2 like server push. I explain how to design the complex web service system using both HTTP/1.x and HTTP/2 servers based on the need for HTTP/2 considering the changes in the architecture of Web service systems.

MATSUMOTO Ryosuke
PRO

December 21, 2015
Tweet

More Decks by MATSUMOTO Ryosuke

Other Decks in Technology

Transcript

  1. GMO Pepabo, Inc. Principal Engineer MATSUMOTO, Ryosuke @matsumotory 2015/12/11 RubyKaigi

    2015 5IF'VUVSFPGNSVCZ JO)5514FSWFS .JEEMFXBSF$POpHVSBUJPOBT$PEF
  2. !NBUTVNPUPSZ  ."546.050 3ZPTVLF  1SJODJQBM&OHJOFFSBU(.01FQBCP *OD  8FCPQFSBUJPO EFWFMPQNFOUBOESFTFBSDI

     )BOEMFBDPNQBOZXJEFJOUFSOFUUFDIOPMPHZ  044 "DBEFNJD3FTFBSDI &OHJOFFSJOH  IUUQSFTFBSDINBUTVNPUPSKQ
  3. $VSSFOUTUBUVTPG044  NPE@NSVCZ  OHY@NSVCZ  NSVCZJO)0  5SVTUFSE)5518FC4FSWFS 

    NSVCZBOENSCHFNT  04ɾ.JEEMFXBSFEFWFMPQNFOU
  4. $POUFOUT  )551JOUSPEVDUJPO  )551DIBSBDUFSJTUJDT  4FSWFSQVTI  1SJPSJUJ[BUJPO 

    NSVCZJO)5514FSWFSEFTJHOQPMJDZ  NSVCZJO)5514FSWFS  $PODMVTJPOBOE'VUVSFSFTFBSDIQMBO
  5. )551 *OUSPEVDUJPO

  6. )5511SPCMFNT  /PU.VMUJQMFYJOH  SFRVFTUSFTQPOTFQFS355ʢ3PVOE5SJQ5JNFʣ  )BSEUPSFBMJ[F)551QJQFMJOJOHJOQSBDUJDF  4FOENVMUJQMFSFRVFTUTXJUIPVUXBJUJOHGPSUIF DPSSFTQPOEJOHSFTQPOTFTJO355

     /FFEUPTZODISPOJ[FUIFPSEFSTPGSFRVFTUTBOE SFTQPOTFT  "TMPXSFRVFTUIBOEMJOHCMPDLTUIFTVCTFRVFOUPQFSBUJPOT  )BSEUPEFUFSNJOFXIFUIFSUPSFTFOESFRVFTUTMJLF1045  .BOZCVHTBOEOPOTUBOEBSEPQUJPOT
  7. *OFGpDJFOUVTFPGOFUXPSLSFTPVSDFT  /FUXPSL1FSGPSNBODF.FBTVSFT  -BUFODZ #BOEXJEUI  )551QFSGPSNBODFEFQFOETPOMBUFODZ  %FDSFBTJOHMBUFODZJTIBSE

    MJHIUpCFS   *ODSFBTJOHCBOEXJEUIEPFTOPUNBUUFSNVDI
  8. )551ʢ3'$ʣ  &⒏DJFOUMZTFOEEBUBCZ355  6TFlGSBNFTzUPTFOEEBUB  l'SBNFTzBSFTFOUPOBlTUSFBNz  .VMUJQMFYFETUSFBNTPOTJOHMF5$1TFTTJPO 

    *UJTQPTTJCMFUPTFOEPWFSSFRVFTUT GSBNFT  TJNVMUBOFPVTMZ  .VMUJQMFYJOHSFEVDFTF⒎FDUTPGMBUFODZ  4USFBNTBSFMBSHFMZJOEFQFOEFOUPGFBDIPUIFS  NVMUJQMFYJOHPGSFRVFTUTFOBCMFTF⒏DJFOUVTFPG CBOEXJEUI
  9. .BKPS)5514FSWFST  )0CZ!LB[VIP  5IF0QUJNJ[FE)551BOE)5514FSWFS  OHIUUQYCZ!UBUTVIJSP@U  )551SFGFSFODFJNQMFNFOUBUJPO TFSWFSBOEMJCSBSJFT

     TVQQPSUT)551DPOOFDUJPOXJUICBDLFOETFSWFS NBZCFPOMZMJCSBSZ   5SVTUFSE)5514FSWFSCZ!NBUTVNPUPSZ  CZ!NBUTVNPUPSZ OPUNBKPS VTJOHMJCOHIUUQ  "QBDIFIUUQEW  OHJOYW  "MMPGUIFNBSFDPOUSPMMBCMFCZVTJOHNSVCZ
  10. )551 $IBSBDUFSJTUJDT

  11. $IBSBDUFSJTUJDTPG)551  #JOBSZQSPUPDPMT  .VMUJQMFYJOH  )FBEFS$PNQSFTTJPOʢ)1"$,ʣ  4FSWFS1VTI 

    1SJPSJUJ[BUJPO  5-4SFMBUFEJTTVFT  FUDʜ
  12. .BOZNBOZNBOZDIBSBDUFSJTUJDTʜ  5PEBZ`TUPQJDTBSFUIFTFUXPGFBUVSFTDMPTFMZ SFMBUFEUPNSVCZ  4FSWFSQVTI  1SJPSJUJ[BUJPO  'PSSFGFSFODF

     ʮ)551࣌୅ͷ΢ΣϒαΠτઃܭʯ "SDIJUFDUTPGUIF XFCTJUFTGPSUIF)551FSB CZ!LB[VIP  IUUQZBQDBTJBPSHUBMLTIPXEFBECFBEDEDB  ʮ)551࣌୅ͷ8FCʯ 8FCPWFS)551 CZ!+YDL  IUUQZBQDBTJBPSHUBMLTIPXFBFGCFBBCEDB
  13. 4FSWFS1VTI

  14. 4FSWFS1VTI ˞5BMLBCPVUGSPNUIFWJFXQPJOUPGQFSGPSNBODFPOXFC CSPXTFS  "TFSWFSDBOQVTIEBUBUPBDMJFOUUIBUUIFTFSWFS BOUJDJQBUFTUIFDMJFOUXJMMOFFE  *O355BTFSWFSDBOQSFFNQUJWFMZTFOESFTQPOTFTUPUIF DMJFOUUPTBWF355T 

    4FSWFSQVTIXJMMCFBLFZQPJOUUPJNQSPWFBDMJFOUTJEF QFSGPSNBODF
  15. )5514FSWFS1VTI  )551TFSWFSTQVTIEBUBVTJOH164)@130.*4&GSBNF  %FpOFBTFSWFSUPQVTIlJOEFYKTzTJNVMUBOFPVTMZXIFO lJOEFYUYUzJTBDDFTTFE $MJFOU )551 TFSWFS )551DPOOFDUJPO

    (&5JOEFYUYU 3FTQPOTFJOEFYUYU 4JNVMUBOFPVTMZTFSWFSQVTIJOEFYKT
  16. $MJFOUTFOEBSFRVFTU

  17. 3FDFJWF164)@130.*4& GSBNFDPOUBJOJOHSFRVFTU IFBEFSpFMET 3FDFJWFSFTQPOTFIFBEFS PGTFSWFSQVTI

  18. 3FDFJWFSFTQPOTFIFBEFS PGPSJHJOBMSFRVFTU 3FDFJWFSFTQPOTFCPEZPG PSJHJOBMSFRVFTU 3FDFJWFSFTQPOTFCPEZPG TFSWFSQVTI  6TJOH164)@130.*4&GSBNF BDMJFOUDBOSFDFJWFBSFTQPOTFBT JGUIFDMJFOUTFOEBSFRVFTU

     $BDIJOHBSFTQPOTFPGTFSWFSQVTIXJUIJOCSPXTFSDBDIF FOBCMFTBDMJFOUUPHFUBSFTQPOTFPGJOEFYKTGSPNDBDIF
  19. 4FSWFSQVTICZCBDLFOE)551TFSWFS  3FRVFTUGSPOUTJEF)551TFSWFSUPEPTFSWFSQVTICZBEEJOH-JOLIFBEFS  'SPOUTFSWFSDBOQVTIUPBDMJFOUEJSFDUMZCFGPSFGPSXBSEJOHUPBCBDLFOE $MJFOU )551 SFWFSTFQSPYZ )551 CBDLFOE

    TFSWFS )551DPOOFDUJPO )551DPOOFDUJPO "EE-JOLIFBEFS -JOLJOEFYKTSFMQSFMPBE 'PSXBSESFRVFTU (&5JOEFYUYU 3FTQPOTF TFSWFSQVTIJOEFYKT 3FTQPOTF JOEFYUYU
  20. 4FSWFSQVTICZCBDLFOE)551TFSWFS  $VSSFOUMZPOMZOHIUUQYDBONBLF)551DPOOFDUJPOGPSCBDLFOETFSWFS  $VSSFOUMZXFTIPVMEVTF-JOLIFBEFSFWFOJGBCBDLFOETFSWFSTVQQPSUT)551  *OUIFGVUVSFUIFSFJTTPNFQPTTJCJMJUZPGSFUVSOJOH164)@130.*4&TFOEGSPNB CBDLFOETFSWFS  5IFSFBSFTPNFQSPCMFNT

    FHIPXUPNBOBHF4&55*/(4CFUXFFOUXPIPQT $MJFOU )551 SFWFSTFQSPYZ OHIUUQY )551 CBDLFOE TFSWFS )551DPOOFDUJPO )551DPOOFDUJPO "EE-JOLIFBEFS -JOLJOEFYKTSFMQSFMPBE 'PSXBSESFRVFTU (&5JOEFYUYU 3FTQPOTF TFSWFSQVTIJOEFYKT 3FTQPOTF JOEFYUYU
  21. 1SPCMFNTBOETPMVUJPOTPGTFSWFSQVTI  5IFQSPCMFNPGCSPXTFSDBDIF  "TFSWFSDBO`UEFUFDUBCSPXTFSDBDIF  4FOEJOHBSFRVFTUUPEFUFDUBDBDIFXBTUFTF⒏DJFODZ HBJOFEXJUITFSWFSQVTI  )0IBTDBDIFBXBSFTFSWFSQVTI

     .BOBHFJOGPSNBUJPOBCPVUDBDIFCZOFXIFBEFS OPXVTJOH $PPLJFʣFBDIPUIFS  #PUIDMJFOUTBOETFSWFSTTIPVMEJNQMFNFOUUIJTGFBUVSF  !LB[VIPNBEFBESBGU  IUUQLB[VIPHJUIVCJPIUUQDBDIFpOHFSQSJOU  *XBOUUPDPOUSPMTFSWFSQVTICZVTJOHNSVCZ
  22. 4FSWFS1VTIXJUI4FSWJDF8PSLFS  3FTFBSDIGPSF⒏DJFODZJNQSPWFNFOUXJUI TFSWFSQVTICZ!+YDL  IUUQKYDLIBUFOBCMPHDPNFOUSZTFSWJDFXPSLFSDBTQFS  6TF48UPDPOUSPMDBDIFJOTUFBEPGCSPXTFS  48DBMDVMBUFDBDIFpOHFSQSJOU

    QSPYZBSFRVFTU BOEBEEIFBEFS  &OBCMFUPVTFDBDIFBXBSFTFSWFSQVTIFWFOJG CSPXTFSTEPO`UTVQQPSU  5IFSFBSFTPNFQSPCMFNTʜ TFFUIFXFCQBHF
  23. 1SJPSJUJ[BUJPO

  24. 1SJPSJUJ[BUJPO  $MJFOUQSPWJEFTQSJPSJUJ[BUJPOJOGPSNBUJPOBCPVU SFTPVSDFUPBTFSWFS  QSJPSJUJ[BUJPOJOGPSNBUJPOJODMVEFTEFQFOEFODZBOEXFJHIU  (JWJOHQSJPSJUZUPSFDFJWF KTPS DTTJNQSPWF

    pSTUQBJOUUJNFPOCSPXTFS  *OTPNFCSPXTFSTpSTUQBJOUUJNFHFUXPSTF
  25. 1SJPSJUJ[BUJPODPOUSPMPOTFSWFSTJEF  )0TFSWFSPQUJNJ[FTQSJPSJUJ[BUJPO  8IFODMJFOUTQSPWJEFOPQSJPSJUJ[BUJPOJOGPSNBUJPO  )0TFSWFTHJWFQSJPSJUZUPDPOUFOUTXIJDINBZ JNQSPWFpSTUQBJOUUJNF  "MUIPVHIJO3'$QVTIJOHDPOUFOUTTIPVMEGPMMPX

    SFRVFTUDPOUFOUT )0BMTPDPOUSPMTQSJPSJUJ[BUJPOXIFO QVTIJOHEBUB  FHHJWJOHUPQQSJPSJUZUP$44PS+4 )5.-PWFS JNBHFT  *XBOUUPDPOUSPMQSJPSJUJ[BUJPOCZVTJOHNSVCZ
  26. ,FZQPJOUTPGUVOJOHJO)551  4FSWFSTJEFTFUUJOHBCPVUTFSWFSQVTIPSQSJPSJUJ[BUJPO DPOUSPMNBZCFLFZQPJOUT  8IJDITJUVBUJPOTTFSWFSQVTIFTEBUB  )PXUPHJWFQSJPSJUZGPSTFOEJOHDPOUFOUTCBTFEPONJNFUZQF  5IFNFPGXFCBQQMJDBUJPOUVOJOHXJMMTIJGUUPJNQSPWJOH

    EJTQMBZTQFFEGSPNQBSBNFUFSTFUUJOH FHOVNCFSPG DPOOFDUJPOT   %FGBVMUTFUUJOHTPG)0BSFXFMMUVOFE  *XBOUUPQSPHSBNDPNQMFYDPOUSPMTFUUJOH
  27. NSVCZJO)5514FSWFS

  28. NSVCZJO)5514FSWFS %FTJHODPODFQU

  29. NSVCZJO)551TFSWFS *NQMFNFOUBUJPOTGPS)551TFSWFS  NPE@SVCZ  .PEVMFUPDPOUSPM"QBDIFIUUQECZNSVCZ  OHY@NSVCZ  .PEVMFUPDPOUSPMOHJOYCZNSVCZ

    3FDFOUMZ  5IFSFBSFNPEVMFTUPDPOUSPM)0PSOHIUUQY CZNSVCZ
  30. 5IJOHT*LFFQJONJOE  )JHIQFSGPSNBODF  5POPUCFPWFSIFBE  1SFWFOUNFNPSZVTBHFGSPNJODSFBTJOHMJOFBSMZ  -PXMFBSOJOHDVSWF 

    4JNQMFDMBTTFTBOENFUIPET  6OJpFETQFDJpDBUJPOT  6TFNSCHFN˞ GPSFYQBOEJOH ˞NSVCZWFSTJPOPG$3VCZHFN
  31. )JHI1FSGPSNBODF  6TJOHNSVCZFOBCMFTUPLFFQQFSGPSNBODFBOE QSPEVDUJWJUZ  -JHIUJNQMFNFOUBUJPOXJUIGPMMPXJOH+*4  $PNQJMJOHUPCZUFDPEFTJOBEWBODFHFUTVQTQFFE  8IFOUIFOVNCFSPG3VCZDPEFFYFDVUJPO

    JODSFBTFT MJHIUXFJHIUJOUFSQSFUFSIBTBO BEWBOUBHFJOTQFFE  4FFUIFQBQFSGPSNPSFEFUBJMT˞ ˞দຊ྄հɾԬ෦णஉ NPE@NSVCZɿεΫϦϓτݴޠͰߴ଎͔ͭলϝϞϦʹ֦ுՄೳͳ8FCαʔόͷػೳ֦ ுࢧԉػߏ ৘ใॲཧֶձ࿦จࢽ 7PM /P QQ ೥݄
  32. 3VCZBUUIBNPOH$ $ +BWB (PFUD JO8FC'SBNFXPSLQFSGPSNBODFDPNQFUJUJPO SFGIUUQTXXXUFDIFNQPXFSDPNCFODINBSLT

  33. SFGIUUQTXXXUFDIFNQPXFSDPNCFODINBSLT OHY@NSVCZXJOTBEFDJTJWFWJDUPSZ BNPOH3VCZ'SBNFXPSLT

  34. 'JMUFSJOHXJUIOHJOYBT'& %#BDDFTTCMPDLT BQSPHSBNBOEBSFTQPOTFCFDPNFTTMPX 5IJTJTGVUVSFXPSL $BDIJOHEBUBUPSFEVDF%#BDDFTTJTSFDPNNFOEFE

  35. OHY@NSVCZXJOTBEFDJTJWFWJDUPSZ BNPOH3VCZ'SBNFXPSLT

  36. -PXFSMFBSOJOHDVSWF  6TFTBNFDMBTTOBNFTBOENFUIPEOBNFTPWFS EJ⒎FSFOUNJEEMFXBSF  4QMJUTPNFGFBUVSFTJOUPNSCHFNUPTIBSF BNPOHNJEEMFXBSF  ,OPXMFEHFBCPVUNJEEMFXBSFDBOCFBQQMJFEUP PUIFSNJEEMFXBSF

     %JTDVTTJPOBCPVUTUBOEBSEJ[JOHUP3BDLCBTFE "1*
  37. 3BDLCBTFE"1* GPSNSVCZIBOEMFS

  38. 3BDLCBTFE"1*GPSNSVCZ

  39. 3BDLCBTFE"1*GPSNSVCZ  5IFOVNCFSPGNSVCZJO)5514FSWFSIBTCFFO JODSFBTFE  #FGPSF *DMPVEDPOUSPMTQFDJpDBUJPOT  *ODSFBTFPGJNQMFNFOUBUJPOTJODSFBTFTUIFOFFEPG VOJpFE"1*

     !LB[VIPQSPQPTFTUPVTF3BDLCBTFE"1*  3BDLCBTFE"1*JTXFMMLOPXOBOEIBTNBOZ EPDVNFOUT  6OJGZJOHJTOBUVSBM
  40. 4VQQPSUNPE@NSVCZ 1SFWJPVT"1*DBOCFVTFE

  41. 4VQQPSUOHY@NSVCZ 1SFWJPVT"1*DBOCFVTFE

  42. 4VQQPSUNSVCZJO)0 %POPUVTFbSVO`NFUIPEEJ⒎FSFOUMZGSPN NPE@NSVCZ OHY@NSVCZ

  43. 6TFNSVCZIJCBSJ  .BEFCZ!LFOUBSP $50PG(.01FQBCP *OD   NSVCZIJCBSJJTB8"'BCTPSCTUIFEJ⒎FSFODFJONPE@NSVCZPS OHY@NSVCZBOEIP@NSVCZ 

    DPEFTCFMPXXPSLXJUICPUINPE@NSVCZBOEIP@NSVCZ
  44. NSVCZJOOHIUUQY 4VQQPSUJOH3BDLCBTFE"1*JTXPSLJOQSPHSFTT

  45. NSVCZJO)5514FSWFS

  46. NSVCZNFFUT)551  )5514FSWFSTFNCFEEFEXJUINSVCZIBWFCFFO BQQFBSFE  )0ɺOHIUUQYɺ5SVTUFSE  "QBDIFBOEOHJOYTVQQPSU)551  NPE@NSVCZPSOHY@NSVCZFOBCMFUPVTFSVCZJOBQBDIF

    PSOHJOY  )BWFQMBOUPTVQQPSUTFSWFSQVTIDPOUSPMXJUINSVCZ  5IFUJNFNBZDPNFTPPOXIFONSVCZJO)5514FSWFSJT DPNNPO  *BNpMMFEXJUIEFFQFNPUJPOBTUIFDSFBUPSPGNPE@NSVCZ BOEOHY@NSVCZ
  47. NSVCZJO)0

  48. IPDPOG )PPL3VCZTDSJQU

  49. (FOFSBUFBSFTQPOTFXJUI3BDLCBTFE"1*GPSNBU

  50. 4FSWFSQVTIXJUI)0 6TFNSVCZUPEFpOFXIJDIDPOUFOUTBSFQVTIFE CBTFEPOBSFRVFTU63- 0GDPVSTFTVQQPSUTFSWFSQVTI XJUI-JOLIFBEFSTFOEGSPNCBDLFOE)551TFSWFS

  51. NSVCZJOOHIUUQY

  52. QBUIUPSFRSC QBUIUPSFTSC 1BTTBTDSJQUpMFQBUIBTDPNNBOMJOFPQUJPOT 3FXSJUFBSFRVFTUQBUI "DDFTTDPOUSPMCBTFPO*1BEESFTT

  53. 4FSWFSQVTIXJUIOHIUUQY QBUIUPSFRSC 0GDPVSTFTVQQPSUTFSWFSQVTI XJUI-JOLIFBEFSTFOEGSPNCBDLFOE)551TFSWFS

  54. NSVCZJO)5514FSWFS XPSMEJTFYQBOEJOH

  55. 'VUVSFQMBOT

  56. %FTZODISPOJ[BUJPOPGTZODISPOPVTDBMM  1SPCMFNTPGNSVCZJOIUUQE  TZODISPOPVTQSPDFTTJOH FH%#BDDFTT  CMPDLTBFWFOUMPPQPGIUUQEQSPDFTT  3FUVSOUPIUUQQSPDFTTBGUFS%#BDDFTT

     5IJTJTKVTUBOJEFB  SFGNSVCZͰಉظݺग़ΛඇಉظԽ͢Δ࿩ʢ΋͘͠͸)0ͷNSVCZϋϯυϥͰωοτϫʔΫΞΫηε͢Δ࿩ʣIUUQ CMPHLB[VIPPLVDPNNSVCZIUNM
  57. 5$1-BZFSXJUINSVCZ  5$1-PBE#BMBODJOHXJUINSVCZ  &YUFOETUSFBNNPEVMFPGOHJOY  IUUQICNBUTVNPUPSKQFOUSZ  &YBNQMFT 

    'PSXBSE5$1QBDLFUTPG'MVFOUEGSPNNBOZ TFSWFSTUPCBDLFOETFSWFST  %FMJWFSHSBQITPG5$1QBDLFUTHFOFSBUFECZ CBDLFOETFSWFSXJUIOHJOYSFWFSTFQSPYZ  $FOUSBMMZDPOUSPMTFUUJOHTGPSQSPYZTFSWFS  IUUQICNBUTVNPUPSKQFOUSZ
  58. 5IF)VHF/VNCFSPG4FSWFST 'MVFOUE /PSJLSB (SPXUI'PSFDBTU 'MVFOUE /PSJLSB (SPXUI'PSFDBTU 'MVFOUE /PSJLSB (SPXUI'PSFDBTU

    )551$MJFOU 'MVFOUE 'MVFOUE OHY@NSVCZ 5$1-PBE#BMBODFS )5513FWFSTF1SPYZ 5$1 )551 4DBMFPVU
  59. 4UBUJTUJDBMBVUPNBUFETFSWFSDPOUSPM  8SJUFDPEFXIJDIEFDMBSFTQFSGPSNBODFTBTFSWFS NVTUBDIJFWF  3FTPVSDFDPOUSPMCZDPEF  "VUPNBUJDDPOUSPMGPDVTJOHPODIBOHFTJOTFSWFS SFTPVSDFT 

    "VUPOPNPVTMZDPOUSPMTFSWFSTFUUJOHT  "VUPNBUFpOFUVOJOHTXIJDIIBWFCFFONBOVBMMZ PQFSBUFE  &OHJOFFSTTQFOENPSFUJNFUPBDIJFWFIJHIMFWFM JEFBT
  60. $PODMVTJPO

  61. NSVCZJO)5514FSWFS  &BTJMZDPOUSPM)551BOE)551XJUINSVCZ  6OJGZIPXUPEFTDSJCFCFIBWJPSPGIUUQTFSWFSTBOEBCTPSCT UIFEJ⒎FSFODFPGTFUUJOHCFUXFFONBOZIUUQTFSWFST  4JNQMZEFpOFEZOBNJDCFIBWJPSBOEQSPDFTTFTEJ⒏DVMUUP XSJUFCZTFUUJOHpMF 

    4JNQMZEFpOFDPOEJUJPOTPGTFSWFSQVTI  )BQQZUPNBLF)551DPPQFSBUFXJUI)551BOEEFTDSJCF IUUQTFSWFSCFIBWJPSXJUIVOJpFEGPSNBUVTJOHNSVCZ
  62. NSVCZJO)5514FSWFS  -FUTUSZ)551 TFSWFSQVTIFUD CZDPOUSPMMJOH)0PSOHIUUQY XJUINSVCZ  %POPUGPSHFU5SVTUFSE  "OEEFTJHODPPQFSBUJPOCFUXFFO)551BOE)551TFSWFST

    VTJOHNPE@NSVCZPSOHY@NSVCZ  .BZTFOTFUIFDPOWFOJFODFPGDPOUSPMMJOHTFSWFSQSPDFTTXJUI NSVCZ  .BZDPNFVQXJUIBIJHIMZTPQIJTUJDBUFEDPPQFSBUJPO BSDIJUFDUVSFT  -FU`TEFWFMPQNPSFBEWBODFEXFCTZTUFNTVTJOHNSVCZJO)551 TFSWFS