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
ASCII art oneliner
Search
MSR
October 29, 2016
Technology
0
1.9k
ASCII art oneliner
アスキーアート(突然の死、slコマンド、端末画面ぐちゃぐちゃ)をワンライナーでやってみた
※完全版
MSR
October 29, 2016
Tweet
Share
More Decks by MSR
See All by MSR
horizon
msr_i386
0
1.1k
fujiaire by shell
msr_i386
0
830
colaboratory
msr_i386
0
140
yes command faster
msr_i386
0
330
Amazon Dash Hack
msr_i386
0
1.4k
cgroup
msr_i386
0
1.3k
discover fork-bomb
msr_i386
0
1.8k
kanji banner
msr_i386
0
1.8k
QR Code Shell
msr_i386
0
2.2k
Other Decks in Technology
See All in Technology
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
390
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
140
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
2
250
kargoの魅力について伝える
magisystem0408
0
200
プロダクト開発を加速させるためのQA文化の築き方 / How to build QA culture to accelerate product development
mii3king
1
260
.NET 9 のパフォーマンス改善
nenonaninu
0
770
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
520
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
300
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.2k
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
2
730
Featured
See All Featured
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Git: the NoSQL Database
bkeepers
PRO
427
64k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
440
Fireside Chat
paigeccino
34
3.1k
Thoughts on Productivity
jonyablonski
67
4.4k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Cult of Friendly URLs
andyhume
78
6.1k
Visualization
eitanlees
146
15k
Building Adaptive Systems
keathley
38
2.3k
Transcript
ΞεΩʔΞʔτ ϫϯϥΠφʔ @ୈ25ճγΣϧܳษڧձ େࡕαςϥΠτ (2016.10.29) MSR (@msr386)
࣍ ➤ ࣗݾհ ➤ ࠓ·Ͱͷল ➤ ΞεΩʔΞʔτͳγΣϧܳ (όφʔܳ) ➤ ಥવͷࢮ
➤ slίϚϯυ ➤ λʔϛφϧը໘Λ͙ͪΌ͙ͪΌʹ͢Δ ➤ ·ͱΊ
ࣗݾհ ➤ ϋϯυϧωʔϜ: MSR (@msr386) ➤ C++ϓϩάϥϛϯάɺαʔόʔӡ༻͕ಘҙ ➤ ٻ৬த ➤
Chromium Contributor (1ճ͚ͩ) ➤ Webϒϥβ࡞͍ͬͯ·͢ (http://app.tungsten-start.net/)
ࠓ·Ͱͷল
͜Ε·Ͱͷࣗͷओͳ LTൃදΛৼΓฦΔͱ
(1)Χφμͷങ͍ΓVPSͷհ ӡ༻ʹ͑ͳ͍͚ͲγΣϧܳ࿉ʹͽͬͨΓ?
(2) QRίʔυγΣϧܳ? QRةݥγΣϧܳ / QRίʔυγΣϧܳͷՄೳੑΛࡧ
΄ͱΜͲγΣϧܳͱ ؔͳ͍͡ΌΜ (ΨνͷγΣϧܳΖ͏ͥ)
࠷ۙͷόφʔܳͱ͍͏ ྲྀߦʹΓ
ΞεΩʔΞʔτγΣϧ ܳΛΓ·͢
1. ಥવͷࢮ
?P? ɹɹc ɹɹ
ʘ ?P? ɹʘc ɹɹɹʼ
ʻ ?P? ʼ ɹࡾ ࡾ ʻʉʉʼ
Є ?P? ɹʻ ʼάΩο ʻʉʉʼ
ʊਓਓਓਓʊ ʼಥવͷࢮʻ ʉ:?:?:?:ʉ
ಥવͷࢮ ➤ 2012ࠒɺͱ͋Δܝࣔ൘ʹॻ͖ࠐ·Εͨͷ͕ݩωλͱݴΘΕ͍ͯΔ ➤ ࠷ޙͷғΈจࣈͷΞεΩʔΞʔτ͚͕ͩΑ͘ΘΕ͍ͯΔ ➤ 2013ʹTwitterͰվߦίʔυ͕ରԠ͔ͯ͠Βڻҟతʹ֦ࢄ ➤ ओͳಛ ➤
൚༻ੑͷߴ͞ ➤ ΞεΩʔΞʔτͷ୯७͞ ➤ ݟͨͷྗڧ͞ ➤ ʮಥવͷࢮδΣωϨʔλʔʯͱ͍͏໊લͰWebαʔϏεԽɺiOSAndroid͚ʹΞϓ ϦԽ͞Ε͍ͯΔ
ಥવͷࢮɹγΣϧεΫϦϓτ൛͕ଘࡏ ➤ γΣϧεΫϦϓτ͋Δ (https://fumiyas.github.io/2013/12/25/echo-sd.sh-advent-calendar.html) $ echo -e "crontab -r\n突然の危険シェル芸" |
echo-sd -s --center _人人人人人人人人人人人_ > crontab -r < > 突然の危険シェル芸 < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $ $ echo-sd -v 縦書き _人人_ > 縦 < > 書 < > き < ‾Y^Y^‾ $
ಥવͷࢮɹγΣϧεΫϦϓτ൛͕ଘࡏ ➤ ॎॻ͖ɺɺετϨεൃੜաఔϞʔυɺπΠʔτػೳͳͲػೳ͕๛ $ echo-sd --stress "crontab: no crontab for
root" あれ?中身消えてる "(historyの結果) 334 sudo crontab -r" "eとr押し間違い!バック アップない!!" 危険シェル芸 crontab: no crontab for root ↘ あれ?中身消えてる ⾫ (historyの結果) 334 sudo crontab -r ↘ eとr押し間違い!バックアップない!! ⾫ _人人人人人人人人_ > 危険シェル芸 < ‾Y^Y^Y^Y^Y^Y^Y^Y^‾ $ echo-sd --tanzaku ":(){ :|:& };:" ┏-┷-┓ ┃ ‥ ┃ ┃ ⏜ ┃ ┃ ⏝ ┃ ┃ ⏞ ┃ ┃ ┃ ┃ ‥ ┃ ┃ | ┃ ┃ ‥ ┃ ┃ & ┃ ┃ ┃ ┃ ⏟ ┃ ┃ ; ┃ ┃ ‥ ┃ ┗━━┛
ϫϯϥΠϯ࣮ɺ։࢝
࢝ΊΔલʹ ୯७ԽͷͨΊʹɺҎԼͷΑ͏ͳखൈ͖Λ͠·͢ ➤ ෯ϑΥϯτʹಛԽ ➤ 1ߦ͚ͩରԠ ෳߦͰߟྀ͖͢͜ͱ͕૿͑ΔͨΊ ➤ શ֯จࣈ͚ͩରԠ ֯จࣈͱΓ͋͑ͣແࢹ͢Δ
➤ LANG=ja_JP .UTF-8 લఏ LANGʹΑΓจࣈܭࢉ͕͓͔͘͠ͳΒͳ͍Α͏ʹ͢ΔͨΊ
੍࡞աఔ 1. ಛΛଊ͑Δ _人人人人人人_ > 突然の死 < ‾Y^Y^Y^Y^Y^Y^‾ ಥવͷࢮɺจࣈʹԠ্ͯ͡෦ɺԼ෦ͷจࣈ͕มԽ͢Δ →্෦ʮਓʯͱԼ෦ʮY^ʯΛશ֯1จࣈʹରͯ͠1ݸͣͭ૿ͤΑ͍
੍࡞աఔ 2. จࣈΛௐΔʹ? awkͷlength()Λ༻͢Δ for (i=0; i<length()+2; i++) { up=up
"ਓ"; dn=dn "Y^" } ※+2ࠨӈͷه߸ͱ༨ന 3. printfͰܗ͢Δ printf("ʊ%sʊ\nʼɹ%sɹʻ\nʉ%sʉ\n", up, $0, dn)
ಥવͷϫϯϥΠφʔ୯७൛ $ echo 突然の死 | awk \ '{for(i=0;i<length()+2;i++) \ {up=up
"人"; dn=dn "Y^"} printf( \ "_%s_\n> %s <\n‾%s‾\n", \ up, $0, dn)}'
ಥવͷϫϯϥΠφʔ୯७൛ɹ࣮ߦྫ $ echo 突然の死 | awk '{for(i=0;i<length()+2;i++){up=up "人"; dn=dn "Y^"}
printf("_%s_\n> %s <\n‾%s‾\n", up, $0, dn)}' _人人人人人人_ > 突然の死 < ‾Y^Y^Y^Y^Y^Y^‾ $ $ echo Hankakuだとずれる | awk '{for(i=0;i<length()+2;i++){up=up "人"; dn=dn "Y^"} printf("_%s_\n> %s <\n‾%s‾\n", up, $0, dn)}' _人人人人人人人人人人人人人人_ > Hankakuだとずれる < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $
ಥવͷϫϯϥΠφʔ୯७൛ͷಛͱ ಛ ➤ awkҰൃܳ ➤ πΠʔτՄೳ(112จࣈ) ➤ ֯จࣈࠞ͟ΔͱͣΕΔͷखൈ͖͠ա͗͡Όͳ͍? ֯จࣈͰͣΕΔݪҼɺawkͷlength()ͷ༷
➤ LANGڥมʹґଘ ➤ ja_JP .UTF-8ͷ߹ɺશ֯֯1Λฦ͢ ➤ ͳΒɺશ֯2ɺ֯1ΛฦͤͣΕͳ͍ΑͶ?
ಥવͷϫϯϥΠφʔվྑ൛ $ echo 突然の死 | awk \ '{for(i=1;i<=length();i++){ \ len+=(substr($0,i,1)~/[\x01-\x7E]/)?1:2}
\ for(i=0;i<len/2+2;i++){ \ up=up "人";dn=dn "Y^"} \ printf("_%s_\n> %s <\n‾%s‾\n", \ up,$0,dn)}'
ಥવͷϫϯϥΠφʔվྑ൛ɹ࣮ߦྫ $ echo 突然のワンライナーEx | awk '{for(i=1;i<=length();i++){len +=(substr($0,i,1)~/[\x01-\x7E]/)?1:2}for(i=0;i<len/2+2;i++){up=up "人";dn=dn "Y^"}printf("_%s_\n> %s <\n‾%s‾\n",up,$0,dn)}'
_人人人人人人人人人人人人_ > 突然のワンライナーEx < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $ $ echo Hankakuでもずれは最小限 | awk '{for(i=1;i<=length();i++){len +=(substr($0,i,1)~/[\x01-\x7E]/)?1:2}for(i=0;i<len/2+2;i++){up=up "人";dn=dn "Y^"}printf("_%s_\n> %s <\n‾%s‾\n",up,$0,dn)}' _人人人人人人人人人人人人人人_ > Hankakuでもずれは最小限 < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $
ಥવͷϫϯϥΠφʔվྑ൛ͷಛ ➤ վળ ➤ ͕֯ࠞͬͯͣ͟Εͳ͍ ➤ վѱ ➤ πΠʔτෆՄ
վྑ൛ͷղઆ ➤ awkΛܗ͢Δͱ͜ͷΑ͏ʹͳΔ { for(i = 1; i <= length();
i++) { len += ( substr($0,i,1) ~/[\x01-\x7E]/ ) ? 1 : 2 } for(i = 0; i < len / 2 + 2; i++) { up = up "ਓ"; dn = dn "Y^" } printf("ʊ%sʊ\nʼɹ%sɹʻ\nʉ%sʉ\n", up, $0, dn) }
վྑ൛ͷղઆ (1.) for(i = 1; i <= length(); i++) {
len += (substr($0,i,1)~/[\x01-\x7E]/) ? 1 : 2 } (2.) for(i = 0; i < len / 2 + 2; i++) { up = up "ਓ"; dn = dn "Y^" } (3.) printf("ʊ%sʊ\nʼɹ%sɹʻ\nʉ%sʉ\n", up, $0, dn) 1. จࣈΛऔಘ 1จࣈͣͭऔΓग़͠ɺจࣈ͕UTF-8Ͱ1όΠτ จࣈͰ͋Δ߹1ɺͦΕҎ֎2ͱ͢Δɻ UTF-8ͷ1όΠτจࣈɺ0x01ʙ0x7eؚ͕· Ε͍ͯΔ͔Ͳ͏͔Ͱఆ͢Δɻ 2. ্෦ʮਓʯɺԼ෦ʮY^ʯΛจࣈʹԠͯ͡ ૿͢ ૿͢શ֯ج४Ͱ͋Δ͜ͱʹҙ 3. printfͰܗ
͞ΒͳΔվྑͷಓ ➤ ෳߦରԠ ➤ ϧʔϓճΛݮΒ͢ͳͲͷ࠷దԽ ➤ awkΛΘͳ͍ํ๏ ➤ etc. ➤
ͬͱ͍͍ํ๏͋ΔͣͳͷͰɺՋͳͱ͖ʹνϟϨϯδ͠·͠ΐ͏
൪֎ฤ _人人人人人人人_ > 突然のSEGV < ‾Y^Y^Y^Y^Y^Y^Y^‾
൪֎ฤ ➤ SEGVͰམͪͨɾɾɾ༷? $ awk --version GNU Awk 4.1.3, API:
1.1 (GNU MPFR 3.1.4, GNU MP 6.1.0) <ҎԼུ> $ echo ಥવͷSEGV | awk '{print $0~/[\x00-\x7F]/}' 1 $ echo ಥવͷSEGV | awk '{print $0~/[\x00-\x80]/}' awk: ίϚϯυϥΠϯ:1: க໋తΤϥʔ: ෦Τϥʔ: ηάϝϯςʔγϣϯҧ Aborted (core dumped) $
2. SLίϚϯυ
LSͷ͋Δ͋Δ ➤ lsͱೖΕΑ͏ͱͯ͠ $ sl -l sl: command not found
$ ➤ lʮ͔ͯ͠͠ʯ sʮΘͨͨͪ͠ʯ ҎԼུ ➤ lsͱؒҧ͑ͯslͬͯೖΕͪΌͬͨʂͱ͍͏͋Δ͋Δ͔Βɺslͱ͍͏δϣʔΫίϚϯ υ͕ੜͨ͠
SLίϚϯυͷ͍ྺ࢙ ➤ 1987ɺUNIXχϡʔεάϧʔϓfj.sourceʹॳొ(࡞ऀՎਖ਼͞Μ) ➤ 1993ɺ๛ాਖ਼࢙͞Μ(ݱࡏɺ।ڭत)͕slίϚϯυΛϦϦʔε ͨͩͷδϣʔΫίϚϯυ͔ΒΩʔλΠϓڲਖ਼ίϚϯυʹਐԽ ➤ 1990ޙʙ LinuxσΟετϦϏϡʔγϣϯʹࡌ͞ΕΔΑ͏ʹͳΔ ➤
2000ɺslͷվ൛͕ొ ➤ དྷͰ30प!
SLίϚϯυͷಛ ➤ Ctrl+C (SIGINT) Λԡͯ͠தஅ͠ͳ͍ ΩʔλΠϓڲਖ਼͕త͔ͩΒ ➤ lsΑΓ࣮ߦ͕࣌ؒΔ͔ʹ͍ ΩʔλΠϓڲਖ਼͕త͔ͩΒ ➤
Φϓγϣϯ͕lsʹࣅ͍ͯΔ Ωʔt δϣʔΫίϚϯυ͔ͩΒ
SLίϚϯυΛγΣϧܳͰ
݅ ➤ ݩωλͷΞεΩʔΞʔτΛϕʔεͱ͢Δ o o o ____ --
|OO| _||__| | | | /-O=O O=O-- ➤ ंྠճΒͳ͍ ➤ ৠؾݻఆ͔ͭग़ͬͺͳ͠ ➤ ӈ͔Βࠨಈ͕͘ɺؿंશମৗʹදࣔͤ͞Δ ➤ Ctrl+C༗ޮ (ΩʔλΠϓڲਖ਼͕తͰͳ͍͔Β)
γΣϧܳखॱ̍ AAΛ1ߦʹ $ echo -e " o \n o \n
o ____\n -- |OO|\n _||__| |\n | |\n/-O=O O=O--" o o o ____ -- |OO| _||__| | | | /-O=O O=O-- $
γΣϧܳखॱ̎ ӈ٧Ί͢Δ ڥʹԠͯ͡ tput colsɺBSDܥͳΒ tput coɺBashͳΒecho $COLUMNS Ͱͷ෯͕ औಘͰ͖Δ
$ echo $COLUMNS 120 awkͷ-vΦϓγϣϯͰγΣϧมΛ͠ɺεΫϦϓτͷprintfͰӈ٧Ίͤ͞Δ $ echo -e " o \n o \n o ____\n -- |OO|\n _||__| |\n | |\n/-O=O O=O--" | awk -v col=$COLUMNS '{printf("%" col "s\n", $0)}'
γΣϧܳखॱ̏ ӈ٧Ίͷ෯ΛݮΒ͍͖ͯ͠ɺ for ; do ; doneΛ༻͢Δ $ for ((i=$COLUMNS;
i>=11; i--)); do clear; echo -e " o \n o \n o ____\n -- |OO|\n _||__| |\n | |\n/-O=O O=O--" | awk -v col=$i '{printf("%" col "s\n", $0)}'; sleep 0.06; done
͞ΒͳΔվྑͷಓ ➤ ͍͖ͳΓݱΕ͍͖ͯͳΓࢭ·ΔͷͰɺྻंࣄނͷΑ͏ʹݟ͑Δ ˞ݩωλΓڈΔ ➤ ʹΑͬͯͪΒͭ͘͜ͱ͕͋Δ ➤ Ctrl-CΛແޮʹ͢ΔʹͲ͏ͨ͠Β͍͍? ➤ etc.
➤ ͬͱ͍͍ํ๏͋ΔͣͳͷͰɺՋͳͱ͖ʹνϟϨϯδ͠·͠ΐ͏(2ճ)
SLίϚϯυ൪֎ฤ(1) lsʹࣅͨΦϓγϣϯଘࡏ͢Δ ➤ $ sl -a HELP! ➤ $ sl
-F ඈΜͩʂ ➤ $ sl -l ͪͬ͞ʂ ➤ $ sl -c C51ͩʂ(Α͘Βͳ͍) ➤ $ sl -aFlc શ෦ͤʂ
SLίϚϯυ൪֎ฤ(2) ➤ slίϚϯυͷιʔείʔυgithubʹɻϓϧϦΫͰ͞ΒʹਐԽ ➤ վ൛ͬͱ͍͢͝ ʮSL վܭըʯhttp://www.izumix.xyz/sl/ ʢύονద༻ࡁʣhttp://qiita.com/gm_kou/items/2840a6670dc2e733d00a ٬ं૿ͨ͠Γɺ౿ग़͖ͯͨΓɺSL͕ԟ෮ͨ͠Γɺ͕όϥόϥͩͬͨΓ͍Ζ͍Ζ δϣʔΫίϚϯυͷྖҬΛ͑ͨ࡞
➤ GistʹژٸԽύον͕͋Δ https://gist.github.com/poochin/1423262 # SL͡Όͳ͍͡ΌΜʂͱ͍͏ͳಥࠐΈ͝ԕྀ͍ͩ͘͞
3.λʔϛφϧը໘Λ ͙ͪΌ͙ͪΌʹ
λʔϛφϧը໘Λ͙ͪΌ͙ͪΌʹ ➤ ANSIΤεέʔϓγʔέϯεΛ͏͜ͱͰɺจࣈʹ৭Λ͚ͭͨΓɺഎܠ৭Λม͑ͨΓ ͕Ͱ͖Δ ➤ ͜ΕΛར༻ͯ͠ɺը໘Λ͙ͪΌ͙ͪΌʹ͢Δ͜ͱ͕Մೳ
എܠ৭Λม͑ΔANSIΤεέʔϓγʔέϯε ➤ എܠ৭Λม͑ΔΤεέʔϓγʔέϯε(جຊ8৭) ESC[ʻ40ʙ47ʼm 40: ࠇ, 41: , 42: ,
43: ԫ, 44: ੨, 45: Ϛθϯλ, 46: γΞϯ, 47: ന ※ʹΑΓ৭ඍົʹҟͳΔ ➤ എܠ৭Λม͑ΔΤεέʔϓγʔέϯε(256৭) ESC[48;5;ʻ৭൪߸ʼm 48: ֦ுഎܠ৭; 5: 256৭ΠϯσοΫεΧϥʔ; ৭൪߸: 0ʙ255Λࢦఆ ➤ ΤεέʔϓγʔέϯεͷϦηοτίʔυ (͜Ε͕ͳ͍ͱ৭͕Ϧηοτ͞Εͳ͍) ESC[0m
➤ echoίϚϯυͰ"\e"Λ͏ ※"\e"Λೝࣝ͠ͳ͍ڥ͋Δ ➤ printfίϚϯυͰ"\033"Λ͏ $ printf
"\033[45m%s\033[0m\n" Ϛθϯλ ANSIΤεέʔϓγʔέϯε͖Ͱදࣔ Ϛθϯλ $ echo -e “\e[46mγΞϯ\e[0m] γΞϯ
λʔϛφϧը໘͙ͪΌ͙ͪΌɹ˞ $ clear; while :; do c=`expr $RANDOM % 256`;
echo -en "\e[48;5;$ {c}m \e[0m"; done
λʔϛφϧը໘͙ͪΌ͙ͪΌɹվྑ൛ ➤ echo ➤ printf
※ൈ͚Δʹsleep 500Λফ͔͢Ctrl+CͰ $ clear; for color in `od -vAn -tu1 -N $(($COLUMNS*$LINES)) < /dev/urandom` ; do echo -en "\e[48;5;${color}m \e[0m"; done; sleep 500 $ clear; for color in `od -vAn -tu1 -N $(($COLUMNS*$LINES)) < /dev/urandom` ; do printf "\033[48;5;${color}m \033[0m"; done; sleep 500
ղઆ 1. 0ʙ255·ͰͷཚΛऔಘ odͱ/dev/urandomΛ༻͢Δ $ od -vAn -tu1 -N 1
< /dev/urandom 15 2. ͷը໘͍ͬͺ͍ʹͳΔΑ͏ʹɺܻ * ߦճ͚ͩཚΛऔಘ͢Δ $ od -vAn -tu1 -N $(($COLUMNS*$LINES)) < /dev/urandom 241 178 43 211 3 255 29 178 181 247 234 112 157 18 152 29 3. ΤεέʔϓγʔέϯεͰ৭Λม͑ͤ͞Δ $ echo -en “\e[48;5;${color}m \e[0m” $ printf “\033[48;5;${color}m \033[0m” 4. 2.ͰٻΊͨ݁ՌΛforͰճͤ
·ͱΊ ➤ ಥવͷࢮδΣωϨʔλʔͱslίϚϯυͳͲΛϫϯϥΠφʔͰ࣮ݱ ➤ awkͷ൚༻ੑΕͳ͍ ➤ δϣʔΫίϚϯυΛγΣϧܳͰ࣮ݱͤ͞Δͷָ͍͠ ➤ ͬͱ͍͍ํ๏͋ΔͣͳͷͰɺՋͳͱ͖ʹνϟϨϯδ͢ΔͷΑ͍ͱࢥ͍·͢