# HG changeset patch # User Shoshi TAMAKI # Date 1332898917 -32400 # Node ID e5b70f7cd8a64e86873768ccda82ffa9b0ed14c9 hg commit diff -r 000000000000 -r e5b70f7cd8a6 graffle/env-description.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graffle/env-description.graffle Wed Mar 28 10:41:57 2012 +0900 @@ -0,0 +1,1517 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 138.33.0.157554 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-03-27 17:45:40 +0900 + Creator + shoshi + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + Head + + ID + 39 + + ID + 45 + Points + + {446.642, 216.305} + {466, 247.5} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 33 + + + + Bounds + {{349.25, 91}, {117, 28}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 44 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Fibre Channel Link x2\ +for each blade} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 10 + Info + 18 + + ID + 43 + Points + + {406.672, 168.646} + {299.408, 68.9073} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 33 + + + + Class + LineGraphic + Head + + ID + 10 + + ID + 42 + Points + + {306.273, 165.948} + {270.651, 69.9033} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 32 + + + + Class + LineGraphic + Head + + ID + 10 + + ID + 41 + Points + + {209.35, 165.913} + {243.499, 69.8902} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 29 + + + + Class + LineGraphic + Head + + ID + 10 + Info + 23 + + ID + 40 + Points + + {109.03, 168.566} + {214.6, 68.8478} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 28 + + + + Bounds + {{406.25, 247.5}, {119.5, 66.5}} + Class + ShapedGraphic + FontInfo + + Font + HiraKakuProN-W3 + Size + 12 + + ID + 39 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Cylinder + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\deftab720 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380\qc + +\f0\fs20 \cf0 \expnd0\expndtw0\kerning0 +SSD StorageBlade\ +64GB x 4 total\ +blade12 only} + VerticalPad + 0 + + + + Bounds + {{188, 16}, {139, 54}} + Class + ShapedGraphic + FontInfo + + Font + HiraKakuProN-W3 + Size + 12 + + ID + 10 + Magnets + + {-1.20203, 0.576975} + {-1.31659, 0.210654} + {-1.31659, -0.210654} + {-1.20203, -0.576975} + {-0.881338, -1.00051} + {-0.709448, -1.12892} + {-0.502735, -1.23492} + {-0.24876, -1.30992} + {0.264347, -1.30687} + {0.515073, -1.22983} + {0.722536, -1.12059} + {0.886683, -0.995777} + {1.20203, -0.576974} + {1.31659, -0.210654} + {1.31659, 0.210654} + {1.20203, 0.576975} + {0.881339, 1.00051} + {0.709448, 1.12892} + {0.502735, 1.23492} + {0.24876, 1.30992} + {-0.264347, 1.30687} + {-0.515074, 1.22983} + {-0.722536, 1.12059} + {-0.886683, 0.995777} + + Shape + Cylinder + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\deftab720 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380\qc + +\f0\fs20 \cf0 \expnd0\expndtw0\kerning0 +Fibre Channel Storage\ +2TB total} + VerticalPad + 0 + + + + Bounds + {{40.75, 274.5}, {88, 28}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 38 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 10G Ethernet x2\ +for each blade} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 1 + Info + 4 + + ID + 37 + Points + + {410.724, 215.343} + {326.65, 313} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 33 + + + + Class + LineGraphic + Head + + ID + 1 + + ID + 36 + Points + + {308.298, 217.223} + {280.55, 313} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 32 + + + + Class + LineGraphic + Head + + ID + 1 + Info + 2 + + ID + 35 + Points + + {207.495, 217.239} + {234.45, 313} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 29 + + + + Class + LineGraphic + Head + + ID + 1 + Info + 1 + + ID + 34 + Points + + {105.111, 215.379} + {188.026, 312.62} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 28 + + + + Bounds + {{142.25, 313}, {230.5, 37}} + Class + ShapedGraphic + ID + 1 + Magnets + + {-0.685994, -1.14332} + {-0.261488, -1.30744} + {0.261488, -1.30744} + {0.685994, -1.14332} + {1.14332, -0.685995} + {1.30744, -0.261489} + {1.30744, 0.261489} + {1.14332, 0.685995} + {0.685994, 1.14332} + {0.261488, 1.30744} + {-0.261489, 1.30744} + {-0.685994, 1.14332} + {-1.14332, 0.685993} + {-1.30744, 0.261489} + {-1.30744, -0.261489} + {-1.14332, -0.685995} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Switch Blade\ +(network)} + + + + Bounds + {{379.75, 166}, {103, 51}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 10 + + ID + 33 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer12\ +(bldsv12.cr)} + VerticalPad + 0 + + + + Bounds + {{264.25, 166}, {103, 51}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 10 + + ID + 32 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer11\ +(bldsv11.cr)} + VerticalPad + 0 + + + + Bounds + {{148.75, 166}, {103, 51}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 10 + + ID + 29 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer10\ +(bldsv10.cr)} + VerticalPad + 0 + + + + Bounds + {{33.25, 166}, {103, 51}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 10 + + ID + 28 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer09\ +(bldsv09.cr)} + VerticalPad + 0 + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + レイヤー 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-03-27 18:01:40 +0900 + Modifier + shoshi + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSLeftMargin + + float + 18 + + NSPaperSize + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAx7X05TU2l6ZT1mZn2WgVMCgUoDhg== + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + QuickLookPreview + + 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 + 29PnZXtVX1fsDdhSW/3avRdcrKvQ97C3Spu9rKG2luDd9ntfcbKsmGXaOXDJGuwjdq49 + nRX7uo3Fkq4n4+qhy7cvNR4sdVoHF5UREeP0NaqoKwnpi4kmgUyEoQ+cWAP5eQK1YCei + 1QCnQD8m1QB0wHwEKpIqzjYeHpjx0JmMiAXiOyIWSCvkAuGJ/CSn7wOyHR1GB44Dx6CR + XxB8SN8Vyd4xlHm2xmJtZBNifgWBr5qB4JD0ZrD9cv+1GhuQ7xyuw1NG04U2CCc/qjR0 + v79E3JmCmEdtFPmSzkMh0s1/hhtdcKSPpiaSOixZrafqe6ROLggUrSXgMEzqETf+UC8W + SQi9BfRXi7uNZ/RrMwb9XFxGXVtMjomKY70esdhJiFaLVm2vH8F7pKWM6+BeCab2JuE/ + JDlB7TrsO+Eve3sjPbp0LA/SGXMz84ob4t7mqHH7Lr2ZPIi23ITzNN/wNLLmB75m/JXf + ebaTu2hpGI3c3tIXG7npnwlzI6fqDb24Rcy51Mgd9OjYGBzLsbvRR0RkRl1G2kA+o4xV + s3CLqm//BuVrevUKZW5kc3RyZWFtCmVuZG9iago2IDAgb2JqCjIwNzUKZW5kb2JqCjMg + MCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCA0IDAgUiAvUmVzb3VyY2VzIDcgMCBS + IC9Db250ZW50cyA1IDAgUiAvTWVkaWFCb3ggWzAgMCA1NTkgNzgzXQo+PgplbmRvYmoK + NyAwIG9iago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgXSAvQ29sb3JTcGFjZSA8PCAv + Q3MyIDkgMCBSIC9DczEgOCAwIFIgPj4gL0ZvbnQgPDwKL0YzLjEgMTIgMCBSIC9GMS4w + IDEwIDAgUiAvRjIuMCAxMSAwIFIgPj4gPj4KZW5kb2JqCjE0IDAgb2JqCjw8IC9MZW5n + dGggMTUgMCBSIC9OIDEgL0FsdGVybmF0ZSAvRGV2aWNlR3JheSAvRmlsdGVyIC9GbGF0 + ZURlY29kZSA+PgpzdHJlYW0KeAGFUk9IFFEc/s02EoSIQYV4iHcKCZUprKyg2nZ1WZVt + W5XSohhn37qjszPTm9k1xZMEXaI8dQ+iY3Ts0KGbl6LArEvXIKkgCDx16PvN7OoohG95 + O9/7/f1+33tEbZ2m7zspQVRzQ5UrpaduTk2Lgx8pRR3UTlimFfjpYnGMseu5kr+719Zn + 0tiy3se1dvv2PbWVZWAh6i22txD6IZFmAB+ZnyhlgLPAHZav2D4BPFgOrBrwI6IDD5q5 + MNPRnHSlsi2RU+aiKCqvYjtJrvv5uca+i7WJg/5cj2bWjr2z6qrRTNS090ShvA+uRBnP + X1T2bDUUpw3jnEhDGinyrtXfK0zHEZErEEoGUjVkuZ9qTp114HUYu126k+P49hClPslg + qIm16bKZHYV9AHYqy+wQ8AXo8bJiD+eBe2H/W1HDk8AnYT9kh3nWrR/2F65T4HuEPTXg + zhSuxfHaih9eLQFD91QjaIxzTcTT1zlzpIjvMdQZmPdGOaYLMXeWqhM3gDthH1mqZgqx + Xfuu6iXuewJ30+M70Zs5C1ygHElysRXZFNA8CVgUfYuwSQ48Ps4eVeB3qJjAHLmJ3M0o + 9x7VERtno1KBVnqNV8ZP47nxxfhlbBjPgH6sdtd7fP/p4xV117Y+PPmNetw5rr2dG1Vh + VnFlC93/xzKEj9knOabB06FZWGvYduQPmsxMsAwoxH8FPpf6khNV3NXu7bhFEsxQPixs + JbpLVG4p1Oo9g0qsHCvYAHZwksQsWhy4U2u6OXh32CJ6bflNV7Lrhv769nr72vIebcqo + KSgTzbNEZpSxW6Pk3Xjb/WaREZ84Or7nvYpayf5JRRA/hTlaKvIUVfRWUNbEb2cOfhu2 + flw/pef1Qf08CT2tn9Gv6KMRvgx0Sc/Cc1Efo0nwsGkh4hKgioMz1E5UY40D4inx8rRb + ZJH9D0AZ/WYKZW5kc3RyZWFtCmVuZG9iagoxNSAwIG9iago3MDQKZW5kb2JqCjkgMCBv + YmoKWyAvSUNDQmFzZWQgMTQgMCBSIF0KZW5kb2JqCjE2IDAgb2JqCjw8IC9MZW5ndGgg + MTcgMCBSIC9OIDMgL0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9GaWx0ZXIgL0ZsYXRlRGVj + b2RlID4+CnN0cmVhbQp4AYVUz2sTQRT+Nm6p0CIIWmsOsniQIklZq2hF1Db9EWJrDNsf + tkWQZDNJ1m426+4mtaWI5OLRKt5F7aEH/4AeevBkL0qFWkUo3qsoYqEXLfHNbky2perA + zn7z3jfvfW923wANctI09YAE5A3HUqIRaWx8Qmr8iACOoglBNCVV2+xOJAZBg3P5e+fY + eg+BW1bDe/t3snetmtK2mgeE/UDgR5rZKrDvF3EKWRICiDzfoSnHdAjf49jy7I85Tnl4 + wbUPKz3EWSJ8QDUtzn9NuFPNJdNAg0g4lPVxUj6c14uU1x0HaW5mxsgQvU+QprvM7qti + oZxO9g6QvZ30fk6z3j7CIcILGa0/RriNnvWM1T/iYeGk5sSGPRwYNfT4YBW3Gqn4NcIU + XxBNJ6JUcdkuDfGYrv1W8kqCcJA4ymRhgHNaSE/XTG74uocFfSbXE6/id1ZR4XmPE2fe + 1N3vRdoCrzAOHQwaDJoNSFAQRQRhmLBQQIY8GjE0snI/I6sGG5N7MnUkart0YkSxQXs2 + 3D23UaTdPP4oInGUQ7UIkvxB/iqvyU/lefnLXLDYVveUrZuauvLgO8XlmbkaHtfTyONz + TV58ldR2k1dHlqx5erya7Bo/7FeXMeaCNY/Ec7D78S1flcyXKYwUxeNV8+pLhHVaMTff + n2x/Oz3iLs8utdZzrYmLN1abl2f9akj77qq8k+ZV+U9e9fH8Z83EY+IpMSZ2iuchiZfF + LvGS2EurC+JgbccInZWGKdJtkfok1WBgmrz1L10/W3i9Rn8M9VGUGczSVIn3f8IqZDSd + uQ5v+o/bx/wX5PeK558oAi9s4MiZum1Tce8QoWWlbnOuAhe/0X3wtm5ro344/ARYPKsW + rVI1nyC8ARx2h3oe6CmY05aWzTlShyyfk7rpymJSzFDbQ1JS1yXXZUsWs5lVYul22JnT + HW4coTlC98SnSmWT+q/xEbD9sFL5+axS2X5OGtaBl/pvwLz9RQplbmRzdHJlYW0KZW5k + b2JqCjE3IDAgb2JqCjczNwplbmRvYmoKOCAwIG9iagpbIC9JQ0NCYXNlZCAxNiAwIFIg + XQplbmRvYmoKNCAwIG9iago8PCAvVHlwZSAvUGFnZXMgL01lZGlhQm94IFswIDAgNjEy + IDc5Ml0gL0NvdW50IDEgL0tpZHMgWyAzIDAgUiBdID4+CmVuZG9iagoxOCAwIG9iago8 + PCAvVHlwZSAvQ2F0YWxvZyAvT3V0bGluZXMgMiAwIFIgL1BhZ2VzIDQgMCBSID4+CmVu + ZG9iagoyIDAgb2JqCjw8IC9MYXN0IDE5IDAgUiAvRmlyc3QgMjAgMCBSID4+CmVuZG9i + agoyMCAwIG9iago8PCAvUGFyZW50IDIxIDAgUiAvQ291bnQgMCAvRGVzdCBbIDMgMCBS + IC9YWVogMCA3ODMgMCBdIC9UaXRsZSAo/v8wrTDjMPMw0DC5XDAwMCBcMDAwMSkKPj4K + ZW5kb2JqCjIxIDAgb2JqCjw8ID4+CmVuZG9iagoxOSAwIG9iago8PCAvUGFyZW50IDIx + IDAgUiAvQ291bnQgMCAvRGVzdCBbIDMgMCBSIC9YWVogMCA3ODMgMCBdIC9UaXRsZSAo + /v8wrTDjMPMw0DC5XDAwMCBcMDAwMSkKPj4KZW5kb2JqCjI0IDAgb2JqCjw8IC9MZW5n + dGggMjUgMCBSIC9TdWJ0eXBlIC9DSURGb250VHlwZTBDIC9GaWx0ZXIgL0ZsYXRlRGVj + b2RlID4+CnN0cmVhbQp4AXVXCVQUV9auZqlqtMVfKqVQhVUYdeISEQ0uMRqCiFtQQRYX + wNhAQwMNzWY3IBpBaWi6G7tBERCUtdnXFhBRXDAuKJsaWaJOMsk448QxJp7Mq87DmXnk + z/n/OTln6pyqU3Xrvnvv993lVQkwKwtMIBDM8fD08/X0X7o1MkH8qTj6kHeCfOeyPR9M + vdrJM7yjQcTycwU8a6ERWWpEVpOzJ20crYYdrX6ynivAsIG5gjY49uvFNl/EzcX+9MU8 + 0fznoncdZ7iKFjgK8mc5CpSihY6CjTMxXCDARZri1lvuYfIQyXZxnDh2hYc8LiUhMkKa + 5BS0KDRosdOKDz/8YNlKF5c1TpvEkbGRcXHyWCff0ASJJNZpR3iEs5OH3Pl9J6+kMGcn + d5nMaffUykSn3ZJESYJCEuY8hSEiMlbuFJnoJHZKShCHSWLECdFO8vD/Yu53oHdv3rvH + d8fvqfhVuvP3UgwdAswOIzEKm4PNxxZgC7H3sEWYK7YK24h5YJ7YZmwrtg3bju3AdmHe + mC/mj+3D9qNF//XAGJQRpO6NFQvmC8otNlgMWLpZtluRVhXWK61P4CR+hlhI5AnfExqF + z21m22TZPJq2Zppxuu30iPeuml9eFfxw1ex11fIH82vqn37mC7/4Eav3UHBwcg4c4udY + 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 + 4pR7IQW/s4cLwXeH246aVDXI/ekUjebiIqEtZoH+l5bxnOgPmhn/8SPU4Tgj3I53+p3U + 5DhDbwdzNY7WmzU4O806+93Q5SIb0zTTdJNIZBLN0IpmIWnRGf/zIrtf0t5JP8u3lICD + Z/9ftX/a2PR+kWhMNOM/9f4N9aZOsAplbmRzdHJlYW0KZW5kb2JqCjI1IDAgb2JqCjMy + MjEKZW5kb2JqCjIzIDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvQXNjZW50 + IDEyNjYgL0NhcEhlaWdodCAxMTI1IC9EZXNjZW50IC0zNzMgL0ZsYWdzCjMyIC9Gb250 + QkJveCBbLTQxOCAtNDA1IDEyNjQgMTI5OF0gL0ZvbnROYW1lIC9DRVRTRVUrSGlyYUth + a3VQcm9OLVczIC9JdGFsaWNBbmdsZQowIC9TdGVtViA0MCAvQXZnV2lkdGggMTAwMCAv + TWF4V2lkdGggMTYxOCAvU3RlbUggNDAgL1hIZWlnaHQgODQ0IC9Gb250RmlsZTMKMjQg + MCBSID4+CmVuZG9iagoyNiAwIG9iagpbIDEgMSAzMzMgMTggMTkgNjU3IDIxIDIxIDY2 + MSAyMyAyMyA2NTcgMzUgWyA3MTIgNzU2IDc1OCBdIDM5IFsgNjAyIDc1NCBdCjUyIFsg + NjY5IDY0OSBdIDY2IFsgNTc1IDY0NiBdIDY5IFsgNjQ2IDU4OCBdIDcyIFsgNjQxIDYx + NyAyMzggXSA3NyA3NyAyMzIKNzkgWyA2MTggNjI1IF0gODMgODMgNDMwIDg1IDg1IDM5 + MiA4OSBbIDUzNiA1NTQgXSBdCmVuZG9iagoyMiAwIG9iago8PCAvVHlwZSAvRm9udCAv + U3VidHlwZSAvQ0lERm9udFR5cGUwIC9CYXNlRm9udCAvQ0VUU0VVK0hpcmFLYWt1UHJv + Ti1XMyAvQ0lEU3lzdGVtSW5mbwo8PCAvUmVnaXN0cnkgKEFkb2JlKSAvT3JkZXJpbmcg + KEphcGFuMSkgL1N1cHBsZW1lbnQgNiA+PiAvRm9udERlc2NyaXB0b3IgMjMgMCBSCi9X + IDI2IDAgUiAvRFcgMTAwMCA+PgplbmRvYmoKMTIgMCBvYmoKPDwgL1R5cGUgL0ZvbnQg + L1N1YnR5cGUgL1R5cGUwIC9FbmNvZGluZyAvSWRlbnRpdHktSCAvQmFzZUZvbnQgL0NF + VFNFVStIaXJhS2FrdVByb04tVzMKL0Rlc2NlbmRhbnRGb250cyBbIDIyIDAgUiBdID4+ + CmVuZG9iagoyNyAwIG9iago8PCAvTGVuZ3RoIDI4IDAgUiAvTGVuZ3RoMSAxMDAyNCAv + RmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAG9Wnl8VNX1P/ct897MJJNZM0tm + e5nMkkz2kI1EMoSsQMIShQQJJIFACKCRJQgKDQoKEXFhFVxALbKIGQLFQapFRdGfraIV + F1yqFZefbdT2h7Simfmd9ybEJG39+Iefvjfn3nvueu73nnvu8mbZkuWtEAtdQMPkGc0d + 80B63PsBSNecxc0dUV4nesfndC5zRnnWB0Avmtcxf3GU57cCKGzzF60cKK/7CEAzs621 + eW40HX5AP68NI6I8GYV+UtviZTdGee0x9Ccuun7OQLouhLxvcfONA+3D+8g7r2te3BrN + 716HflLH9UuXDfDF6Fd1LGkdyE/qUb7XgGCsDq4HOSwEDihQ49sIwH2hsAGDqWI6PnNT + lVtmxxV/Cxpe4mfX3CX5Lwq/feufrT94lffw32GE/Ep+0Zclh5MBYgim9ynvGUyRyqGD + Hajzh6AaqQQpF8nvH2uCLrIP7kbag0TDAnIHrETaiHQfEjMYOoDcCXJHL8MHniIrwULG + B5SM42q92WFSKB1vhIjs2IOOd02fnCRmHL2Pibk3FuRjFWQPeQjmgoP8GtxkFVSBj+w6 + mrzI0YRJB6ADqQuJllxCDvTasx3PkFRwMwTLeMDOkOOOz7PSHJ9mhSjS63jOG2LQe9aO + XCDOccr2oON3tvmOZ5AORZMOJmOO444DtkWOLfYQ2dXruNcWIljmnqi33IZFjzsWJ293 + zM2S0iduD1GHeh2FmD4toHTkFQiOXNsFR4Y3xBPk02wTHSlZf3AkYUHM5sRK3QGNw2rb + 4hiNSXZbuXc00klykOyGFLK71z3e8RQGsbtHq5MLtofITUerfFnuEFkVyKvybU+u8rqT + JzrcyRVeL4anvcSt467lxnLZnJ/zcR5O4BI4Pa/l1byKj+EVPM9zIfJ4b4lDdpIcghKE + 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 + ZKkcXvUY8KabM7N6B/Wu72J/oWh0+wvVGBK7W5ghLlzRXQduO6QtR3S7MZGkUR4DbjME + lUMAOf5lgOBOQwA2BUM2LcYl6E0CccYlCiAkqmJ5r0IgHrdcgTsPAf8ngo5dYxXE3UZ0 + pYsaLsl6SeZM1EjRiqEZwyNzdNJ7PQPbjTxxqeP+db+Biunxkq95d9n+uTuv8i69a+PY + Ze+d+PvCcdRB1jPmvnkLyn21K54rXfDuh1+f4ciTZPKMzOnTry1PwhmbmFK9dudvN89o + uyq7sjZQkWLW2TJSy7fedfbdPdR3qI/iZuNLJgNQVwPppeQFQsF8aKPa6Pmy25kN7GOw + n+LxCy5Vzoxnb2M2smeYl1i+2rfUx/EhIj8qzBd1Cv8yEIp0HMPJ6mRC5NYnaXqxliIU + /o/i1oBdJluMlxiElTE0ISxFy2jA73kKHs/GdA/1FFmHieuOkh6Z2Vx70VTT/9FH/Wbp + jIznjeISY7F24OjF1aT71bUXario558wZWXATSVraZqBZK1MhrZiWOW4pvSw8GO9hYX9 + hYUjamY5tR9/eAuBZqHxBp2c5OC8fZ/Yif+F8KJT4eVMxg876bbvX0eEKHEC4z8AWvE7 + 9b97xL9Nibc6ePeA528DWl035EEZlEOF9A18En7hngYNmIvgF3kiVSHD/yhBfdm0itJK + f1Xros7WZQvmNEs5pGR0rkZqQupA6kK6G2kPUhDpFNJZpI+QvhGrRVIjOZEykQJIk5Ga + kDoiAw/gMxgmePYZzuP/nIalp4/gsd5h6Vkj+OwRfOEIHu+nhpWvG8GLvR8qX8sIfs4I + fu4IXhqbIf0Tvz0PrW/JCH7pCL5T5P8fDJM3YQplbmRzdHJlYW0KZW5kb2JqCjI4IDAg + b2JqCjY1MjYKZW5kb2JqCjI5IDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAv + QXNjZW50IDc3MCAvQ2FwSGVpZ2h0IDY4NCAvRGVzY2VudCAtMjMwIC9GbGFncyAzMgov + Rm9udEJCb3ggWy05NTEgLTQ4MSAxNDQ1IDExMjJdIC9Gb250TmFtZSAvWERWRkJHK0hl + bHZldGljYSAvSXRhbGljQW5nbGUgMAovU3RlbVYgMCAvTWF4V2lkdGggMTUwMCAvWEhl + aWdodCA1MTMgL0ZvbnRGaWxlMiAyNyAwIFIgPj4KZW5kb2JqCjMwIDAgb2JqClsgMzMz + IDMzMyAwIDAgMCAwIDI3OCAwIDU1NiA1NTYgNTU2IDAgMCAwIDAgMCAwIDU1NiAwIDAg + MCAwIDAgMCAwIDAgNjY3IDAKMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjY3 + IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTU2IDU1NiA1MDAgNTU2CjU1NiAwIDAg + MCAwIDAgMCAyMjIgMCAwIDAgMCAwIDMzMyA1MDAgMCAwIDUwMCBdCmVuZG9iagoxMCAw + IG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9Y + RFZGQkcrSGVsdmV0aWNhIC9Gb250RGVzY3JpcHRvcgoyOSAwIFIgL1dpZHRocyAzMCAw + IFIgL0ZpcnN0Q2hhciA0MCAvTGFzdENoYXIgMTE4IC9FbmNvZGluZyAvTWFjUm9tYW5F + bmNvZGluZwo+PgplbmRvYmoKMzEgMCBvYmoKPDwgL0xlbmd0aCAzMiAwIFIgL0xlbmd0 + aDEgMTE4NjAgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBvVp5eFRFtq+6 + ey/p9L6l13S6O519ISEhkbQhC0uCQFQSJJgEgiGALEIURnhBQSQiCsgy4IY6yGqaEKEB + cRCDqOOCjuiI6LgAOvPM6JuHjAPJ7XfqdohJ3oyff/jN7T5Vdarq3jr1q1PnVNW9ixYu + bkQxqBXRaMKU+vkzkXQl/4gQNXX63Pr5UV6XAvGb01sWuaI8m4gQPWfm/DvmRnnhMYTk + 9jvmLOm7X5+HkKmwqbF+RrQc9UCc2wQZUR4Pgzihae6ie6K8thPie+bMm95XroP20ci5 + 9ff0tY/OA++6s35uY7R+8gcQJ8yfd9eiPp7EdfMXNvbVx9Ug37sIQ64DzUMyNBvxiEJq + +NUixH8jtyMGSkk5XDNSFBtvjy38AWkEib+98hEpfs390oc/Nvb4FeuFf0KG7Hp9EnMB + MYCQEkN5t2J9f4l0HwSOMKpKDqMxQEVAOUDJyTeaUSveiR4FehqIRrPwQ2gJ0Bqg3wIx + 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 + E5cElWxAC54KBbRKpYJdrU6GP3xJ1imD7zfkYfxQUKeF5RTPMSypyPEyQSYXSL5KyzC0 + QgnDIt2KiYVZrV7WZWaJiQFbc0pKrF6m7urPIeZmwYIFYHHiqOw4nI09CrA5H73z3pvv + f9IpvnHs3B+PiX+AQ4ZOuqLnCF1+7T36hp5XAVBohGxivoCkAuWQU2z4FoscW9NAHDm+ + Tien1HB+D7p1FDH9KaEvlZGpg/ZMYOGIkXP85co/PxG34CWXxCuieAEvYdLF1XgJ23ut + 9xO8QbyTIkfI8DzpijTC903/6oITN7AH5MxFJ53me5EPTukC8H1MOspFJagUlUnfUI2R + vpMaj26C77jI11KT0RT4zolcGN4FRN9LcPBmAI2rrpl8Y03y6MY5LY2LZk2vl2pIFSFo + BVoLRA6v9wG9BES8DVkGfAvUA49TAtmAUoAKgSqApgLNAboXaC3Q40D7gF4CegvoPNC3 + QD3QYSWQDSgFqBCoItJ3wfNRfxrDamkwnziEh29uB9XPGMJnDuGzhvDFQ3jiMQa2XzqE + LxvClw/hK4bwVUN4gvTA5zcM4acP4WcM4SX9GIDPzCHlTUP4WUP42UP4OUN44nUHyjdv + CL9wCC99bz1AnruHlN9D+P8DPvw39gplbmRzdHJlYW0KZW5kb2JqCjMyIDAgb2JqCjc3 + ODUKZW5kb2JqCjMzIDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvQXNjZW50 + IDc3MCAvQ2FwSGVpZ2h0IDcxNyAvRGVzY2VudCAtMjMwIC9GbGFncyAzMgovRm9udEJC + b3ggWy05NTEgLTQ4MSAxNDQ1IDExMjJdIC9Gb250TmFtZSAvS1hZV0FZK0hlbHZldGlj + YSAvSXRhbGljQW5nbGUgMAovU3RlbVYgMCAvTWF4V2lkdGggMTUwMCAvWEhlaWdodCA1 + NDAgL0ZvbnRGaWxlMiAzMSAwIFIgPj4KZW5kb2JqCjM0IDAgb2JqClsgMjc4IDAgMCAw + IDAgMCAwIDAgMzMzIDMzMyAwIDAgMCAwIDAgMCA1NTYgNTU2IDU1NiAwIDAgMCAwIDAg + MCAwIDAgMCAwIDAKMCAwIDAgMCA2NjcgNzIyIDAgNjY3IDYxMSA3NzggMCAwIDAgMCA1 + NTYgMCAwIDAgMCAwIDAgNjY3IDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgNTU2IDU1 + NiA1MDAgNTU2IDU1NiAyNzggMCA1NTYgMjIyIDAgNTAwIDIyMiAwIDU1NiA1NTYgMCAw + IDMzMyAwCjI3OCAwIDAgNzIyIDUwMCBdCmVuZG9iagoxMSAwIG9iago8PCAvVHlwZSAv + Rm9udCAvU3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9LWFlXQVkrSGVsdmV0aWNh + IC9Gb250RGVzY3JpcHRvcgozMyAwIFIgL1dpZHRocyAzNCAwIFIgL0ZpcnN0Q2hhciAz + MiAvTGFzdENoYXIgMTIwIC9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZwo+PgplbmRv + YmoKMzUgMCBvYmoKKE1hYyBPUyBYIDEwLjYuOCBRdWFydHogUERGQ29udGV4dCkKZW5k + b2JqCjM2IDAgb2JqCihEOjIwMTIwMzI3MDkxNTUzWjAwJzAwJykKZW5kb2JqCjEgMCBv + YmoKPDwgL1Byb2R1Y2VyIDM1IDAgUiAvQ3JlYXRpb25EYXRlIDM2IDAgUiAvTW9kRGF0 + ZSAzNiAwIFIgPj4KZW5kb2JqCnhyZWYKMCAzNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAw + MDAwMjQ2NzkgMDAwMDAgbiAKMDAwMDAwNDM0MCAwMDAwMCBuIAowMDAwMDAyMTkxIDAw + MDAwIG4gCjAwMDAwMDQxOTEgMDAwMDAgbiAKMDAwMDAwMDAyMiAwMDAwMCBuIAowMDAw + MDAyMTcxIDAwMDAwIG4gCjAwMDAwMDIyOTUgMDAwMDAgbiAKMDAwMDAwNDE1NSAwMDAw + MCBuIAowMDAwMDAzMjU5IDAwMDAwIG4gCjAwMDAwMTU4NTcgMDAwMDAgbiAKMDAwMDAy + NDQxMCAwMDAwMCBuIAowMDAwMDA4NjQ2IDAwMDAwIG4gCjAwMDAwMDAwMDAgMDAwMDAg + biAKMDAwMDAwMjQzMSAwMDAwMCBuIAowMDAwMDAzMjM5IDAwMDAwIG4gCjAwMDAwMDMy + OTUgMDAwMDAgbiAKMDAwMDAwNDEzNSAwMDAwMCBuIAowMDAwMDA0Mjc0IDAwMDAwIG4g + CjAwMDAwMDQ1MTcgMDAwMDAgbiAKMDAwMDAwNDM4OCAwMDAwMCBuIAowMDAwMDA0NDk1 + IDAwMDAwIG4gCjAwMDAwMDg0NDEgMDAwMDAgbiAKMDAwMDAwNzk2NiAwMDAwMCBuIAow + MDAwMDA0NjI0IDAwMDAwIG4gCjAwMDAwMDc5NDUgMDAwMDAgbiAKMDAwMDAwODIyNSAw + MDAwMCBuIAowMDAwMDA4NzgwIDAwMDAwIG4gCjAwMDAwMTUzOTcgMDAwMDAgbiAKMDAw + MDAxNTQxOCAwMDAwMCBuIAowMDAwMDE1NjQzIDAwMDAwIG4gCjAwMDAwMTYwMzIgMDAw + MDAgbiAKMDAwMDAyMzkwOCAwMDAwMCBuIAowMDAwMDIzOTI5IDAwMDAwIG4gCjAwMDAw + MjQxNTQgMDAwMDAgbiAKMDAwMDAyNDU4NSAwMDAwMCBuIAowMDAwMDI0NjM3IDAwMDAw + IG4gCnRyYWlsZXIKPDwgL1NpemUgMzcgL1Jvb3QgMTggMCBSIC9JbmZvIDEgMCBSIC9J + RCBbIDw5NjBmYzA4YWU3YTlmZGE5OTRjODY4NDQ0OGE3NDBkMj4KPDk2MGZjMDhhZTdh + OWZkYTk5NGM4Njg0NDQ4YTc0MGQyPiBdID4+CnN0YXJ0eHJlZgoyNDc1NAolJUVPRgox + IDAgb2JqCjw8L0F1dGhvciAoc2hvc2hpKS9DcmVhdGlvbkRhdGUgKEQ6MjAxMjAzMjcw + ODQ1MDBaKS9DcmVhdG9yIChPbW5pR3JhZmZsZSA1LjMuNikvTW9kRGF0ZSAoRDoyMDEy + MDMyNzA5MDEwMFopL1Byb2R1Y2VyIDM1IDAgUiAvVGl0bGUgKGVudi1kZXNjcmlwdGlv + bik+PgplbmRvYmoKeHJlZgoxIDEKMDAwMDAyNTY1MiAwMDAwMCBuIAp0cmFpbGVyCjw8 + L0lEIFs8OTYwZmMwOGFlN2E5ZmRhOTk0Yzg2ODQ0NDhhNzQwZDI+IDw5NjBmYzA4YWU3 + YTlmZGE5OTRjODY4NDQ0OGE3NDBkMj5dIC9JbmZvIDEgMCBSIC9QcmV2IDI0NzU0IC9S + b290IDE4IDAgUiAvU2l6ZSAzNz4+CnN0YXJ0eHJlZgoyNTgxOAolJUVPRgo= + + QuickLookThumbnail + + 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 + AA1oAAAAAAAIAAgACAAIAAEAAQABAAE= + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + キャンバス 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{-1101, 72}, {982, 980}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{-144, -21}, {847, 826}} + Zoom + 1 + ZoomValues + + + キャンバス 1 + 1 + 1 + + + + saveQuickLookFiles + YES + + diff -r 000000000000 -r e5b70f7cd8a6 graffle/fcs-mount.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graffle/fcs-mount.graffle Wed Mar 28 10:41:57 2012 +0900 @@ -0,0 +1,1235 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 138.33.0.157554 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-03-27 18:15:44 +0900 + Creator + shoshi + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{159, 167.5}, {188, 44}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + HiraKakuProN-W3 + Size + 13 + + ID + 36 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;\f1\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs28 \cf0 \'82\'b7\'82\'d7\'82\'c4\'82\'cc +\f1 BladeServer +\f0 \'82\'c5\'93\'af\'88\'ea\'82\'cc\ +ext4\'82\'f0\'8b\'a4\'97\'4c\'82\'b5\'82\'c4\'83\'7d\'83\'45\'83\'93\'83\'67} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 4 + Info + 9 + + ID + 35 + Points + + {428.239, 234.974} + {394.8, 128} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 31 + + + + Class + LineGraphic + Head + + ID + 4 + Info + 10 + + ID + 34 + Points + + {314.386, 234.542} + {304.646, 128.498} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 30 + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 33 + Points + + {200.663, 234.582} + {214.4, 128} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 29 + + + + Class + LineGraphic + Head + + ID + 4 + Info + 12 + + ID + 32 + Points + + {86.7582, 235.09} + {124.035, 128.472} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 28 + + + + Bounds + {{389, 235}, {96, 56}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 11 + + ID + 31 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer12\ +(bldsv12.cr)} + VerticalPad + 0 + + + + Bounds + {{269, 235}, {96, 56}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 11 + + ID + 30 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer11\ +(bldsv11.cr)} + VerticalPad + 0 + + + + Bounds + {{149, 235}, {96, 56}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 11 + + ID + 29 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer10\ +(bldsv10.cr)} + VerticalPad + 0 + + + + Bounds + {{29, 235}, {96, 56}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 11 + + ID + 28 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer09\ +(bldsv09.cr)} + VerticalPad + 0 + + + + Bounds + {{29, 26}, {141, 17}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 13 + + ID + 6 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs28 \cf0 Fibre Channel Storage} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{234, 52}, {51, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 5 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Partitions} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{34, 72}, {451, 56}} + Class + ShapedGraphic + ID + 4 + Magnets + + {-0.685994, -1.14332} + {-0.261488, -1.30744} + {0.261488, -1.30744} + {0.685994, -1.14332} + {1.14332, -0.685994} + {1.30744, -0.261488} + {1.30744, 0.261488} + {1.14332, 0.685994} + {0.685994, 1.14332} + {0.261488, 1.30744} + {-0.261488, 1.30744} + {-0.685994, 1.14332} + {-1.14332, 0.685994} + {-1.30744, 0.261488} + {-1.30744, -0.261488} + {-1.14332, -0.685994} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 ext4} + + + + Bounds + {{29, 45}, {461, 89}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Style + + shadow + + Draws + NO + + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + レイヤー 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-03-27 18:36:41 +0900 + Modifier + shoshi + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSLeftMargin + + float + 18 + + NSPaperSize + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAx7X05TU2l6ZT1mZn2WgVMCgUoDhg== + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + QuickLookPreview + + JVBERi0xLjMKJcTl8uXrp/Og0MTGCjUgMCBvYmoKPDwgL0xlbmd0aCA2IDAgUiAvRmls + dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAG1WMtuW0cM3c9XcCkvNJ73Ayi6iFEv + smpgAV00XdiK3TaIU0QujH5+z32QM5Lude2ihSH4mh6ShxyeS1Lf6AN9I4OfGCvl4ulw + Tz/RV7q8erK0fyI7/jztaWt0pOHTHXwgVymFSiFZKlVB9wHn3+PzebJwdTMaN3RzBT92 + /GM7/Bpc7R8H/RBn9cH1DfD4QClCGC3FNNlcUsWx7OZTrArUbkBtCIg7JRcrkKfiFXy+ + 25F1MxJHW2u1D6bAFO0e6fLaagOguwf6mTb3F0PcjjZ//XmB4PEQLugX2r2nH3ZqyJxE + NHnILgxRnXhwURtrcljy8OPt5EJtDuzid3Z6JviD//OVH54EzniRAqcO8eZQdOSIwxxx + oG02OniTEkUcGmN2XczXc6QC446dHe4v1JQOms9c8b9+44c5HNoIRHmQZH6ZDqsNm7nh + SCXAg9j5lS1Dfc48Qj0tT2Wt0TVYlIyvOtdKj7jkqlNJnqIruqTgOwku3fqYqakZXK9B + yavqtK2x4rZK1S5BP1ldTDCpSYLXJpYKb6xGLmhv/ZBUts0SJf6b2gxy32zHaHT2PpP4 + F0kDOampPWjW1Z6wSQ46eBqi6ZLgYphD5rS4jLiQlpY7V9yYu30D4aqfYEkSRCLRiJri + kIltt7SI/6Y2g+yS4LybUs5JUCI5i20/vizWGJ8zrt0wGYcXnAHV8fG4upxspq1TZ7X/ + bi5N2kj9ferqbyr+Gynkw/P8CPYaPlf7Ou1uaRWRS9raYhMB3u5RXV73bPy4EfoJNoH0 + 9Nx7ndDpmZr7w8eLC7XOGHL+jDEunDKmSeaqxoWwWit9O1Gm8QPhDJSxnSRNlGmMUTaM + lMFFMWOaRBgrasIYsS38cLN/1SQCUtSWGSPRNMZwyEoqliVdVbN9KX1iEGhpM2MEKEuU + 5WiamoQsjGkSYayoMWNUs82Maf5FIiBZbYExSlqGra+gzHm76CkzdwepTyHKAmVoc7BM + GVRxK9SOMjMkbmEdi485g679Ss6ozdNz73aBMx2U0y5DHi/pvsuoR/LplDNNwnXd1IQz + Hrc0tBlhiPLmlDOunHKGXDrlTJMwZ1hNcSvck9gWhoj/JjmJjZa6zHAVEk3jjIQsnGmS + uct0alOXQRcTEMyQBlQkHA01zkjIzBnVJMyZpibFL0mQntL8M2c4NnSyqYO+3GU8+shK + m0EnNTlivvxv2wyKd5Eqq0hc1jYkwDimrtrA0u4z5tjjwXHVzhZTbA4VQ/nYpjrKKQzK + /9Cm3ox69uXg7LxLC4GPel2XlzPeBoy8A2+FEo8j746nw2HemyTMW1ZrTQv7xsRbJdNh + cKe8DeaMt76c8rZJZt6qpiZNS2wLS9k/1rB5XmwgWU0t9zo5yLXdJUF4K0kQbjU1mQ4F + hLBUgDYJJ0F4qyRktk1NwryVJDDIPTXbzFL236bDBvJVvA2Ys1d4+z+Nh1KzboXA65CO + e93b5sPe7UKv6+ZDg7XdYG3v2q/sFSXpHIutmBmxypZaxsUiaONDwVJVdMi2qi/jeLGk + 79D2UnIZ+kHHgiUZm78FIyoWNejTsurYbIZjBV8vjKoBGNCATNApxNl1zXVFf5j+A9A5 + XwNKJeia8WUD9GsY1pwV1y5iY8QMF3l56DZniIszeAduy/Ra8hrvw+HLgu+MT+77pTfq + S/aKwZi8Zg+efHp4s82IxrWKMec328Nb5dheP2r109/8Vcmrpj8sTCs8eCFdPo/ZR/Kn + XjYmX03Jz8bsSzXhzhj/L4LMMI3asv7sWk1IuKGKD3Z9G42vdybVe/NgM67HvJxOnlxb + CbGfLgIunwfjP90af4trv8fzPjTbH/4Glzry6wplbmRzdHJlYW0KZW5kb2JqCjYgMCBv + YmoKMTM3OAplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDQgMCBS + IC9SZXNvdXJjZXMgNyAwIFIgL0NvbnRlbnRzIDUgMCBSIC9NZWRpYUJveCBbMCAwIDU1 + OSA3ODNdCj4+CmVuZG9iago3IDAgb2JqCjw8IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBd + IC9Db2xvclNwYWNlIDw8IC9DczEgOCAwIFIgL0NzMiA5IDAgUiA+PiAvRm9udCA8PAov + RjMuMSAxMiAwIFIgL0YxLjAgMTAgMCBSIC9GMi4wIDExIDAgUiA+PiA+PgplbmRvYmoK + MTQgMCBvYmoKPDwgL0xlbmd0aCAxNSAwIFIgL04gMyAvQWx0ZXJuYXRlIC9EZXZpY2VS + R0IgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBhVTPaxNBFP42bqnQIgha + aw6yeJAiSVmraEXUNv0RYmsM2x+2RZBkM0nWbjbr7ia1pYjk4tEq3kXtoQf/gB568GQv + SoVaRSjeqyhioRct8c1uTLal6sDOfvPeN+99b3bfAA1y0jT1gATkDcdSohFpbHxCavyI + AI6iCUE0JVXb7E4kBkGDc/l759h6D4FbVsN7+3eyd62a0raaB4T9QOBHmtkqsO8XcQpZ + EgKIPN+hKcd0CN/j2PLsjzlOeXjBtQ8rPcRZInxANS3Of024U80l00CDSDiU9XFSPpzX + i5TXHQdpbmbGyBC9T5Cmu8zuq2KhnE72DpC9nfR+TrPePsIhwgsZrT9GuI2e9YzVP+Jh + 4aTmxIY9HBg19PhgFbcaqfg1whRfEE0nolRx2S4N8Ziu/VbySoJwkDjKZGGAc1pIT9dM + bvi6hwV9JtcTr+J3VlHheY8TZ97U3e9F2gKvMA4dDBoMmg1IUBBFBGGYsFBAhjwaMTSy + cj8jqwYbk3sydSRqu3RiRLFBezbcPbdRpN08/igicZRDtQiS/EH+Kq/JT+V5+ctcsNhW + 95Stm5q68uA7xeWZuRoe19PI43NNXnyV1HaTV0eWrHl6vJrsGj/sV5cx5oI1j8RzsPvx + LV+VzJcpjBTF41Xz6kuEdVoxN9+fbH87PeIuzy611nOtiYs3VpuXZ/1qSPvuqryT5lX5 + T1718fxnzcRj4ikxJnaK5yGJl8Uu8ZLYS6sL4mBtxwidlYYp0m2R+iTVYGCavPUvXT9b + eL1Gfwz1UZQZzNJUifd/wipkNJ25Dm/6j9vH/Bfk94rnnygCL2zgyJm6bVNx7xChZaVu + c64CF7/RffC2bmujfjj8BFg8qxatUjWfILwBHHaHeh7oKZjTlpbNOVKHLJ+TuunKYlLM + UNtDUlLXJddlSxazmVVi6XbYmdMdbhyhOUL3xKdKZZP6r/ERsP2wUvn5rFLZfk4a1oGX + +m/AvP1FCmVuZHN0cmVhbQplbmRvYmoKMTUgMCBvYmoKNzM3CmVuZG9iago4IDAgb2Jq + ClsgL0lDQ0Jhc2VkIDE0IDAgUiBdCmVuZG9iagoxNiAwIG9iago8PCAvTGVuZ3RoIDE3 + IDAgUiAvTiAxIC9BbHRlcm5hdGUgL0RldmljZUdyYXkgL0ZpbHRlciAvRmxhdGVEZWNv + ZGUgPj4Kc3RyZWFtCngBhVJPSBRRHP7NNhKEiEGFeIh3CgmVKaysoNp2dVmVbVuV0qIY + Z9+6o7Mz05vZNcWTBF2iPHUPomN07NChm5eiwKxL1yCpIAg8dej7zezqKIRveTvf+/39 + ft97RG2dpu87KUFUc0OVK6Wnbk5Ni4MfKUUd1E5YphX46WJxjLHruZK/u9fWZ9LYst7H + tXb79j21lWVgIeottrcQ+iGRZgAfmZ8oZYCzwB2Wr9g+ATxYDqwa8COiAw+auTDT0Zx0 + pbItkVPmoigqr2I7Sa77+bnGvou1iYP+XI9m1o69s+qq0UzUtPdEobwPrkQZz19U9mw1 + FKcN45xIQxop8q7V3ytMxxGRKxBKBlI1ZLmfak6ddeB1GLtdupPj+PYQpT7JYKiJtemy + mR2FfQB2KsvsEPAF6PGyYg/ngXth/1tRw5PAJ2E/ZId51q0f9heuU+B7hD014M4UrsXx + 2oofXi0BQ/dUI2iMc03E09c5c6SI7zHUGZj3RjmmCzF3lqoTN4A7YR9ZqmYKsV37ruol + 7nsCd9PjO9GbOQtcoBxJcrEV2RTQPAlYFH2LsEkOPD7OHlXgd6iYwBy5idzNKPce1REb + Z6NSgVZ6jVfGT+O58cX4ZWwYz4B+rHbXe3z/6eMVdde2Pjz5jXrcOa69nRtVYVZxZQvd + /8cyhI/ZJzmmwdOhWVhr2HbkD5rMTLAMKMR/BT6X+pITVdzV7u24RRLMUD4sbCW6S1Ru + KdTqPYNKrBwr2AB2cJLELFocuFNrujl4d9giem35TVey64b++vZ6+9ryHm3KqCkoE82z + RGaUsVuj5N142/1mkRGfODq+572KWsn+SUUQP4U5WiryFFX0VlDWxG9nDn4btn5cP6Xn + 9UH9PAk9rZ/Rr+ijEb4MdEnPwnNRH6NJ8LBpIeISoIqDM9ROVGONA+Ip8fK0W2SR/Q9A + Gf1mCmVuZHN0cmVhbQplbmRvYmoKMTcgMCBvYmoKNzA0CmVuZG9iago5IDAgb2JqClsg + L0lDQ0Jhc2VkIDE2IDAgUiBdCmVuZG9iago0IDAgb2JqCjw8IC9UeXBlIC9QYWdlcyAv + TWVkaWFCb3ggWzAgMCA2MTIgNzkyXSAvQ291bnQgMSAvS2lkcyBbIDMgMCBSIF0gPj4K + ZW5kb2JqCjE4IDAgb2JqCjw8IC9UeXBlIC9DYXRhbG9nIC9PdXRsaW5lcyAyIDAgUiAv + UGFnZXMgNCAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0xhc3QgMTkgMCBSIC9GaXJz + dCAyMCAwIFIgPj4KZW5kb2JqCjIwIDAgb2JqCjw8IC9QYXJlbnQgMjEgMCBSIC9Db3Vu + dCAwIC9EZXN0IFsgMyAwIFIgL1hZWiAwIDc4MyAwIF0gL1RpdGxlICj+/zCtMOMw8zDQ + MLlcMDAwIFwwMDAxKQo+PgplbmRvYmoKMjEgMCBvYmoKPDwgPj4KZW5kb2JqCjE5IDAg + b2JqCjw8IC9QYXJlbnQgMjEgMCBSIC9Db3VudCAwIC9EZXN0IFsgMyAwIFIgL1hZWiAw + IDc4MyAwIF0gL1RpdGxlICj+/zCtMOMw8zDQMLlcMDAwIFwwMDAxKQo+PgplbmRvYmoK + MjQgMCBvYmoKPDwgL0xlbmd0aCAyNSAwIFIgL1N1YnR5cGUgL0NJREZvbnRUeXBlMEMg + L0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBlVcJVBRXuu62oaqUFl+IpU0X + VrVmnARck4yJITERDEuMKyAuLNJAs9hAQ7M0i4qg0EtVb9Is3awCAs0iIAQlqASUXQFx + iTFOFt88k7xkEuOMudW5zZzpZM4sJ5k577z/nLqn6qv/3v/7l7txOU4LOFwud7lvoI/f + Lp81gYly8btiaeYeuWzXuv0v//RrD0uwHkY+ya7gsuQCms+j+U72ZfaFHk6zHk5PnFdw + OZwbK7jD6U9/blxL+NQKzsORlfznPJYI+Ks8+DP833hwzz3jwTXzV3tw5Us4GJeL8GlL + 1+iDJz6xsmjJdnGqOOXFbbLUHHlifEKGKPyFmHBP0Yuvvfbyupc2bnxV9LY4MSUxNVWW + IgqOkUskKaKdcfHrRdtk69eKdmTErhf5JCWJgn7qmS4KkqRL5FmS2PU/+RGfmCITJaaL + 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 + MwSDEUhYklYvpbY5Tlht2n4C+CCJ7yYeijy4y3/nPp/wBkVJYXnmg/ELvSM3MDYHIjjk + 2r0BF2W9h3C791PWG3HlODmuMuu2HWQp/m/pxf9yS3nPY/EGN3blr9GDbuyqX6Mn3VjR + L9Aej8UdblBHezj70wi5yFm1KmYDf2HPoh6XHj6/h7+Y4T/jQM3l+2r5bj8eXforzdFF + N1xG+fwb/7fm0KJxlyE+f/xXmgWVbGcViKr8p/nJRfdcJvn8e/zF/2r7r6ihVyoKZW5k + c3RyZWFtCmVuZG9iagoyNSAwIG9iagozMTI3CmVuZG9iagoyMyAwIG9iago8PCAvVHlw + ZSAvRm9udERlc2NyaXB0b3IgL0FzY2VudCAxMjY2IC9DYXBIZWlnaHQgMTEyNSAvRGVz + Y2VudCAtMzczIC9GbGFncwozMiAvRm9udEJCb3ggWy00MTggLTQwNSAxMjY0IDEyOThd + IC9Gb250TmFtZSAvQkhBRU5BK0hpcmFLYWt1UHJvTi1XMyAvSXRhbGljQW5nbGUKMCAv + U3RlbVYgNDAgL0F2Z1dpZHRoIDEwMDAgL01heFdpZHRoIDE2MTggL1N0ZW1IIDQwIC9Y + SGVpZ2h0IDg0NCAvRm9udEZpbGUzCjI0IDAgUiA+PgplbmRvYmoKMjYgMCBvYmoKWyAy + MSAyMSA2NjEgNzAgNzAgNTg4IDg1IDg1IDM5MiA4OSA4OSA1MzYgXQplbmRvYmoKMjIg + MCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL0NJREZvbnRUeXBlMCAvQmFzZUZv + bnQgL0JIQUVOQStIaXJhS2FrdVByb04tVzMgL0NJRFN5c3RlbUluZm8KPDwgL1JlZ2lz + dHJ5IChBZG9iZSkgL09yZGVyaW5nIChKYXBhbjEpIC9TdXBwbGVtZW50IDYgPj4gL0Zv + bnREZXNjcmlwdG9yIDIzIDAgUgovVyAyNiAwIFIgL0RXIDEwMDAgPj4KZW5kb2JqCjEy + IDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UeXBlMCAvRW5jb2RpbmcgL0lk + ZW50aXR5LUggL0Jhc2VGb250IC9CSEFFTkErSGlyYUtha3VQcm9OLVczCi9EZXNjZW5k + YW50Rm9udHMgWyAyMiAwIFIgXSA+PgplbmRvYmoKMjcgMCBvYmoKPDwgL0xlbmd0aCAy + OCAwIFIgL0xlbmd0aDEgNzk4OCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0K + eAG9OQl0U9exc9+i97RYlmTJWixZen6W5H3FxsYOFkYyZo2xCVgEE9tgsAkkBIwb00Kd + FNrgEBJCMIT0t81GCDRF2C7IpPBpDgnp+W2SNilZ2yatky6nPvT3kzRpsPTnPtkucNp8 + zj85fVdzZ+auc2fmzrvvqnvTlg5Igj5goWF528Y1oDzpAUSXV21o25jgTaOIn1jV0+1J + 8HwWALt+zca1GxK8+AiAxrV2fe9E/5SnkK/u7GhbnaiHK4jLO7EgwZNpiDM7N3TfneBN + w4iL1t+5aqI+5T7kHRva7p6YH95D3nNH24aORPt0J+LMjXdu7k7wrvcRV2/c1DHRnjSj + fK8CwVId3AlquB0EYMCAqQVA+IPGBRzW0np8Vudp992WXP0xGEWFv23hgwp+SfrRxU87 + rvi1e8XPsEA92Z5iVXYsGwcnWD+m3TtVo/TDTBeFptwozEWoQShDyM2dZYM+chgeQvge + Agtd5H7oRdiF8CgCN0U9i9wIuX+QEwOnSS84yLyAlnMvMdvdNo3W/YsoUQ1/x/227XfP + Ezta7wNiH0wC9SwN+R75LqwGN3kavGQr1EMWOTSUvd7dilXPwkaEPgRWyQl5djC9xH2W + 5IGXI9jHB+kcOen+fXG++8PiKEMG3S/4oxyiH6cjF0h2n3N9x/2frrXuswjHElVHs7HF + SfezrvXufelRcmjQ/bArSrDP3gTa4sKuJ90bsgfcq4uV+gUDUebYoLsS65cGtO7yCsld + 5hp1F/qjIkE+37XAnVP8M3cmdsRmHhzUGzC6na597hlYle4K+WcgPE+Okscghzw26J3n + Po0kLndobnbFQJR8dag+q9gbJVsD5fVZA9n1fm/2Arc3u87vR3rpy8IO4VZhllAi5ApZ + gk+QhDTBLJpEg6gXdaJGFEUhSr4/WONWPU+OQQ2q5diQqBL5KPkBFnLPk+eUwudOiZzI + iCCao/H30XkJmKPk2LCBUkicVCmUKkqeG0oUPRdwc5TilAoDQ2nMMAeGiAzMgwh5IKqC + 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 + mCXVainAgKNCc+w6Znnqdt7mMqQZ7nt4mCscKX+MYc+yzPFN4wepP9bG32RPcvPxVraQ + FAQerFAf5AdMj5oPWg7mqLIyvf5yqU6akznHvzRzmX9N5lpfr643qVffI3dndnu7fYfT + j+SlsLgF+XyuIAUcljSr02bJNxdkJWu7RJ+33Mt4M5I0XG6K7SWnK0XgXAWHcrWFglpv + YAQolAodbluqzW+dmeUT/FmOYr3bb5gJ/gJ7UfHgVNwYuzxeqby3Kg1I0eVWFmKO7kiD + B43yNMbfpVh5AclnfBavwyfp3RKo8e8Owubhe4LPQcplwrI0s00inuQMCaQMfZLo10jE + 51VrSD4n4X9cmKUbnRKxp2KmhA9DNcYOJVO8YtIp6B7ACIIxnjpHIQ0ZGN5p6BfkRPiw + mK2pbkKjDL5UM3x+ckn0Bo+sPniTf/ODu2Z1vzvy19tnM0d538xH13SFshZ95YXarrd/ + femCQE6RhuVFy5bdGsrEiJuRM/eegz/as7zzppI5iwJ1OfYUV2Fe6JEHX3v7e8xn6EvW + +CVGzS/HndP4w6QCzTk9iZKagJdLrbSyKr3G6MC4gieYbLDoLcmsm2XYK6l2u+OKtHbb + RFRuqTxPzwCGRJApxCiD54Qxw/ioEmnoYQUXMvUu85UZ5bLSIyePHfNZipPSze7Z/u3L + 9+7ll8d+uW88VJGiJcwetXjPWubFfRiTCD2Lsh9whYjL6CkO7/3psY1FUNHjWyE9palw + S5oqT+O/ApOUOEEVFaeUphGrmsj4I+l//OSzd2MHSO9HsU9isVHSyxXGvkV6+fHPx98l + D8fuYLyJGEtziHfgXfo/e3RYaIVSCOKd/AL8P4Deui+FZXhfTh+C/xQkzskq/O8UGmfN + WrYkmFvfsb6no7trVZvSQmmIWQVCEGEJwmqEbgSM78p5+ynEwwjnEd5AGI1PPEjDFE3o + +fMavuE6ns54dXtlTVf177qu/o7r+Duv4zddx2++jqdruHq+uyn/v+/0H48KZW5kc3Ry + ZWFtCmVuZG9iagoyOCAwIG9iago0OTkxCmVuZG9iagoyOSAwIG9iago8PCAvVHlwZSAv + Rm9udERlc2NyaXB0b3IgL0FzY2VudCA3NzAgL0NhcEhlaWdodCA3MTcgL0Rlc2NlbnQg + LTIzMCAvRmxhZ3MgMzIKL0ZvbnRCQm94IFstOTUxIC00ODEgMTQ0NSAxMTIyXSAvRm9u + dE5hbWUgL1JBQVdURCtIZWx2ZXRpY2EgL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDAgL01h + eFdpZHRoIDE1MDAgL1hIZWlnaHQgNTQwIC9Gb250RmlsZTIgMjcgMCBSID4+CmVuZG9i + agozMCAwIG9iagpbIDU1NiAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg + MCAwIDAgMCAwIDAgMCAwIDAgMCA2NjcgMCAwIDAgMCAwCjAgMCAwIDAgMCAwIDAgMCAw + IDAgMCA1NTYgMCAwIDAgNTU2IDAgMCAwIDIyMiAwIDAgMCAwIDU1NiA1NTYgMCAwIDMz + MyA1MDAKMjc4IDAgMCAwIDUwMCBdCmVuZG9iagoxMCAwIG9iago8PCAvVHlwZSAvRm9u + dCAvU3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9SQUFXVEQrSGVsdmV0aWNhIC9G + b250RGVzY3JpcHRvcgoyOSAwIFIgL1dpZHRocyAzMCAwIFIgL0ZpcnN0Q2hhciA1MiAv + TGFzdENoYXIgMTIwIC9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZwo+PgplbmRvYmoK + MzEgMCBvYmoKPDwgL0xlbmd0aCAzMiAwIFIgL0xlbmd0aDEgMTE4NTYgL0ZpbHRlciAv + RmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBvXp5fBRF2n9VH9M9RyZz31dnMj0zuQ9ykUDa + kBNIOKKQRAIJEAiXRghRUFhQUIiIciN44RE5xAwBYYDFZRFFX90VfcWDRVdXUNfXrLvv + i+gKmfk93RMiyc/dj3/42Z55quqpqq5+6ltPPfVUdbcvXNyC4tAKRKLxDc1ts5B0pTgQ + IobNWNDcFuP1iRC/NqOj3RPj6QBC5PxZbbMXxHh2M0IK5+z5S/rvN0C5ub21pXlmrBxd + gzi3FTJiPB4GcWLrgva7YrzuEMRt82+f0V+u/wb44Qua7+p/ProAvOe25gUtsfrJP0Cc + 2Hb7ovZ+/jGIp7QtbOmvj+tAvrcRhlwHuh3J0TzEIAJp4NeIEPOVwokoKBXL4ZqZotw0 + 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 + PMmqd6anlG1++OxHTxH/BF0yR78l5HQDzJyJL8WlKU6q4UysWPBRpgIzKVMrtDawTfD1 + SxAZ1cZ40k0S5DWT1Wq7xs3u9/T6GgtOp4sLdsyupMN2E04fejV9FyVrBbZKOri77q/z + OeDLZO8+vG8fb8yMcxnco/zLGzZsoBsi5zb1leXrlZhYL2dXziZe3STZNXED9DWVjsA+ + Cmkl+FVMoNmolWglZ8seoNbQz6PdBAtfCBFl1Gj6fmotfYZ6nWarAosCDCtN6dmizsMn + aeFo2yFwIDxUGN93hCQX6AhMwHd69wkumWyBDownLaNIjGmClJEIvhdRsGLHu4ljWLTa + qw7ibpnVWnPZUt336ad9VqmvcA5VVGwu0vUfyTHVacmamovVTCxKHjNhieAjgjqSpFBQ + J5OB/zKocThj6IbZPNBuQUFfQcGQlmlGkwx/OJ0GV6XxDr0cZ4MvcQG7cPKrkfknI4up + 9Gvbydar7wBCBOAFV7QFvoP6ucsBmTDVwErCqTSczBrBF/QhHr6xykWlqAyVS19ajZa+ + phoH33qJX1RNgjcX9VJjGN4ZYCklg3cIqLSsdNTk8uTKlvkdLe1zZjRDSaxUrHIXEKCG + NgM9CwSfPIrnrug9oItAl6EyBWQASgQaBlQKdDPQTKB2oFVAm4GeBToEdBroPaCLQJfB + 8FBABqDEaP8F7aKBNEaeITx8YzyoHL7HHcSnDeEzhvCZQ/isITy8YRrUHrz/GMSLK+yN + 8pUP4WuH8CKiN9afPoSfMYSfOYSXdOAGPGYPKW8dws8ZwovfXN34/NuG8LcP4RcO4RcN + 4duH8B0i//8Ahm8qxwplbmRzdHJlYW0KZW5kb2JqCjMyIDAgb2JqCjc4NDUKZW5kb2Jq + CjMzIDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvQXNjZW50IDc3MCAvQ2Fw + SGVpZ2h0IDcxNyAvRGVzY2VudCAtMjMwIC9GbGFncyAzMgovRm9udEJCb3ggWy05NTEg + LTQ4MSAxNDQ1IDExMjJdIC9Gb250TmFtZSAvREVEQ1dGK0hlbHZldGljYSAvSXRhbGlj + QW5nbGUgMAovU3RlbVYgMCAvTWF4V2lkdGggMTUwMCAvWEhlaWdodCA2MzcgL0ZvbnRG + aWxlMiAzMSAwIFIgPj4KZW5kb2JqCjM0IDAgb2JqClsgMjc4IDAgMCAwIDAgMCAwIDAg + MzMzIDMzMyAwIDAgMCAwIDI3OCAwIDU1NiA1NTYgNTU2IDAgMCAwIDAgMCAwIDU1NiAw + IDAKMCAwIDAgMCAwIDAgNjY3IDcyMiAwIDAgNjExIDAgMCAwIDAgMCAwIDAgMCAwIDAg + MCAwIDY2NyAwIDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDU1NiA1NTYgNTAwIDU1NiA1 + NTYgMCA1NTYgNTU2IDIyMiAwIDAgMjIyIDAgNTU2IDU1NiAwIDAgMzMzIDUwMCAyNzgK + MCA1MDAgXQplbmRvYmoKMTEgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1Ry + dWVUeXBlIC9CYXNlRm9udCAvREVEQ1dGK0hlbHZldGljYSAvRm9udERlc2NyaXB0b3IK + MzMgMCBSIC9XaWR0aHMgMzQgMCBSIC9GaXJzdENoYXIgMzIgL0xhc3RDaGFyIDExOCAv + RW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjM1IDAgb2JqCihNYWMg + T1MgWCAxMC42LjggUXVhcnR6IFBERkNvbnRleHQpCmVuZG9iagozNiAwIG9iagooRDoy + MDEyMDMyNzA5MzY1M1owMCcwMCcpCmVuZG9iagoxIDAgb2JqCjw8IC9Qcm9kdWNlciAz + NSAwIFIgL0NyZWF0aW9uRGF0ZSAzNiAwIFIgL01vZERhdGUgMzYgMCBSID4+CmVuZG9i + agp4cmVmCjAgMzcKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDIyMjE0IDAwMDAwIG4g + CjAwMDAwMDM2NDMgMDAwMDAgbiAKMDAwMDAwMTQ5NCAwMDAwMCBuIAowMDAwMDAzNDk0 + IDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAwMTQ3NCAwMDAwMCBuIAow + MDAwMDAxNTk4IDAwMDAwIG4gCjAwMDAwMDI1OTQgMDAwMDAgbiAKMDAwMDAwMzQ1OCAw + MDAwMCBuIAowMDAwMDEzMzQwIDAwMDAwIG4gCjAwMDAwMjE5NDUgMDAwMDAgbiAKMDAw + MDAwNzY5OSAwMDAwMCBuIAowMDAwMDAwMDAwIDAwMDAwIG4gCjAwMDAwMDE3MzQgMDAw + MDAgbiAKMDAwMDAwMjU3NCAwMDAwMCBuIAowMDAwMDAyNjMwIDAwMDAwIG4gCjAwMDAw + MDM0MzggMDAwMDAgbiAKMDAwMDAwMzU3NyAwMDAwMCBuIAowMDAwMDAzODIwIDAwMDAw + IG4gCjAwMDAwMDM2OTEgMDAwMDAgbiAKMDAwMDAwMzc5OCAwMDAwMCBuIAowMDAwMDA3 + NDk0IDAwMDAwIG4gCjAwMDAwMDcxNzUgMDAwMDAgbiAKMDAwMDAwMzkyNyAwMDAwMCBu + IAowMDAwMDA3MTU0IDAwMDAwIG4gCjAwMDAwMDc0MzQgMDAwMDAgbiAKMDAwMDAwNzgz + MyAwMDAwMCBuIAowMDAwMDEyOTE0IDAwMDAwIG4gCjAwMDAwMTI5MzUgMDAwMDAgbiAK + MDAwMDAxMzE2MCAwMDAwMCBuIAowMDAwMDEzNTE1IDAwMDAwIG4gCjAwMDAwMjE0NTEg + MDAwMDAgbiAKMDAwMDAyMTQ3MiAwMDAwMCBuIAowMDAwMDIxNjk3IDAwMDAwIG4gCjAw + MDAwMjIxMjAgMDAwMDAgbiAKMDAwMDAyMjE3MiAwMDAwMCBuIAp0cmFpbGVyCjw8IC9T + aXplIDM3IC9Sb290IDE4IDAgUiAvSW5mbyAxIDAgUiAvSUQgWyA8OTgxMjI4NjQwYTRi + M2U3Mzk4NzJhZDQ3OTc3NTkwY2E+Cjw5ODEyMjg2NDBhNGIzZTczOTg3MmFkNDc5Nzc1 + OTBjYT4gXSA+PgpzdGFydHhyZWYKMjIyODkKJSVFT0YKMSAwIG9iago8PC9BdXRob3Ig + KHNob3NoaSkvQ3JlYXRpb25EYXRlIChEOjIwMTIwMzI3MDkxNTAwWikvQ3JlYXRvciAo + T21uaUdyYWZmbGUgNS4zLjYpL01vZERhdGUgKEQ6MjAxMjAzMjcwOTM2MDBaKS9Qcm9k + dWNlciAzNSAwIFIgPj4KZW5kb2JqCnhyZWYKMSAxCjAwMDAwMjMxODcgMDAwMDAgbiAK + dHJhaWxlcgo8PC9JRCBbPDk4MTIyODY0MGE0YjNlNzM5ODcyYWQ0Nzk3NzU5MGNhPiA8 + OTgxMjI4NjQwYTRiM2U3Mzk4NzJhZDQ3OTc3NTkwY2E+XSAvSW5mbyAxIDAgUiAvUHJl + diAyMjI4OSAvUm9vdCAxOCAwIFIgL1NpemUgMzc+PgpzdGFydHhyZWYKMjMzMjkKJSVF + T0YK + + QuickLookThumbnail + + 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 + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + キャンバス 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{-1440, 171}, {693, 778}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {544, 609}} + Zoom + 1 + ZoomValues + + + キャンバス 1 + 1 + 1 + + + + saveQuickLookFiles + YES + + diff -r 000000000000 -r e5b70f7cd8a6 graffle/san-private.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graffle/san-private.graffle Wed Mar 28 10:41:57 2012 +0900 @@ -0,0 +1,1648 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 138.33.0.157554 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-03-27 18:49:25 +0900 + Creator + shoshi + DisplayScale + 1 0/72 in = 1.0000 in + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + Head + + ID + 28 + + ID + 56 + Points + + {89.5, 102.5} + {89.5, 116.5} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 39 + Info + 1 + + + + Class + LineGraphic + Head + + ID + 29 + + ID + 55 + Points + + {205, 102.5} + {205, 116.5} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 50 + + + + Class + LineGraphic + Head + + ID + 32 + + ID + 54 + Points + + {320.5, 102.5} + {320.5, 116.5} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 51 + Info + 1 + + + + Class + LineGraphic + Head + + ID + 33 + + ID + 53 + Points + + {436, 102.5} + {436, 116.5} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 52 + + + + Bounds + {{400, 36}, {72, 66.5}} + Class + ShapedGraphic + FontInfo + + Font + HiraKakuProN-W3 + Size + 12 + + ID + 52 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Cylinder + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\deftab720 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380\qc + +\f0\fs20 \cf0 \expnd0\expndtw0\kerning0 +NFS / SMB\ +SSD Blade} + VerticalPad + 0 + + + + Bounds + {{284.5, 36}, {72, 66.5}} + Class + ShapedGraphic + FontInfo + + Font + HiraKakuProN-W3 + Size + 12 + + ID + 51 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Cylinder + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\deftab720 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380\qc + +\f0\fs20 \cf0 \expnd0\expndtw0\kerning0 +NFS / SMB} + VerticalPad + 0 + + + + Bounds + {{169, 36}, {72, 66.5}} + Class + ShapedGraphic + FontInfo + + Font + HiraKakuProN-W3 + Size + 12 + + ID + 50 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Cylinder + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\deftab720 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380\qc + +\f0\fs20 \cf0 \expnd0\expndtw0\kerning0 +NFS / SMB} + VerticalPad + 0 + + + + Bounds + {{53.5, 36}, {72, 66.5}} + Class + ShapedGraphic + FontInfo + + Font + HiraKakuProN-W3 + Size + 12 + + ID + 39 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Cylinder + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\deftab720 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380\qc + +\f0\fs20 \cf0 \expnd0\expndtw0\kerning0 +NFS / SMB} + VerticalPad + 0 + + + + Bounds + {{414, 172}, {44, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 49 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 10.0.0.4} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{298.5, 172}, {44, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 48 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 10.0.0.3} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{183, 172}, {44, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 47 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 10.0.0.2} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{67.5, 172}, {44, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 46 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 10.0.0.1} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{48, 215}, {72, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 38 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 10G Ethernet} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 1 + Info + 4 + + ID + 37 + Points + + {411.073, 165.259} + {331.4, 238} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 33 + + + + Class + LineGraphic + Head + + ID + 1 + + ID + 36 + Points + + {311.08, 168.057} + {285.3, 238} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 32 + + + + Class + LineGraphic + Head + + ID + 1 + Info + 2 + + ID + 35 + Points + + {214.161, 168.081} + {239.031, 237.529} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 29 + + + + Class + LineGraphic + Head + + ID + 1 + Info + 1 + + ID + 34 + Points + + {114.244, 165.309} + {192.732, 237.661} + + Style + + stroke + + Cap + 0 + HeadArrow + 0 + Join + 0 + TailArrow + 0 + + + Tail + + ID + 28 + + + + Bounds + {{147, 238}, {230.5, 37}} + Class + ShapedGraphic + ID + 1 + Magnets + + {-0.685994, -1.14332} + {-0.261488, -1.30744} + {0.261488, -1.30744} + {0.685994, -1.14332} + {1.14332, -0.685995} + {1.30744, -0.261489} + {1.30744, 0.261489} + {1.14332, 0.685995} + {0.685994, 1.14332} + {0.261488, 1.30744} + {-0.261489, 1.30744} + {-0.685994, 1.14332} + {-1.14332, 0.685993} + {-1.30744, 0.261489} + {-1.30744, -0.261489} + {-1.14332, -0.685995} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Switch Blade\ +(network)} + + + + Bounds + {{384.5, 117}, {103, 51}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 10 + + ID + 33 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer12\ +(bldsv12.cr)} + VerticalPad + 0 + + + + Bounds + {{269, 117}, {103, 51}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 10 + + ID + 32 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer11\ +(bldsv11.cr)} + VerticalPad + 0 + + + + Bounds + {{153.5, 117}, {103, 51}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 10 + + ID + 29 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer10\ +(bldsv10.cr)} + VerticalPad + 0 + + + + Bounds + {{38, 117}, {103, 51}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 10 + + ID + 28 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf0 BladeServer09\ +(bldsv09.cr)} + VerticalPad + 0 + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + レイヤー 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-03-27 19:00:52 +0900 + Modifier + shoshi + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSLeftMargin + + float + 18 + + NSPaperSize + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAx7X05TU2l6ZT1mZn2WgVMCgUoDhg== + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + QuickLookPreview + + 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 + NDNchQi/NVKB6Bg2kWYMm7MQePHyCPoMeRCBlpw3RlUUHIO7Bjqk8fl9cqzVZHZ+IjBb + EfyPwDRSHDbApFaPrst68FFtJ1HBKSLDMzpHB60hWLabYgMoKKDnLF2lh3NWRAZpExWm + VTRlYcyJnQZHvovyQcu+AXE6gyVsQfiQBWB9DNc2R6EkyeoeAVvVjAAR7w1augBoi6XC + VoIkbc21j6+i2sOLh6pQj7f1JUvu8BVTDaTNhwBY8m0yxy4QrqJRw7KN6lpzYyCLMQVq + 8yUilkxCERXHLmBumaj9zTULnev2hXsz3gB98Mr9s5P2fwY0TmM5BtGGQlAwN4GhjNfc + ctIa6mQakFNGAeaGAVffftI2gUFMgkK4CQ2HRuY3kNYOieEr/vibGiSDd4j4CLq0gjRE + d7uJuhe39VsFoThCTuQff3GRbmkZ0iH2PhaC2sEwiOoFZkkUxElmDY6wzCcr3dLbSvI3 + FKlOGsPGSIjqjrPgTkCMKPwodhU0g66i4ASc9Zk7pUd6ADL72El7BVMzuq74dT3AUDG7 + 1yM60H9hopNBS5T3XAAva8cREBB1HbiSu/QWn4APdKm80MP90i2SQmg7hIWnZ+xaRjml + sjREWm+N9dpXX3HKDD6aLsyhm1Gvv/xM49GsH/mg8bUhExdNGDx8/y988gDUCmVuZHN0 + cmVhbQplbmRvYmoKNiAwIG9iagoyMTYwCmVuZG9iagozIDAgb2JqCjw8IC9UeXBlIC9Q + YWdlIC9QYXJlbnQgNCAwIFIgL1Jlc291cmNlcyA3IDAgUiAvQ29udGVudHMgNSAwIFIg + L01lZGlhQm94IFswIDAgNTU5IDc4M10KPj4KZW5kb2JqCjcgMCBvYmoKPDwgL1Byb2NT + ZXQgWyAvUERGIC9UZXh0IF0gL0NvbG9yU3BhY2UgPDwgL0NzMSA4IDAgUiAvQ3MyIDkg + MCBSID4+IC9Gb250IDw8Ci9GMi4wIDExIDAgUiAvRjMuMSAxMiAwIFIgL0YxLjAgMTAg + MCBSID4+ID4+CmVuZG9iagoxNCAwIG9iago8PCAvTGVuZ3RoIDE1IDAgUiAvTiAzIC9B + bHRlcm5hdGUgL0RldmljZVJHQiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0K + eAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWl + iOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLS + NPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrS + tpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/ + TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+ + wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79 + VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgya + DUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1 + CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8 + muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62J + izdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2V + hinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuef + KAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6Hugp + mNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv + 8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UUKZW5kc3RyZWFtCmVuZG9iagoxNSAwIG9iago3 + MzcKZW5kb2JqCjggMCBvYmoKWyAvSUNDQmFzZWQgMTQgMCBSIF0KZW5kb2JqCjE2IDAg + b2JqCjw8IC9MZW5ndGggMTcgMCBSIC9OIDEgL0FsdGVybmF0ZSAvRGV2aWNlR3JheSAv + RmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGFUk9IFFEc/s02EoSIQYV4iHcK + CZUprKyg2nZ1WZVtW5XSohhn37qjszPTm9k1xZMEXaI8dQ+iY3Ts0KGbl6LArEvXIKkg + CDx16PvN7OoohG95O9/7/f1+33tEbZ2m7zspQVRzQ5UrpaduTk2Lgx8pRR3UTlimFfjp + YnGMseu5kr+719Zn0tiy3se1dvv2PbWVZWAh6i22txD6IZFmAB+ZnyhlgLPAHZav2D4B + PFgOrBrwI6IDD5q5MNPRnHSlsi2RU+aiKCqvYjtJrvv5uca+i7WJg/5cj2bWjr2z6qrR + TNS090ShvA+uRBnPX1T2bDUUpw3jnEhDGinyrtXfK0zHEZErEEoGUjVkuZ9qTp114HUY + u126k+P49hClPslgqIm16bKZHYV9AHYqy+wQ8AXo8bJiD+eBe2H/W1HDk8AnYT9kh3nW + rR/2F65T4HuEPTXgzhSuxfHaih9eLQFD91QjaIxzTcTT1zlzpIjvMdQZmPdGOaYLMXeW + qhM3gDthH1mqZgqxXfuu6iXuewJ30+M70Zs5C1ygHElysRXZFNA8CVgUfYuwSQ48Ps4e + VeB3qJjAHLmJ3M0o9x7VERtno1KBVnqNV8ZP47nxxfhlbBjPgH6sdtd7fP/p4xV117Y+ + PPmNetw5rr2dG1VhVnFlC93/xzKEj9knOabB06FZWGvYduQPmsxMsAwoxH8FPpf6khNV + 3NXu7bhFEsxQPixsJbpLVG4p1Oo9g0qsHCvYAHZwksQsWhy4U2u6OXh32CJ6bflNV7Lr + hv769nr72vIebcqoKSgTzbNEZpSxW6Pk3Xjb/WaREZ84Or7nvYpayf5JRRA/hTlaKvIU + VfRWUNbEb2cOfhu2flw/pef1Qf08CT2tn9Gv6KMRvgx0Sc/Cc1Efo0nwsGkh4hKgioMz + 1E5UY40D4inx8rRbZJH9D0AZ/WYKZW5kc3RyZWFtCmVuZG9iagoxNyAwIG9iago3MDQK + ZW5kb2JqCjkgMCBvYmoKWyAvSUNDQmFzZWQgMTYgMCBSIF0KZW5kb2JqCjQgMCBvYmoK + PDwgL1R5cGUgL1BhZ2VzIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdIC9Db3VudCAxIC9L + aWRzIFsgMyAwIFIgXSA+PgplbmRvYmoKMTggMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cg + L091dGxpbmVzIDIgMCBSIC9QYWdlcyA0IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAv + TGFzdCAxOSAwIFIgL0ZpcnN0IDIwIDAgUiA+PgplbmRvYmoKMjAgMCBvYmoKPDwgL1Bh + cmVudCAyMSAwIFIgL0NvdW50IDAgL0Rlc3QgWyAzIDAgUiAvWFlaIDAgNzgzIDAgXSAv + VGl0bGUgKP7/MK0w4zDzMNAwuVwwMDAgXDAwMDEpCj4+CmVuZG9iagoyMSAwIG9iago8 + PCA+PgplbmRvYmoKMTkgMCBvYmoKPDwgL1BhcmVudCAyMSAwIFIgL0NvdW50IDAgL0Rl + c3QgWyAzIDAgUiAvWFlaIDAgNzgzIDAgXSAvVGl0bGUgKP7/MK0w4zDzMNAwuVwwMDAg + XDAwMDEpCj4+CmVuZG9iagoyMiAwIG9iago8PCAvTGVuZ3RoIDIzIDAgUiAvTGVuZ3Ro + MSAxMTM4NCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAG9Wnl4VEW2r7p7 + r7m97+nudLo7nX1fSCTXkIVdICoJEkgCgRBAFiEsI0xQEAmIKLIM6CguyCJDEyI0Ij7U + KDgzKi7giMvoiOjMm4y+99BxgHS/U7dDhHwz8/mH39zbp6pOVd26p3516pyq6rto4eIW + pEEdiEbjJjXNn4HkK7UOIcozbW7T/Dhv8EB8elr7IhLDxaYgRM+ZMX/m3DgvPIKQ0jVz + zrL+540ehEwvtrY0TY+Xo6sQF7ZCRpzH+RAnt85dtDTO67shnjNn3rT+csPXwBfPbVra + /370MfCeO5vmtsTrp8rPz59316I4HyLldfMXtvTXxyA//TbCkOtA85ACzUY8opAIdwNC + /NdKF2KglJTDNT1dtXlqQtl3SCfI/NQxD8rx694Xz/3QcjWoekj4B2QortUnMReKhhBS + YyjvVT00UCI/B4EjgmrTImgEUDlQAVBa2s1W1IF3o01ATwDRaBZej5YBrQP6FRAzkNoL + 3DG8vosRpBfwMmTHIyUV477VaHNblSr3uxHMdf/a/aH1i+PYBqP3ObZ1aZDiZiV+Aj+O + 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 + mgMSgTxA2UAS0DigRqD5QB1Am4CeAAoDnQQ6A/QZ0LfxjlJirP9CcA2kMawGbuTh29Ub + ykOD+MxBfPYgPmcQnzuIzxvEw1nPDe+rGMRXDeJrBvG1g3iC7vX9mzaInz6Il8f+Ojxa + B5XPGsTPHsTPGcQTb3b9++cN4hcO4sn4X19/CeH/H2UCqpAKZW5kc3RyZWFtCmVuZG9i + agoyMyAwIG9iago3NDkzCmVuZG9iagoyNCAwIG9iago8PCAvVHlwZSAvRm9udERlc2Ny + aXB0b3IgL0FzY2VudCA3NzAgL0NhcEhlaWdodCA3MTcgL0Rlc2NlbnQgLTIzMCAvRmxh + Z3MgMzIKL0ZvbnRCQm94IFstOTUxIC00ODEgMTQ0NSAxMTIyXSAvRm9udE5hbWUgL1dK + UEVNVytIZWx2ZXRpY2EgL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDAgL01heFdpZHRoIDE1 + MDAgL1hIZWlnaHQgNjM3IC9Gb250RmlsZTIgMjIgMCBSID4+CmVuZG9iagoyNSAwIG9i + agpbIDI3OCAwIDAgMCAwIDAgMCAwIDMzMyAzMzMgMCAwIDAgMCAyNzggMCA1NTYgNTU2 + IDU1NiA1NTYgNTU2IDAgMCAwIDAgMCAwCjAgMCAwIDAgMCAwIDAgNjY3IDAgMCA2Njcg + MCA3NzggMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDY2NyAwIDAgMCAwIDAgMCAwIDAKMCAw + IDAgMCAwIDU1NiAwIDUwMCA1NTYgNTU2IDAgMCA1NTYgMjIyIDAgNTAwIDIyMiAwIDU1 + NiA1NTYgMCAwIDMzMyAwIDI3OAowIDAgNzIyIF0KZW5kb2JqCjExIDAgb2JqCjw8IC9U + eXBlIC9Gb250IC9TdWJ0eXBlIC9UcnVlVHlwZSAvQmFzZUZvbnQgL1dKUEVNVytIZWx2 + ZXRpY2EgL0ZvbnREZXNjcmlwdG9yCjI0IDAgUiAvV2lkdGhzIDI1IDAgUiAvRmlyc3RD + aGFyIDMyIC9MYXN0Q2hhciAxMTkgL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nCj4+ + CmVuZG9iagoyOCAwIG9iago8PCAvTGVuZ3RoIDI5IDAgUiAvU3VidHlwZSAvQ0lERm9u + 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 + ZHN0cmVhbQplbmRvYmoKMjkgMCBvYmoKMTY5MgplbmRvYmoKMjcgMCBvYmoKPDwgL1R5 + cGUgL0ZvbnREZXNjcmlwdG9yIC9Bc2NlbnQgMTI2NiAvQ2FwSGVpZ2h0IDExMjUgL0Rl + c2NlbnQgLTM3MyAvRmxhZ3MKMzIgL0ZvbnRCQm94IFstNDE4IC00MDUgMTI2NCAxMjk4 + XSAvRm9udE5hbWUgL1dCWUtBVytIaXJhS2FrdVByb04tVzMgL0l0YWxpY0FuZ2xlCjAg + L1N0ZW1WIDQwIC9BdmdXaWR0aCAxMDAwIC9NYXhXaWR0aCAxNjE4IC9TdGVtSCA0MCAv + WEhlaWdodCA4NDQgL0ZvbnRGaWxlMwoyOCAwIFIgPj4KZW5kb2JqCjMwIDAgb2JqClsg + MSAxIDMzMyAxNiAxNiA0NzQgMzUgMzUgNzEyIDM3IDM3IDc1OCAzOSAzOSA2MDIgNDYg + WyA5NDUgNzc0IF0gNTIgNTIgNjY5CjY2IDY2IDU3NSA2OSBbIDY0NiA1ODggXSA3NyA3 + NyAyMzIgXQplbmRvYmoKMjYgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL0NJ + REZvbnRUeXBlMCAvQmFzZUZvbnQgL1dCWUtBVytIaXJhS2FrdVByb04tVzMgL0NJRFN5 + c3RlbUluZm8KPDwgL1JlZ2lzdHJ5IChBZG9iZSkgL09yZGVyaW5nIChKYXBhbjEpIC9T + dXBwbGVtZW50IDYgPj4gL0ZvbnREZXNjcmlwdG9yIDI3IDAgUgovVyAzMCAwIFIgL0RX + IDEwMDAgPj4KZW5kb2JqCjEyIDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9U + eXBlMCAvRW5jb2RpbmcgL0lkZW50aXR5LUggL0Jhc2VGb250IC9XQllLQVcrSGlyYUth + a3VQcm9OLVczCi9EZXNjZW5kYW50Rm9udHMgWyAyNiAwIFIgXSA+PgplbmRvYmoKMzEg + MCBvYmoKPDwgL0xlbmd0aCAzMiAwIFIgL0xlbmd0aDEgMTAwMjQgL0ZpbHRlciAvRmxh + dGVEZWNvZGUgPj4Kc3RyZWFtCngBvVp5fFTV9T/3LfPezCSTWTNLZnuZzJJM9pCNRDKE + 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 + y7fedea9h6nvUB/FzcaXTAagrgbSS8mLhIJ50Ea10fNkdzDr2SdgL8XjF1yqnBnP3s5s + YE8zL7N8tW+Jj+NDRH5YmCfqFP5lIBTpOIKT1cmEyG1P0/QiLUUo/B/FbQG7TLYILzEI + K2NoQliKltGA3/MUPJ6N6R7qGbIWE9ceJj0ys7n2oqmm/6OP+s3SGRnPG8UlxmLtwNGL + q0n3q2sv1HBRzz9hyoqAm0rW0jQDyVqZDG3FsMpxTelh4cd6Cwv7CwtH1Mxyaj/+8BYC + zULjjTo5ycF5e57Yif/F8MIT4WVMxg876bbv30CEKHEC4z8AWvE79b97xL9Nibc6ePeA + 528DWl035EEZlEOF9A18En7hvhYaMBfBL/JEqkKG/1GC6msmjS+v8Fe1LuxsXTp/drOU + Q0pG52qkJqQOpC6ku5EeRgoinUA6g/QR0jditUhqJCdSJlIAaTJSE1JHZOABfAbDBM8+ + w3n8n9Ow9PQRPNY7LD1rBJ89gi8cweP91LDydSN4sfdD5WsZwc8ewc8ZwUtjM6R/4rfn + ofUtHsEvGcF3ivz/Aw4PN2IKZW5kc3RyZWFtCmVuZG9iagozMiAwIG9iago2NTI2CmVu + ZG9iagozMyAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL0FzY2VudCA3NzAg + L0NhcEhlaWdodCA2ODQgL0Rlc2NlbnQgLTIzMCAvRmxhZ3MgMzIKL0ZvbnRCQm94IFst + OTUxIC00ODEgMTQ0NSAxMTIyXSAvRm9udE5hbWUgL0lVT0pFRitIZWx2ZXRpY2EgL0l0 + YWxpY0FuZ2xlIDAKL1N0ZW1WIDAgL01heFdpZHRoIDE1MDAgL1hIZWlnaHQgNTEzIC9G + b250RmlsZTIgMzEgMCBSID4+CmVuZG9iagozNCAwIG9iagpbIDMzMyAzMzMgMCAwIDAg + MCAyNzggMCA1NTYgNTU2IDU1NiAwIDAgMCAwIDAgMCA1NTYgMCAwIDAgMCAwIDAgMCAw + IDY2NyAwCjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDY2NyAwIDAgMCAwIDAg + MCAwIDAgMCAwIDAgMCAwIDU1NiA1NTYgNTAwIDU1Ngo1NTYgMCAwIDAgMCAwIDAgMjIy + IDAgMCAwIDAgMCAzMzMgNTAwIDAgMCA1MDAgXQplbmRvYmoKMTAgMCBvYmoKPDwgL1R5 + cGUgL0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9CYXNlRm9udCAvSVVPSkVGK0hlbHZl + dGljYSAvRm9udERlc2NyaXB0b3IKMzMgMCBSIC9XaWR0aHMgMzQgMCBSIC9GaXJzdENo + YXIgNDAgL0xhc3RDaGFyIDExOCAvRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4K + ZW5kb2JqCjM1IDAgb2JqCihNYWMgT1MgWCAxMC42LjggUXVhcnR6IFBERkNvbnRleHQp + CmVuZG9iagozNiAwIG9iagooRDoyMDEyMDMyNzEwMDA1N1owMCcwMCcpCmVuZG9iagox + IDAgb2JqCjw8IC9Qcm9kdWNlciAzNSAwIFIgL0NyZWF0aW9uRGF0ZSAzNiAwIFIgL01v + ZERhdGUgMzYgMCBSID4+CmVuZG9iagp4cmVmCjAgMzcKMDAwMDAwMDAwMCA2NTUzNSBm + IAowMDAwMDIyODQ3IDAwMDAwIG4gCjAwMDAwMDQ0MjUgMDAwMDAgbiAKMDAwMDAwMjI3 + NiAwMDAwMCBuIAowMDAwMDA0Mjc2IDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAK + MDAwMDAwMjI1NiAwMDAwMCBuIAowMDAwMDAyMzgwIDAwMDAwIG4gCjAwMDAwMDMzNzYg + MDAwMDAgbiAKMDAwMDAwNDI0MCAwMDAwMCBuIAowMDAwMDIyNTc4IDAwMDAwIG4gCjAw + MDAwMTI3ODcgMDAwMDAgbiAKMDAwMDAxNTM2NyAwMDAwMCBuIAowMDAwMDAwMDAwIDAw + MDAwIG4gCjAwMDAwMDI1MTYgMDAwMDAgbiAKMDAwMDAwMzM1NiAwMDAwMCBuIAowMDAw + MDAzNDEyIDAwMDAwIG4gCjAwMDAwMDQyMjAgMDAwMDAgbiAKMDAwMDAwNDM1OSAwMDAw + MCBuIAowMDAwMDA0NjAyIDAwMDAwIG4gCjAwMDAwMDQ0NzMgMDAwMDAgbiAKMDAwMDAw + NDU4MCAwMDAwMCBuIAowMDAwMDA0NzA5IDAwMDAwIG4gCjAwMDAwMTIyOTMgMDAwMDAg + biAKMDAwMDAxMjMxNCAwMDAwMCBuIAowMDAwMDEyNTM5IDAwMDAwIG4gCjAwMDAwMTUx + NjIgMDAwMDAgbiAKMDAwMDAxNDc3NSAwMDAwMCBuIAowMDAwMDEyOTYyIDAwMDAwIG4g + CjAwMDAwMTQ3NTQgMDAwMDAgbiAKMDAwMDAxNTAzNCAwMDAwMCBuIAowMDAwMDE1NTAx + IDAwMDAwIG4gCjAwMDAwMjIxMTggMDAwMDAgbiAKMDAwMDAyMjEzOSAwMDAwMCBuIAow + MDAwMDIyMzY0IDAwMDAwIG4gCjAwMDAwMjI3NTMgMDAwMDAgbiAKMDAwMDAyMjgwNSAw + MDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDM3IC9Sb290IDE4IDAgUiAvSW5mbyAxIDAg + UiAvSUQgWyA8Y2FjMmNkY2FlMTZmNTEzMThhNTA0ZDY4MGEwZWU0OGY+CjxjYWMyY2Rj + YWUxNmY1MTMxOGE1MDRkNjgwYTBlZTQ4Zj4gXSA+PgpzdGFydHhyZWYKMjI5MjIKJSVF + T0YKMSAwIG9iago8PC9BdXRob3IgKHNob3NoaSkvQ3JlYXRpb25EYXRlIChEOjIwMTIw + MzI3MDk0OTAwWikvQ3JlYXRvciAoT21uaUdyYWZmbGUgNS4zLjYpL01vZERhdGUgKEQ6 + MjAxMjAzMjcxMDAwMDBaKS9Qcm9kdWNlciAzNSAwIFIgL1RpdGxlIChzYW4tcHJpdmF0 + ZSk+PgplbmRvYmoKeHJlZgoxIDEKMDAwMDAyMzgyMCAwMDAwMCBuIAp0cmFpbGVyCjw8 + L0lEIFs8Y2FjMmNkY2FlMTZmNTEzMThhNTA0ZDY4MGEwZWU0OGY+IDxjYWMyY2RjYWUx + NmY1MTMxOGE1MDRkNjgwYTBlZTQ4Zj5dIC9JbmZvIDEgMCBSIC9QcmV2IDIyOTIyIC9S + b290IDE4IDAgUiAvU2l6ZSAzNz4+CnN0YXJ0eHJlZgoyMzk4MgolJUVPRgo= + + QuickLookThumbnail + + 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 + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + キャンバス 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{-1164, 0}, {693, 937}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + キャンバス 1 + 1 + 1 + + + + saveQuickLookFiles + YES + + diff -r 000000000000 -r e5b70f7cd8a6 images/colorbar.png Binary file images/colorbar.png has changed diff -r 000000000000 -r e5b70f7cd8a6 images/env-description.png Binary file images/env-description.png has changed diff -r 000000000000 -r e5b70f7cd8a6 images/fcs-mount.png Binary file images/fcs-mount.png has changed diff -r 000000000000 -r e5b70f7cd8a6 images/google-logo-small.png Binary file images/google-logo-small.png has changed diff -r 000000000000 -r e5b70f7cd8a6 images/google-logo.png Binary file images/google-logo.png has changed diff -r 000000000000 -r e5b70f7cd8a6 images/googleio-logo.png Binary file images/googleio-logo.png has changed diff -r 000000000000 -r e5b70f7cd8a6 images/san-private.png Binary file images/san-private.png has changed diff -r 000000000000 -r e5b70f7cd8a6 index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/index.html Wed Mar 28 10:41:57 2012 +0900 @@ -0,0 +1,97 @@ + + + + Presentation + + + + +
+ +
+

20120327

+

Tamaki Shoshi

+
+ +
+

もくじ

+
    +
  • KVM環境構築作業
  • +
  • Broadcaster
  • +
+
+ +
+

KVM環境構築

+

4台のBladeServerとFibre Channel・Storage Bladeを使ってKVM環境を構築する.

+

割り当てられた環境

+ +
+ +
+

KVM環境構築

+
    +
  • BladeServer OS:Fedora 14
  • +
  • FibreChannel FileSystem : {ext4}
  • +
  • 10G Ethernet for outgoing (VLAN62)
  • +
  • 10G Ethernet for SAN (private network)
  • +
+

Blade Server Specification

+
    +
  • CPU : Xeon X5650@2.67GHz
  • +
  • OS : Fedora14
  • +
  • Memory : 128GB
  • +
  • SSD1(sda) : 30GB (OS)
  • +
  • SSD2(sdb) : 30GB
  • +
+
+ +
+

KVM環境構築

+

Fibre Channel Partitions

+
    +
  • すべてのブレードでハイパーバイザを起動するため
  • +
  • すべてのブレードから同一のボリュームを参照してVMイメージを共有したい
  • +
  • そのため,Fibre Channelに一つの巨大なパーティションを作成
  • +
  • それぞれのブレードで巨大なパーティションを共有し,それぞれでマウントする
  • +
+
+
+

KVM環境構築

+

Fibre Channel Partitions

+ +

Bladeでファイルを更新しても他のBladeから更新は確認できない.ext4の使い方として間違っている.

+
+ +
+

KVM環境構築

+

それぞれのブレードは10Gbpsの回線を2本持っており,以下のように役割を割り当てる.

+
    +
  • 外部接続・VM用ブリッジ用の回線 (VLAN62に接続)
  • +
  • SAN・ブレード同士の通信用のプライベートネットワーク回線 (下図)
  • +
+

それぞれのブレードでNASを起動し,他のブレードからアクセスできるようにする.(Blade12は巨大なSSDを持っている)

+ +
+ +
+

KVM環境構築 まとめ

+
    +
  • すべてのブレードでハイパーバイザ・NASを起動し,VMを動作させる.
  • +
  • Fibre ChannelにVMのイメージを配置しすべてのブレードから見えるようにする.
  • +
  • 2本の10G Ethernetを外部接続用とSAN用に分けて利用する.
  • +
  • Blade12はかなり高速なSSDストレージを持っているため,実機をつかたった実験はここでやるべき?
  • +
+
+ +
+

KVM環境構築 まとめ

+

問題点

+
    +
  • Fibre Channelにext4を作成し,すべてのブレードで共有するのは間違い.別の方法が必要である.
  • +
  • Fibre Channel専用のファイルシステムが必要である.
  • +
+
+
+ + diff -r 000000000000 -r e5b70f7cd8a6 prettify.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/prettify.js Wed Mar 28 10:41:57 2012 +0900 @@ -0,0 +1,1391 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * some functions for browser-side pretty printing of code contained in html. + * + *

+ * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

+ * Usage:

    + *
  1. include this source file in an html page via + * {@code } + *
  2. define style rules. See the example page for examples. + *
  3. mark the {@code
    } and {@code } tags in your source with
    + *    {@code class=prettyprint.}
    + *    You can also use the (html deprecated) {@code } tag, but the pretty
    + *    printer needs to do more substantial DOM manipulations to support that, so
    + *    some css styles may not be preserved.
    + * </ol>
    + * That's it.  I wanted to keep the API as simple as possible, so there's no
    + * need to specify which language the code is in, but if you wish, you can add
    + * another class to the {@code <pre>} or {@code <code>} element to specify the
    + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
    + * starts with "lang-" followed by a file extension, specifies the file type.
    + * See the "lang-*.js" files in this directory for code that implements
    + * per-language file handlers.
    + * <p>
    + * Change log:<br>
    + * cbeust, 2006/08/22
    + * <blockquote>
    + *   Java annotations (start with "@") are now captured as literals ("lit")
    + * </blockquote>
    + * @requires console
    + */
    +
    +// JSLint declarations
    +/*global console, document, navigator, setTimeout, window */
    +
    +/**
    + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
    + * UI events.
    + * If set to {@code false}, {@code prettyPrint()} is synchronous.
    + */
    +window['PR_SHOULD_USE_CONTINUATION'] = true;
    +
    +/** the number of characters between tab columns */
    +window['PR_TAB_WIDTH'] = 8;
    +
    +/** Contains functions for creating and registering new language handlers.
    +  * @type {Object}
    +  */
    +window['PR']
    +
    +/** Pretty print a chunk of code.
    +  *
    +  * @param {string} sourceCodeHtml code as html
    +  * @return {string} code as html, but prettier
    +  */
    +  = window['prettyPrintOne']
    +/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
    +  * {@code class=prettyprint} and prettify them.
    +  * @param {Function?} opt_whenDone if specified, called when the last entry
    +  *     has been finished.
    +  */
    +  = window['prettyPrint'] = void 0;
    +
    +
    +(function () {
    +  // Keyword lists for various languages.
    +  var FLOW_CONTROL_KEYWORDS =
    +      "break continue do else for if return while ";
    +  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
    +      "double enum extern float goto int long register short signed sizeof " +
    +      "static struct switch typedef union unsigned void volatile ";
    +  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
    +      "new operator private protected public this throw true try typeof ";
    +  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
    +      "concept concept_map const_cast constexpr decltype " +
    +      "dynamic_cast explicit export friend inline late_check " +
    +      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
    +      "template typeid typename using virtual wchar_t where ";
    +  var JAVA_KEYWORDS = COMMON_KEYWORDS +
    +      "abstract boolean byte extends final finally implements import " +
    +      "instanceof null native package strictfp super synchronized throws " +
    +      "transient ";
    +  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
    +      "as base by checked decimal delegate descending dynamic event " +
    +      "fixed foreach from group implicit in interface internal into is lock " +
    +      "object out override orderby params partial readonly ref sbyte sealed " +
    +      "stackalloc string select uint ulong unchecked unsafe ushort var ";
    +  var COFFEE_KEYWORDS = "all and by catch class else extends false finally " +
    +      "for if in is isnt loop new no not null of off on or return super then " +
    +      "true try unless until when while yes ";
    +  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
    +      "debugger eval export function get null set undefined var with " +
    +      "Infinity NaN ";
    +  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
    +      "goto if import last local my next no our print package redo require " +
    +      "sub undef unless until use wantarray while BEGIN END ";
    +  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
    +      "elif except exec finally from global import in is lambda " +
    +      "nonlocal not or pass print raise try with yield " +
    +      "False True None ";
    +  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
    +      " defined elsif end ensure false in module next nil not or redo rescue " +
    +      "retry self super then true undef unless until when yield BEGIN END ";
    +  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
    +      "function in local set then until ";
    +  var ALL_KEYWORDS = (
    +      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
    +      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
    +
    +  // token style names.  correspond to css classes
    +  /** token style for a string literal */
    +  var PR_STRING = 'str';
    +  /** token style for a keyword */
    +  var PR_KEYWORD = 'kwd';
    +  /** token style for a comment */
    +  var PR_COMMENT = 'com';
    +  /** token style for a type */
    +  var PR_TYPE = 'typ';
    +  /** token style for a literal value.  e.g. 1, null, true. */
    +  var PR_LITERAL = 'lit';
    +  /** token style for a punctuation string. */
    +  var PR_PUNCTUATION = 'pun';
    +  /** token style for a punctuation string. */
    +  var PR_PLAIN = 'pln';
    +
    +  /** token style for an sgml tag. */
    +  var PR_TAG = 'tag';
    +  /** token style for a markup declaration such as a DOCTYPE. */
    +  var PR_DECLARATION = 'dec';
    +  /** token style for embedded source. */
    +  var PR_SOURCE = 'src';
    +  /** token style for an sgml attribute name. */
    +  var PR_ATTRIB_NAME = 'atn';
    +  /** token style for an sgml attribute value. */
    +  var PR_ATTRIB_VALUE = 'atv';
    +
    +  /**
    +   * A class that indicates a section of markup that is not code, e.g. to allow
    +   * embedding of line numbers within code listings.
    +   */
    +  var PR_NOCODE = 'nocode';
    +
    +  /** A set of tokens that can precede a regular expression literal in
    +    * javascript.
    +    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
    +    * list, but I've removed ones that might be problematic when seen in
    +    * languages that don't support regular expression literals.
    +    *
    +    * <p>Specifically, I've removed any keywords that can't precede a regexp
    +    * literal in a syntactically legal javascript program, and I've removed the
    +    * "in" keyword since it's not a keyword in many languages, and might be used
    +    * as a count of inches.
    +    *
    +    * <p>The link a above does not accurately describe EcmaScript rules since
    +    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
    +    * very well in practice.
    +    *
    +    * @private
    +    */
    +  var REGEXP_PRECEDER_PATTERN = function () {
    +      var preceders = [
    +          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
    +          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
    +          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
    +          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
    +          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
    +          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
    +          "||=", "~" /* handles =~ and !~ */,
    +          "break", "case", "continue", "delete",
    +          "do", "else", "finally", "instanceof",
    +          "return", "throw", "try", "typeof"
    +          ];
    +      var pattern = '(?:^^|[+-]';
    +      for (var i = 0; i < preceders.length; ++i) {
    +        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
    +      }
    +      pattern += ')\\s*';  // matches at end, and matches empty string
    +      return pattern;
    +      // CAVEAT: this does not properly handle the case where a regular
    +      // expression immediately follows another since a regular expression may
    +      // have flags for case-sensitivity and the like.  Having regexp tokens
    +      // adjacent is not valid in any language I'm aware of, so I'm punting.
    +      // TODO: maybe style special characters inside a regexp as punctuation.
    +    }();
    +
    +  
    +  /**
    +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
    +   * matches the union of the sets of strings matched by the input RegExp.
    +   * Since it matches globally, if the input strings have a start-of-input
    +   * anchor (/^.../), it is ignored for the purposes of unioning.
    +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
    +   * @return {RegExp} a global regex.
    +   */
    +  function combinePrefixPatterns(regexs) {
    +    var capturedGroupIndex = 0;
    +  
    +    var needToFoldCase = false;
    +    var ignoreCase = false;
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.ignoreCase) {
    +        ignoreCase = true;
    +      } else if (/[a-z]/i.test(regex.source.replace(
    +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
    +        needToFoldCase = true;
    +        ignoreCase = false;
    +        break;
    +      }
    +    }
    +  
    +    function decodeEscape(charsetPart) {
    +      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
    +      switch (charsetPart.charAt(1)) {
    +        case 'b': return 8;
    +        case 't': return 9;
    +        case 'n': return 0xa;
    +        case 'v': return 0xb;
    +        case 'f': return 0xc;
    +        case 'r': return 0xd;
    +        case 'u': case 'x':
    +          return parseInt(charsetPart.substring(2), 16)
    +              || charsetPart.charCodeAt(1);
    +        case '0': case '1': case '2': case '3': case '4':
    +        case '5': case '6': case '7':
    +          return parseInt(charsetPart.substring(1), 8);
    +        default: return charsetPart.charCodeAt(1);
    +      }
    +    }
    +  
    +    function encodeEscape(charCode) {
    +      if (charCode < 0x20) {
    +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
    +      }
    +      var ch = String.fromCharCode(charCode);
    +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
    +        ch = '\\' + ch;
    +      }
    +      return ch;
    +    }
    +  
    +    function caseFoldCharset(charSet) {
    +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
    +          new RegExp(
    +              '\\\\u[0-9A-Fa-f]{4}'
    +              + '|\\\\x[0-9A-Fa-f]{2}'
    +              + '|\\\\[0-3][0-7]{0,2}'
    +              + '|\\\\[0-7]{1,2}'
    +              + '|\\\\[\\s\\S]'
    +              + '|-'
    +              + '|[^-\\\\]',
    +              'g'));
    +      var groups = [];
    +      var ranges = [];
    +      var inverse = charsetParts[0] === '^';
    +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
    +        var p = charsetParts[i];
    +        switch (p) {
    +          case '\\B': case '\\b':
    +          case '\\D': case '\\d':
    +          case '\\S': case '\\s':
    +          case '\\W': case '\\w':
    +            groups.push(p);
    +            continue;
    +        }
    +        var start = decodeEscape(p);
    +        var end;
    +        if (i + 2 < n && '-' === charsetParts[i + 1]) {
    +          end = decodeEscape(charsetParts[i + 2]);
    +          i += 2;
    +        } else {
    +          end = start;
    +        }
    +        ranges.push([start, end]);
    +        // If the range might intersect letters, then expand it.
    +        if (!(end < 65 || start > 122)) {
    +          if (!(end < 65 || start > 90)) {
    +            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
    +          }
    +          if (!(end < 97 || start > 122)) {
    +            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
    +          }
    +        }
    +      }
    +  
    +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
    +      // -> [[1, 12], [14, 14], [16, 17]]
    +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
    +      var consolidatedRanges = [];
    +      var lastRange = [NaN, NaN];
    +      for (var i = 0; i < ranges.length; ++i) {
    +        var range = ranges[i];
    +        if (range[0] <= lastRange[1] + 1) {
    +          lastRange[1] = Math.max(lastRange[1], range[1]);
    +        } else {
    +          consolidatedRanges.push(lastRange = range);
    +        }
    +      }
    +  
    +      var out = ['['];
    +      if (inverse) { out.push('^'); }
    +      out.push.apply(out, groups);
    +      for (var i = 0; i < consolidatedRanges.length; ++i) {
    +        var range = consolidatedRanges[i];
    +        out.push(encodeEscape(range[0]));
    +        if (range[1] > range[0]) {
    +          if (range[1] + 1 > range[0]) { out.push('-'); }
    +          out.push(encodeEscape(range[1]));
    +        }
    +      }
    +      out.push(']');
    +      return out.join('');
    +    }
    +  
    +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
    +      // Split into character sets, escape sequences, punctuation strings
    +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
    +      // include any of the above.
    +      var parts = regex.source.match(
    +          new RegExp(
    +              '(?:'
    +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
    +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
    +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
    +              + '|\\\\[0-9]+'  // a back-reference or octal escape
    +              + '|\\\\[^ux0-9]'  // other escape sequence
    +              + '|\\(\\?[:!=]'  // start of a non-capturing group
    +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
    +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
    +              + ')',
    +              'g'));
    +      var n = parts.length;
    +  
    +      // Maps captured group numbers to the number they will occupy in
    +      // the output or to -1 if that has not been determined, or to
    +      // undefined if they need not be capturing in the output.
    +      var capturedGroups = [];
    +  
    +      // Walk over and identify back references to build the capturedGroups
    +      // mapping.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          // groups are 1-indexed, so max group index is count of '('
    +          ++groupIndex;
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            capturedGroups[decimalValue] = -1;
    +          }
    +        }
    +      }
    +  
    +      // Renumber groups and reduce capturing groups to non-capturing groups
    +      // where possible.
    +      for (var i = 1; i < capturedGroups.length; ++i) {
    +        if (-1 === capturedGroups[i]) {
    +          capturedGroups[i] = ++capturedGroupIndex;
    +        }
    +      }
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          ++groupIndex;
    +          if (capturedGroups[groupIndex] === undefined) {
    +            parts[i] = '(?:';
    +          }
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            parts[i] = '\\' + capturedGroups[groupIndex];
    +          }
    +        }
    +      }
    +  
    +      // Remove any prefix anchors so that the output will match anywhere.
    +      // ^^ really does mean an anchored match though.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
    +      }
    +  
    +      // Expand letters to groups to handle mixing of case-sensitive and
    +      // case-insensitive patterns if necessary.
    +      if (regex.ignoreCase && needToFoldCase) {
    +        for (var i = 0; i < n; ++i) {
    +          var p = parts[i];
    +          var ch0 = p.charAt(0);
    +          if (p.length >= 2 && ch0 === '[') {
    +            parts[i] = caseFoldCharset(p);
    +          } else if (ch0 !== '\\') {
    +            // TODO: handle letters in numeric escapes.
    +            parts[i] = p.replace(
    +                /[a-zA-Z]/g,
    +                function (ch) {
    +                  var cc = ch.charCodeAt(0);
    +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
    +                });
    +          }
    +        }
    +      }
    +  
    +      return parts.join('');
    +    }
    +  
    +    var rewritten = [];
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
    +      rewritten.push(
    +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
    +    }
    +  
    +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
    +  }
    +
    +
    +  /**
    +   * Split markup into a string of source code and an array mapping ranges in
    +   * that string to the text nodes in which they appear.
    +   *
    +   * <p>
    +   * The HTML DOM structure:</p>
    +   * <pre>
    +   * (Element   "p"
    +   *   (Element "b"
    +   *     (Text  "print "))       ; #1
    +   *   (Text    "'Hello '")      ; #2
    +   *   (Element "br")            ; #3
    +   *   (Text    "  + 'World';")) ; #4
    +   * </pre>
    +   * <p>
    +   * corresponds to the HTML
    +   * {@code <p><b>print </b>'Hello '<br>  + 'World';</p>}.</p>
    +   *
    +   * <p>
    +   * It will produce the output:</p>
    +   * <pre>
    +   * {
    +   *   source: "print 'Hello '\n  + 'World';",
    +   *   //                 1         2
    +   *   //       012345678901234 5678901234567
    +   *   spans: [0, #1, 6, #2, 14, #3, 15, #4]
    +   * }
    +   * </pre>
    +   * <p>
    +   * where #1 is a reference to the {@code "print "} text node above, and so
    +   * on for the other text nodes.
    +   * </p>
    +   *
    +   * <p>
    +   * The {@code} spans array is an array of pairs.  Even elements are the start
    +   * indices of substrings, and odd elements are the text nodes (or BR elements)
    +   * that contain the text for those substrings.
    +   * Substrings continue until the next index or the end of the source.
    +   * </p>
    +   *
    +   * @param {Node} node an HTML DOM subtree containing source-code.
    +   * @return {Object} source code and the text nodes in which they occur.
    +   */
    +  function extractSourceSpans(node) {
    +    var nocode = /(?:^|\s)nocode(?:\s|$)/;
    +  
    +    var chunks = [];
    +    var length = 0;
    +    var spans = [];
    +    var k = 0;
    +  
    +    var whitespace;
    +    if (node.currentStyle) {
    +      whitespace = node.currentStyle.whiteSpace;
    +    } else if (window.getComputedStyle) {
    +      whitespace = document.defaultView.getComputedStyle(node, null)
    +          .getPropertyValue('white-space');
    +    }
    +    var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3);
    +  
    +    function walk(node) {
    +      switch (node.nodeType) {
    +        case 1:  // Element
    +          if (nocode.test(node.className)) { return; }
    +          for (var child = node.firstChild; child; child = child.nextSibling) {
    +            walk(child);
    +          }
    +          var nodeName = node.nodeName;
    +          if ('BR' === nodeName || 'LI' === nodeName) {
    +            chunks[k] = '\n';
    +            spans[k << 1] = length++;
    +            spans[(k++ << 1) | 1] = node;
    +          }
    +          break;
    +        case 3: case 4:  // Text
    +          var text = node.nodeValue;
    +          if (text.length) {
    +            if (!isPreformatted) {
    +              text = text.replace(/[ \t\r\n]+/g, ' ');
    +            } else {
    +              text = text.replace(/\r\n?/g, '\n');  // Normalize newlines.
    +            }
    +            // TODO: handle tabs here?
    +            chunks[k] = text;
    +            spans[k << 1] = length;
    +            length += text.length;
    +            spans[(k++ << 1) | 1] = node;
    +          }
    +          break;
    +      }
    +    }
    +  
    +    walk(node);
    +  
    +    return {
    +      source: chunks.join('').replace(/\n$/, ''),
    +      spans: spans
    +    };
    +  }
    +
    +
    +  /**
    +   * Apply the given language handler to sourceCode and add the resulting
    +   * decorations to out.
    +   * @param {number} basePos the index of sourceCode within the chunk of source
    +   *    whose decorations are already present on out.
    +   */
    +  function appendDecorations(basePos, sourceCode, langHandler, out) {
    +    if (!sourceCode) { return; }
    +    var job = {
    +      source: sourceCode,
    +      basePos: basePos
    +    };
    +    langHandler(job);
    +    out.push.apply(out, job.decorations);
    +  }
    +
    +  /** Given triples of [style, pattern, context] returns a lexing function,
    +    * The lexing function interprets the patterns to find token boundaries and
    +    * returns a decoration list of the form
    +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
    +    * where index_n is an index into the sourceCode, and style_n is a style
    +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
    +    * all characters in sourceCode[index_n-1:index_n].
    +    *
    +    * The stylePatterns is a list whose elements have the form
    +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
    +    *
    +    * Style is a style constant like PR_PLAIN, or can be a string of the
    +    * form 'lang-FOO', where FOO is a language extension describing the
    +    * language of the portion of the token in $1 after pattern executes.
    +    * E.g., if style is 'lang-lisp', and group 1 contains the text
    +    * '(hello (world))', then that portion of the token will be passed to the
    +    * registered lisp handler for formatting.
    +    * The text before and after group 1 will be restyled using this decorator
    +    * so decorators should take care that this doesn't result in infinite
    +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
    +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
    +    * '<script>foo()<\/script>', which would cause the current decorator to
    +    * be called with '<script>' which would not match the same rule since
    +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
    +    * the generic tag rule.  The handler registered for the 'js' extension would
    +    * then be called with 'foo()', and finally, the current decorator would
    +    * be called with '<\/script>' which would not match the original rule and
    +    * so the generic tag rule would identify it as a tag.
    +    *
    +    * Pattern must only match prefixes, and if it matches a prefix, then that
    +    * match is considered a token with the same style.
    +    *
    +    * Context is applied to the last non-whitespace, non-comment token
    +    * recognized.
    +    *
    +    * Shortcut is an optional string of characters, any of which, if the first
    +    * character, gurantee that this pattern and only this pattern matches.
    +    *
    +    * @param {Array} shortcutStylePatterns patterns that always start with
    +    *   a known character.  Must have a shortcut string.
    +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
    +    *   order if the shortcut ones fail.  May have shortcuts.
    +    *
    +    * @return {function (Object)} a
    +    *   function that takes source code and returns a list of decorations.
    +    */
    +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
    +    var shortcuts = {};
    +    var tokenizer;
    +    (function () {
    +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
    +      var allRegexs = [];
    +      var regexKeys = {};
    +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
    +        var patternParts = allPatterns[i];
    +        var shortcutChars = patternParts[3];
    +        if (shortcutChars) {
    +          for (var c = shortcutChars.length; --c >= 0;) {
    +            shortcuts[shortcutChars.charAt(c)] = patternParts;
    +          }
    +        }
    +        var regex = patternParts[1];
    +        var k = '' + regex;
    +        if (!regexKeys.hasOwnProperty(k)) {
    +          allRegexs.push(regex);
    +          regexKeys[k] = null;
    +        }
    +      }
    +      allRegexs.push(/[\0-\uffff]/);
    +      tokenizer = combinePrefixPatterns(allRegexs);
    +    })();
    +
    +    var nPatterns = fallthroughStylePatterns.length;
    +    var notWs = /\S/;
    +
    +    /**
    +     * Lexes job.source and produces an output array job.decorations of style
    +     * classes preceded by the position at which they start in job.source in
    +     * order.
    +     *
    +     * @param {Object} job an object like {@code
    +     *    source: {string} sourceText plain text,
    +     *    basePos: {int} position of job.source in the larger chunk of
    +     *        sourceCode.
    +     * }
    +     */
    +    var decorate = function (job) {
    +      var sourceCode = job.source, basePos = job.basePos;
    +      /** Even entries are positions in source in ascending order.  Odd enties
    +        * are style markers (e.g., PR_COMMENT) that run from that position until
    +        * the end.
    +        * @type {Array.<number|string>}
    +        */
    +      var decorations = [basePos, PR_PLAIN];
    +      var pos = 0;  // index into sourceCode
    +      var tokens = sourceCode.match(tokenizer) || [];
    +      var styleCache = {};
    +
    +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
    +        var token = tokens[ti];
    +        var style = styleCache[token];
    +        var match = void 0;
    +
    +        var isEmbedded;
    +        if (typeof style === 'string') {
    +          isEmbedded = false;
    +        } else {
    +          var patternParts = shortcuts[token.charAt(0)];
    +          if (patternParts) {
    +            match = token.match(patternParts[1]);
    +            style = patternParts[0];
    +          } else {
    +            for (var i = 0; i < nPatterns; ++i) {
    +              patternParts = fallthroughStylePatterns[i];
    +              match = token.match(patternParts[1]);
    +              if (match) {
    +                style = patternParts[0];
    +                break;
    +              }
    +            }
    +
    +            if (!match) {  // make sure that we make progress
    +              style = PR_PLAIN;
    +            }
    +          }
    +
    +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
    +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
    +            isEmbedded = false;
    +            style = PR_SOURCE;
    +          }
    +
    +          if (!isEmbedded) { styleCache[token] = style; }
    +        }
    +
    +        var tokenStart = pos;
    +        pos += token.length;
    +
    +        if (!isEmbedded) {
    +          decorations.push(basePos + tokenStart, style);
    +        } else {  // Treat group 1 as an embedded block of source code.
    +          var embeddedSource = match[1];
    +          var embeddedSourceStart = token.indexOf(embeddedSource);
    +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
    +          if (match[2]) {
    +            // If embeddedSource can be blank, then it would match at the
    +            // beginning which would cause us to infinitely recurse on the
    +            // entire token, so we catch the right context in match[2].
    +            embeddedSourceEnd = token.length - match[2].length;
    +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
    +          }
    +          var lang = style.substring(5);
    +          // Decorate the left of the embedded source
    +          appendDecorations(
    +              basePos + tokenStart,
    +              token.substring(0, embeddedSourceStart),
    +              decorate, decorations);
    +          // Decorate the embedded source
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceStart,
    +              embeddedSource,
    +              langHandlerForExtension(lang, embeddedSource),
    +              decorations);
    +          // Decorate the right of the embedded section
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceEnd,
    +              token.substring(embeddedSourceEnd),
    +              decorate, decorations);
    +        }
    +      }
    +      job.decorations = decorations;
    +    };
    +    return decorate;
    +  }
    +
    +  /** returns a function that produces a list of decorations from source text.
    +    *
    +    * This code treats ", ', and ` as string delimiters, and \ as a string
    +    * escape.  It does not recognize perl's qq() style strings.
    +    * It has no special handling for double delimiter escapes as in basic, or
    +    * the tripled delimiters used in python, but should work on those regardless
    +    * although in those cases a single string literal may be broken up into
    +    * multiple adjacent string literals.
    +    *
    +    * It recognizes C, C++, and shell style comments.
    +    *
    +    * @param {Object} options a set of optional parameters.
    +    * @return {function (Object)} a function that examines the source code
    +    *     in the input job and builds the decoration list.
    +    */
    +  function sourceDecorator(options) {
    +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
    +    if (options['tripleQuotedStrings']) {
    +      // '''multi-line-string''', 'single-line-string', and double-quoted
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
    +           null, '\'"']);
    +    } else if (options['multiLineStrings']) {
    +      // 'multi-line-string', "multi-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
    +           null, '\'"`']);
    +    } else {
    +      // 'single-line-string', "single-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,
    +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
    +           null, '"\'']);
    +    }
    +    if (options['verbatimStrings']) {
    +      // verbatim-string-literal production from the C# grammar.  See issue 93.
    +      fallthroughStylePatterns.push(
    +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
    +    }
    +    var hc = options['hashComments'];
    +    if (hc) {
    +      if (options['cStyleComments']) {
    +        if (hc > 1) {  // multiline hash comments
    +          shortcutStylePatterns.push(
    +              [PR_COMMENT, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']);
    +        } else {
    +          // Stop C preprocessor declarations at an unclosed open comment
    +          shortcutStylePatterns.push(
    +              [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
    +               null, '#']);
    +        }
    +        fallthroughStylePatterns.push(
    +            [PR_STRING,
    +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
    +             null]);
    +      } else {
    +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
    +      }
    +    }
    +    if (options['cStyleComments']) {
    +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
    +      fallthroughStylePatterns.push(
    +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
    +    }
    +    if (options['regexLiterals']) {
    +      var REGEX_LITERAL = (
    +          // A regular expression literal starts with a slash that is
    +          // not followed by * or / so that it is not confused with
    +          // comments.
    +          '/(?=[^/*])'
    +          // and then contains any number of raw characters,
    +          + '(?:[^/\\x5B\\x5C]'
    +          // escape sequences (\x5C),
    +          +    '|\\x5C[\\s\\S]'
    +          // or non-nesting character sets (\x5B\x5D);
    +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
    +          // finally closed by a /.
    +          + '/');
    +      fallthroughStylePatterns.push(
    +          ['lang-regex',
    +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
    +           ]);
    +    }
    +
    +    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
    +    if (keywords.length) {
    +      fallthroughStylePatterns.push(
    +          [PR_KEYWORD,
    +           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
    +    }
    +
    +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
    +    fallthroughStylePatterns.push(
    +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
    +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
    +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_LITERAL,
    +         new RegExp(
    +             '^(?:'
    +             // A hex number
    +             + '0x[a-f0-9]+'
    +             // or an octal or decimal number,
    +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
    +             // possibly in scientific notation
    +             + '(?:e[+\\-]?\\d+)?'
    +             + ')'
    +             // with an optional modifier like UL for unsigned long
    +             + '[a-z]*', 'i'),
    +         null, '0123456789'],
    +        // Don't treat escaped quotes in bash as starting strings.  See issue 144.
    +        [PR_PLAIN,       /^\\[\s\S]?/, null],
    +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null]);
    +
    +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
    +  }
    +
    +  var decorateSource = sourceDecorator({
    +        'keywords': ALL_KEYWORDS,
    +        'hashComments': true,
    +        'cStyleComments': true,
    +        'multiLineStrings': true,
    +        'regexLiterals': true
    +      });
    +
    +  /**
    +   * Given a DOM subtree, wraps it in a list, and puts each line into its own
    +   * list item.
    +   *
    +   * @param {Node} node modified in place.  Its content is pulled into an
    +   *     HTMLOListElement, and each line is moved into a separate list item.
    +   *     This requires cloning elements, so the input might not have unique
    +   *     IDs after numbering.
    +   */
    +  function numberLines(node, opt_startLineNum) {
    +    var nocode = /(?:^|\s)nocode(?:\s|$)/;
    +    var lineBreak = /\r\n?|\n/;
    +  
    +    var document = node.ownerDocument;
    +  
    +    var whitespace;
    +    if (node.currentStyle) {
    +      whitespace = node.currentStyle.whiteSpace;
    +    } else if (window.getComputedStyle) {
    +      whitespace = document.defaultView.getComputedStyle(node, null)
    +          .getPropertyValue('white-space');
    +    }
    +    // If it's preformatted, then we need to split lines on line breaks
    +    // in addition to <BR>s.
    +    var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3);
    +  
    +    var li = document.createElement('LI');
    +    while (node.firstChild) {
    +      li.appendChild(node.firstChild);
    +    }
    +    // An array of lines.  We split below, so this is initialized to one
    +    // un-split line.
    +    var listItems = [li];
    +  
    +    function walk(node) {
    +      switch (node.nodeType) {
    +        case 1:  // Element
    +          if (nocode.test(node.className)) { break; }
    +          if ('BR' === node.nodeName) {
    +            breakAfter(node);
    +            // Discard the <BR> since it is now flush against a </LI>.
    +            if (node.parentNode) {
    +              node.parentNode.removeChild(node);
    +            }
    +          } else {
    +            for (var child = node.firstChild; child; child = child.nextSibling) {
    +              walk(child);
    +            }
    +          }
    +          break;
    +        case 3: case 4:  // Text
    +          if (isPreformatted) {
    +            var text = node.nodeValue;
    +            var match = text.match(lineBreak);
    +            if (match) {
    +              var firstLine = text.substring(0, match.index);
    +              node.nodeValue = firstLine;
    +              var tail = text.substring(match.index + match[0].length);
    +              if (tail) {
    +                var parent = node.parentNode;
    +                parent.insertBefore(
    +                    document.createTextNode(tail), node.nextSibling);
    +              }
    +              breakAfter(node);
    +              if (!firstLine) {
    +                // Don't leave blank text nodes in the DOM.
    +                node.parentNode.removeChild(node);
    +              }
    +            }
    +          }
    +          break;
    +      }
    +    }
    +  
    +    // Split a line after the given node.
    +    function breakAfter(lineEndNode) {
    +      // If there's nothing to the right, then we can skip ending the line
    +      // here, and move root-wards since splitting just before an end-tag
    +      // would require us to create a bunch of empty copies.
    +      while (!lineEndNode.nextSibling) {
    +        lineEndNode = lineEndNode.parentNode;
    +        if (!lineEndNode) { return; }
    +      }
    +  
    +      function breakLeftOf(limit, copy) {
    +        // Clone shallowly if this node needs to be on both sides of the break.
    +        var rightSide = copy ? limit.cloneNode(false) : limit;
    +        var parent = limit.parentNode;
    +        if (parent) {
    +          // We clone the parent chain.
    +          // This helps us resurrect important styling elements that cross lines.
    +          // E.g. in <i>Foo<br>Bar</i>
    +          // should be rewritten to <li><i>Foo</i></li><li><i>Bar</i></li>.
    +          var parentClone = breakLeftOf(parent, 1);
    +          // Move the clone and everything to the right of the original
    +          // onto the cloned parent.
    +          var next = limit.nextSibling;
    +          parentClone.appendChild(rightSide);
    +          for (var sibling = next; sibling; sibling = next) {
    +            next = sibling.nextSibling;
    +            parentClone.appendChild(sibling);
    +          }
    +        }
    +        return rightSide;
    +      }
    +  
    +      var copiedListItem = breakLeftOf(lineEndNode.nextSibling, 0);
    +  
    +      // Walk the parent chain until we reach an unattached LI.
    +      for (var parent;
    +           // Check nodeType since IE invents document fragments.
    +           (parent = copiedListItem.parentNode) && parent.nodeType === 1;) {
    +        copiedListItem = parent;
    +      }
    +      // Put it on the list of lines for later processing.
    +      listItems.push(copiedListItem);
    +    }
    +  
    +    // Split lines while there are lines left to split.
    +    for (var i = 0;  // Number of lines that have been split so far.
    +         i < listItems.length;  // length updated by breakAfter calls.
    +         ++i) {
    +      walk(listItems[i]);
    +    }
    +  
    +    // Make sure numeric indices show correctly.
    +    if (opt_startLineNum === (opt_startLineNum|0)) {
    +      listItems[0].setAttribute('value', opt_startLineNum);
    +    }
    +  
    +    var ol = document.createElement('OL');
    +    ol.className = 'linenums';
    +    var offset = Math.max(0, ((opt_startLineNum - 1 /* zero index */)) | 0) || 0;
    +    for (var i = 0, n = listItems.length; i < n; ++i) {
    +      li = listItems[i];
    +      // Stick a class on the LIs so that stylesheets can
    +      // color odd/even rows, or any other row pattern that
    +      // is co-prime with 10.
    +      li.className = 'L' + ((i + offset) % 10);
    +      if (!li.firstChild) {
    +        li.appendChild(document.createTextNode('\xA0'));
    +      }
    +      ol.appendChild(li);
    +    }
    +  
    +    node.appendChild(ol);
    +  }
    +
    +  /**
    +   * Breaks {@code job.source} around style boundaries in {@code job.decorations}
    +   * and modifies {@code job.sourceNode} in place.
    +   * @param {Object} job like <pre>{
    +   *    source: {string} source as plain text,
    +   *    spans: {Array.<number|Node>} alternating span start indices into source
    +   *       and the text node or element (e.g. {@code <BR>}) corresponding to that
    +   *       span.
    +   *    decorations: {Array.<number|string} an array of style classes preceded
    +   *       by the position at which they start in job.source in order
    +   * }</pre>
    +   * @private
    +   */
    +  function recombineTagsAndDecorations(job) {
    +    var isIE = /\bMSIE\b/.test(navigator.userAgent);
    +    var newlineRe = /\n/g;
    +  
    +    var source = job.source;
    +    var sourceLength = source.length;
    +    // Index into source after the last code-unit recombined.
    +    var sourceIndex = 0;
    +  
    +    var spans = job.spans;
    +    var nSpans = spans.length;
    +    // Index into spans after the last span which ends at or before sourceIndex.
    +    var spanIndex = 0;
    +  
    +    var decorations = job.decorations;
    +    var nDecorations = decorations.length;
    +    // Index into decorations after the last decoration which ends at or before sourceIndex.
    +    var decorationIndex = 0;
    +  
    +    // Simplify decorations.
    +    var decPos = 0;
    +    for (var i = 0; i < nDecorations;) {
    +      // Skip over any zero-length decorations.
    +      var startPos = decorations[i];
    +      var start = i;
    +      while (start + 2 < nDecorations && decorations[start + 2] === startPos) {
    +        start += 2;
    +      }
    +      // Conflate all adjacent decorations that use the same style.
    +      var startDec = decorations[start + 1];
    +      var end = start + 2;
    +      while (end + 2 <= nDecorations
    +             && (decorations[end + 1] === startDec
    +                 || decorations[end] === decorations[end + 2])) {
    +        end += 2;
    +      }
    +      decorations[decPos++] = startPos;
    +      decorations[decPos++] = startDec;
    +      i = end;
    +    }
    +  
    +    // Strip any zero-length decoration at the end.
    +    if (decPos && decorations[decPos - 2] === sourceLength) { decPos -= 2; }
    +    nDecorations = decorations.length = decPos;
    +  
    +    var decoration = null;
    +    while (spanIndex < nSpans) {
    +      var spanStart = spans[spanIndex];
    +      var spanEnd = spans[spanIndex + 2] || sourceLength;
    +  
    +      var decStart = decorations[decorationIndex];
    +      var decEnd = decorations[decorationIndex + 2] || sourceLength;
    +  
    +      var end = Math.min(spanEnd, decEnd);
    +  
    +      var textNode = spans[spanIndex + 1];
    +      if (textNode.nodeType !== 1) {  // Don't muck with <BR>s or <LI>s
    +        var styledText = source.substring(sourceIndex, end);
    +        // This may seem bizarre, and it is.  Emitting LF on IE causes the
    +        // code to display with spaces instead of line breaks.
    +        // Emitting Windows standard issue linebreaks (CRLF) causes a blank
    +        // space to appear at the beginning of every line but the first.
    +        // Emitting an old Mac OS 9 line separator makes everything spiffy.
    +        if (isIE) { styledText = styledText.replace(newlineRe, '\r'); }
    +        textNode.nodeValue = styledText;
    +        var document = textNode.ownerDocument;
    +        var span = document.createElement('SPAN');
    +        span.className = decorations[decorationIndex + 1];
    +        var parentNode = textNode.parentNode;
    +        parentNode.replaceChild(span, textNode);
    +        span.appendChild(textNode);
    +        if (sourceIndex < spanEnd) {  // Split off a text node.
    +          spans[spanIndex + 1] = textNode
    +              // TODO: Possibly optimize by using '' if there's no flicker.
    +              = document.createTextNode(source.substring(end, spanEnd));
    +          parentNode.insertBefore(textNode, span.nextSibling);
    +        }
    +      }
    +  
    +      sourceIndex = end;
    +  
    +      if (sourceIndex >= spanEnd) {
    +        spanIndex += 2;
    +      }
    +      if (sourceIndex >= decEnd) {
    +        decorationIndex += 2;
    +      }
    +    }
    +  }
    +
    +
    +  /** Maps language-specific file extensions to handlers. */
    +  var langHandlerRegistry = {};
    +  /** Register a language handler for the given file extensions.
    +    * @param {function (Object)} handler a function from source code to a list
    +    *      of decorations.  Takes a single argument job which describes the
    +    *      state of the computation.   The single parameter has the form
    +    *      {@code {
    +    *        source: {string} as plain text.
    +    *        decorations: {Array.<number|string>} an array of style classes
    +    *                     preceded by the position at which they start in
    +    *                     job.source in order.
    +    *                     The language handler should assigned this field.
    +    *        basePos: {int} the position of source in the larger source chunk.
    +    *                 All positions in the output decorations array are relative
    +    *                 to the larger source chunk.
    +    *      } }
    +    * @param {Array.<string>} fileExtensions
    +    */
    +  function registerLangHandler(handler, fileExtensions) {
    +    for (var i = fileExtensions.length; --i >= 0;) {
    +      var ext = fileExtensions[i];
    +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
    +        langHandlerRegistry[ext] = handler;
    +      } else if ('console' in window) {
    +        console['warn']('cannot override language handler %s', ext);
    +      }
    +    }
    +  }
    +  function langHandlerForExtension(extension, source) {
    +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
    +      // Treat it as markup if the first non whitespace character is a < and
    +      // the last non-whitespace character is a >.
    +      extension = /^\s*</.test(source)
    +          ? 'default-markup'
    +          : 'default-code';
    +    }
    +    return langHandlerRegistry[extension];
    +  }
    +  registerLangHandler(decorateSource, ['default-code']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [],
    +          [
    +           [PR_PLAIN,       /^[^<?]+/],
    +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
    +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
    +           // Unescaped content in an unknown language
    +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
    +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
    +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
    +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
    +           // Unescaped content in javascript.  (Or possibly vbscript).
    +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
    +           // Contains unescaped stylesheet content
    +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
    +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
    +          ]),
    +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [
    +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
    +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
    +           ],
    +          [
    +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
    +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
    +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
    +           [PR_PUNCTUATION,  /^[=<>\/]+/],
    +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
    +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
    +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
    +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
    +           ]),
    +      ['in.tag']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CPP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true
    +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': 'null true false'
    +        }), ['json']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CSHARP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true,
    +          'verbatimStrings': true
    +        }), ['cs']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JAVA_KEYWORDS,
    +          'cStyleComments': true
    +        }), ['java']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': SH_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true
    +        }), ['bsh', 'csh', 'sh']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PYTHON_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'tripleQuotedStrings': true
    +        }), ['cv', 'py']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PERL_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['perl', 'pl', 'pm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': RUBY_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['rb']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JSCRIPT_KEYWORDS,
    +          'cStyleComments': true,
    +          'regexLiterals': true
    +        }), ['js']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': COFFEE_KEYWORDS,
    +          'hashComments': 3,  // ### style block comments
    +          'cStyleComments': true,
    +          'multilineStrings': true,
    +          'tripleQuotedStrings': true,
    +          'regexLiterals': true
    +        }), ['coffee']);
    +  registerLangHandler(createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
    +
    +  function applyDecorator(job) {
    +    var opt_langExtension = job.langExtension;
    +
    +    try {
    +      // Extract tags, and convert the source code to plain text.
    +      var sourceAndSpans = extractSourceSpans(job.sourceNode);
    +      /** Plain text. @type {string} */
    +      var source = sourceAndSpans.source;
    +      job.source = source;
    +      job.spans = sourceAndSpans.spans;
    +      job.basePos = 0;
    +
    +      // Apply the appropriate language handler
    +      langHandlerForExtension(opt_langExtension, source)(job);
    +
    +      // Integrate the decorations and tags back into the source code,
    +      // modifying the sourceNode in place.
    +      recombineTagsAndDecorations(job);
    +    } catch (e) {
    +      if ('console' in window) {
    +        console['log'](e && e['stack'] ? e['stack'] : e);
    +      }
    +    }
    +  }
    +
    +  /**
    +   * @param sourceCodeHtml {string} The HTML to pretty print.
    +   * @param opt_langExtension {string} The language name to use.
    +   *     Typically, a filename extension like 'cpp' or 'java'.
    +   * @param opt_numberLines {number|boolean} True to number lines,
    +   *     or the 1-indexed number of the first line in sourceCodeHtml.
    +   */
    +  function prettyPrintOne(sourceCodeHtml, opt_langExtension, opt_numberLines) {
    +    var container = document.createElement('PRE');
    +    // This could cause images to load and onload listeners to fire.
    +    // E.g. <img onerror="alert(1337)" src="nosuchimage.png">.
    +    // We assume that the inner HTML is from a trusted source.
    +    container.innerHTML = sourceCodeHtml;
    +    if (opt_numberLines) {
    +      numberLines(container, opt_numberLines);
    +    }
    +
    +    var job = {
    +      langExtension: opt_langExtension,
    +      numberLines: opt_numberLines,
    +      sourceNode: container
    +    };
    +    applyDecorator(job);
    +    return container.innerHTML;
    +  }
    +
    +  function prettyPrint(opt_whenDone) {
    +    function byTagName(tn) { return document.getElementsByTagName(tn); }
    +    // fetch a list of nodes to rewrite
    +    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
    +    var elements = [];
    +    for (var i = 0; i < codeSegments.length; ++i) {
    +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
    +        elements.push(codeSegments[i][j]);
    +      }
    +    }
    +    codeSegments = null;
    +
    +    var clock = Date;
    +    if (!clock['now']) {
    +      clock = { 'now': function () { return (new Date).getTime(); } };
    +    }
    +
    +    // The loop is broken into a series of continuations to make sure that we
    +    // don't make the browser unresponsive when rewriting a large page.
    +    var k = 0;
    +    var prettyPrintingJob;
    +
    +    function doWork() {
    +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
    +                     clock.now() + 250 /* ms */ :
    +                     Infinity);
    +      for (; k < elements.length && clock.now() < endTime; k++) {
    +        var cs = elements[k];
    +        if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
    +          // If the classes includes a language extensions, use it.
    +          // Language extensions can be specified like
    +          //     <pre class="prettyprint lang-cpp">
    +          // the language extension "cpp" is used to find a language handler as
    +          // passed to PR.registerLangHandler.
    +          var langExtension = cs.className.match(/\blang-(\w+)\b/);
    +          if (langExtension) { langExtension = langExtension[1]; }
    +
    +          // make sure this is not nested in an already prettified element
    +          var nested = false;
    +          for (var p = cs.parentNode; p; p = p.parentNode) {
    +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
    +                 p.tagName === 'xmp') &&
    +                p.className && p.className.indexOf('prettyprint') >= 0) {
    +              nested = true;
    +              break;
    +            }
    +          }
    +          if (!nested) {
    +            // Look for a class like linenums or linenums:<n> where <n> is the
    +            // 1-indexed number of the first line.
    +            var lineNums = cs.className.match(/\blinenums\b(?::(\d+))?/);
    +            lineNums = lineNums
    +                  ? lineNums[1] && lineNums[1].length ? +lineNums[1] : true
    +                  : false;
    +            if (lineNums) { numberLines(cs, lineNums); }
    +
    +            // do the pretty printing
    +            prettyPrintingJob = {
    +              langExtension: langExtension,
    +              sourceNode: cs,
    +              numberLines: lineNums
    +            };
    +            applyDecorator(prettyPrintingJob);
    +          }
    +        }
    +      }
    +      if (k < elements.length) {
    +        // finish up in a continuation
    +        setTimeout(doWork, 250);
    +      } else if (opt_whenDone) {
    +        opt_whenDone();
    +      }
    +    }
    +
    +    doWork();
    +  }
    +
    +  window['prettyPrintOne'] = prettyPrintOne;
    +  window['prettyPrint'] = prettyPrint;
    +  window['PR'] = {
    +        'createSimpleLexer': createSimpleLexer,
    +        'registerLangHandler': registerLangHandler,
    +        'sourceDecorator': sourceDecorator,
    +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
    +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
    +        'PR_COMMENT': PR_COMMENT,
    +        'PR_DECLARATION': PR_DECLARATION,
    +        'PR_KEYWORD': PR_KEYWORD,
    +        'PR_LITERAL': PR_LITERAL,
    +        'PR_NOCODE': PR_NOCODE,
    +        'PR_PLAIN': PR_PLAIN,
    +        'PR_PUNCTUATION': PR_PUNCTUATION,
    +        'PR_SOURCE': PR_SOURCE,
    +        'PR_STRING': PR_STRING,
    +        'PR_TAG': PR_TAG,
    +        'PR_TYPE': PR_TYPE
    +      };
    +})();
    diff -r 000000000000 -r e5b70f7cd8a6 slides.js
    --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    +++ b/slides.js	Wed Mar 28 10:41:57 2012 +0900
    @@ -0,0 +1,636 @@
    +/*
    +  Google HTML5 slides template
    +
    +  Authors: Luke Mahé (code)
    +           Marcin Wichary (code and design)
    +
    +           Dominic Mazzoni (browser compatibility)
    +           Charles Chen (ChromeVox support)
    +
    +  URL: http://code.google.com/p/html5slides/
    +*/
    +
    +var PERMANENT_URL_PREFIX = './';
    +
    +var SLIDE_CLASSES = ['far-past', 'past', 'current', 'next', 'far-next'];
    +
    +var PM_TOUCH_SENSITIVITY = 15;
    +
    +var curSlide;
    +
    +/* ---------------------------------------------------------------------- */
    +/* classList polyfill by Eli Grey 
    + * (http://purl.eligrey.com/github/classList.js/blob/master/classList.js) */
    +
    +if (typeof document !== "undefined" && !("classList" in document.createElement("a"))) {
    +
    +(function (view) {
    +
    +var
    +    classListProp = "classList"
    +  , protoProp = "prototype"
    +  , elemCtrProto = (view.HTMLElement || view.Element)[protoProp]
    +  , objCtr = Object
    +    strTrim = String[protoProp].trim || function () {
    +    return this.replace(/^\s+|\s+$/g, "");
    +  }
    +  , arrIndexOf = Array[protoProp].indexOf || function (item) {
    +    for (var i = 0, len = this.length; i < len; i++) {
    +      if (i in this && this[i] === item) {
    +        return i;
    +      }
    +    }
    +    return -1;
    +  }
    +  // Vendors: please allow content code to instantiate DOMExceptions
    +  , DOMEx = function (type, message) {
    +    this.name = type;
    +    this.code = DOMException[type];
    +    this.message = message;
    +  }
    +  , checkTokenAndGetIndex = function (classList, token) {
    +    if (token === "") {
    +      throw new DOMEx(
    +          "SYNTAX_ERR"
    +        , "An invalid or illegal string was specified"
    +      );
    +    }
    +    if (/\s/.test(token)) {
    +      throw new DOMEx(
    +          "INVALID_CHARACTER_ERR"
    +        , "String contains an invalid character"
    +      );
    +    }
    +    return arrIndexOf.call(classList, token);
    +  }
    +  , ClassList = function (elem) {
    +    var
    +        trimmedClasses = strTrim.call(elem.className)
    +      , classes = trimmedClasses ? trimmedClasses.split(/\s+/) : []
    +    ;
    +    for (var i = 0, len = classes.length; i < len; i++) {
    +      this.push(classes[i]);
    +    }
    +    this._updateClassName = function () {
    +      elem.className = this.toString();
    +    };
    +  }
    +  , classListProto = ClassList[protoProp] = []
    +  , classListGetter = function () {
    +    return new ClassList(this);
    +  }
    +;
    +// Most DOMException implementations don't allow calling DOMException's toString()
    +// on non-DOMExceptions. Error's toString() is sufficient here.
    +DOMEx[protoProp] = Error[protoProp];
    +classListProto.item = function (i) {
    +  return this[i] || null;
    +};
    +classListProto.contains = function (token) {
    +  token += "";
    +  return checkTokenAndGetIndex(this, token) !== -1;
    +};
    +classListProto.add = function (token) {
    +  token += "";
    +  if (checkTokenAndGetIndex(this, token) === -1) {
    +    this.push(token);
    +    this._updateClassName();
    +  }
    +};
    +classListProto.remove = function (token) {
    +  token += "";
    +  var index = checkTokenAndGetIndex(this, token);
    +  if (index !== -1) {
    +    this.splice(index, 1);
    +    this._updateClassName();
    +  }
    +};
    +classListProto.toggle = function (token) {
    +  token += "";
    +  if (checkTokenAndGetIndex(this, token) === -1) {
    +    this.add(token);
    +  } else {
    +    this.remove(token);
    +  }
    +};
    +classListProto.toString = function () {
    +  return this.join(" ");
    +};
    +
    +if (objCtr.defineProperty) {
    +  var classListPropDesc = {
    +      get: classListGetter
    +    , enumerable: true
    +    , configurable: true
    +  };
    +  try {
    +    objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);
    +  } catch (ex) { // IE 8 doesn't support enumerable:true
    +    if (ex.number === -0x7FF5EC54) {
    +      classListPropDesc.enumerable = false;
    +      objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);
    +    }
    +  }
    +} else if (objCtr[protoProp].__defineGetter__) {
    +  elemCtrProto.__defineGetter__(classListProp, classListGetter);
    +}
    +
    +}(self));
    +
    +}
    +/* ---------------------------------------------------------------------- */
    +
    +/* Slide movement */
    +
    +function getSlideEl(no) {
    +  if ((no < 0) || (no >= slideEls.length)) { 
    +    return null;
    +  } else {
    +    return slideEls[no];
    +  }
    +};
    +
    +function updateSlideClass(slideNo, className) {
    +  var el = getSlideEl(slideNo);
    +  
    +  if (!el) {
    +    return;
    +  }
    +  
    +  if (className) {
    +    el.classList.add(className);
    +  }
    +    
    +  for (var i in SLIDE_CLASSES) {
    +    if (className != SLIDE_CLASSES[i]) {
    +      el.classList.remove(SLIDE_CLASSES[i]);
    +    }
    +  }
    +};
    +
    +function updateSlides() {
    +  for (var i = 0; i < slideEls.length; i++) {
    +    switch (i) {
    +      case curSlide - 2:
    +        updateSlideClass(i, 'far-past');
    +        break;
    +      case curSlide - 1:
    +        updateSlideClass(i, 'past');
    +        break;
    +      case curSlide: 
    +        updateSlideClass(i, 'current');
    +        break;
    +      case curSlide + 1:
    +        updateSlideClass(i, 'next');      
    +        break;
    +      case curSlide + 2:
    +        updateSlideClass(i, 'far-next');      
    +        break;
    +      default:
    +        updateSlideClass(i);
    +        break;
    +    }
    +  }
    +
    +  triggerLeaveEvent(curSlide - 1);
    +  triggerEnterEvent(curSlide);
    +
    +  window.setTimeout(function() {
    +    // Hide after the slide
    +    disableSlideFrames(curSlide - 2);
    +  }, 301);
    +
    +  enableSlideFrames(curSlide - 1);
    +  enableSlideFrames(curSlide + 2);
    +  
    +  if (isChromeVoxActive()) {
    +    speakAndSyncToNode(slideEls[curSlide]);
    +  }  
    +
    +  updateHash();
    +};
    +
    +function buildNextItem() {
    +  var toBuild  = slideEls[curSlide].querySelectorAll('.to-build');
    +
    +  if (!toBuild.length) {
    +    return false;
    +  }
    +
    +  toBuild[0].classList.remove('to-build', '');
    +
    +  if (isChromeVoxActive()) {
    +    speakAndSyncToNode(toBuild[0]);
    +  }
    +
    +  return true;
    +};
    +
    +function prevSlide() {
    +  if (curSlide > 0) {
    +    curSlide--;
    +
    +    updateSlides();
    +  }
    +};
    +
    +function nextSlide() {
    +  if (buildNextItem()) {
    +    return;
    +  }
    +
    +  if (curSlide < slideEls.length - 1) {
    +    curSlide++;
    +
    +    updateSlides();
    +  }
    +};
    +
    +/* Slide events */
    +
    +function triggerEnterEvent(no) {
    +  var el = getSlideEl(no);
    +  if (!el) {
    +    return;
    +  }
    +
    +  var onEnter = el.getAttribute('onslideenter');
    +  if (onEnter) {
    +    new Function(onEnter).call(el);
    +  }
    +
    +  var evt = document.createEvent('Event');
    +  evt.initEvent('slideenter', true, true);
    +  evt.slideNumber = no + 1; // Make it readable
    +
    +  el.dispatchEvent(evt);
    +};
    +
    +function triggerLeaveEvent(no) {
    +  var el = getSlideEl(no);
    +  if (!el) {
    +    return;
    +  }
    +
    +  var onLeave = el.getAttribute('onslideleave');
    +  if (onLeave) {
    +    new Function(onLeave).call(el);
    +  }
    +
    +  var evt = document.createEvent('Event');
    +  evt.initEvent('slideleave', true, true);
    +  evt.slideNumber = no + 1; // Make it readable
    +  
    +  el.dispatchEvent(evt);
    +};
    +
    +/* Touch events */
    +
    +function handleTouchStart(event) {
    +  if (event.touches.length == 1) {
    +    touchDX = 0;
    +    touchDY = 0;
    +
    +    touchStartX = event.touches[0].pageX;
    +    touchStartY = event.touches[0].pageY;
    +
    +    document.body.addEventListener('touchmove', handleTouchMove, true);
    +    document.body.addEventListener('touchend', handleTouchEnd, true);
    +  }
    +};
    +
    +function handleTouchMove(event) {
    +  if (event.touches.length > 1) {
    +    cancelTouch();
    +  } else {
    +    touchDX = event.touches[0].pageX - touchStartX;
    +    touchDY = event.touches[0].pageY - touchStartY;
    +  }
    +};
    +
    +function handleTouchEnd(event) {
    +  var dx = Math.abs(touchDX);
    +  var dy = Math.abs(touchDY);
    +
    +  if ((dx > PM_TOUCH_SENSITIVITY) && (dy < (dx * 2 / 3))) {
    +    if (touchDX > 0) {
    +      prevSlide();
    +    } else {
    +      nextSlide();
    +    }
    +  }
    +  
    +  cancelTouch();
    +};
    +
    +function cancelTouch() {
    +  document.body.removeEventListener('touchmove', handleTouchMove, true);
    +  document.body.removeEventListener('touchend', handleTouchEnd, true);  
    +};
    +
    +/* Preloading frames */
    +
    +function disableSlideFrames(no) {
    +  var el = getSlideEl(no);
    +  if (!el) {
    +    return;
    +  }
    +
    +  var frames = el.getElementsByTagName('iframe');
    +  for (var i = 0, frame; frame = frames[i]; i++) {
    +    disableFrame(frame);
    +  }
    +};
    +
    +function enableSlideFrames(no) {
    +  var el = getSlideEl(no);
    +  if (!el) {
    +    return;
    +  }
    +
    +  var frames = el.getElementsByTagName('iframe');
    +  for (var i = 0, frame; frame = frames[i]; i++) {
    +    enableFrame(frame);
    +  }
    +};
    +
    +function disableFrame(frame) {
    +  frame.src = 'about:blank';
    +};
    +
    +function enableFrame(frame) {
    +  var src = frame._src;
    +
    +  if (frame.src != src && src != 'about:blank') {
    +    frame.src = src;
    +  }
    +};
    +
    +function setupFrames() {
    +  var frames = document.querySelectorAll('iframe');
    +  for (var i = 0, frame; frame = frames[i]; i++) {
    +    frame._src = frame.src;
    +    disableFrame(frame);
    +  }
    +  
    +  enableSlideFrames(curSlide);
    +  enableSlideFrames(curSlide + 1);
    +  enableSlideFrames(curSlide + 2);  
    +};
    +
    +function setupInteraction() {
    +  /* Clicking and tapping */
    +  
    +  var el = document.createElement('div');
    +  el.className = 'slide-area';
    +  el.id = 'prev-slide-area';  
    +  el.addEventListener('click', prevSlide, false);
    +  document.querySelector('section.slides').appendChild(el);
    +
    +  var el = document.createElement('div');
    +  el.className = 'slide-area';
    +  el.id = 'next-slide-area';  
    +  el.addEventListener('click', nextSlide, false);
    +  document.querySelector('section.slides').appendChild(el);  
    +  
    +  /* Swiping */
    +  
    +  document.body.addEventListener('touchstart', handleTouchStart, false);
    +}
    +
    +/* ChromeVox support */
    +
    +function isChromeVoxActive() {
    +  if (typeof(cvox) == 'undefined') {
    +    return false;
    +  } else {
    +    return true;
    +  }
    +};
    +
    +function speakAndSyncToNode(node) {
    +  if (!isChromeVoxActive()) {
    +    return;
    +  }
    +  
    +  cvox.ChromeVox.navigationManager.switchToStrategy(
    +      cvox.ChromeVoxNavigationManager.STRATEGIES.LINEARDOM, 0, true);  
    +  cvox.ChromeVox.navigationManager.syncToNode(node);
    +  cvox.ChromeVoxUserCommands.finishNavCommand('');
    +  var target = node;
    +  while (target.firstChild) {
    +    target = target.firstChild;
    +  }
    +  cvox.ChromeVox.navigationManager.syncToNode(target);
    +};
    +
    +function speakNextItem() {
    +  if (!isChromeVoxActive()) {
    +    return;
    +  }
    +  
    +  cvox.ChromeVox.navigationManager.switchToStrategy(
    +      cvox.ChromeVoxNavigationManager.STRATEGIES.LINEARDOM, 0, true);
    +  cvox.ChromeVox.navigationManager.next(true);
    +  if (!cvox.DomUtil.isDescendantOfNode(
    +      cvox.ChromeVox.navigationManager.getCurrentNode(), slideEls[curSlide])){
    +    var target = slideEls[curSlide];
    +    while (target.firstChild) {
    +      target = target.firstChild;
    +    }
    +    cvox.ChromeVox.navigationManager.syncToNode(target);
    +    cvox.ChromeVox.navigationManager.next(true);
    +  }
    +  cvox.ChromeVoxUserCommands.finishNavCommand('');
    +};
    +
    +function speakPrevItem() {
    +  if (!isChromeVoxActive()) {
    +    return;
    +  }
    +  
    +  cvox.ChromeVox.navigationManager.switchToStrategy(
    +      cvox.ChromeVoxNavigationManager.STRATEGIES.LINEARDOM, 0, true);
    +  cvox.ChromeVox.navigationManager.previous(true);
    +  if (!cvox.DomUtil.isDescendantOfNode(
    +      cvox.ChromeVox.navigationManager.getCurrentNode(), slideEls[curSlide])){
    +    var target = slideEls[curSlide];
    +    while (target.lastChild){
    +      target = target.lastChild;
    +    }
    +    cvox.ChromeVox.navigationManager.syncToNode(target);
    +    cvox.ChromeVox.navigationManager.previous(true);
    +  }
    +  cvox.ChromeVoxUserCommands.finishNavCommand('');
    +};
    +
    +/* Hash functions */
    +
    +function getCurSlideFromHash() {
    +  var slideNo = parseInt(location.hash.substr(1));
    +
    +  if (slideNo) {
    +    curSlide = slideNo - 1;
    +  } else {
    +    curSlide = 0;
    +  }
    +};
    +
    +function updateHash() {
    +  location.replace('#' + (curSlide + 1));
    +};
    +
    +/* Event listeners */
    +
    +function handleBodyKeyDown(event) {
    +  switch (event.keyCode) {
    +    case 39: // right arrow
    +    case 13: // Enter
    +    case 32: // space
    +    case 34: // PgDn
    +      nextSlide();
    +      event.preventDefault();
    +      break;
    +
    +    case 37: // left arrow
    +    case 8: // Backspace
    +    case 33: // PgUp
    +      prevSlide();
    +      event.preventDefault();
    +      break;
    +
    +    case 40: // down arrow
    +      if (isChromeVoxActive()) {
    +        speakNextItem();
    +      } else {
    +        nextSlide();
    +      }
    +      event.preventDefault();
    +      break;
    +
    +    case 38: // up arrow
    +      if (isChromeVoxActive()) {
    +        speakPrevItem();
    +      } else {
    +        prevSlide();
    +      }
    +      event.preventDefault();
    +      break;
    +  }
    +};
    +
    +function addEventListeners() {
    +  document.addEventListener('keydown', handleBodyKeyDown, false);  
    +};
    +
    +/* Initialization */
    +
    +function addPrettify() {
    +  var els = document.querySelectorAll('pre');
    +  for (var i = 0, el; el = els[i]; i++) {
    +    if (!el.classList.contains('noprettyprint')) {
    +      el.classList.add('prettyprint');
    +    }
    +  }
    +  
    +  var el = document.createElement('script');
    +  el.type = 'text/javascript';
    +  el.src = PERMANENT_URL_PREFIX + 'prettify.js';
    +  el.onload = function() {
    +    prettyPrint();
    +  }
    +  document.body.appendChild(el);
    +};
    +
    +function addFontStyle() {
    +/*
    +  var el = document.createElement('link');
    +  el.rel = 'stylesheet';
    +  el.type = 'text/css';
    +  el.href = 'http://fonts.googleapis.com/css?family=' +
    +            'Open+Sans:regular,semibold,italic,italicsemibold|Droid+Sans+Mono';
    +
    +  document.body.appendChild(el);
    +*/
    +};
    +
    +function addGeneralStyle() {
    +  var el = document.createElement('link');
    +  el.rel = 'stylesheet';
    +  el.type = 'text/css';
    +  el.href = PERMANENT_URL_PREFIX + 'styles.css';
    +  document.body.appendChild(el);
    +  
    +  var el = document.createElement('meta');
    +  el.name = 'viewport';
    +  el.content = 'width=1100,height=750';
    +  document.querySelector('head').appendChild(el);
    +  
    +  var el = document.createElement('meta');
    +  el.name = 'apple-mobile-web-app-capable';
    +  el.content = 'yes';
    +  document.querySelector('head').appendChild(el);
    +};
    +
    +function makeBuildLists() {
    +  for (var i = curSlide, slide; slide = slideEls[i]; i++) {
    +    var items = slide.querySelectorAll('.build > *');
    +    for (var j = 0, item; item = items[j]; j++) {
    +      if (item.classList) {
    +        item.classList.add('to-build');
    +      }
    +    }
    +  }
    +};
    +
    +function handleDomLoaded() {
    +  slideEls = document.querySelectorAll('section.slides > article');
    +
    +  setupFrames();
    +
    +  addFontStyle();
    +  addGeneralStyle();
    +  addPrettify();
    +  addEventListeners();
    +
    +  updateSlides();
    +
    +  setupInteraction();
    +  makeBuildLists();
    +
    +  document.body.classList.add('loaded');
    +};
    +
    +function initialize() {
    +  getCurSlideFromHash();
    +
    +  if (window['_DEBUG']) {
    +    PERMANENT_URL_PREFIX = '../';
    +  }
    +
    +  if (window['_DCL']) {
    +    handleDomLoaded();
    +  } else {
    +    document.addEventListener('DOMContentLoaded', handleDomLoaded, false);
    +  }
    +}
    +
    +// If ?debug exists then load the script relative instead of absolute
    +if (!window['_DEBUG'] && document.location.href.indexOf('?debug') !== -1) {
    +  document.addEventListener('DOMContentLoaded', function() {
    +    // Avoid missing the DomContentLoaded event
    +    window['_DCL'] = true
    +  }, false);
    +
    +  window['_DEBUG'] = true;
    +  var script = document.createElement('script');
    +  script.type = 'text/javascript';
    +  script.src = '../slides.js';
    +  var s = document.getElementsByTagName('script')[0];
    +  s.parentNode.insertBefore(script, s);
    +
    +  // Remove this script
    +  s.parentNode.removeChild(s);
    +} else {
    +  initialize();
    +}
    diff -r 000000000000 -r e5b70f7cd8a6 styles.css
    --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    +++ b/styles.css	Wed Mar 28 10:41:57 2012 +0900
    @@ -0,0 +1,612 @@
    +/*
    +  Google HTML5 slides template
    +
    +  Authors: Luke Mahé (code)
    +           Marcin Wichary (code and design)
    +           
    +           Dominic Mazzoni (browser compatibility)
    +           Charles Chen (ChromeVox support)
    +
    +  URL: http://code.google.com/p/html5slides/
    +*/
    +
    +/* Framework */
    +
    +html {
    +  height: 100%;
    +}
    +
    +body {
    +  margin: 0;
    +  padding: 0;
    +
    +  display: block !important;
    +
    +  height: 100%;
    +  min-height: 740px;
    +  
    +  overflow-x: hidden;
    +  overflow-y: auto;
    +
    +  background: rgb(215, 215, 215);
    +  background: -o-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
    +  background: -moz-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
    +  background: -webkit-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
    +  background: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 500, from(rgb(240, 240, 240)), to(rgb(190, 190, 190)));
    +
    +  -webkit-font-smoothing: antialiased;
    +}
    +
    +.slides {
    +  width: 100%;
    +  height: 100%;
    +  left: 0;
    +  top: 0;
    +  
    +  position: absolute;
    +
    +  -webkit-transform: translate3d(0, 0, 0);
    +}
    +
    +.slides > article {
    +  display: block;
    +
    +  position: absolute;
    +  overflow: hidden;
    +
    +  width: 900px;
    +  height: 700px;
    +
    +  left: 50%;
    +  top: 50%;
    +
    +  margin-left: -450px;
    +  margin-top: -350px;
    +  
    +  padding: 40px 60px;
    +
    +  box-sizing: border-box;
    +  -o-box-sizing: border-box;
    +  -moz-box-sizing: border-box;
    +  -webkit-box-sizing: border-box;
    +
    +  border-radius: 10px;
    +  -o-border-radius: 10px;
    +  -moz-border-radius: 10px;
    +  -webkit-border-radius: 10px;
    +
    +  background-color: white;
    +
    +  box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
    +  border: 1px solid rgba(0, 0, 0, .3);
    +
    +  transition: transform .3s ease-out;
    +  -o-transition: -o-transform .3s ease-out;
    +  -moz-transition: -moz-transform .3s ease-out;
    +  -webkit-transition: -webkit-transform .3s ease-out;
    +}
    +.slides.layout-widescreen > article {
    +  margin-left: -550px;
    +  width: 1100px;
    +}
    +.slides.layout-faux-widescreen > article {
    +  margin-left: -550px;
    +  width: 1100px;
    +  
    +  padding: 40px 160px;
    +}
    +
    +.slides.template-default > article:not(.nobackground):not(.biglogo) {
    +  background: url(images/google-logo-small.png) 710px 625px no-repeat;  
    +  
    +  background-color: white;  
    +} 
    +
    +.slides.template-io2011 > article:not(.nobackground):not(.biglogo) {
    +  background: url(images/colorbar.png) 0 600px repeat-x,
    +              url(images/googleio-logo.png) 640px 625px no-repeat;
    +
    +  background-size: 100%, 225px;  
    +
    +  background-color: white;  
    +}
    +.slides.layout-widescreen > article:not(.nobackground):not(.biglogo),
    +.slides.layout-faux-widescreen > article:not(.nobackground):not(.biglogo) {
    +  background-position-x: 0, 840px;
    +}
    +
    +/* Clickable/tappable areas */
    +
    +.slide-area {
    +  z-index: 1000;
    +
    +  position: absolute;
    +  left: 0;
    +  top: 0;
    +  width: 150px;
    +  height: 700px;  
    +
    +  left: 50%;
    +  top: 50%;
    +
    +  cursor: pointer;  
    +  margin-top: -350px;  
    +  
    +  tap-highlight-color: transparent;
    +  -o-tap-highlight-color: transparent;
    +  -moz-tap-highlight-color: transparent;
    +  -webkit-tap-highlight-color: transparent;
    +}
    +#prev-slide-area {
    +  margin-left: -550px;
    +}
    +#next-slide-area {
    +  margin-left: 400px;
    +}
    +.slides.layout-widescreen #prev-slide-area,
    +.slides.layout-faux-widescreen #prev-slide-area {
    +  margin-left: -650px;
    +}
    +.slides.layout-widescreen #next-slide-area,
    +.slides.layout-faux-widescreen #next-slide-area {
    +  margin-left: 500px;
    +}
    +
    +/* Slide styles */
    +
    +.slides.template-default article.biglogo {
    +  background: white url(images/google-logo.png) 50% 50% no-repeat;
    +}
    +
    +.slides.template-io2011 article.biglogo {
    +  background: white url(images/googleio-logo.png) 50% 50% no-repeat;
    +
    +  background-size: 600px;
    +}
    +
    +/* Slides */
    +
    +.slides > article {
    +  display: none;
    +}
    +.slides > article.far-past {
    +  display: block;
    +  transform: translate(-2040px);
    +  -o-transform: translate(-2040px);
    +  -moz-transform: translate(-2040px);
    +  -webkit-transform: translate3d(-2040px, 0, 0);
    +}
    +.slides > article.past {
    +  display: block;
    +  transform: translate(-1020px);
    +  -o-transform: translate(-1020px);
    +  -moz-transform: translate(-1020px);
    +  -webkit-transform: translate3d(-1020px, 0, 0);
    +}
    +.slides > article.current {
    +  display: block;
    +  transform: translate(0);
    +  -o-transform: translate(0);
    +  -moz-transform: translate(0);
    +  -webkit-transform: translate3d(0, 0, 0);
    +}
    +.slides > article.next {
    +  display: block;
    +  transform: translate(1020px);
    +  -o-transform: translate(1020px);
    +  -moz-transform: translate(1020px);
    +  -webkit-transform: translate3d(1020px, 0, 0);
    +}
    +.slides > article.far-next {
    +  display: block;
    +  transform: translate(2040px);
    +  -o-transform: translate(2040px);
    +  -moz-transform: translate(2040px);
    +  -webkit-transform: translate3d(2040px, 0, 0);
    +}
    +
    +.slides.layout-widescreen > article.far-past,
    +.slides.layout-faux-widescreen > article.far-past {
    +  display: block;
    +  transform: translate(-2260px);
    +  -o-transform: translate(-2260px);
    +  -moz-transform: translate(-2260px);
    +  -webkit-transform: translate3d(-2260px, 0, 0);
    +}
    +.slides.layout-widescreen > article.past,
    +.slides.layout-faux-widescreen > article.past {
    +  display: block;
    +  transform: translate(-1130px);
    +  -o-transform: translate(-1130px);
    +  -moz-transform: translate(-1130px);
    +  -webkit-transform: translate3d(-1130px, 0, 0);
    +}
    +.slides.layout-widescreen > article.current,
    +.slides.layout-faux-widescreen > article.current {
    +  display: block;
    +  transform: translate(0);
    +  -o-transform: translate(0);
    +  -moz-transform: translate(0);
    +  -webkit-transform: translate3d(0, 0, 0);
    +}
    +.slides.layout-widescreen > article.next,
    +.slides.layout-faux-widescreen > article.next {
    +  display: block;
    +  transform: translate(1130px);
    +  -o-transform: translate(1130px);
    +  -moz-transform: translate(1130px);
    +  -webkit-transform: translate3d(1130px, 0, 0);
    +}
    +.slides.layout-widescreen > article.far-next,
    +.slides.layout-faux-widescreen > article.far-next {
    +  display: block;
    +  transform: translate(2260px);
    +  -o-transform: translate(2260px);
    +  -moz-transform: translate(2260px);
    +  -webkit-transform: translate3d(2260px, 0, 0);
    +}
    +
    +/* Styles for slides */
    +
    +.slides > article {
    +  font-family: 'Open Sans', Arial, sans-serif;
    +
    +  color: rgb(102, 102, 102);
    +  text-shadow: 0 1px 1px rgba(0, 0, 0, .1);
    +
    +  font-size: 30px;
    +  line-height: 36px;
    +
    +  letter-spacing: -1px;
    +}
    +
    +b {
    +  font-weight: 600;
    +}
    +
    +.blue {
    +  color: rgb(0, 102, 204);
    +}
    +.yellow {
    +  color: rgb(255, 211, 25);
    +}
    +.green {
    +  color: rgb(0, 138, 53);
    +}
    +.red {
    +  color: rgb(255, 0, 0);
    +}
    +.black {
    +  color: black;
    +}
    +.white {
    +  color: white;
    +}
    +
    +a {
    +  color: rgb(0, 102, 204);
    +}
    +a:visited {
    +  color: rgba(0, 102, 204, .75);
    +}
    +a:hover {
    +  color: black;
    +}
    +
    +p {
    +  margin: 0;
    +  padding: 0;
    +
    +  margin-top: 20px;
    +}
    +p:first-child {
    +  margin-top: 0;
    +}
    +
    +h1 {
    +  font-size: 60px;
    +  line-height: 60px;
    +
    +  padding: 0;
    +  margin: 0;
    +  margin-top: 200px;
    +  padding-right: 40px;
    +
    +  font-weight: 600;
    +
    +  letter-spacing: -3px;
    +
    +  color: rgb(51, 51, 51);
    +}
    +
    +h2 {
    +  font-size: 45px;
    +  line-height: 45px;
    +
    +  position: absolute;
    +  bottom: 150px;
    +
    +  padding: 0;
    +  margin: 0;
    +  padding-right: 40px;
    +
    +  font-weight: 600;
    +
    +  letter-spacing: -2px;
    +
    +  color: rgb(51, 51, 51);
    +}
    +
    +h3 {
    +  font-size: 30px;
    +  line-height: 36px;
    +
    +  padding: 0;
    +  margin: 0;
    +  padding-right: 40px;
    +
    +  font-weight: 600;
    +
    +  letter-spacing: -1px;
    +
    +  color: rgb(51, 51, 51);
    +}
    +
    +article.fill h3 {
    +  background: rgba(255, 255, 255, .75);
    +  padding-top: .2em;
    +  padding-bottom: .3em;
    +  margin-top: -.2em;
    +  margin-left: -60px;
    +  padding-left: 60px;
    +  margin-right: -60px;
    +  padding-right: 60px;
    +}
    +
    +ul {
    +  list-style: none;
    +  margin: 0;
    +  padding: 0;
    +
    +  margin-top: 40px;
    +
    +  margin-left: .75em;
    +}
    +ul:first-child {
    +  margin-top: 0;
    +}
    +ul ul {
    +  margin-top: .5em;
    +}
    +li {
    +  padding: 0;
    +  margin: 0;
    +
    +  margin-bottom: .5em;
    +}
    +li::before {
    +  content: '·';
    +
    +  width: .75em;
    +  margin-left: -.75em;
    +
    +  position: absolute;
    +}
    +
    +pre {
    +  font-family: 'Droid Sans Mono', 'Courier New', monospace;
    +
    +  font-size: 20px;
    +  line-height: 28px;
    +  padding: 5px 10px;
    +  
    +  letter-spacing: -1px;
    +
    +  margin-top: 40px;
    +  margin-bottom: 40px;
    +
    +  color: black;
    +  background: rgb(240, 240, 240);
    +  border: 1px solid rgb(224, 224, 224);
    +  box-shadow: inset 0 2px 6px rgba(0, 0, 0, .1);
    +  
    +  overflow: hidden;
    +}
    +
    +code {
    +  font-size: 95%;
    +  font-family: 'Droid Sans Mono', 'Courier New', monospace;
    +
    +  color: black;
    +}
    +
    +iframe {
    +  width: 100%;
    +
    +  height: 620px;
    +
    +  background: white;
    +  border: 1px solid rgb(192, 192, 192);
    +  margin: -1px;
    +  /*box-shadow: inset 0 2px 6px rgba(0, 0, 0, .1);*/
    +}
    +
    +h3 + iframe {
    +  margin-top: 40px;
    +  height: 540px;
    +}
    +
    +article.fill iframe {
    +  position: absolute;
    +  left: 0;
    +  top: 0;
    +  width: 100%;
    +  height: 100%;
    +
    +  border: 0;
    +  margin: 0;
    +
    +  border-radius: 10px;
    +  -o-border-radius: 10px;
    +  -moz-border-radius: 10px;
    +  -webkit-border-radius: 10px;
    +
    +  z-index: -1;
    +}
    +
    +article.fill img {
    +  position: absolute;
    +  left: 0;
    +  top: 0;
    +  min-width: 100%;
    +  min-height: 100%;
    +
    +  border-radius: 10px;
    +  -o-border-radius: 10px;
    +  -moz-border-radius: 10px;
    +  -webkit-border-radius: 10px;
    +
    +  z-index: -1;
    +}
    +img.centered {
    +  margin: 0 auto;
    +  display: block;
    +}
    +
    +table {
    +  width: 100%;
    +  border-collapse: collapse;
    +  margin-top: 40px;
    +}
    +th {
    +  font-weight: 600;
    +  text-align: left;
    +}
    +td,
    +th {
    +  border: 1px solid rgb(224, 224, 224);
    +  padding: 5px 10px;
    +  vertical-align: top;
    +}
    +
    +.source {
    +  position: absolute;
    +  left: 60px;
    +  top: 644px;
    +  padding-right: 175px;
    +  
    +  font-size: 15px;
    +  letter-spacing: 0;  
    +  line-height: 18px;
    +}
    +
    +q {
    +  display: block;
    +  font-size: 60px;
    +  line-height: 72px;
    +  
    +  margin-left: 20px;
    +  
    +  margin-top: 100px;
    +  margin-right: 150px;    
    +}
    +q::before {
    +  content: '“';
    +  
    +  position: absolute;
    +  display: inline-block;
    +  margin-left: -2.1em;
    +  width: 2em;
    +  text-align: right;
    +  
    +  font-size: 90px;
    +  color: rgb(192, 192, 192);
    +}
    +q::after {
    +  content: '”';
    +
    +  position: absolute;  
    +  margin-left: .1em;
    +
    +  font-size: 90px;
    +  color: rgb(192, 192, 192);  
    +}
    +div.author {
    +  text-align: right;  
    +  font-size: 40px;
    +  
    +  margin-top: 20px;
    +  margin-right: 150px;    
    +}
    +div.author::before {
    +  content: '—';
    +}
    +
    +/* Size variants */
    +
    +article.smaller p,
    +article.smaller ul {
    +  font-size: 20px;
    +  line-height: 24px;
    +  letter-spacing: 0;
    +}
    +article.smaller table {
    +  font-size: 20px;
    +  line-height: 24px;
    +  letter-spacing: 0;
    +}
    +article.smaller pre {
    +  font-size: 15px;
    +  line-height: 20px;
    +  letter-spacing: 0;
    +}
    +article.smaller q {
    +  font-size: 40px;
    +  line-height: 48px;
    +}
    +article.smaller q::before,
    +article.smaller q::after {
    +  font-size: 60px;
    +}
    +
    +/* Builds */
    +
    +.build > * {
    +  transition: opacity 0.5s ease-in-out 0.2s;
    +  -o-transition: opacity 0.5s ease-in-out 0.2s;
    +  -moz-transition: opacity 0.5s ease-in-out 0.2s;
    +  -webkit-transition: opacity 0.5s ease-in-out 0.2s;
    +}
    +
    +.to-build {
    +  opacity: 0;
    +}
    +
    +/* Pretty print */
    +
    +.prettyprint .str, /* string content */
    +.prettyprint .atv { /* a markup attribute value */
    +  color: rgb(0, 138, 53); 
    +}  
    +.prettyprint .kwd, /* a keyword */
    +.prettyprint .tag { /* a markup tag name */
    +  color: rgb(0, 102, 204);
    +}
    +.prettyprint .com { /* a comment */
    +  color: rgb(127, 127, 127); 
    +  font-style: italic; 
    +}  
    +.prettyprint .lit { /* a literal value */
    +  color: rgb(127, 0, 0);
    +}  
    +.prettyprint .pun, /* punctuation, lisp open bracket, lisp close bracket */
    +.prettyprint .opn, 
    +.prettyprint .clo { 
    +  color: rgb(127, 127, 127); 
    +}
    +.prettyprint .typ, /* a type name */
    +.prettyprint .atn, /* a markup attribute name */ 
    +.prettyprint .dec, 
    +.prettyprint .var { /* a declaration; a variable name */
    +  color: rgb(127, 0, 127);
    +}