Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【入門】 機械学習を行うための Python導入講座
Search
Manabu TERADA
February 24, 2018
Technology
3
2.4k
【入門】 機械学習を行うための Python導入講座
OSC2018東京 春での入門セッション
Manabu TERADA
February 24, 2018
Tweet
Share
More Decks by Manabu TERADA
See All by Manabu TERADA
PythonエンジニアになるためのテクニカルハイライトとPython実践試験学習方法
terapyon
0
44
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
600
近年の PyCon 情勢から見た PyCon APAC のまとめ
terapyon
0
420
Desktop Apps Made Easy: Python Web UI Frameworks with Streamlit and Stlite
terapyon
1
94
Python実践試験、 Pythonデータ分析実践試験に 合格できるひとのレベル紹介と学習法
terapyon
0
3.1k
各種大学向けにSSO対応サイト(SP)構築の事例紹介
terapyon
0
73
コンテンツタイプとUMLで考えるPlone開発(1)
terapyon
0
140
Python Web UIフレームワークのススメ
terapyon
0
1.5k
LLMを用いたPloneベクター検索 アドオンの開発の説明
terapyon
0
120
Other Decks in Technology
See All in Technology
DSPy入門
tomehirata
0
110
あなたの知らない Linuxカーネル脆弱性の世界
recruitengineers
PRO
3
160
AIでデータ活用を加速させる取り組み / Leveraging AI to accelerate data utilization
okiyuki99
1
510
OTEPsで知るOpenTelemetryの未来 / Observability Conference Tokyo 2025
arthur1
0
260
Amazon Athena で JSON・Parquet・Iceberg のデータを検索し、性能を比較してみた
shigeruoda
1
110
SRE × マネジメントレイヤーが挑戦した組織・会社のオブザーバビリティ改革 ― ビジネス価値と信頼性を両立するリアルな挑戦
coconala_engineer
0
260
スタートアップの現場で実践しているテストマネジメント #jasst_kyushu
makky_tyuyan
0
130
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.2k
「最速」で Gemini CLI を使いこなそう! 〜Cloud Shell/Cloud Run の活用〜 / The Fastest Way to Master the Gemini CLI — with Cloud Shell and Cloud Run
aoto
PRO
1
180
ViteとTypeScriptのProject Referencesで 大規模モノレポのUIカタログのリリースサイクルを高速化する
shuta13
3
210
ソフトウェアエンジニアの生成AI活用と、これから
lycorptech_jp
PRO
0
910
AIとともに歩んでいくデザイナーの役割の変化
lycorptech_jp
PRO
0
890
Featured
See All Featured
The Language of Interfaces
destraynor
162
25k
Writing Fast Ruby
sferik
630
62k
How GitHub (no longer) Works
holman
315
140k
The Invisible Side of Design
smashingmag
302
51k
Documentation Writing (for coders)
carmenintech
75
5.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Rails Girls Zürich Keynote
gr2m
95
14k
Transcript
ʲೖʳ ػցֶशΛߦ͏ͨΊͷ 1ZUIPOಋೖߨ࠲ ࣉాɹֶ .BOBCV5&3"%" 04$4QSJOH5PLZP ໌େֶ
.BOBCV5&3"%" !UFSBQZPO ג $.4ίϛϡχέʔγϣϯζද Ұൠࣾஂ๏ਓ1Z$PO+1දཧࣄ 14'$POUSJCVUJOHNFNCFS Ұൠࣾஂ๏ਓ1ZUIPOΤϯδχΞҭਪਐڠձࢼݧमٴͼίϛϡχςΟࢧԉ 1MPOF'PVOEBUJPO"NCBTTBEPS 1ZUIPOΤϯδχΞ݉ΞʔΩςΫτ
"CPVUNF .BOBCV5&3"%" ࣉాɹֶ
݄ൃച 1ZUIPOॳ৺ऀ͚
"CPVUPVSPSHBOJ[BUJPO ʹճ࣮ࢪ͍ͯ͠Δ1ZUIPOͷΠϕϯτ ʹҰൠࣾஂ๏ਓԽͨ͠ Ұൠࣾஂ๏ਓ1Z$PO+1 ຖ࣮ࢪͷ1Z$PO+1ͷ࠲Λબग़ ࡒཧ ܖΛ࣮ࢪ 1ZUIPO#PPU$BNQΛશࠃʹల։ 1Z$PO+1
1ZUIPOͱ ϓϩάϥϛϯάݴޠ Θ͔Γͯ͘͢शಘ͕༰қ ߴͳϓϩάϥϛϯάͰ͖Δ ଟ͘ͷϢʔβ͕͍Δ ػցֶशͳͲσʔλܥॲཧͰඪ४తݴޠ Φʔϓϯιʔε
1Z$PO+1 ݄͔Β ౦ژͰ࣮ࢪ ໊
1Z$PONJOJ̋̋ ֤Ͱͷ։࠵ࢧԉ
1ZUIPO#PPU$BNQ શࠃπΞʔ ։࠵ืूத
1ZUIPO ͍ͬͯΔਓʁ
ػցֶश ͬͨΓɾษڧͯ͠Δ
ηογϣϯͷ༰ લ ػցֶश֓ཁ ػցֶशͷεςοϓ ͳͥ1ZUIPOΛ༻͍Δ͔ɾඞཁͳࣝ ޙ 1ZUIPOͱ Πϯετʔϧڥઃఆ +VQZUFS/PUFCPPLͷઆ໌ +VQZUFS/PUFCPPLΛͬͨػցֶशσϞ
લ
ػցֶशͱ σʔλαΠΤϯεͷ ਓؒͱಉ༷ʹίϯϐϡʔλֶ͕श͠ɺֶश݁Ռ Λ༻͍ͯ༧ଌͳͲΛߦ͏ɻ
ػցֶशͷछྨ ڭࢣ͋Γ ڭࢣͳ͠ ڧԽֶश
σʔλղੳͷΞϓϩʔν ػցֶश͕࠷ߴʹ͍͍ํ๏͔ʁ σΟʔϓϥʔχϯάඞཁ͔ʁ ౷ܭతΞϓϩʔνʁ σʔλ͔Βಋ͖ग़͞ΕΔͷԿ͔ʁ
ػցֶशͷ εςοϓ ڭࢣ͋Γ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ σʔλΛ୳͢ σʔλͷೖखɾμϯϩʔυ σʔλͷ֓ཁΛଊ͑Δ
ΠϯσοΫε໊ΧϥϜ໊Λ͚Δ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ σʔλͷॳظՃ σʔλͷ࿈݁ ܽଛॲཧ
ՃࡁΈσʔλͷ֬ೝ ՃࡁΈσʔλͷอଘ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ ՄࢹԽڥઃఆ σʔλͷಡࠐΈ άϥϑԽ
Ͱ֓ཁΛݟΔ ૬ؔΛ֬ೝ ඞཁʹͳΔσʔλΛ࡞Δ ଟมྔมΛݟΔ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ ΞϧΰϦζϜͷީิΛ্͛Δ ߹ʹΑͬͯσʔλ࠶Ճ ߹ʹΑͬͯओੳ
આ໌มͱతมΛܾΊΔ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ ֶशσʔλͱςετσʔλΛׂ ΞϧΰϦζϜͷॳظԽ ύϥϝʔλઃఆ
ֶश
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ ༧ଌ ༧ଌ݁ՌΛධՁ ࠞಉߦྻͰ֬ೝ
ద߹ɾ࠶ݱɾ' ଞͷϞσϧɾύϥϝʔλΛࢼ͢ ަࠩݕূ ΫϩεόϦσʔγϣϯʣ άϦουαʔν ύϥϝʔλௐʣ
σʔλબͼɾσʔλೖख σʔλՃɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ
1ZUIPOͰͳͯ͘Ͱ͖Δ σʔλͷલॲཧʹQBOEBT &YDFMͰͰ͖Δ͚Ͳɻ ՄࢹԽ &YDFMͰͰ͖Δ͚ͲͶɻ ػցֶश ϞσϧΛࣗͰϓϩάϥϛϯά͍͍͚ͯ͠ ͲͶɻ σʔλׂධՁΛϓϩάϥϛϯά͍ͯ͠ ͍͚ͲͶɻ
֤छπʔϧͷղઆ &YDFM (6*Ͱ؆୯ʹ͑Δ جຊతͳ౷ܭใɺάϥϑԽ͕Մೳ 1ZUIPO ศརͳϥΠϒϥϦͱͷ߹ͤΛ͢Δ ߴͳ͜ͱରԠՄೳ ෯͍ͷద༻͕Մೳ 3
౷ܭղੳઐ༻ͷݴޠ खݩͰσʔλղੳؔΛ࣮ߦՄೳ ͦͷଞ ֤छϓϩάϥϛϯάݴޠͰऔΓΊΔ
1ZUIPOπʔϧͷղઆ 1ZUIPO ෯͍ʹར༻͞ΕΔϓϩάϥϛϯάݴޠ /VN1Z ܭࢉ༻ϥΠϒϥϦ 4DJ1Z ౷ܭͷՊֶٕज़ܭࢉ༻ϥΠϒϥϦ QBOEBT σʔλϋϯυϦϯάϥΠϒϥϦ
NBUQMPUMJC άϥϑԽπʔϧ TDJLJUMFBSO ػցֶशϥΠϒϥϦ +VQZUFS/PUFCPPL 8FCϒϥβͰ࣮ߦՄೳͳπʔϧ
༻͢Δπʔϧ 1ZUIPOIUUQTEPDTQZUIPOKQ /VN1ZIUUQTEPDTTDJQZPSHEPD 4DJ1ZIUUQTEPDTTDJQZPSHEPD QBOEBTIUUQQBOEBTQZEBUBPSHQBOEBTEPDTTUBCMF NBUQMPUMJCIUUQTNBUQMPUMJCPSHDPOUFOUTIUNM TDJLJUMFBSOIUUQTDJLJUMFBSOPSHTUBCMF
EPDVNFOUBUJPOIUNM +VQZUFSIUUQKVQZUFSOPUFCPPLSFBEUIFEPDTJPFOMBUFTU
1ZUIPOܥπʔϧͷศརͳϙΠϯτ +VQZUFS/PUFCPPL QBOEBT NBUQMPUMJC ܁Γฦ࣮͠ߦ͕༰қ ࠶ར༻Մೳ HJUIVCͰՄࢹԽՄೳ ࠶ࢼ༰қ TDJLJUMFBSO ػցֶश͕༰қ
ศརͳπʔϧ͕ͦΖ͍ͬͯΔ
ඞཁͳΤϯδχΞϦϯάͱʁ υϝΠϯࣝɾϏδωεࣝ σʔλαΠΤϯςΟετ σʔλੳऀ σʔλؔ࿈ΤϯδχΞ
ޙ
ޙηογϣϯͷ༰ 1ZUIPOͱ 1ZUIPOͷΠϯετʔϧɾڥઃఆ +VQZUFS/PUFCPPLͷઆ໌ +VQZUFS/PUFCPPLΛͬͨػցֶशͷσϞ
1ZUIPOͬͯͳʹ ϓϩάϥϛϯάݴޠ Θ͔Γͯ͘͢शಘ͕༰қ ߴͳϓϩάϥϛϯάͰ͖Δ ଟ͘ͷϢʔβ͕͍Δ ػցֶशͳͲσʔλܥॲཧͰඪ४తݴޠ Φʔϓϯιʔε
1ZUIPOͷಛ ίϯύΠϧෆཁ ߏΛΠϯσϯτͰදݱ όοςϦʔΠϯΫϧʔυ ଟ͘ͷαʔυύʔςΟϥΠϒϥϦ ༷ͷ໌จԽ όʔδϣϯΞοϓαΠΫϧͷެද
1ZUIPOͰͳʹ͕Ͱ͖Δ͔ 04Πϯϑϥ 8FCؔ Պֶٕज़ܭࢉػցֶश %άϥϑΟοΫ *P5 ΘΕ͍ͯΔྖҬ
1ZUIPOͰͳʹ͕Ͱ͖Δ͔ 3FE)BUܥ-JOVYΠϯετʔϥ ZVNύοέʔδϚʔδϟ "OTJCMFύοέʔδͷߏཧπʔϧ 0QFO4UBDLΫϥυγεςϜߏஙπʔϧ 04Πϯϑϥ
1ZUIPOͰͳʹ͕Ͱ͖Δ͔ 8FCϑϨʔϜϫʔΫ %KBOHP 'MBTL 1ZSBNJE 3%#.403Ϛούʔ %KBOHPଂ 42-"MDIFNZ 8FCؔ
ςϯϓϨʔτ +JOKB .BLP $IBNFMFPO ͦͷଞπʔϧ 4DSBQZ
1ZUIPOͰͳʹ͕Ͱ͖Δ͔ σʔλܕ /VN1Z QBOEBT Պֶٕज़ܭࢉ 4DJ1Z άϥϑπʔϧ NBUQMPUMJC Պֶٕज़ܭࢉػցֶश
ػցֶशϑϨʔϜϫʔΫ TDJLJUMFBSO σΟʔϓϥʔχϯά 5FOTPS'MPX $IBJOFS
1ZUIPOͰͳʹ͕Ͱ͖Δ͔ .BZB #MFOEFS %άϥϑΟοΫ
1ZUIPOͰͳʹ͕Ͱ͖Δ͔ 3BTQCFSSZ1J .JDSP1ZUIPO *P5
1ZUIPOද 1ZUIPO 1ZUIPO &WFOU 3FE)BU ʜ
14' &VSP1ZUIPO 3)&- 1Z$PO 64 3)&- 3)&- 1ZUIPO 3)&- 1Z$PO"1"$ 4( 3)&- 1Z$PO+1 1Z$PO"1"$ +1 3)&- ʜ &OEPG-JGF
όʔδϣϯ 1ZUIPOͰେ͖ͳมߋ 1ZUIPOͰαϙʔτऴྃ ͜Ε͔ΒΔͳΒ1ZUIPO ͨͩ͠ɺ1ZUIPOͷαϯϓϧ͕ଟ͘ݟ͔ͭΔ 1ZUIPOWT
ࢲͷΦεεϝڥ ߲ Φεεϝ ࣮ $1ZUIPO όʔδϣϯ Πϯετʔϧ ެࣜ൛Πϯετʔϥ
Ծڥ WFOW ύοέʔδΠϯετʔϧ QJQ ΤσΟλ 1Z$IBSN ͙࢝͢ΊΒΕΔɺ1ZUIPOͷڥߏஙCZ.BOBCV5&3"%" 1VCMJTIFE"QSJM IUUQTTQFBLFSEFDLDPNUFSBQZPOTVHVTIJNFSBSFSVQZUIPOGBMTFIVBOKJOHHPV[IV
Πϯετʔϧํ๏ $1ZUIPO ໊শ ֓ཁ ެࣜ൛Πϯετʔϥ FYFQLHͰΠϯετʔϧ ެࣜ൛ΛιʔείϯύΠϧ UH[UBSY[͔ΒίϯύΠϧ 04ύοέʔδϚωʔδϟ
ZVNBQUHFUͰΠϯετʔϧ "OBDPOEB Պֶٕज़ܭࢉ༻ΛύοέʔδԽ
ެࣜ൛Πϯετʔϥ ಛผͳཧ༝͕ͳ͚Ε ެࣜ൛Πϯετʔϥ -JOVYڥͷ߹ ެࣜ൛Πϯετʔϥ͕ఏڙ͞Εͯͳ͍ ެࣜ൛ιʔεΛίϯύΠϧͯ͠༻
ެࣜ൛1ZUIPOIUUQTXXXQZUIPOPSHEPXOMPBET
"OBDPOEB Պֶٕज़ܭࢉܥͷύοέʔδ͕ಉࠝ Πϯετʔϧ͕ख͕ܰͩɺ ·ΓϙΠϯτ͋ΔͷͰҙ 8JOEPXTڥͰՊֶٕज़ܭࢉܥͷ߹ "OBDPOEBΛબ͢Δ߹͋Δ
Ծڥ Ұͭͷ04্ʹɺෳͷ1ZUIPOڥΛ࡞ΕΔ ར༻͢Δ1ZUIPOϥΠϒϥϦΛ͚۠Ͱ͖Δ άϩʔόϧͳ1ZUIPOڥΛΫϦʔϯʹอͯΔ 1ZUIPOϨΠϠʔͷԾڥʹݶఆ 04ΛԾԽɺίϯςφԽ %PDLFSͷΑ͏ͳ ͱผ
ԾڥͷछྨͳͲ ໊শ ֓ཁ WFOWϞδϡʔϧ ެࣜ൛ʹಉࠝ Ҏ߱ඪ४ WJSUVBMFOW 1ZUIPOͰඞཁ QZFOW
1ZUIPOࣗମͷόʔδϣϯସՄೳ DPOEBίϚϯυ όʔδϣϯସՄೳ "OBDPOEBͰ༻Մೳ QZWFOWίϚϯυ WFOWϞδϡʔϧͱಉ͡ ݱࡏඇਪ
WFOWϞδϡʔϧͷ͍ํ WFOWϞδϡʔϧͱ ެࣜ൛1ZUIPOʹಉࠝ͞Ε͍ͯΔ ԾڥΛ࡞Δඪ४Ϟδϡʔϧ $ python -m venv env
FOWͱ͍͏ԾڥΛ࡞ $ source env/bin/activate Ծڥ༗ޮԽ (env) $ ϓϩϯϓτ͕มԽ (env) $ deactivate ԾڥͷແޮԽ $ rm -r env FOWͱ͍͏ԾڥϑΥϧμΛআ
ύοέʔδΠϯετʔϧ 1ZUIPOʹଟ͘ͷ αʔυύʔςΟʔύοέʔδ͕͋Δ 1Z1* ύΠϐʔΞΠͱಡΉ IUUQTQZQJQZUIPOPSHQZQJ
1Z1*IUUQTQZQJQZUIPOPSHQZQJ
ύοέʔδΠϯετʔϧ QJQίϚϯυ 1ZUIPOʹಉࠝ͞Ε͍ͯΔίϚϯυ QJQίϚϯυΛ͍ύοέʔδΠϯετʔϧ $ source env/bin/activate Ծڥ༗ޮԽ (env)
$ pip install pandas QBOEBTΠϯετʔϧ (env) $ pip freeze > requirement.txt ύοέʔδϦετ࡞ (env) $ pip install -r requirement.txt ύοέʔδϦετΛݩʹΠϯετʔϧ (env) $ pip install -u pandas QBOEBTΛ࠷৽൛ʹ
+VQZUFS/PUFCPPL δϡϐλʔɹϊʔτϒοΫͱಡΉ IUUQKVQZUFSPSH
+VQZUFS/PUFCPPLΠϯετʔϧ ҎԼͷίϚϯυͰϒϥβ͕ىಈ͢Δ $ source env/bin/activate Ծڥ༗ޮԽ (env) $ pip
install jupyter (env) $ jupyter notebook
+VQZUFS/PUFCPPL͍ํ +VQZUFS/PUFCPPLͷىಈ /FX͔ΒɺΧʔωϧͰ1ZUIPOΛબ ηϧʹίʔυΛهड़ ηϧͷछྨ $PEF .BSLEPXO ೖྗޙ &OUFSͰηϧվߦ $USM
&OUFSͰ࣮ߦ 4IJGU &OUFSͰ࣮ߦͯ͠ɺ࣍ͷηϧ
+VQZUFS/PUFCPPL࠶ར༻ ໊લΛ͚Δ 4BWFBOE$IFDLQPJOU HJUIVCʹͯJQZOCϑΝΠϧΛQVTI͢Δͱɺ͖ Ε͍ʹදࣔ͞ΕΔ
+VQZUFS/PUFCPPL σϞ
ػցֶशͷσϞ ΞΠεΫϦʔϜച্૬ؔΛٻΊΔ +VQZUFS/PUFCPPLΛ༻ ࣮ߦՄೳͳ༰(JTUͰެ։ IUUQTHJTUHJUIVCDPNUFSBQZPOCEEDDED
ػցֶशͷ σϞ
͓קΊຊ
݄ൃച 1ZUIPOॳ৺ऀ͚
1ZUIPOॳ৺ऀ͚ ϥΠόϧຊ
1ZUIPOॳ৺ऀ͚ ϥΠόϧຊ
1ZUIPOνϡʔτϦΞϧ ୈ൛
ॳ৺ऀʹ ͔ͳ͍
Ұาઌʹ
σʔλॲཧ લॲཧ QBOEBT ՄࢹԽ
1ZUIPOػցֶश
1ZUIPOσʔλղੳ ӳޠ
σΟʔϓϥʔχϯά
தڃऀ͚
্ڃऀ͚
࠷ޙʹ͏ճ
݄ൃച 1ZUIPOॳ৺ऀ͚ ϓϨθϯτ
5IBOLZPV $.4 1MPOF $POUBDUUPUFSBEB!QZDPOKQ
࣭ٙԠ
5IBOLZPV $.4 1MPOF $POUBDUUPUFSBEB!QZDPOKQ