Mercurial > hg > Papers > 2016 > masa-master
changeset 108:199561d48b97
add poster
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 20 Feb 2016 18:32:23 +0900 |
parents | efdc04a5746c |
children | 2978fdc0fc6f |
files | paper/images/example/dividefile.pdf paper/images/image.graffle poster/master.graffle/data.plist poster/master.graffle/image17.pdf poster/master.graffle/image8.png slide/s6/index.html |
diffstat | 6 files changed, 3977 insertions(+), 316 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/images/image.graffle Fri Feb 19 14:30:11 2016 +0900 +++ b/paper/images/image.graffle Sat Feb 20 18:32:23 2016 +0900 @@ -26,7 +26,7 @@ <key>MasterSheets</key> <array/> <key>ModificationDate</key> - <string>2016-02-19 04:55:01 +0000</string> + <string>2016-02-20 07:40:07 +0000</string> <key>Modifier</key> <string>MasaKoha</string> <key>NotesVisible</key> @@ -15215,7 +15215,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 -\f0\fs32 \cf0 1}</string> +\f0\fs32 \cf0 0}</string> </dict> </dict> <dict> @@ -15241,7 +15241,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 -\f0\fs32 \cf0 0}</string> +\f0\fs32 \cf0 1}</string> </dict> </dict> <dict> @@ -15459,7 +15459,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 -\f0\fs32 \cf0 1}</string> +\f0\fs32 \cf0 0}</string> </dict> </dict> <dict> @@ -15485,7 +15485,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 -\f0\fs32 \cf0 0}</string> +\f0\fs32 \cf0 1}</string> </dict> </dict> <dict> @@ -31978,6 +31978,63 @@ <array> <dict> <key>Bounds</key> + <string>{{128.92326999369726, 304.72441221362965}, {67, 30}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>ID</key> + <integer>48</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;} +{\colortbl;\red255\green255\blue255;} +\deftab720 +\pard\pardeftab720\partightenfactor0 + +\f0\fs32 \cf0 file read}</string> + </dict> + <key>Wrap</key> + <string>NO</string> + </dict> + <dict> + <key>Bounds</key> <string>{{617.38390404288373, 90.708662240336253}, {93.543307935346888, 30}}</string> <key>Class</key> <string>ShapedGraphic</string> @@ -87080,14 +87137,14 @@ <key>WindowInfo</key> <dict> <key>CurrentSheet</key> - <integer>20</integer> + <integer>8</integer> <key>Expanded_Canvases</key> <array> <string>キャンバス 7</string> <string>cctree</string> </array> <key>Frame</key> - <string>{{0, 38}, {1279, 1139}}</string> + <string>{{0, 64}, {1920, 1113}}</string> <key>ShowInfo</key> <true/> <key>ShowRuler</key> @@ -87099,7 +87156,7 @@ <key>TopSlabHeight</key> <real>682</real> <key>VisibleRegion</key> - <string>{{0, -99}, {605, 981}}</string> + <string>{{-64, -86}, {1246, 955}}</string> <key>Zoom</key> <real>1</real> <key>ZoomValues</key>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/poster/master.graffle/data.plist Sat Feb 20 18:32:23 2016 +0900 @@ -0,0 +1,3831 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>ActiveLayerIndex</key> + <integer>0</integer> + <key>ApplicationVersion</key> + <array> + <string>com.omnigroup.OmniGraffle6</string> + <string>169.5.0.253125</string> + </array> + <key>AutoAdjust</key> + <true/> + <key>BackgroundGraphic</key> + <dict> + <key>Bounds</key> + <string>{{0, 0}, {4055.244140625, 5721.3701171875}}</string> + <key>Class</key> + <string>SolidGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>28</real> + </dict> + <key>ID</key> + <integer>2</integer> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <key>BaseZoom</key> + <integer>0</integer> + <key>CanvasOrigin</key> + <string>{0, 0}</string> + <key>ColumnAlign</key> + <integer>1</integer> + <key>ColumnSpacing</key> + <real>36</real> + <key>CreationDate</key> + <string>2012-01-04 16:02:58 +0000</string> + <key>Creator</key> + <string>Daichi TOMA</string> + <key>DisplayScale</key> + <string>1.0000 cm = 1.0000 cm</string> + <key>GraphDocumentVersion</key> + <integer>12</integer> + <key>GraphicsList</key> + <array> + <dict> + <key>Bounds</key> + <string>{{23.435073087455748, 1961.5747906662486}, {930.42320328358016, 93}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>3377</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'81\'45\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'cc\'95\'aa\'8a\'84\'95\'94\'95\'aa\'82\'c5\'8c\'8b\'89\'ca\'82\'cc\'90\'ae\'8d\'87\'90\'ab\'82\'aa\'8e\'e6\'82\'ea\'82\'c8\'82\'a2\'8f\'ea\'8d\'87\'82\'aa\'82\'a0\'82\'e9\'81\'42\'82\'bb\'82\'cc\'8f\'ea\'8d\'87\'82\'cd\'81\'41\'95\'b6\'8e\'9a\'97\'f1\'8f\'88\'97\'9d\'82\'cc\'93\'e0\'97\'65\'82\'c9\'82\'e6\'82\'c1\'82\'c4\'97\'6c\'81\'58\'82\'c8\'95\'fb\'96\'40\'82\'c5\'90\'ae\'8d\'87\'90\'ab\'82\'f0\'8e\'e6\'82\'e9}</string> + <key>VerticalPad</key> + <real>1</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{33.995340067998711, 1587.5863675705809}, {318.91804896080953, 363}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>3376</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'81\'45\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'f0\'82\'a0\'82\'e9\'92\'f6\'93\'78\'82\'cc\'91\'e5\'82\'ab\'82\'b3\'82\'c9\'95\'aa\'8a\'84\'82\'b7\'82\'e9\ +\'81\'45\'95\'aa\'8a\'84\'82\'b5\'82\'bd\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'c9\'91\'ce\'82\'b5\'82\'c4\'82\'bb\'82\'ea\'82\'bc\'82\'ea\'82\'c9\'95\'b6\'8e\'9a\'97\'f1\'8f\'88\'97\'9d\'82\'f0\'82\'b7\'82\'e9\ +\'81\'45\'8d\'c5\'8c\'e3\'82\'c9 Print Task \'82\'c9\'82\'c5\'8f\'57\'8c\'76\ +}</string> + <key>VerticalPad</key> + <real>1</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3373</integer> + <key>Points</key> + <array> + <string>{42.548797124409745, 2114.0078445524923}</string> + <string>{85.288261046716741, 2114.8862366071808}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3374</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3374</integer> + <key>Points</key> + <array> + <string>{36.201166332612196, 2133.4818022758404}</string> + <string>{47.780196329766866, 2097.9583844782346}</string> + <string>{49.961029138468078, 2096.687359867602}</string> + <string>{69.565515350877178, 2098.1074414932896}</string> + <string>{72.441994898262635, 2096.687359867602}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3375</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3375</integer> + <key>Points</key> + <array> + <string>{22.127452483484433, 2133.0851133467581}</string> + <string>{49.869791666666671, 2133.8670731719185}</string> + <string>{62.21567948276487, 2134.0318140906884}</string> + <string>{69.2560505647605, 2135.6748019414104}</string> + <string>{76.724083614414127, 2133.0851133467581}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>3372</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{124.25196854251629, 2651.8378112661858}, {693.54331446801518, 49.57953607882655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>3363</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraginoSans-W3;\f1\fnil\fcharset0 HelveticaNeue;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'89\'89\'8e\'5a\'82\'cc\'97\'44\'90\'e6\'93\'78\'82\'cc\'96\'be\'8e\'a6 +\f1 ( +\f0 \'83\'4f\'83\'8b\'81\'5b\'83\'76 +\f1 )}</string> + </dict> + <key>TextPlacement</key> + <integer>0</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{124.25196854251629, 2602.2582751873624}, {693.54331446801518, 49.57953607882655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>3362</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset128 HiraginoSans-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 A +\f1 \'82\'a9\'82\'e7 +\f0 Z +\f1 \'82\'cc\'94\'cd\'88\'cd\'93\'e0\'82\'cc\'82\'a4\'82\'bf\'94\'43\'88\'d3\'82\'cc\'88\'ea\'95\'b6\'8e\'9a +\f0 ( +\f1 \'95\'b6\'8e\'9a\'83\'4e\'83\'89\'83\'58 +\f0 )}</string> + </dict> + <key>TextPlacement</key> + <integer>0</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{124.25196854251629, 2552.6787391085354}, {693.54331446801518, 49.57953607882655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>3361</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset128 HiraginoSans-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 A +\f1 \'82\'dc\'82\'bd\'82\'cd +\f0 B ( +\f1 \'91\'49\'91\'f0 +\f0 )}</string> + </dict> + <key>TextPlacement</key> + <integer>0</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{124.25196854251629, 2503.0992030297093}, {693.54331446801518, 49.57953607882655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>3360</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraginoSans-W3;\f1\fnil\fcharset0 HelveticaNeue;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'92\'bc\'91\'4f\'82\'cc\'95\'b6\'8e\'9a\'82\'cc +\f1 0 +\f0 \'89\'f1\'88\'c8\'8f\'e3\'82\'cc\'8c\'4a\'95\'d4\'82\'b5}</string> + </dict> + <key>TextPlacement</key> + <integer>0</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{124.25196854251629, 2453.519666950885}, {693.54331446801518, 49.57953607882655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>3359</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraginoSans-W3;\f1\fnil\fcharset0 HelveticaNeue;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'98\'41\'91\'b1\'82\'b5\'82\'bd\'95\'b6\'8e\'9a +\f1 ( +\f0 \'98\'41\'90\'da +\f1 )}</string> + </dict> + <key>TextPlacement</key> + <integer>0</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{41.102362577652343, 2651.8378112661858}, {83.14960596486344, 49.57953607882655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>3358</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs60 \cf0 ( )}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{41.102362577652343, 2602.2582751873624}, {83.14960596486344, 49.57953607882655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>3357</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs60 \cf0 [A-Z]}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{41.102362577652343, 2552.6787391085345}, {83.14960596486344, 49.57953607882655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>3356</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs60 \cf0 A|B}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{41.102362577652343, 2503.0992030297093}, {83.14960596486344, 49.57953607882655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>3355</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs60 \cf0 A*}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{41.102362577652343, 2453.5196669508832}, {83.14960596486344, 49.57953607882655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Size</key> + <real>30</real> + </dict> + <key>ID</key> + <integer>1</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs60 \cf0 ab}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{33.995340067998711, 2401.175315486199}, {978.14778642833062, 48}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>3354</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'83\'54\'83\'7c\'81\'5b\'83\'67\'82\'b7\'82\'e9\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'82\'cc\'89\'89\'8e\'5a\'8e\'71}</string> + <key>VerticalPad</key> + <real>1</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1044.2069053309162, 1307.7953236826556}, {935.43307935346729, 183}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.109804</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>0.694118</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>3303</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;\red177\green0\blue28;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'81\'45\'95\'c0\'97\'f1\'8f\'88\'97\'9d\'8e\'9e\'82\'cc\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'cc\'93\'c7\'82\'dd\'8d\'9e\'82\'dd\'95\'94\'95\'aa\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'89\'fc\'97\'c7\'82\'f0\'8d\'73\'82\'c8\'82\'c1\'82\'bd\'8c\'8b\'89\'ca\'81\'41mmap \'82\'e6\'82\'e8\'82\'e0 Blocked Read \'82\'cc\'82\'d9\'82\'a4\'82\'aa \cf2 13%\cf0 \'91\'ac\'82\'ad\'82\'c8\'82\'c1\'82\'bd\'81\'42\ +\'81\'45\'83\'74\'83\'40\'83\'43\'83\'8b\'93\'c7\'82\'dd\'8d\'9e\'82\'dd\'82\'f0\'8a\'dc\'82\'df\'81\'41CeriumGrep \'82\'aa egrep \'82\'e6\'82\'e8\'82\'e0\'8d\'c5\'91\'e5 66 %\'91\'ac\'82\'ad\'82\'c8\'82\'c1\'82\'bd\'81\'42}</string> + <key>VerticalPad</key> + <real>1</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1108.3497233462854, 1229.2210678828733}, {889.0382080078125, 73}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>3353</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs96 \cf1 \'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'83\'7d\'83\'62\'83\'60\'83\'83\'82\'cc\'90\'ab\'94\'5c\'95\'5d\'89\'bf}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1026.4939947074788, 1288.5656120422436}, {994.98516845703114, 1267.198413101522}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3352</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3348</integer> + <key>Points</key> + <array> + <string>{1050.8732388406922, 1256.1288565640461}</string> + <string>{1093.7185280691813, 1256.9230056663464}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3349</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3349</integer> + <key>Points</key> + <array> + <string>{1044.4813405882971, 1275.4506947137647}</string> + <string>{1056.210463352232, 1239.9951535374003}</string> + <string>{1058.3912961609328, 1238.7241289267681}</string> + <string>{1080.8722619207272, 1238.7241289267681}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3350</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3350</integer> + <key>Points</key> + <array> + <string>{1030.5577195059493, 1275.1218824059245}</string> + <string>{1070.6459465052296, 1276.0685831498547}</string> + <string>{1085.1543506368787, 1275.1218824059245}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1026.4939947074797, 1220.5656120422427}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3351</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>0.80000000000000004</real> + <key>g</key> + <real>0.59999999999999998</real> + <key>r</key> + <real>0.20000000000000001</real> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>3347</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{1108.3497233462851, 732.66955687421284}, {889.0382080078125, 70}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>46</real> + </dict> + <key>ID</key> + <integer>3338</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs92 \cf1 \'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'83\'7d\'83\'62\'83\'60\'83\'83\'82\'cc\'83\'74\'83\'40\'83\'43\'83\'8b\'95\'aa\'8a\'84\'8e\'9e\'82\'cc\'8f\'88\'97\'9d}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{33.995340067998711, 2161.6781981953527}, {978.14778642833062, 228}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>3337</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'8e\'c0\'91\'95\'82\'b5\'82\'bd\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'83\'7d\'83\'62\'83\'60\'83\'83\'82\'cc\'83\'41\'83\'8b\'83\'53\'83\'8a\'83\'59\'83\'80\'82\'cd\ +\'81\'45\'97\'5e\'82\'a6\'82\'e7\'82\'ea\'82\'bd\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'82\'f0\'8d\'5c\'95\'b6\'89\'f0\'90\'cd\'82\'b5\'81\'41\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'96\'d8\'82\'c9\'95\'cf\'8a\'b7\ +\'81\'45\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'96\'d8\'82\'d6\'82\'cc\'8f\'f3\'91\'d4\'8a\'84\'82\'e8\'93\'96\'82\'c4\ +\'81\'45Subset Construction \'82\'c9\'82\'e6\'82\'e9\'8f\'f3\'91\'d4\'82\'cc\'95\'cf\'8a\'b7\ +\'81\'45\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'83\'7d\'83\'62\'83\'60\'83\'83\'82\'cc\'95\'c0\'97\'f1\'8f\'88\'97\'9d\'82\'cc\'8e\'c0\'91\'95}</string> + <key>VerticalPad</key> + <real>1</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{101.07475696380466, 2092.1023408370429}, {843.98895263671875, 73}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>3336</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs96 \cf1 \'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'83\'7d\'83\'62\'83\'60\'83\'83\'82\'cc\'8e\'c0\'91\'95}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{18.063727685014157, 2150.1810506234833}, {994.98516845703114, 575.33078512912016}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3330</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3332</integer> + <key>Points</key> + <array> + <string>{42.514896989333316, 2249.7063914367791}</string> + <string>{85.288261046717054, 2250.5080338574026}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3333</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3333</integer> + <key>Points</key> + <array> + <string>{36.202591853472036, 2269.0393010744324}</string> + <string>{47.780196329767733, 2233.5801817284573}</string> + <string>{49.961029138468604, 2232.3091571178247}</string> + <string>{72.441994898262948, 2232.3091571178247}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3334</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3334</integer> + <key>Points</key> + <array> + <string>{22.12745248348466, 2268.7069105969804}</string> + <string>{62.215679482765438, 2269.6536113409111}</string> + <string>{69.256050564760983, 2271.2965991916326}</string> + <string>{76.724083614414496, 2268.7069105969804}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{18.063727685014612, 2082.1810809045064}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3335</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>0.80000000000000004</real> + <key>g</key> + <real>0.59999999999999998</real> + <key>r</key> + <real>0.20000000000000001</real> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{349.45928267248973, 1552.6141774736589}, {655.33704041666761, 381.35432295433202}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3328</integer> + <key>ImageID</key> + <integer>17</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{101.07475696380513, 1469.7637928629485}, {843.98895263671875, 73}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>3327</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs96 \cf1 \'95\'b6\'8e\'9a\'97\'f1\'8f\'88\'97\'9d\'82\'cc\'95\'c0\'97\'f1\'8f\'88\'97\'9d}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1041.7322929163618, 2881.5682063940776}, {523.78973388671875, 273}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>3304</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'8a\'6d\'94\'46\'82\'b7\'82\'e9\'82\'b1\'82\'c6\'83\'8a\'83\'58\'83\'67\ +\'81\'45\'8d\'da\'82\'b9\'82\'e9\'83\'78\'83\'93\'83\'60\'83\'7d\'81\'5b\'83\'4e\'82\'cd\'82\'b1\'82\'ea\'82\'c5\'82\'a2\'82\'a2\'82\'a9\ +\'81\'45\'83\'78\'83\'93\'83\'60\'83\'7d\'81\'5b\'83\'4e\'82\'cd\'83\'89\'83\'43\'83\'93\'82\'c5\'8b\'e6\'90\'d8\'82\'e9\'82\'cc\'82\'c5\'82\'cd\'82\'c8\'82\'ad\'95\'ca\'82\'cc\'8d\'80\'96\'da\'82\'c9\'82\'ed\'82\'af\'82\'e9\'82\'d7\'82\'ab\'82\'a9\ +\'81\'45\'8d\'a1\'8c\'e3\'82\'cc\'89\'db\'91\'e8\'81\'41\'83\'7c\'83\'58\'83\'5e\'81\'5b\'82\'c5\'82\'cd\'82\'b1\'82\'ea\'82\'ad\'82\'e7\'82\'a2\'82\'c9\'82\'b5\'82\'c4\'8c\'fb\'93\'aa\'82\'c5\'90\'e0\'96\'be\'82\'b7\'82\'d7\'82\'ab\'82\'a9}</string> + <key>VerticalPad</key> + <real>1</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{190.22289411920599, 1031.5308656959924}, {672.03662109375, 210.04394871861018}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3288</integer> + <key>ImageID</key> + <integer>8</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1030.0938667250412, 2641.9942702804483}, {978.14778642833062, 183}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>3090</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'81\'45\'95\'b6\'8e\'9a\'92\'50\'88\'ca\'82\'c9\'8f\'f3\'91\'d4\'82\'f0\'8a\'84\'82\'e8\'90\'55\'82\'e9\'82\'cc\'82\'c5\'82\'cd\'82\'c8\'82\'ad\'81\'41\'95\'b6\'8e\'9a\'97\'f1\'92\'50\'88\'ca\'82\'c5\'8f\'f3\'91\'d4\'82\'f0\'8a\'84\'82\'e8\'90\'55\'82\'e9\'82\'b1\'82\'c6\'82\'c9\'82\'e6\'82\'c1\'82\'c4\'8f\'f3\'91\'d4\'90\'94\'82\'f0\'97\'7d\'82\'a6\'82\'e9\ +\'81\'45\'95\'b6\'8e\'9a\'97\'f1\'82\'f0\'8c\'9f\'8d\'f5\'82\'b7\'82\'e9\'8d\'db\'82\'c9 Boyer-Moore Search \'82\'f0\'97\'98\'97\'70\'82\'b7\'82\'e9\'82\'b1\'82\'c6\'82\'c9\'82\'e6\'82\'e8\'81\'41\'82\'b3\'82\'e7\'82\'c9\'8d\'82\'91\'ac\'89\'bb\'82\'c5\'82\'ab\'82\'e9\'82\'b1\'82\'c6\'82\'aa\'8a\'fa\'91\'d2\'82\'b3\'82\'ea\'82\'e9\'81\'42}</string> + <key>VerticalPad</key> + <real>1</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1105.8456355548037, 2582.4195677342918}, {889.0382080078125, 73}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>3089</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs96 \cf1 \'8d\'a1\'8c\'e3\'82\'cc\'89\'db\'91\'e8}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1022.8346594041457, 2637.6476526168303}, {994.98516845703114, 202.18446350097656}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3088</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3084</integer> + <key>Points</key> + <array> + <string>{1047.2138504092259, 2603.4823878519628}</string> + <string>{1090.0591396377154, 2604.2765369542631}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3085</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3085</integer> + <key>Points</key> + <array> + <string>{1040.821952156831, 2622.8042260016814}</string> + <string>{1052.5510749207654, 2587.3486848253169}</string> + <string>{1054.7319077294667, 2586.0776602146848}</string> + <string>{1077.2128734892613, 2586.0776602146848}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3086</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3086</integer> + <key>Points</key> + <array> + <string>{1026.8983310744829, 2622.4754136938409}</string> + <string>{1066.9865580737635, 2623.4221144377711}</string> + <string>{1081.4949622054128, 2622.4754136938409}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1022.8346062760133, 2567.9191433301594}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3087</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>0.80000000000000004</real> + <key>g</key> + <real>0.59999999999999998</real> + <key>r</key> + <real>0.20000000000000001</real> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>3083</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{1107.0304115717133, 314.29838412443144}, {889.0382080078125, 73}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>3081</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs96 \cf1 Bit Pattern \'82\'c9\'82\'e6\'82\'e9\'8f\'f3\'91\'d4\'82\'cc\'95\'5c\'8c\'bb}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3076</integer> + <key>Points</key> + <array> + <string>{1048.3986264261355, 340.21858961589322}</string> + <string>{1091.243915654625, 341.01273871819365}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3077</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3077</integer> + <key>Points</key> + <array> + <string>{1042.0067281737406, 359.54042776561175}</string> + <string>{1053.735850937675, 324.0848865892475}</string> + <string>{1055.9166837463763, 322.81386197861536}</string> + <string>{1078.3976495061709, 322.81386197861536}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3078</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3078</integer> + <key>Points</key> + <array> + <string>{1028.0831070913925, 359.21161545777142}</string> + <string>{1068.1713340906731, 360.15831620170167}</string> + <string>{1082.6797382223224, 359.21161545777142}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1024.019382292923, 304.65534509408985}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3079</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>0.80000000000000004</real> + <key>g</key> + <real>0.59999999999999998</real> + <key>r</key> + <real>0.20000000000000001</real> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>3075</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{2130.2362398003966, 1320.8753717702209}, {994.98516845703114, 48}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1079</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'81\'45}</string> + <key>VerticalPad</key> + <real>1</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{18.063727685014612, 1525.0078569543771}, {994.98516845703114, 542.86617755578845}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3321</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3369</integer> + <key>Points</key> + <array> + <string>{42.548797124409738, 1492.4868888048165}</string> + <string>{85.288261046716826, 1493.3652808595048}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3370</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3370</integer> + <key>Points</key> + <array> + <string>{36.201166332612203, 1511.9608465281649}</string> + <string>{47.780196329766866, 1476.4374287305591}</string> + <string>{49.961029138468078, 1475.1664041199265}</string> + <string>{69.565515350877178, 1476.5864857456138}</string> + <string>{72.441994898262649, 1475.1664041199265}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3371</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3371</integer> + <key>Points</key> + <array> + <string>{22.127452483484433, 1511.5641575990826}</string> + <string>{49.869791666666671, 1512.3461174242427}</string> + <string>{62.21567948276487, 1512.5108583430128}</string> + <string>{69.256050564760514, 1514.1538461937348}</string> + <string>{76.724083614414155, 1511.5641575990826}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>3368</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{18.063727685014726, 1457.0078872354011}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3326</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>0.80000000000000004</real> + <key>g</key> + <real>0.59999999999999998</real> + <key>r</key> + <real>0.20000000000000001</real> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1026.4939947074788, 792.01410103358319}, {994.98516845703114, 416.39639282226562}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1069</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1065</integer> + <key>Points</key> + <array> + <string>{1050.8732388406918, 759.57734555538559}</string> + <string>{1093.7185280691808, 760.37149465768584}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1066</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1066</integer> + <key>Points</key> + <array> + <string>{1044.4813405882967, 778.89918370510406}</string> + <string>{1056.2104633522315, 743.4436425287397}</string> + <string>{1058.3912961609324, 742.17261791810756}</string> + <string>{1080.8722619207267, 742.17261791810756}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1067</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1067</integer> + <key>Points</key> + <array> + <string>{1030.5577195059489, 778.57037139726367}</string> + <string>{1070.6459465052292, 779.51707214119392}</string> + <string>{1085.1543506368782, 778.57037139726367}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1026.4939947074793, 724.01410103358194}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1068</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>0.80000000000000004</real> + <key>g</key> + <real>0.59999999999999998</real> + <key>r</key> + <real>0.20000000000000001</real> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>1064</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{23.435073087455748, 802.69683981555431}, {971.47705078125, 138}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1047</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'81\'45Cerium\'82\'cdLinux\'81\'41MacOSX\'8f\'e3\'82\'c5\'93\'ae\'8d\'ec\'82\'b7\'82\'e9\'94\'c4\'97\'70\'8c\'76\'8e\'5a\'97\'70\'82\'cc\'83\'74\'83\'8c\'81\'5b\'83\'80\'83\'8f\'81\'5b\'83\'4e\ +\'81\'45Cerium\'82\'cd\'83\'7d\'83\'8b\'83\'60\'83\'52\'83\'41CPU\'82\'c6GPU\'82\'c9\'82\'a8\'82\'af\'82\'e9\'95\'c0\'97\'f1\'83\'76\'83\'8d\'83\'4f\'83\'89\'83\'7e\'83\'93\'83\'4f\'82\'f0\'89\'c2\'94\'5c\'82\'c9\'82\'b7\'82\'e9}</string> + <key>VerticalPad</key> + <real>1</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{99.186841917218089, 733.6571400639242}, {843.98895263671875, 65}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>1046</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs86 \cf1 \'95\'c0\'97\'f1\'83\'76\'83\'8d\'83\'4f\'83\'89\'83\'7e\'83\'93\'83\'4f\'83\'74\'83\'8c\'81\'5b\'83\'80\'83\'8f\'81\'5b\'83\'4eCerium}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{16.175812638427658, 792.01410103358171}, {994.98516845703114, 147.28144836425781}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1044</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1039</integer> + <key>Points</key> + <array> + <string>{43.190429477630474, 992.70515459568435}</string> + <string>{85.28826104671657, 993.02756346570698}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1038</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1038</integer> + <key>Points</key> + <array> + <string>{36.051073565832361, 1011.5552525131254}</string> + <string>{49.961029138467936, 974.82868672612892}</string> + <string>{72.441994898262493, 974.82868672612892}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1037</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1037</integer> + <key>Points</key> + <array> + <string>{22.127452483484426, 1011.2264402052853}</string> + <string>{62.215679482764742, 1012.1731409492151}</string> + <string>{76.724083614414013, 1011.2264402052853}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{18.063727685014605, 1250.8725340931899}, {978.14778642833062, 183}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1036</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'81\'45I/O\'82\'f0\'8a\'dc\'82\'de\'83\'76\'83\'8d\'83\'4f\'83\'89\'83\'80\'82\'cd\'93\'c7\'82\'dd\'8d\'9e\'82\'dd\'95\'94\'95\'aa\'82\'aa\'83\'6c\'83\'62\'83\'4e\'82\'c9\'82\'c8\'82\'e9\'82\'b1\'82\'c6\'82\'aa\'91\'bd\'82\'a2\ +\'81\'45\'95\'c0\'97\'f1I/O BlockedRead\'82\'f0\'8e\'c0\'91\'95\ +\'81\'45\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'f0\'95\'aa\'8a\'84\'82\'b5\'82\'c4\'93\'c7\'82\'dd\'8d\'9e\'82\'dd\'81\'41\'93\'c7\'82\'dd\'8d\'9e\'82\'f1\'82\'be\'95\'94\'95\'aa\'82\'c9Task\'82\'f0\'8a\'84\'82\'e8\'93\'96\'82\'c4\'82\'e9\ +\'81\'45\'93\'c7\'82\'dd\'8d\'9e\'82\'dd\'90\'ea\'97\'70\'82\'ccThread\'82\'f0\'8e\'c0\'91\'95\'82\'b5\'81\'41\'97\'44\'90\'e6\'93\'78\'82\'f0\'90\'dd\'92\'e8}</string> + <key>VerticalPad</key> + <real>1</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{101.07475696380516, 969.17060679139934}, {843.98895263671875, 73}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>1035</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs96 \cf1 \'95\'c0\'97\'f1\'8f\'88\'97\'9d\'8c\'fc\'82\'afI/O BlockedRead}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{18.063727685014719, 959.52756776105696}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1034</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>0.80000000000000004</real> + <key>g</key> + <real>0.59999999999999998</real> + <key>r</key> + <real>0.20000000000000001</real> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{19.046553112505819, 1027.627178749322}, {994.98516845703114, 409.53818862100547}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1033</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3316</integer> + <key>Points</key> + <array> + <string>{39.126701511968491, 339.1928716562025}</string> + <string>{81.224533081054688, 339.51528052622513}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3317</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3317</integer> + <key>Points</key> + <array> + <string>{31.987345600170322, 358.04296957364335}</string> + <string>{45.89730117280606, 321.31640378664719}</string> + <string>{68.378266932600667, 321.31640378664719}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3318</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>3318</integer> + <key>Points</key> + <array> + <string>{18.063724517822315, 357.71415726580312}</string> + <string>{58.151951517102724, 358.66085800973303}</string> + <string>{72.660355648752045, 357.71415726580312}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>3315</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{1132.440955156698, 208.91566756049531}, {889.0382080078125, 97}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>13</real> + </dict> + <key>ID</key> + <integer>24</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs128 \cf1 \'8c\'c3\'94\'67\'91\'71 \'90\'b3\'97\'b2 (\'95\'c0\'97\'f1\'90\'4d\'97\'8a\'8c\'a4\'8b\'86\'8e\'ba)}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{27.929965899289073, 380.62833913257816}, {971.47705078125, 48}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>989</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs60 \cf0 \'81\'45}</string> + <key>VerticalPad</key> + <real>1</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{41.102362577652364, 95.286078060684758}, {1924.739013671875, 115}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W6</string> + <key>Size</key> + <real>103</real> + </dict> + <key>ID</key> + <integer>5</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\slleading-800\pardirnatural\qc\partightenfactor0 + +\f0\b\fs206 \cf1 Cerium \'82\'c9\'82\'e6\'82\'e9\'95\'b6\'8e\'9a\'97\'f1\'8f\'88\'97\'9d\'82\'cc\'95\'c0\'97\'f1\'8f\'88\'97\'9d}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{14, 14.786078060684758}, {2001.00004626803, 272}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>10</real> + </dict> + <key>ID</key> + <integer>23</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>0.91372500000000001</real> + <key>g</key> + <real>0.62745099999999998</real> + <key>r</key> + <real>0.0</real> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.72549</string> + <key>g</key> + <string>0.419608</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{97.011028998143161, 315.65832385191749}, {843.98895263671875, 73}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>10</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <real>0.0</real> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs96 \cf1 \'8c\'a4\'8b\'86\'8a\'54\'97\'76}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{13.999999719352729, 306.01528482157511}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3319</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>0.80000000000000004</real> + <key>g</key> + <real>0.59999999999999998</real> + <key>r</key> + <real>0.20000000000000001</real> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{13.999999719352729, 374.01528482157528}, {994.98516845703114, 330.09136962890625}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>27</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1052</integer> + <key>Points</key> + <array> + <string>{40.555056771640366, 759.57734555538514}</string> + <string>{83.400346000129602, 760.37149465768539}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1053</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1053</integer> + <key>Points</key> + <array> + <string>{34.163158519245314, 778.89918370510372}</string> + <string>{45.892281283179898, 743.44364252873936}</string> + <string>{48.073114091881081, 742.17261791810733}</string> + <string>{70.554079851675681, 742.17261791810733}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1054</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1054</integer> + <key>Points</key> + <array> + <string>{20.239537436897301, 778.57037139726333}</string> + <string>{60.327764436177716, 779.51707214119358}</string> + <string>{74.836168567827031, 778.57037139726333}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>1</real> + <key>g</key> + <real>1</real> + <key>r</key> + <real>1</real> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{16.175812638427772, 724.01410103358182}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1055</integer> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <real>0.80000000000000004</real> + <key>g</key> + <real>0.59999999999999998</real> + <key>r</key> + <real>0.20000000000000001</real> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>1051</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{1024.0193822929225, 372.65534509409184}, {994.98516845703114, 324.66749587849301}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3080</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + </array> + <key>GridInfo</key> + <dict> + <key>GridSpacing</key> + <real>35.433071136474609</real> + <key>ShowsGrid</key> + <string>YES</string> + </dict> + <key>GuidesLocked</key> + <string>NO</string> + <key>GuidesVisible</key> + <string>YES</string> + <key>HPages</key> + <integer>2</integer> + <key>ImageCounter</key> + <integer>18</integer> + <key>ImageLinkBack</key> + <array> + <dict/> + <dict/> + </array> + <key>ImageList</key> + <array> + <string>image17.pdf</string> + <string>image8.png</string> + </array> + <key>KeepToScale</key> + <false/> + <key>Layers</key> + <array> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>Layer 1</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + </array> + <key>LayoutInfo</key> + <dict> + <key>Animate</key> + <string>NO</string> + <key>circoMinDist</key> + <real>18</real> + <key>circoSeparation</key> + <real>0.0</real> + <key>layoutEngine</key> + <string>dot</string> + <key>neatoLineLength</key> + <real>0.20000000298023224</real> + <key>neatoSeparation</key> + <real>0.0</real> + <key>twopiSeparation</key> + <real>0.0</real> + </dict> + <key>LinksVisible</key> + <string>NO</string> + <key>MagnetsVisible</key> + <string>NO</string> + <key>MasterSheets</key> + <array/> + <key>ModificationDate</key> + <string>2016-02-20 09:31:33 +0000</string> + <key>Modifier</key> + <string>MasaKoha</string> + <key>NotesVisible</key> + <string>NO</string> + <key>Orientation</key> + <integer>2</integer> + <key>OriginVisible</key> + <string>NO</string> + <key>PageBreaks</key> + <string>YES</string> + <key>PrintInfo</key> + <dict> + <key>NSBottomMargin</key> + <array> + <string>float</string> + <string>41</string> + </array> + <key>NSHorizonalPagination</key> + <array> + <string>coded</string> + <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string> + </array> + <key>NSLeftMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + <key>NSPaperName</key> + <array> + <string>string</string> + <string>F1908B22-D96B-4915-8E21-92F4FAA2F858</string> + </array> + <key>NSPaperSize</key> + <array> + <string>size</string> + <string>{2063.6220703125, 2919.68505859375}</string> + </array> + <key>NSPrintReverseOrientation</key> + <array> + <string>coded</string> + <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string> + </array> + <key>NSRightMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + <key>NSTopMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + </dict> + <key>PrintOnePage</key> + <false/> + <key>ReadOnly</key> + <string>NO</string> + <key>RowAlign</key> + <integer>1</integer> + <key>RowSpacing</key> + <real>36</real> + <key>SheetTitle</key> + <string>Canvas 1</string> + <key>SmartAlignmentGuidesActive</key> + <string>YES</string> + <key>SmartDistanceGuidesActive</key> + <string>YES</string> + <key>UniqueID</key> + <integer>1</integer> + <key>UseEntirePage</key> + <false/> + <key>VPages</key> + <integer>2</integer> + <key>WindowInfo</key> + <dict> + <key>CurrentSheet</key> + <integer>0</integer> + <key>Expanded_Canvases</key> + <array/> + <key>Frame</key> + <string>{{-1882, 265}, {1494, 1152}}</string> + <key>ShowInfo</key> + <true/> + <key>Sidebar</key> + <true/> + <key>SidebarWidth</key> + <integer>172</integer> + <key>TopSlabHeight</key> + <real>250</real> + <key>VisibleRegion</key> + <string>{{0, 0}, {1932.075471698113, 1966.0377358490564}}</string> + <key>Zoom</key> + <real>0.53000000000000003</real> + <key>ZoomValues</key> + <array> + <array> + <string>Canvas 1</string> + <real>0.53000000000000003</real> + <real>0.57999999999999996</real> + </array> + </array> + </dict> +</dict> +</plist>
--- a/slide/s6/index.html Fri Feb 19 14:30:11 2016 +0900 +++ b/slide/s6/index.html Sat Feb 20 18:32:23 2016 +0900 @@ -161,7 +161,8 @@ <div class='slide'> <h2>mmap の特徴</h2> これまで Cerium での文字列処理の例題では File 読み込みを mmap にて行なっていた。 - <object data="images/cerium/mmap.svg" width="50%" type="image/svg+xml"></object><br> + <br> + <object data="images/cerium/mmap.svg" width="40%" type="image/svg+xml"></object><br> <br> <ul> @@ -245,76 +246,23 @@ ファイルを読み込んで文字列処理をする流れを 1 つのクラスとして Cerium 内に組み込んだ。 このクラスは、ファイルをマッピングし処理をすることで小さいデータの集合を出力することから FileMapReduce と名付けた。 </p> + <p>FileMapReduce を利用するメリット</p> + <ul> + <li> + cpu の数の設定や読み込み方法(mmap or Blocked Read)のオプションを解釈する。 + </li> + <li> + 計算を行う Task とファイル読み込みを行う Task が生成される。さらに依存関係が設定される。 + </li> + <li> +計算を行う Task と結果の整合や表示を行う Print Task をそれぞれ決められたフォーマットに沿って記述すればよい。 + </li> + <p></p> </div> - <div class='slide'> - <h2>FileMapReduce</h2> -<pre> -TMmain(TaskManager *manager, int argc, char *argv[]) -{ - char *filename = 0; - FileMapReduce *fmp = - new FileMapReduce(manager,TASK_EXEC,TASK_EXEC_DATA_PARALLEL,TASK_PRINT); - filename = fmp->init(argc, argv); - - - if (filename < 0) { - return -1; - } - - fmp->w->global = (void*)DATA; - fmp->division_out_size = sizeof(unsigned long long)*DATA_NUM; - - task_init(); - fmp->run_start(manager, filename); - return 0; -} -</pre> - <ul> -<li> TASK_EXEC : 計算を行う Task</li> -<li> TASK_EXEC_DATA_PARALLEL : GPU にて計算を行う Task</li> -<li> TASK_PRINT : 結果を集計する Task</li> - </ul> - <p> - fmp->init で cpu の数の設定や読み込み方法(mmap or Blocked Read)のオプションを解釈する。 - </p> - <p> - fmp->division_out_size で計算を行う Task の出力されるデータ数を設定できる。 - </p> - <p> - run_start で計算を行う Task とファイル読み込みを行う Task が生成される。さらに依存関係が設定される。 - </p> - <p> - Task にデータを渡したい場合、fmp->w->global にセットすればよい。 - </p> - <p> -計算を行う Task と結果の整合や表示を行う Print Task をそれぞれ決められたフォーマットに沿って記述すればよい。 - </p> - </div> - +<!-- <div class='slide'> <h2>FileMapReduce を利用した Task の記述 </h2> -<pre> -SchedDefineTask1(Exec,task_exec); - -static int -task_exec(SchedTask *s, void *rbuf, void *wbuf) -{ - //get_input - unsigned char *i_data = (unsigned char *)s->get_input(0); - int length = (int)s->get_inputSize(0); - MapReduce *w = (MapReduce*)s->get_param(4); - - (STRUCTPtr) DATA = (STRUCTPtr)w->global; - - // Word Count, Boyer-Moore Search, grep - - o_data[0] = SET_RESULT0; - o_data[1] = SET_RESULT1; - - return 0; -} -</pre> <p> Task の生成で渡された DATA を w->global で受け取ることができる。 </p> @@ -325,21 +273,6 @@ <div class='slide'> <h2>Print の記述 </h2> -<pre> -SchedDefineTask1(Print,run_print); - -static int -run_print(SchedTask *s, void *rbuf, void *wbuf) -{ - MapReduce *w = (MapReduce*)s->get_input(0); - int out_size = w->division_out_size / sizeof(unsigned long long); - int out_task_num = w->task_num; - - // printf(w->o_data[i*out_size+0]); - - return 0; -} -</pre> <p> Task の o_data で渡されたデータを Print Task で集計する。 </p> @@ -347,10 +280,11 @@ 例題によって分割された部分の処理が必要である。その処理もここに記述する。 </p> </div> +--> <div class='slide'> - <h2>Word Count</h2> + <h2>文字列処理の例題 : Word Count</h2> <object data="images/example/wordcount.svg" width="70%" type="image/svg+xml"></object><br> <li> Word Count は読み込んだファイルの単語数を数える。 @@ -372,7 +306,7 @@ </div> <div class='slide'> - <h2>Boyer-Moore Search</h2> + <h2>文字列処理の例題 : Boyer-Moore Search</h2> <p> 文字列検索を高速に行うアルゴリズム 力任せ法との大きな違いは、text と pattern を先頭から比較するのではなく、 pattern の末尾から比較していくことである。 @@ -428,61 +362,9 @@ <h2>正規表現から正規表現木の生成</h2> <p>正規表現木を二分木で構成する。</p> <object data="images/regex/parser.svg" width="50%" type="image/svg+xml"></object><br> -<pre> -static -NodePtr regexAtom(RegexInfoPtr ri) { - - NodePtr n = NULL; - if (ri->tokenType == 'c') n = charClass(ri); - else if (ri->tokenType == 'a') n = literal(ri); - else if (ri->tokenType == '(') { - n = regex(ri); - if (ri->tokenType != ')') { - // error - fprintf(stderr,"unclosed ')' before %s \n", ri->ptr); - return createNode(ri,0,0,0,0); - } - token(ri); - } - if (ri->tokenType == '*') { - n = createNode(ri,'*',0,n,0); - token(ri); - } - return n; -} - -NodePtr regex(RegexInfoPtr ri) { - token(ri); - NodePtr n = regexAtom(ri); - while (ri->tokenType) { - if (ri->tokenType == '*') { - n = createNode(ri,'*',0,n,0); - token(ri); - return n; - } else if (ri->tokenType == '|') { - n = createNode(ri,'|',0,n,0); - NodePtr n1 = regex(ri); - n->right = n1; - } else if (ri->tokenType == ')') { - return n; - } else if (ri->tokenType == ']') { - // error - return n; - } else { - n = createNode(ri,'+',0,n,0); - NodePtr n1 = regexAtom(ri); - n->right = n1; - } - } - return n; -} -</pre> <ul> <li> -文字列を token で一文字ずつ読み込み、文字の種類によってノードの結合方法を変える。 -</li> -<li> -regexAtom で文字を一文字読み込む。 +文字列を一文字ずつ読み込み、文字の種類によってノードの結合方法を変える。 </li> <li> '*' が読み込まれたら左ノードに接続する。 @@ -491,7 +373,7 @@ '|' が読み込まれたら左ノードに接続し、右ノードは再帰で返されたノードを接続する。 </li> <li> -それ以外(文字か文字クラス)が読み込まれたら左ノードに接続する。そして右ノードは regexAtom で返されたノードを接続する。 +それ以外(文字か文字クラス)が読み込まれたら左ノードに接続する。そして右ノードはその後に続く文字を接続する。 </li> </ul> @@ -520,7 +402,7 @@ </pre> <ul> <li> - 正規表現木の文字ノードもしくは文字クラスノードこの構造体を持っている。 + 正規表現木の文字ノード、文字クラスノードそれぞれが charClass 構造体を持っている。 </li> <li> 文字クラスは二分木で構築されている。 @@ -538,86 +420,15 @@ <h2>正規表現木をオートマトンの状態遷移に沿って状態割当</h2> <object data="images/regex/allostate.svg" width="50%" type="image/svg+xml"></object><br> -<pre> -TGValue generateTransition(NodePtr n,TGValue tgv, int pass) { - if (n->tokenType == '+') { - TGValue tgvLeft = tgv; - tgvLeft.endState = n->right->state; - tgvLeft.asterisk = NULL; - tgvLeft = generateTransition(n->left,tgvLeft,pass); - TGValue tgvRight = tgv; - if (tgvLeft.asterisk) { - n->right->state = tgv.endState; - tgvRight.startState = tgvLeft.asterisk; - tgvRight = generateTransition(n->right,tgvRight,pass); - tgvLeft.asterisk = tgvRight.asterisk; - return tgvLeft; - } - tgvRight.asterisk = NULL; - if (pass==1) { - n->right->state = tgvRight.startState = createState(tgvRight,n->right); - } else { - tgvRight.startState = n->right->state; - tgvRight.tg->stateArray[tgvRight.startState->bitState.bitContainer] = tgvRight.startState ; - } - tgvRight = generateTransition(n->right,tgvRight,pass); - if (tgv.endState && tgvRight.asterisk) tgvRight.startState->accept = tgv.endState->accept; - tgvLeft.asterisk = tgvRight.asterisk; - return tgvLeft; - } else if (n->tokenType == '|') { - TGValue tgv1 = generateTransition(n->left,tgv,pass); - tgv1.endState = tgv.endState; - TGValue tgv2 = generateTransition(n->right,tgv1,pass); - return tgv2; - } else if (n->tokenType == '*') { - TGValue tgvAstah = tgv; - tgvAstah.endState = tgvAstah.startState; - if (pass==2) tgvAstah.endState->accept = tgv.endState->accept; - tgvAstah = generateTransition(n->left,tgvAstah,pass); - tgvAstah.asterisk = tgvAstah.startState; - return tgvAstah; - } else if (n->tokenType == 'c' || n->tokenType == 'a'){ - TGValue tgv1 = tgv; - if (pass==1) { - n->stateNum = tgv.startState->stateNum; - n->state = tgv.startState; - } else { - int nextState = tgv.endState->stateNum; - n->nextStateNum = nextState; - n->nextState = tgv.endState; - BitVector bi = createBitVector(nextState); - if (n->nextState->accept) bi = bitSet(bi,1); - setState(n->cc,bi); - tgv1.startState->cc = mergeTransition(tgv1.startState,n->cc); - } - return tgv1; - } else { - return tgv; - } -} -</pre> - <ul> <li> - TGValue は asterisk、startState、endState それぞれの状態を持っている。 - </li> - <li> - 正規表現木を二度 generateTransition に通す。 - </li> - <li> - それらの状態を正規表現木に対して Tree walk しながら状態を割り振っていく。 + '+'ノードの左に'*'無かった場合は、右のノードに新しく状態を作る。 </li> <li> - '+' のとき、 + '|' のとき、左右のノードの先頭の状態に同じ状態を割り振る。 </li> <li> - '|' のとき、 - </li> - <li> - '*' のとき、 - </li> - <li> - 文字または文字クラスのとき、 + '*' のとき、先頭の状態と'*'を子にしている親ノードの後ろのノードと同じ状態にする。 </li> </ul> </div> @@ -639,7 +450,7 @@ 1 入力に対して遷移先が複数存在している場合は、文字によって場合分けをする必要がある。 </li> <li> -このとき、状態 2 と 4 を組み合わせて一つの状態を新しく作り、その状態に遷移させる。新しく作られる状態の数は状態の組み合わせなので、その状態の組み合わせの和をとっている。 +このとき、状態 2 と 4 を組み合わせて一つの状態を新しく作り、その状態に遷移させる。新しく作られる状態の数は状態の組み合わせなので、その状態の組み合わせをとる。 </li> <li> このような変換をすることによって、入力によって遷移先が一意に決定されるようになる。 @@ -685,36 +496,6 @@ <div class='slide'> <h2>並列処理時の正規表現のマッチング</h2> <pre> -static -TSValue stateNothing(TSValue tsv) { - return tsv; -} - -static -TSValue stateSkip(TSValue tsv) { - tsv.current = tsv.tg->stateStart->tState; - if (tsv.matchEnd) { - addResult(tsv,false,tsv.matchBegin,tsv.matchEnd); - tsv.matchEnd = NULL; - } - tsv.matchBegin = tsv.buff.buffptr; // next char may be matchBegin - return tsv; -} - -static -TSValue stateMatch(TSValue tsv) { - tsv.matchEnd = tsv.buff.buffptr; // next char of the match - return tsv; -} - -typedef struct ccv { - unsigned long begin; - unsigned long end; - Word w; - BitVector state; - struct tState *tState; -} CCV,*CCVPtr; - typedef struct tState { State *state; tsValue (*stateSkip)(tsValue); @@ -729,72 +510,23 @@ tState は状態を持ってる。 </li> <li> -文字クラスの Range の情報と遷移先は ccv に格納している。 +文字クラスの Range の情報と状態の遷移先は ccv に格納している。 </li> <li> ある状態が Range にマッチする文字が入力された場合は次の状態に遷移する。 </li> <li> ある状態が受理状態で Range にマッチしない文字が入力されたら、tState->stateSkip には stateSkip、tState->stateMatch には stateMatch を設定する。<br> -受理状態でない場合は、tState->stateMatch に stateNothing を設定する。 +受理状態でない場合は、tState->stateMatch には stateNothing を設定する。 </li> <li> tState は新しい状態に遷移するときに初めて生成される。<br> thread ごとに on the fly で生成されるので、使わない状態は生成されない。 </li> -<li> -文字列処理する前に初期状態からの遷移先だけは生成しておき、それを並列処理の Task に渡す。 -</li> </ul> </div> - <div class='slide'> - <h2>並列処理時の正規表現のマッチング</h2> -<pre> -TSValue tSearch(TSValue tsv) { - next: while (tsv.buff.buffptr < tsv.buff.buffend) { - tsv = tsv.current->stateMatch(tsv); - if (tsv.current->ccvSize==0) { - tsv.current = tsv.tg->stateStart->tState; - } - unsigned char c = *tsv.buff.buffptr++; - for (int i = 0; i < tsv.current->ccvSize; i++) { - CCVPtr ccv = &tsv.current->ccv[i]; - if (c<ccv->begin) { - tsv.current = tsv.tg->stateStart->tState; - tsv = tsv.current->stateSkip(tsv); - goto next; - } else if (c<=ccv->end) { - // range matched. - if (ccv->w.word) { - // match the word. - // if (not match) continue; - } - if (ccv->tState) { - tsv.current = ccv->tState; - } else { - tsv.current = nextTState(ccv->state,tsv.tg); - ccv->tState = tsv.current; - } - goto next; - } - } - tsv.current = tsv.tg->stateStart->tState; - tsv = tsv.current->stateSkip(tsv); - } - return tsv; -} -</pre> - <ul> - <li> - </li> - <li> - </li> - </ul> - </div> - - <div class='slide'> <h2>マッチング結果の Print</h2> <pre> @@ -823,14 +555,12 @@ <div class='slide'> <h2>ファイル分割時の処理</h2> -正規表現をファイル分割して並列処理をする際、本来マッチングする文章がファイル分割によってマッチングしない場合がある。 -<object data="images/regex/regexdivide.svg" width="50%" type="image/svg+xml"></object><br> <p> -並列処理時、分割されたファイルに対してパターンマッチさせるので、分割された1つ目のファイルの末尾の abb 、2つ目のファイルの先頭に bbc はマッチングしない。 -本来分割される前はマッチングする文字列だが、この場合見逃してしまう。 -それを解決するために、正規表現にマッチングし始めたファイルの場所を覚えておく。 - -そして、1つ目のファイルの末尾が状態遷移の途中で終わっていた場合(状態 1 でない場合)は、結果を集計する際に再度マッチングし始めた場所から正規表現をマッチングさせる。 +正規表現をファイル分割して並列処理をする際、本来マッチングする文章がファイル分割によってマッチングしない場合がある。 +</p> +<object data="images/regex/regexdivide.svg" width="60%" type="image/svg+xml"></object><br> +<p> +再度マッチするかどうかは Print Task で行われる。 <p> </div> @@ -1038,8 +768,7 @@ </tbody> </table> <p> -single thread grep や CeriumGrep は繰返し実行をすると実行速度が短くなる。 これは、読み込んだファイルがキャッシュに残っており、ファイル読み込みが省略されるためである。 -しかし egrep は繰返し実行しても毎回ファイルを読み込みにいく。 +egrep は繰返し実行しても、ファイルがキャッシュに入らない。毎回ファイルを読み込みにいく。 CeriumGrep(CPU 12)bread で検索すると、egrep で検索するよりも 4 倍ほど速くなる。 </p> @@ -1204,19 +933,63 @@ <div class='slide'> <h2>結論</h2> <ul> - <li>並列処理時のファイルの読み込みについて改良を行なった結果、最大13\%速くなる。</li> + <li>並列処理時のファイルの読み込みについて改良を行なった結果、最大13%速くなる。</li> <li>ファイル読み込みを含め egrep と比較して最大 66 %速度がでる。</li> </ul> <h2>今後の課題</h2> <ul> <li>文字単位に状態を割り振るのではなく、文字列単位に状態を割り振ることで状態数を抑える</li> <li>現段階の実装では、最大の状態数は 64 に制限されている</li> - <li>状態数を抑えることで、より長い正規表現を検索できるようになる。</li> + <li>状態数を抑えることで、より長い正規表現を検索できるようになる</li> + <li>このときの検索を Boyer-Moore Search で行うことでさらに高速化できることが期待される</li> </ul> - <object data="images/regex/wordstate.svg" type="image/svg+xml" width="50%"></object><br> + <object data="images/regex/wordstate.svg" type="image/svg+xml" width="30%"></object><br> </div> - + <div class='slide'> + <h2>Search 部分のソースコード</h2> +<pre> +TSValue tSearch(TSValue tsv) { + next: while (tsv.buff.buffptr < tsv.buff.buffend) { + tsv = tsv.current->stateMatch(tsv); + if (tsv.current->ccvSize==0) { + tsv.current = tsv.tg->stateStart->tState; + } + unsigned char c = *tsv.buff.buffptr++; + for (int i = 0; i < tsv.current->ccvSize; i++) { + CCVPtr ccv = &tsv.current->ccv[i]; + if (c<ccv->begin) { + tsv.current = tsv.tg->stateStart->tState; + tsv = tsv.current->stateSkip(tsv); + goto next; + } else if (c<=ccv->end) { + // range matched. + if (ccv->w.word) { + // match the word. + // if (not match) continue; + } + if (ccv->tState) { + tsv.current = ccv->tState; + } else { + tsv.current = nextTState(ccv->state,tsv.tg); + ccv->tState = tsv.current; + } + goto next; + } + } + tsv.current = tsv.tg->stateStart->tState; + tsv = tsv.current->stateSkip(tsv); + } + return tsv; +} +</pre> + <ul> + <li> + </li> + <li> + </li> + </ul> + </div> </div> <!-- presentation --> </body>