# HG changeset patch # User kent # Date 1264747541 -32400 # Node ID e9ecd5b5f29a11c574083d79f5f2c2da6805c3c8 first commit. diff -r 000000000000 -r e9ecd5b5f29a cbc.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbc.tex Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,270 @@ +\chapter{Continuation based C (CbC)} +\label{chp:cbc} +Continuation based C(以下CbC)は当研究室の提案する、アセンブラよりも上位でCよりも下位な記述言語である。 +我々は\ref{chp:first}章に述べたように様々な視点からこのCbCを使った研究を行っている。 +本章ではそのCbCの仕様について説明する。 + + +\section{CbCの要求仕様} +90 年代以降、ハードウェアの進歩がプログラミング言語よりも早く進みつつ +あり、70 年代、80 年代に設計された言語は矛盾を抱えて来ている。 + +オブジェクト指向技術とそれに基づいたJava などの言語が注目されているが +、これらの言語は動的な適合性を中心に設計されたものである。C などの低レ +ベルな言語による記述に比べて、余分な条件判断(Method search, Meta level +での実行) を増やしてしまい、コンパクトで高速な応答を期待される +Real-time 処理や組み込み用途には適さない。 + +ハードウェアに一番近い言語はアセンブラであるがマクロアセンブラなどの記 +述はあまりにも低レベルであり、長年進歩していない。しかし使用可能なゲー +ト数が増えるにつれ、RISC 的な対称性の高い小数の命令よりも、複雑なマル +チメディア関係の命令などを持つCISC 的なCPU が増えてきている。そのため +に既存の言語に対するコンパイラを一々設計し直すことが必要になってきてい +る。 + +VHDL, Verilog などのハードウェア記述言語は有限状態遷移の中に閉じており +、オブジェクト指向などの抽象化とはまったく別なものとなってしまっている。 + +このように3 つは全く異なる方向を向いている。コンパイラの自動生成などが +重要な研究テーマとなると考えられるが、ハードウェア記述言語、アセンブラ +、プログラミング言語の3 つが全く独立したものであれば困難なものになると +考えられる。 + +そこでCbC はこの3 つを埋めるべく以下のような要求仕様に従って設計された。 +\begin{itemize} + \item ハードウェアとスタックマシンの中間言語 + + インタプリタ記述やコンパイラターゲットとして優れること。アーキテク + チャ依存性が少ないこと、また、アーキテクチャ依存性をモデル化できる。 + + \item C 言語よりも下位の言語 + + アセンブラよりも汎用性と記述性に優れC と互換であること。C をCbC に + コンパイルでき、ハンドコンパイルの結果を同値なコードに変換できる。 + + \item 明確な実行モデル + + C++やProlog のような複雑な実行モデルは好ましくなく、ハードウェアに + 実行順序の変更を許す範囲を広くする。 + + \item 状態遷移を直接記述できる + + Yacc のような表駆動やC のような巨大なswitch 文ではなく直接に状態遷 + 移ができ実行できる。 + + \item Thread を実行モデルに内蔵できる + + 並列処理記述法ではなく状態遷移として表現できる。 + + \item クリティカルパスの最適化 + + 全体を散漫に最適化するコンパイルではなくクリティカルパスを見つけ出 + して最適化できる。 +\end{itemize} + +これらの仕様はハードウェア記述とソフトウェア記述の両方を同時に行いつつ +、C よりも精密な実行記述を可能にするためのものである。また、CbC はプロ +グラム変換やコンパイラターゲットとして使うことを意識している。状態遷移 +記述のみでは制御機構は静的なものになってしまう。CbC では状態遷移記述に +適した言語を作ることを考え、スタックマシンを避けてContinuation(継続) +が導入されている。 + + +\section{コードセグメントと継続} + +\subsection{call-returnから継続制御へ} +Cなどの一般的な手続き型言語では、呼び出した手続きの処理のあと、呼出し +元の環境に復帰する。そのためプログラム全体においてスタックが用意され、 +呼出し元はスタックに復帰先アドレス及び環境を保持しておく事で呼出し先か +らの復帰を可能とする。これはcall-return制御と呼ばれるものである(図 +\ref{fig:call-return})。 +しかし復帰先さえ決まっていれば、このcall-return制御は図 +\ref{fig:continuation}の様に手続き呼び出しの前後で分割する事ができ、環 +境の保持を伴わないシーケンシャルな呼び出しに変換する事ができる。 +これは継続制御構造と呼ばれている。schemeのcall-with-continuationの実装 +や、 Java,C++の例外処理、Cのsetjmp()/longjmp()による大域脱出もこの継続 +制御の一種である。 +\begin{figure}[hptb] + \begin{center} + %\includegraphics[width=\textwidth,bb=0 0 595 842]{figures/call-return.pdf} + \includegraphics[width=.6\textwidth]{figures/call-return.eps} + \end{center} + \caption{call-return制御} + \label{fig:call-return} +\end{figure} +\begin{figure}[hptb] + \begin{center} + \includegraphics[width=.6\textwidth]{figures/continuation.eps} + \end{center} + \caption{継続制御} + \label{fig:continuation} +\end{figure} + +CbCはこの継続制御を基本として設計されており、その実現のためにコードセ +グメントと軽量継続という概念を用いている。 +以下ではその二つについて説明する。 + +\subsection{コードセグメント} +CbCは図\ref{fig:continuation}の様に分割された手続きのそれぞれを一つの +処理単位として用い、これを``コードセグメント''(code-segment)と呼ぶ。 + +コードセグメントはキーワード``code''を用いてCの関数の様に定義される。 +例として引数で与えられた数xの階乗を求めるプログラムをコード +\ref{code:factorial}に示した。 +引数部分はインタフェイスと呼ばれ、継続前のコードセグメントからの出力に +あたる。 + +%コードセグメントは手続きを細かく分割したものなので、Cの関数と比べより +%小さい処理単位となる。しかしコードセグメント内部ではCのステートメント +%と同様の記述が可能であり、処理単位としてはステートメントより大きいもの +%となる。 + +\subsection{軽量継続(light-weight continuation)} +コードセグメントはCにおける関数とは違い、呼出し元への復帰は存在しない。 +そのためコードセグメントの処理の末尾で別のコードセグメントへ継続するこ +とになる。CbCではこの継続制御を``軽量継続''(light-weight continuation) +と呼ぶ。 + +軽量継続はキーワード``goto''のあとにコードセグメント名とそのコードセグ +メントのインタフェイスに渡す引数列を並べて記述する。(同じく軽量継続の +例がコード \ref{code:factorial}にみられる。) + + +%この引数列は継続前のコードセグメントの状態、つまりインタフェイスの値に +%よって一意に決まる + +\lstinputlisting[caption=コードセグメント例(階乗計算),label=code:factorial]{sources/factorial.cbc} + + +\section{状態遷移に適した言語} +Continuation based Cは値を返すプログラムよりも、状態遷移記述に適している。 + +従来の言語での状態遷移記述は +\begin{itemize} + \item 表を使った状態遷移インタプリタ + \item 巨大なswitch文 +\end{itemize} +などが用いられてきた。しかしこれらは記述性が悪く、効率も良くない。 + +表を使った状態遷移インタプリタはコンパイラ言語とは考えられない。また、 +それをハードウェア記述に落とすことは難しい。 + +巨大なswitch文は、コンパイルが複雑になり、適切な最適化を行うことが難し +い。また、人間が読む場合にも読みやすいとは言えない。 + +CbCは元々状態遷移を直接記述することを目的として設計されており、 +手続きの様に環境の保持を伴わないため、その時々に実行中のコードセグメン +トとその引数を直接プログラムの状態とみなす事ができる。 + +特にゲームやGUIを用いたプログラムなどでは状態遷移記述が多用されており +、そのようなプログラムでは CbCを状態記述言語として使うことにより、直接 +実行による実行の高速化と既存の言語と状態遷移記述の整合性の向上をはかる +ことができる。 + + +\section{C with Continuation} +\ref{chp:purp}でも述べたようにCbCはCと互換性を持つことが望ましい。 +CbCをCと相互に利用するためには、Cの関数から継続を行った場合に元の環境 +に戻るための、特殊な継続を導入する必要がある。これを環境付き継続と呼ぶ。 + +この環境付き継続を導入した言語はC with Continuation(CwC)と呼ばれ、Cと +CbCの両方の機能をもつ言語となる。また、 C、CbCはCwCのサブセットと考え +られるので(図 \ref{fig:cwc})、CwCのコンパイラをCbCに使用する事ができ +る。これまでに実装されてきたCbCのコンパイラは1章で説明したmicro-c、gcc +、共に厳密にはCwCのコンパイラである。すなわち、Cの関数やforなどを使う +ことができ、mcでは環境付き継続も実装されている。 + +\begin{figure}[htpb] + \begin{center} + \includegraphics[width=.6\textwidth]{figures/CwC.eps} + \end{center} + \caption{C with Continuationとそのサブセット} + \label{fig:cwc} +\end{figure} + + +\subsection{環境付き継続} +環境付き継続を用いる場合、Cの関数からコードセグメントへ継続する際に +\_\_returnという名前で表される特殊なコードセグメントポインタを渡す。コ +ード\ref{}参照。 +継続先のコードセグメントでは渡されたコードセグメントポインタへ継続する +事で元のCの環境に復帰することが可能となる。 +ただし復帰先は\_\_returnを参照した関数が終了する位置である。 + +\lstinputlisting[ + caption=\_\_returnの例, + label=code:return-example] + {sources/return-example.cbc} + + + + +%CbCにおける環境付き継続の構文は幾度か改訂されている。 +% TODO _CbC_return + + +\section{gccベースコンパイラの現時点の問題点} + + +当初CbCのコンパイラはmicro-cをベースとしたものが使われていた。しかしよ +り多くのアーキテクチャや最適化機能などの要望により、 2008年の研究をも +って\ref{}GCCによる実装が行われた。この研究によりコードセグメント、継 +続制御構造などは実装され、一通りのCbCプログラムのコンパイルが可能とな +った。 + +しかし、前節に説明した環境付き継続はまだ実装に至っておらず、また継続制 +御構造の実装方法の影響により、いくつかの問題が発生している。 +以下にその問題点を列記する。 +%この問題に対せる解決を \ref{chp:impl}章にて説明する。 + + +\begin{itemize} + \item 環境付き継続 + + これは未実装の機能である。 + 変更された新しい仕様の方に対応したい。 + + \item 並列代入 + + CbCでは現在のコードセグメントのインタフェイスと次に継続するコード + セグメントの引数は同じメモリスペース(もしくはレジスタ)に格納してい + る。そのためコード\ref{code:paralell_example}のように変数の値を入 + れ替えるような処理では並列代入が行われることになる。 + 前実装では単純な並列代入に対しては問題がなかったが、構造体の混じる + 複雑な並列代入ではバグが見つかっている。 + \lstinputlisting[ + caption=並列代入の例, + label=code:parallel-example] + {sources/parallel-example.cbc} + + \item PowerPCにおける間接継続(indirect goto) + + CbCで用いる継続制御は、Cでの関数ポインタを用いた間接呼び出し + (indirect call)の様にコードセグメントポインタを用いた間接継続が可 + 能である。 + \lstinputlisting[ + caption=間接継続の例(2つめのgoto文), + label=code:indirect-example] + {sources/indirect-example.cbc} + しかしPowerPCアーキテクチャでは最適化の問題でこの機能が働かないこ + とが分かっている。 + + \item プロトタイプ宣言 + + Cのプロトタイプ宣言はコンパイル時のエラー検出に役立っている。 + しかしCbCのコードセグメントには返り値は存在しない。また状態遷移記 + 述という性質上、プログラムを記述する際は上から下に実行順にコードセ + グメントを並べることが多いため、プロトタイプ宣言をするとそれが膨大 + な数になる。 + + \item x86での継続制御のオーバヘッド + + mc実装ではx86アーキテクチャでのコードセグメント継続の際には引数を + レジスタに格納していた。しかしx86では、Cの関数呼び出しはデフォルト + では全ての引数をメモリに格納する。コードセグメントは関数をベースに + 作られているため、このABIに引きずられ実効速度に影響をもたらす。 + + +\end{itemize} + + diff -r 000000000000 -r e9ecd5b5f29a emblem-bitmap.eps --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emblem-bitmap.eps Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,376 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (emblem.eps) +%%CreationDate: (Sat Dec 16 23:16:28 2000) +%%BoundingBox: 226 313 398.455 493 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 0 +%%EndComments + +%%BeginDefaults +%%PageOrientation: Portrait +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/buffer 512 string def +/byte 1 string def +/color_packet 3 string def +/pixels 768 string def + +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 gt + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 gt + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 gt + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 gt + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-RunlengthEncodedCompression or 1-NoCompression. + % hex color packets. + % + gsave + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Helvetica findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 226 313 399 494 +userdict begin +%%BeginData: +DisplayImage +226 313 +173.455 181.091 +12.000000 +159 166 +1 +1 +1 +1 +fffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff +fffffffefffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff +fffffffffffffffefffffffffffffffffffffffffffffffffffffffeffffffffffffffff +fffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffeffffffff +fffffffffe0000fffffffffffffffffeffffffffffffffffc0000007fffffffffffffffe +fffffffffffffff8000000003ffffffffffffffeffffffffffffffe00002000007ffffff +fffffffeffffffffffffff008133000000fff8fffffffffefffffffffffffc04efbba440 +003ff0fffffffffeffffffffffffe017fffff661000ff0fffffffffeffffffffffff813f +f803ffe7fffff0fffffffffeffffffffffff03f8000007fffffff0fffffffffeffffffff +fffc3f813ffe003ffffff0fffffffffeffffffffffc1c1ffffffff8700000000000ffffe +ffffffffff078ffffffffff300000000000ffffeffffffffff078ffffffffff300000000 +000ffffefffffffffe3e3ffbdee67fff00000000000ffffefffffffffc787ff99eee6fff +07f83fe1000ffffefffffffff8e3ff319dce4cff0ff83fe3ff8ffffefffffffff38ffb93 +9dcc4cef0ff83fe3ff8ffffeffffffffc63ffb919dcc4ccf0ff83fe3ff8ffffeffffffff +9cffbb119dcc48cf0ff83fe3ff8ffffeffffffff73ffb1111988488f0ff83fe3ff8ffffe +fffffffee7fbb1111988c19f0ff83fe3ff8ffffefffffffb9ff19100198800070ff83fe3 +ff8ffffefffffff73e719000110000070ff83fe3ff8ffffeffffffecff38880011000007 +0ff83fe3ff8ffffeffffffecff388800110000070ff83fe3ff8ffffefffffff9fb38800e +110000070ff83fe3ff8ffffefffffff3f318001f81000d870ff83fe3ff8ffffeffffffef +fb98007fc0003fe70ff83fe3ff8ffffeffffffffd98c01ffe0003fff0ffc7fe3ff8ffffe +ffffffdf898403f1e000fffffffffffffffffffeffffffbecc800fe0e001f27fffffffff +fffffffeffffff7cc4801fc1f007f27ffffffffffffffffefffffcf200007e0fffffa267 +803f3fc7c03ffffefffffdf00000f81f3fffa267001e1f83800ffffefffffbe00019f07b +77fda267001e0603000ffffeffffffe000ffe1e937d9a267001e0003800ffffeffffff80 +7fff83e926d98027003f000f800ffffeffffff01ffff8fe9269880070fffc01fff8ffffe +fffffc0fffef1ec8228800070fffc01fff8ffffefffffc1ffe1e3ee8028800070fff0007 +ff0ffffefffff41fc03c746000880007001e0003800ffffefffff01f8038726000080007 +001e0603000ffffefffff01f8070f200000003c7001e0403000ffffeffffa01f0fe3b007 +80003fff001f0007800f7ffeffff801e03c7b00fc0007fff0fff800fff0f7ffeffff803e +018e900fe000ffff0fffc03fff0f3ffeffff803c071e001ff803ffff0fff800fff0f3ffe +ffff00fc0e32007ffe1fffff003e0007c00f3ffeffff03fc027a007fffffffff001e0403 +800f1ffeffff0ff8047801ffffffffff001e1f03000f1ffeffff1ff81cd803ffffffffff +001e1fc7000f0ffefffc7ff80dc807ffffffffff803fffff801e0ffefff8fff01bc01fff +fffffffffffffffffffe0ffefff9fff033007ffffffffffffffffffffffe0ffefffffff0 +6707ffffffffffff00000000000f0ffeffffffe06f0fffffffffffff00000000000f07fe +ffffffe1cd1fffffffffffff00000000000f07feffffffe0dc3fffffffffffff00000000 +000f07feffffffe09c3fffffffffffff0fffffffff0f07feffffffe1b83fffffffffffff +0f1e0007870f03feffffffe3383fffffffffffff0f1c0003870f03feffffffe3783fffff +ffffffff0f1c0003870f03feffffffe6683fffffffffffff0f1c0003870f03feffffffe6 +e03ffffffffffffe0f1c3fe3870f03feffffffe6e03fffffffffffff0f1c0003870f81fe +ffffffed80fffffffffffffe0f1e0003870f01feffffffed80fffffffffffffe0f1e0003 +870f01fefff9ffedc1fffffffffffffe0f1fe0ff870f01feffe1ffeb83fffffffffffffe +0f1fe0ff870f01feffc1ffff07fffffffffffffe0f000000070f81feff81ffff0fffffff +fffffffe0f000000070f01feff01fffe3fffffffffffffff1f000000079e01fefe01fffe +7fffffffffffffffff00000007bf81fefe01fffcffffffffffffffffffffe0ffffff00fe +fe01ffffffffffffffffffffffffe0fffffe00fefe01ffffffffffffffffffffffffe0ff +fff830fefe01fffffffffffffffffffffff870fc1e3f80fefe01ffffffffffffffffffff +fff879ee0e1f00fefe01fffffffffffffffffffffff87fe7863c00fefe01ffffffffffff +fffffffffff03fc3c63800fefe01fffffffffffffffffffffff01fc3e638f0fefe01ffff +fffffffffffffffffff80661fe3fc0fefe01fffffffffffffffffffffffc0038fe3f00fe +fe01fffffffffffffffffffffffe000c7e3c01fefe01fffffffffffffffffffffff3000c +3e3001fefe01ffffffffffffffffffffffe182061c31e1fefe01ffffffffffffffffffff +ffc041031c3f81fefe00ffffffffffffffffffffffc000438c3801fefe00ffffffffffff +ffffffffff801061cc2001feff00ffffffffffffffffffffff800830f86001feff00ffff +ffffffffffffffffff800830f86001feff00ffffffffffffffffffffff800418f87f03fe +ff00ffffffffffffffffffffff00061c787c03feff80ffffffffffffffffffffff00030c +386003feff80ffffffffffffffffffffff000186306003feff80ffffffffffffffffffff +ff002186307f87feff807ffffffffffffffffffffe0000c3307c07feffc07fffffffffff +fffffffffe0000e3e04007feffc07ffffffffffffffffffffc001873e0fc0ffeffe03fff +fffffffffffffffff8000c39c1e00ffeffe03ffffffffffffffffffff0000c39c1800ffe +ffe01ffffffffffffffffffff0000e1dc1f80ffefff01fffffffffffffffffffe000471d +83fe0ffefff00fffffffffffffffffffc000471f83e00ffefff00fffffffffffffffffff +c000630f07001ffefff806ffffffffffffffffff8000238f07f81ffefff8067fffffffff +ffffffff0004238e07f83ffefffc033fffffffffffffffff000421c60e003ffefffc031f +fffffffffffffffe008611c40f007ffefffe019ffffffffffffffffc004211ec1fc07ffe +fffe00c7fffffffffffffff8004311fc1e007ffeffff00c3fffffffffffffff8006318fc +3800fffeffff0061fffffffffffffff0006318f87f81fffeffff00207fffffffffffffe0 +00219cf87fc1fffeffff80201fffffffffffffe002319c70e003fffeffff80100fffffff +ffffffe001319ce1e003fffeffffc01f87fffffffffffe600131cfc1fe07fffeffffe01f +03fffffffffff8201119cf83ff87fffefffff00e03ffffffffffe0201118cf83000ffffe +fffff807f1ffffffffff80321118ef03e01ffffefffff803e07ffffffffc0033111cfe06 +781ffffefffffc01c03ffe0fffe00033191cfc0c003ffffefffffe00fc0ff800fe000013 +189cf81f807ffffeffffff007c01e00000000013189ef03fe07ffffeffffff8039800400 +00000011189ee070007ffffeffffff801e00040000000011088fe0fc00fffffeffffffc0 +0e78080000000019088fc1fe01fffffeffffffe007f118000010103988cf03c101fffffe +fffffff003c73088001011398cde07f007fffffefffffff001de71884211313b8cfc0e7c +0ffffffeffffffec007e61084231333b8cf01e000ffffffefffffff3000fc711c623333b +9f8073e03ffffffefffffff98003ce31c673333b9f00f0007ffffffefffffffe6001de71 +8e63333bfe01fc00fffffffeffffffff30007c738ee7233bf803e201fffffffeffffffff +88001ef79ee6663fe00f7003fffffffeffffffffc40007ff1ce6677f001f1807fffffffe +fffffffff30000ff3dce7ffc00f9c00ffffffffefffffffff8c0001ffdffffe000f8403f +fffffffefffffffff8c0001ffdffffe000f8403ffffffffefffffffffc300003ffffff00 +03fc007ffffffffefffffffffe0c00001fff80000f8700fffffffffeffffffffff81c000 +00000001fe300ffffffffffeffffffffffe0f80000000007e3001ffffffffffeffffffff +fff87f800000003f70003ffffffffffefffffffffffe27f0000003fe1800fffffffffffe +ffffffffffff833ff003fff10003fffffffffffeffffffffffffe10fffffff38000fffff +fffffffefffffffffffff801bffb2300007ffffffffffffeffffffffffffff0011313080 +01fffffffffffffeffffffffffffffc00118004007fffffffffffffefffffffffffffff0 +000800007ffffffffffffffeffffffffffffffffc0000003fffffffffffffffeffffffff +fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffe +fffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff +fffffffefffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff +fffffffffffffffe +%%EndData +end +%%PageTrailer +%%Trailer +%%BoundingBox: 226 313 398.455 493 +%%EOF diff -r 000000000000 -r e9ecd5b5f29a evaluations.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/evaluations.tex Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,225 @@ +\chapter{評価} +\label{chp:eval} + +本章では本研究の評価を行う。 +まず、gccでのCbCコンパイルにおける利点と欠点を考察する。 +次にgccベースのCbCコンパイラの性能評価を行う。 +最後に、\ref{chp:task}章のTaskManagerの開発を元に、CbC言語そのものの記述性、プログラミング手法などについて考察する。 + + +\section{gccでを使うことの利点・欠点} +\label{sec:merit} + +これまでCbCのコンパイルに使用してきたmc(micro-c)に対し、新しくgccが使 +用可能となった。ここでgccを用いることの利点と欠点について考察する。 + +\subsection*{アーキテクチャ} + +mcにおいてはPPC,x86,MIPS,ARM,SPUなど、多数のCPUアーキテクチャをサポー +トしてきた。しかしあるCPUに新しく対応するには多大な時間、労力が必要と +なる。 +gccは現在、既に20を越えるCPUに対応しており、またOS毎のABIの差異も吸収 +可能である。これはgccをコンパイラとすることに最大の利点である。 + +またそれだけでなく、gccは新しいアーキテクチャへの対応も早い。この特徴 +は、gccがフロントエンドとバックエンドという形で言語実装とアーキテクチ +ャを分離していることからくる。一般的に新しいCPUアーキテクチャが開発さ +れた場合にはその開発者自身がgccにコミットすることが多いため、組み込み +用途を目的の一つとするCbCではよりその強みがます。 + +\subsection*{最適化の恩恵} +gccは豊富な最適化機構を備えている。 +代表的な最適化だけでもループ最適化、分岐スレッディング(jump threading) +、共通式除去(common subexpression elimination)、命令スケジューリング +(instruction scheduling)などがある。 + +とくに、プログラムにおいては類似した形の式(expression)を扱うことがよく +あるため、共通式除去は非常に効果が高い。同様の効果は同じ式を保持する変 +数を用意することでも実現できるがソースコードの修正が必要になる。 +mcにはこの最適化は含まれていないため、複雑な計算式を含むプログラムにお +いてはgccの方が良いコンパイル結果を示すものと考えられる。 + +%\ref{sec:}の性能評価では最適化の効果についても測定する。 + +\subsection*{デバッガ} +これまでCbCにはデバッガが存在しなかった。デバッガの実装には出力するア +センブラに行番号や変数名、関数名などの情報を付加する必要があるが、gcc +は標準でこれを行っている。そのためCのデバッガとして広く一般的に使われ +ている gdbをそのままCbCのデバッガとして使用することが可能であり、ソフ +トウェア開発の大きな助力となる。 + +%ただし継続制御では``next''コマンドが使いづらいなどの操作性の問題がいく +%つか確認している。これらは + + % +\subsection*{関数呼出しの名残り} +上記の利点に対し、gccであるゆえの欠点も存在する。 + +本研究による軽量継続制御の実装には\ref{chp:impl}章で説明したように関数 +の末尾最適化を利用した。それゆえコードセグメントのアセンブラ出力の命令 +列には一部関数呼び出し時のスタック処理が残ってしまうことが分かっている。 +特にレジスタの少ないアーキテクチャ、x86などではそれが顕著に現れる。 + +mcではコードセグメントと関数は完全に別物として取り扱っており、この様な +スタック操作はコードセグメントには現れないため、このオーバヘッドがgcc +では不利な点である。 + + % スタック処理が残ってしまう + % 同じくcpuに特化したコンパイルに比べると + + +\subsection*{互換性、ABI} +%これは最後の考察に入れよう +ソースコードレベルでの互換性の問題がある。 +また、継続制御のパラメタを + % 関数宣言 + % 型推定 + % ABI、特にppc + + +% 最適化 +% SPUでのベクトル演算 +% gdb +% architecture + +% 関数呼び出しのオーバヘッド +% 互換性,ソースコード、ABI + + +\section{性能評価} + +\subsection{評価手法と環境} +性能評価として、実際にコンパイラの出力した実行ファイルを複数回実行し、 +その実効速度の平均を測定する。 CbCは実用的なプログラムの記述を目的とし +ているので、プログラムの動作速度は性能評価として妥当だと考えられる。ま +た速度比較の対象として、もう一つのCbCコンパイラ実装であるmicro-cベース +のコンパイラ(以下mc)を用いる。 + +実行するプログラムとして、クイックソートのテストプログラムを作成した。 +クイックソートは再帰呼び出しを伴うため、スタック操作が必須となる。その +ためより多く様々なコードセグメントへの継続制御が使用されることになり、 +CbCの性能評価に適していると考えられる。クイックソートはCbCに先立ってC +で実装し、参考文献\cite{bib:kinjo}で紹介する手法を用いてCbCに変換した。 + +測定環境は両コンパイラが対応しているアーキテクチャ、OSから以下の5つ +の組み合わせ[CPUアーキテクチャ/OS種別]を選択した。 +\begin{itemize} + \item ppc/OS X + \item ppc/linux + \item ppc/linux on PS3 + \item x86/OS X + \item x86/linux +\end{itemize} +なお、mcはmips,armにも対応しているが、現在その処理系が用意できなかった +ので割愛した。 + +%gccのコンパイルでは``-O2 -fomit-pointer''の最適化を付加して測定している。 +% noreturnもON. +% x86ではfastcallもON, + +\subsection{評価結果} +実効速度の測定結果を表\ref{tab:eval}に示す。 +ただし環境毎にCPUの速度は異なるので、上下の比較には意味はない。 +\begin{table}[htpb] + \centering + \begin{tabular}{|c|c|c|c|} \hline + \multirow{2}{*}{ \backslashbox{CPU/OS}{コンパイラ} } + & \multicolumn{2}{c|}{gcc} & \multirow{2}{*}{mc} \\ \cline{2-3} + & 最適化なし & 最適化あり & \\ \hline + x86/OS X & 5.901 & 2.213 & 2.857 \\ \hline + x86/Linux & 5.869 & 2.401 & 2.254 \\ \hline + ppc/OS X &14.875 & 2.146 & 4.811 \\ \hline + ppc/Linux &19.722 & 3.927 & 6.596 \\ \hline + ppc/PS3 &26.169 & 6.104 &11.536 \\ \hline + \end{tabular} + \caption{アーキテクチャ毎のgccとmcの速度比較(単位: 秒)} + \label{tab:eval} +\end{table} +% ppcのが圧倒的に早い +% x86ではあまりさはでない +% 最適化が効いている + +まずどのアーキテクチャにおいてもgccの最適化の効果が大きいことが分かる +。 x86では約2.5倍、ppcでは4~7倍もの差が生じている。ppcの方で異様に効果 +が高いように見えるのは、関数やコードセグメントの引数渡しがレジスタベー +スのため、最適化なしの場合には無駄なメモリアクセスが生じているためであ +る。 + +x86はOS XとLinuxの環境で測定を行った。OS Xではmcに比べて20\%ほど早くな +ったことが分かる。しかし逆にLinux環境では6\%の速度低下が示された。 +どちらにおいてもppcほどの良い結果ではない。これは自由に使えるレジスタ +が極めて少ないというx86の特殊なアーキテクチャが要因だと考えられる。そ +のためにgccの最適化が十分に働かなかった可能性がある。逆に言うとmcが高 +いレベルでx86のアセンブラ命令を実行しているともとれる。この6\%の差は実 +用レベルでは問題なく、プログラムの構成によっては結果は逆転する事も十分 +にある。 + +ppcではどのオペレーティングシステムでもmcに比べてgccが早いことが分かる +。いずれも約2倍近くあるいはそれ以上に速度が向上している。これはgccの最 +適化機構が十分に働いている要因が大きい。 + +%\subsubsection{アセンブラ比較} +比較のため、quicksortプログラムで使われているコードセグメントを一つ例 +にあげる。 CbCのソースがコード\ref{code:divider_s}、そのコードセグメン +トのgccによる出力がコード\ref{code:divider_s_gcc}、mcによる出力がコー +ド \ref{code:divider_s_mc} である。 + +\lstinputlisting[ + caption=quicksortプログラムで使われているコードセグメント, + label=code:divider_s] + {sources/quicksort_divider_s.cbc} +\begin{minipage}[t]{.45\textwidth} + \lstinputlisting[ + caption=divider\_sのgccによる出力(PowerPC), + label=code:divider_s_gcc] + {sources/gcc_divider_s.asm} +\end{minipage} +\hfill +\begin{minipage}[t]{.45\textwidth} + \lstinputlisting[ + caption=divider\_sのmcによる出力(PowerPC), + label=code:divider_s_mc] + {sources/mc_divider_s.asm} +\end{minipage} + +もっとも比較しやすい箇所は\verb|s+1|の処理である。 +コード\ref{code:divider_s_gcc}のgccではこれを1命令の\verb|addi 4,4,1| +で行っている。 mcではこれが\verb|mr, addi, mr|という3命令になっている +。これは変数\verb|s|の値を一度別のレジスタに移して計算するという処理で +ある。この様な細かい命令の展開が速度に差が出る要因である。 + +またこの出力からも、x86での速度差が少ないことが頷ける。引数のほとんど +をメモリに格納するx86では計算には一度レジスタに格納しないといけない事 +から、結局3 命令になる。そのためgccの最適化が十分には働かないのである。 +実際x86でのdivider\_sのアセンブラ出力はgccでは 24命令、mcでは18命令と +となっている。 + +この結果より、CbCで記述されたプログラムではレジスタが多い方が実効速度 +の面で有利であるということが分る。これは他のコンパイラ言語でも同じ事が +言えるが、前の(手続きやメソッドにおける)環境を保持する必要がないCbCでは +その影響がより強い。 + +%レジスタの数は + + + +%まずどのアーキテクチャにおいても、gccを使った場合は最適化の有無で大きな差が出ていることが分かる。 +%ppc/OS Xでは倍以上の速度を示すことができた。 +%これはgccの最適化機構が十分に働いている要因が大きい。 +%特に構造体のポインタからそのメンバにアクセスする処理(Cにおけるアロー演算子である)では違いがでた。ppcではその処理のために +%特に共通部分式除去(Common Subexpression Elimination)の処理はmcにはなく、この例題では多数その処理が適用可能な部分が出てきているためその影響があるものと思われる。 +%x86/OS Xでは約23\%ほど高速化された。 +%x86/OS Xでは約23\%、 ppc/OS Xでは最適化ありのgccはmcと比べて倍以上の速度を示すことができた。 +%しかしx86/Linuxでは逆に6\%ほど速度が低下している事が分かる。 +%この主な原因は関数呼出し時のスタック操作である。今回\ref{chp:impl}章で説明したように、継続制御の実装には末尾最適化を応用する形をとった。そのためgccとしては関数として処理しているので、一部のスタック操作(x86なら\verb|pop, push|である)が残ってしまうことが分かっている。元から継続制御用に設計されたmcではそれが存在しないため、その分の処理が速度としてに現れたものと思われる。 +%レジスタの多いアーキテクチャであるほど、速度は改善されると考えられる。 +%その中でPowerPC(ppc)での最適化ありとなしの差が非常に大きい。これはppcアセンブラの特徴であるレジスタの多さが原因の一つである。ppcの関数呼出し規約ではほとんどの引数はレジスタにのせて呼出し先に渡すことができる。 +%しかし呼出し先でさらに別の関数を呼び出す場合はそのレジスタを置き換えるため、スタックに積むなど値を保存しなければならない。この処理を最適に行うには呼び出し後の使用する変数、保持すべき変数を考慮する必要があるため、単純に全てをスタックに積む事とは違う処理が必要になる。 + + +\section{CbCでのプログラム} + + + + + diff -r 000000000000 -r e9ecd5b5f29a figures/CwC.dia Binary file figures/CwC.dia has changed diff -r 000000000000 -r e9ecd5b5f29a figures/CwC.eps --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/figures/CwC.eps Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,1556 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/kent/WorkSpace/master-paper/figures/CwC.dia +%%Creator: Dia v0.97 +%%CreationDate: Tue Jan 26 17:31:58 2010 +%%For: kent +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 428 299 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /A /B /C /D /E +/F /G /H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W /X /Y +/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c +/d /e /f /g /h /i /j /k /l /m +/n /o /p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +-1.712500 -12.537500 translate +%%EndProlog + + +0.075000 slw +[] 0 sd +[] 0 sd +0.000000 0.000000 0.000000 srgb +n 9.250000 7.500000 7.500000 5.000000 0 360 ellipse cp s +0.075000 slw +[] 0 sd +[] 0 sd +n 7.500000 7.500000 3.500000 3.500000 0 360 ellipse cp s +0.075000 slw +[] 0 sd +[] 0 sd +n 11.000000 7.500000 3.500000 3.500000 0 360 ellipse cp s +gsave 8.350000 6.500000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 8.527329 6.500000 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave 8.717151 6.500000 translate 0.035278 -0.035278 scale +start_ol +256 1536 moveto +1536 1536 lineto +1536 1152 lineto +256 1152 lineto +256 1536 lineto +end_ol grestore +gsave 8.946933 6.500000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 9.341559 6.500000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 9.518888 6.500000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 9.851072 6.500000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 8.300000 7.750000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 8.632184 7.750000 translate 0.035278 -0.035278 scale +start_ol +192 2688 moveto +631 2688 lineto +1179 590 lineto +1725 2688 lineto +2243 2688 lineto +2791 590 lineto +3337 2688 lineto +3776 2688 lineto +3077 0 lineto +2560 0 lineto +1985 2203 lineto +1408 0 lineto +891 0 lineto +192 2688 lineto +end_ol grestore +gsave 9.154191 7.750000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 9.331519 7.750000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 9.581286 7.750000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 9.933455 7.750000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 8.650000 8.950000 translate 0.035278 -0.035278 scale +start_ol +2176 1375 moveto +2176 1848 1982 2108 conicto +1789 2368 1439 2368 conicto +1091 2368 897 2108 conicto +704 1848 704 1375 conicto +704 904 897 644 conicto +1091 384 1439 384 conicto +1789 384 1982 644 conicto +2176 904 2176 1375 conicto +2624 347 moveto +2624 -347 2323 -685 conicto +2023 -1024 1404 -1024 conicto +1174 -1024 971 -992 conicto +768 -961 576 -896 conicto +576 -448 lineto +766 -546 951 -593 conicto +1137 -640 1329 -640 conicto +1754 -640 1965 -415 conicto +2176 -190 2176 264 conicto +2176 448 lineto +2042 223 1833 111 conicto +1624 0 1332 0 conicto +848 0 552 376 conicto +256 753 256 1375 conicto +256 1999 552 2375 conicto +848 2752 1332 2752 conicto +1624 2752 1833 2640 conicto +2042 2529 2176 2304 conicto +2176 2688 lineto +2624 2688 lineto +2624 347 lineto +end_ol grestore +gsave 9.057119 8.950000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 9.449248 8.950000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 9.699015 8.950000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 4.500000 7.000000 translate 0.035278 -0.035278 scale +start_ol +3711 49 moveto +4694 49 lineto +4694 -277 lineto +2213 -277 lineto +2213 49 lineto +3342 49 lineto +3342 924 lineto +2447 924 lineto +2447 1231 lineto +3342 1231 lineto +3342 1800 lineto +3711 1800 lineto +3711 1231 lineto +4606 1231 lineto +4606 924 lineto +3711 924 lineto +3711 49 lineto +2602 3215 moveto +2899 3390 lineto +3171 2952 3575 2588 conicto +3954 2952 4173 3439 conicto +2466 3439 lineto +2466 3760 lineto +4538 3760 lineto +4538 3439 lineto +4280 2807 3833 2378 conicto +4217 2082 4718 1853 conicto +4567 1561 lineto +4047 1775 3565 2150 conicto +3142 1824 2466 1556 conicto +2349 1863 lineto +2904 2067 3312 2369 conicto +2904 2743 2602 3215 conicto +657 1206 moveto +1119 1206 lineto +1119 1727 lineto +657 1727 lineto +657 1206 lineto +657 914 moveto +331 914 lineto +331 2782 lineto +1119 2782 lineto +1119 3186 lineto +209 3186 lineto +209 3492 lineto +1119 3492 lineto +1119 3954 lineto +1493 3954 lineto +1493 3492 lineto +2335 3492 lineto +2335 3186 lineto +1493 3186 lineto +1493 2782 lineto +2247 2782 lineto +2247 914 lineto +1493 914 lineto +1493 496 lineto +2349 496 lineto +2349 185 lineto +1493 185 lineto +1493 -452 lineto +1119 -452 lineto +1119 185 lineto +209 185 lineto +209 496 lineto +1119 496 lineto +1119 914 lineto +657 914 lineto +657 2004 moveto +1119 2004 lineto +1119 2490 lineto +657 2490 lineto +657 2004 lineto +1493 1206 moveto +1936 1206 lineto +1936 1727 lineto +1493 1727 lineto +1493 1206 lineto +1493 2490 moveto +1493 2004 lineto +1936 2004 lineto +1936 2490 lineto +1493 2490 lineto +end_ol grestore +gsave 5.139399 7.000000 translate 0.035278 -0.035278 scale +start_ol +2627 1498 moveto +3779 1498 lineto +3779 1761 lineto +2627 1761 lineto +2627 1498 lineto +340 2194 moveto +340 2486 lineto +4524 2486 lineto +4524 2194 lineto +340 2194 lineto +2237 997 moveto +2237 1274 lineto +1085 1274 lineto +1085 997 lineto +2237 997 lineto +2627 997 moveto +3779 997 lineto +3779 1274 lineto +2627 1274 lineto +2627 997 lineto +2237 769 moveto +1085 769 lineto +696 769 lineto +696 1994 lineto +4168 1994 lineto +4168 769 lineto +2627 769 lineto +2627 525 lineto +4344 525 lineto +4344 263 lineto +2627 263 lineto +2627 10 lineto +4572 10 lineto +4572 -306 lineto +292 -306 lineto +292 10 lineto +2237 10 lineto +2237 263 lineto +520 263 lineto +520 525 lineto +2237 525 lineto +2237 769 lineto +1085 1498 moveto +2237 1498 lineto +2237 1761 lineto +1085 1761 lineto +1085 1498 lineto +1036 3346 moveto +3828 3346 lineto +3828 3565 lineto +1036 3565 lineto +1036 3346 lineto +1036 3128 moveto +1036 2909 lineto +3828 2909 lineto +3828 3128 lineto +1036 3128 lineto +1036 2685 moveto +647 2685 lineto +647 3857 lineto +4217 3857 lineto +4217 2685 lineto +1036 2685 lineto +end_ol grestore +gsave 5.778797 7.000000 translate 0.035278 -0.035278 scale +start_ol +2062 68 moveto +1751 34 lineto +1717 720 1605 1289 conicto +1907 1338 lineto +2028 754 2062 68 conicto +195 -83 moveto +365 593 418 1284 conicto +725 1250 lineto +676 550 496 -141 conicto +195 -83 lineto +1610 2534 moveto +1916 2612 lineto +2111 2038 2233 1425 conicto +1926 1362 lineto +1907 1464 1882 1561 conicto +1352 1532 lineto +1352 -399 lineto +997 -399 lineto +997 1513 lineto +219 1464 lineto +204 1780 lineto +657 1805 lineto +846 2067 lineto +229 3064 lineto +428 3361 lineto +627 3055 lineto +866 3478 1080 3935 conicto +1377 3804 lineto +1119 3254 817 2748 conicto +1046 2359 lineto +1396 2889 1693 3444 conicto +1980 3288 lineto +1566 2529 1060 1829 conicto +1809 1868 lineto +1722 2208 1610 2534 conicto +4533 3478 moveto +4407 2952 4207 2437 conicto +3930 2563 lineto +4130 3069 4251 3585 conicto +4533 3478 lineto +3021 3575 moveto +3186 3118 3346 2558 conicto +3064 2442 lineto +2909 2991 2743 3453 conicto +3021 3575 lineto +4621 2325 moveto +4621 2004 lineto +3872 2004 lineto +4154 1299 4669 676 conicto +4475 423 lineto +4076 914 3809 1484 conicto +3809 146 lineto +4665 146 lineto +4665 -180 lineto +2646 -180 lineto +2646 -423 lineto +2301 -423 lineto +2301 3770 lineto +2656 3770 lineto +2656 2325 lineto +3468 2325 lineto +3468 3789 lineto +3809 3789 lineto +3809 2325 lineto +4621 2325 lineto +2656 608 moveto +2656 146 lineto +3468 146 lineto +3468 1484 lineto +3201 914 2802 423 conicto +2656 608 lineto +2656 739 moveto +3137 1333 3400 2004 conicto +2656 2004 lineto +2656 739 lineto +end_ol grestore +gsave 6.418196 7.000000 translate 0.035278 -0.035278 scale +start_ol +1440 1250 moveto +1736 1294 lineto +1839 657 1882 44 conicto +1576 15 lineto +1542 623 1440 1250 conicto +190 -102 moveto +355 584 399 1260 conicto +705 1231 lineto +662 535 496 -165 conicto +190 -102 lineto +1440 2524 moveto +1736 2607 lineto +1863 2218 1999 1615 conicto +1999 2150 lineto +4514 2150 lineto +4514 1177 lineto +4159 1177 lineto +4159 1848 lineto +2344 1848 lineto +2344 1128 lineto +1999 1128 lineto +1999 1411 lineto +1741 1357 lineto +1707 1537 1693 1591 conicto +1265 1561 lineto +1265 -423 lineto +900 -423 lineto +900 1537 lineto +214 1493 lineto +204 1809 lineto +550 1829 lineto +754 2126 lineto +180 3089 lineto +389 3385 lineto +574 3084 lineto +822 3556 997 3964 conicto +1304 3828 lineto +1055 3278 764 2763 conicto +953 2432 lineto +1284 2967 1537 3468 conicto +1829 3317 lineto +1454 2583 958 1853 conicto +1620 1892 lineto +1542 2218 1440 2524 conicto +3405 1566 moveto +3770 1566 lineto +3770 136 lineto +3770 10 3804 -12 conicto +3838 -34 4023 -34 conicto +4173 -34 4207 19 conicto +4261 97 4275 613 conicto +4280 666 4280 754 conicto +4621 705 lineto +4616 486 4611 367 conicto +4606 248 4591 114 conicto +4577 -19 4562 -77 conicto +4548 -136 4511 -202 conicto +4475 -268 4438 -287 conicto +4402 -306 4329 -328 conicto +4256 -350 4188 -352 conicto +4120 -355 3998 -355 conicto +3590 -355 3497 -282 conicto +3405 -209 3405 122 conicto +3405 1566 lineto +1770 -122 moveto +2271 83 2478 457 conicto +2685 832 2685 1566 conicto +3050 1566 lineto +3050 725 2799 275 conicto +2549 -175 1965 -413 conicto +1770 -122 lineto +4596 3594 moveto +4596 3283 lineto +3415 3283 lineto +3415 2816 lineto +4417 2816 lineto +4417 2515 lineto +2092 2515 lineto +2092 2816 lineto +3030 2816 lineto +3030 3283 lineto +2004 3283 lineto +2004 3594 lineto +3030 3594 lineto +3030 3979 lineto +3415 3979 lineto +3415 3594 lineto +4596 3594 lineto +end_ol grestore +gsave 4.700000 8.650000 translate 0.035278 -0.035278 scale +start_ol +715 3380 moveto +4120 3380 lineto +4120 102 lineto +715 102 lineto +715 443 lineto +3745 443 lineto +3745 3040 lineto +715 3040 lineto +715 3380 lineto +end_ol grestore +gsave 5.339399 8.650000 translate 0.035278 -0.035278 scale +start_ol +452 1659 moveto +452 2033 lineto +4412 2033 lineto +4412 1659 lineto +452 1659 lineto +end_ol grestore +gsave 5.978797 8.650000 translate 0.035278 -0.035278 scale +start_ol +2811 3366 moveto +3098 3536 lineto +3419 3069 3614 2748 conicto +3327 2597 lineto +3074 3006 2811 3366 conicto +4008 2738 moveto +3755 3152 3478 3531 conicto +3770 3702 lineto +4071 3269 4300 2894 conicto +4008 2738 lineto +1571 3721 moveto +1571 2271 lineto +2933 1946 4290 1430 conicto +4173 1080 lineto +2831 1586 1571 1887 conicto +1571 -238 lineto +1182 -238 lineto +1182 3721 lineto +1571 3721 lineto +end_ol grestore +gsave 4.700000 9.450000 translate 0.035278 -0.035278 scale +start_ol +1411 3770 moveto +1785 3770 lineto +1785 2593 lineto +4329 3254 lineto +4426 2918 lineto +4334 2408 4035 1928 conicto +3736 1449 3308 1138 conicto +3059 1415 lineto +3415 1668 3670 2042 conicto +3925 2417 4018 2811 conicto +4008 2821 lineto +1785 2228 lineto +1785 1124 lineto +1785 914 1792 788 conicto +1800 662 1836 557 conicto +1873 452 1921 403 conicto +1970 355 2074 318 conicto +2179 282 2300 275 conicto +2422 268 2627 268 conicto +3439 268 4164 340 conicto +4178 0 lineto +3415 -73 2544 -73 conicto +1843 -73 1627 141 conicto +1411 355 1411 1060 conicto +1411 2130 lineto +355 1853 lineto +268 2194 lineto +1411 2495 lineto +1411 3770 lineto +end_ol grestore +gsave 5.339399 9.450000 translate 0.035278 -0.035278 scale +start_ol +3497 3867 moveto +3750 4018 lineto +4032 3590 4188 3327 conicto +3930 3196 lineto +3736 3526 3497 3867 conicto +4105 3974 moveto +4363 4125 lineto +4592 3789 4815 3419 conicto +4558 3283 lineto +4319 3677 4105 3974 conicto +769 199 moveto +2233 326 2896 912 conicto +3560 1498 3599 2748 conicto +1644 2748 lineto +1347 2028 759 1484 conicto +496 1717 lineto +1401 2568 1542 3804 conicto +1907 3799 lineto +1858 3395 1766 3089 conicto +3988 3089 lineto +3988 2271 3806 1695 conicto +3624 1119 3227 732 conicto +2831 345 2245 138 conicto +1659 -68 812 -141 conicto +769 199 lineto +end_ol grestore +gsave 5.978797 9.450000 translate 0.035278 -0.035278 scale +start_ol +1036 2680 moveto +1274 2967 lineto +1936 2500 2646 1926 conicto +3152 2661 3439 3677 conicto +3818 3599 lineto +3517 2490 2957 1668 conicto +3575 1158 4280 491 conicto +4013 219 lineto +3361 832 2729 1367 conicto +1985 438 696 -233 conicto +486 83 lineto +1712 730 2422 1620 conicto +1727 2194 1036 2680 conicto +end_ol grestore +gsave 6.618196 9.450000 translate 0.035278 -0.035278 scale +start_ol +890 3536 moveto +1634 3166 2378 2709 conicto +2189 2378 lineto +1479 2816 715 3205 conicto +890 3536 lineto +832 306 moveto +2252 438 3066 1128 conicto +3881 1819 4120 3094 conicto +4475 3016 lineto +3984 214 880 -58 conicto +832 306 lineto +end_ol grestore +gsave 7.257595 9.450000 translate 0.035278 -0.035278 scale +start_ol +1620 3721 moveto +1620 2301 lineto +2962 1980 4339 1464 conicto +4222 1109 lineto +2899 1615 1620 1921 conicto +1620 -238 lineto +1231 -238 lineto +1231 3721 lineto +1620 3721 lineto +end_ol grestore +gsave 11.500000 6.000000 translate 0.035278 -0.035278 scale +start_ol +1109 652 moveto +1109 934 lineto +2252 934 lineto +2252 1260 lineto +1177 1260 lineto +1177 1547 lineto +1843 1547 lineto +1688 1775 1566 1936 conicto +1887 2019 lineto +2004 1878 2228 1547 conicto +2627 1547 lineto +2826 1775 2972 2014 conicto +3293 1946 lineto +3176 1751 3011 1547 conicto +3687 1547 lineto +3687 1260 lineto +2612 1260 lineto +2612 934 lineto +3755 934 lineto +3755 652 lineto +2724 652 lineto +3123 331 3415 10 conicto +3702 -15 3857 -15 conicto +4057 -15 4091 21 conicto +4125 58 4125 268 conicto +4125 2116 lineto +2568 2116 lineto +2568 3809 lineto +4499 3809 lineto +4499 277 lineto +4499 -141 4404 -240 conicto +4310 -340 3916 -340 conicto +3740 -340 3419 -316 conicto +3415 -165 lineto +3215 -277 lineto +2855 156 2476 472 conicto +2150 -15 1274 -263 conicto +1085 19 lineto +2014 268 2199 652 conicto +1109 652 lineto +1882 2393 moveto +1882 2836 lineto +739 2836 lineto +739 2393 lineto +1882 2393 lineto +4125 2393 moveto +4125 2836 lineto +2933 2836 lineto +2933 2393 lineto +4125 2393 lineto +4125 3094 moveto +4125 3512 lineto +2933 3512 lineto +2933 3094 lineto +4125 3094 lineto +739 2116 moveto +739 -375 lineto +365 -375 lineto +365 3809 lineto +2247 3809 lineto +2247 2116 lineto +739 2116 lineto +739 3094 moveto +1882 3094 lineto +1882 3512 lineto +739 3512 lineto +739 3094 lineto +end_ol grestore +gsave 12.139399 6.000000 translate 0.035278 -0.035278 scale +start_ol +1839 3215 moveto +2092 3560 2233 3891 conicto +2524 3770 lineto +2369 3419 2116 3074 conicto +1839 3215 lineto +365 3740 moveto +642 3886 lineto +846 3585 1051 3210 conicto +769 3074 lineto +550 3468 365 3740 conicto +243 1177 moveto +243 1474 lineto +939 1474 lineto +968 1547 1065 1805 conicto +1435 1756 lineto +1377 1591 1328 1474 conicto +2646 1474 lineto +2646 1177 lineto +2257 1177 lineto +2135 749 1848 423 conicto +2096 326 2413 175 conicto +2257 -117 lineto +1897 58 1600 180 conicto +1085 -243 350 -375 conicto +253 -63 lineto +827 29 1231 316 conicto +822 447 423 535 conicto +632 841 798 1177 conicto +243 1177 lineto +2286 1853 moveto +2777 2719 3045 3993 conicto +3385 3950 lineto +3308 3556 3230 3283 conicto +4703 3283 lineto +4703 2952 lineto +4407 2952 lineto +4280 1537 3813 778 conicto +4115 326 4699 -54 conicto +4533 -340 lineto +3945 29 3604 491 conicto +3225 29 2573 -345 conicto +2383 -54 lineto +3064 345 3405 803 conicto +3074 1411 2928 2388 conicto +2758 1975 2578 1673 conicto +2286 1853 lineto +1265 3950 moveto +1620 3950 lineto +1620 3006 lineto +2554 3006 lineto +2554 2709 lineto +1829 2709 lineto +2121 2442 2349 2203 conicto +2130 1955 lineto +1882 2252 1620 2515 conicto +1620 1853 lineto +1265 1853 lineto +1265 2486 lineto +924 2038 413 1683 conicto +219 1950 lineto +759 2315 1080 2709 conicto +277 2709 lineto +277 3006 lineto +1265 3006 lineto +1265 3950 lineto +1508 545 moveto +1775 827 1897 1177 conicto +1192 1177 lineto +1085 958 929 715 conicto +1274 623 1508 545 conicto +3614 1133 moveto +3959 1780 4066 2952 conicto +3132 2952 lineto +3016 2617 lineto +3244 2656 lineto +3351 1707 3614 1133 conicto +end_ol grestore +gsave 12.100000 7.300000 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave 12.324788 7.300000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 12.716917 7.300000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 11.800000 8.500000 translate 0.035278 -0.035278 scale +start_ol +192 2688 moveto +631 2688 lineto +1179 590 lineto +1725 2688 lineto +2243 2688 lineto +2791 590 lineto +3337 2688 lineto +3776 2688 lineto +3077 0 lineto +2560 0 lineto +1985 2203 lineto +1408 0 lineto +891 0 lineto +192 2688 lineto +end_ol grestore +gsave 12.322006 8.500000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 12.726620 8.500000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 12.903949 8.500000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 13.081278 8.500000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 10.750000 9.850000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 10.997261 9.850000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 11.391887 9.850000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 11.641654 9.850000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +end_ol grestore +gsave 12.046268 9.850000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 12.298532 9.850000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 6.250000 3.667500 m 6.250000 4.525000 l 8.207500 4.525000 l 8.207500 3.667500 l f +0.000000 0.000000 0.000000 srgb +gsave 6.250000 4.350000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 6.482279 4.350000 translate 0.035278 -0.035278 scale +start_ol +3584 3712 moveto +3584 3136 lineto +3307 3393 2994 3520 conicto +2681 3648 2328 3648 conicto +1634 3648 1265 3228 conicto +896 2809 896 2015 conicto +896 1223 1265 803 conicto +1634 384 2328 384 conicto +2681 384 2994 511 conicto +3307 639 3584 896 conicto +3584 320 lineto +3297 128 2975 32 conicto +2654 -64 2296 -64 conicto +1377 -64 848 493 conicto +320 1051 320 2015 conicto +320 2981 848 3538 conicto +1377 4096 2296 4096 conicto +2660 4096 2981 4000 conicto +3302 3904 3584 3712 conicto +end_ol grestore +gsave 6.994298 4.350000 translate 0.035278 -0.035278 scale +start_ol +2752 1536 moveto +2752 2075 2521 2381 conicto +2291 2688 1888 2688 conicto +1485 2688 1254 2381 conicto +1024 2075 1024 1536 conicto +1024 997 1254 690 conicto +1485 384 1888 384 conicto +2291 384 2521 690 conicto +2752 997 2752 1536 conicto +1024 2624 moveto +1183 2884 1425 3010 conicto +1668 3136 2006 3136 conicto +2565 3136 2914 2695 conicto +3264 2254 3264 1536 conicto +3264 818 2914 377 conicto +2565 -64 2006 -64 conicto +1668 -64 1425 62 conicto +1183 188 1024 448 conicto +1024 0 lineto +512 0 lineto +512 4224 lineto +1024 4224 lineto +1024 2624 lineto +end_ol grestore +gsave 7.461353 4.350000 translate 0.035278 -0.035278 scale +start_ol +3584 3712 moveto +3584 3136 lineto +3307 3393 2994 3520 conicto +2681 3648 2328 3648 conicto +1634 3648 1265 3228 conicto +896 2809 896 2015 conicto +896 1223 1265 803 conicto +1634 384 2328 384 conicto +2681 384 2994 511 conicto +3307 639 3584 896 conicto +3584 320 lineto +3297 128 2975 32 conicto +2654 -64 2296 -64 conicto +1377 -64 848 493 conicto +320 1051 320 2015 conicto +320 2981 848 3538 conicto +1377 4096 2296 4096 conicto +2660 4096 2981 4000 conicto +3302 3904 3584 3712 conicto +end_ol grestore +gsave 7.973372 4.350000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 10.600000 3.617500 m 10.600000 4.475000 l 11.577500 4.475000 l 11.577500 3.617500 l f +0.000000 0.000000 0.000000 srgb +gsave 10.600000 4.300000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 10.832279 4.300000 translate 0.035278 -0.035278 scale +start_ol +3584 3712 moveto +3584 3136 lineto +3307 3393 2994 3520 conicto +2681 3648 2328 3648 conicto +1634 3648 1265 3228 conicto +896 2809 896 2015 conicto +896 1223 1265 803 conicto +1634 384 2328 384 conicto +2681 384 2994 511 conicto +3307 639 3584 896 conicto +3584 320 lineto +3297 128 2975 32 conicto +2654 -64 2296 -64 conicto +1377 -64 848 493 conicto +320 1051 320 2015 conicto +320 2981 848 3538 conicto +1377 4096 2296 4096 conicto +2660 4096 2981 4000 conicto +3302 3904 3584 3712 conicto +end_ol grestore +gsave 11.344298 4.300000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 8.250000 2.017500 m 8.250000 2.875000 l 10.340000 2.875000 l 10.340000 2.017500 l f +0.000000 0.000000 0.000000 srgb +gsave 8.250000 2.700000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 8.482279 2.700000 translate 0.035278 -0.035278 scale +start_ol +3584 3712 moveto +3584 3136 lineto +3307 3393 2994 3520 conicto +2681 3648 2328 3648 conicto +1634 3648 1265 3228 conicto +896 2809 896 2015 conicto +896 1223 1265 803 conicto +1634 384 2328 384 conicto +2681 384 2994 511 conicto +3307 639 3584 896 conicto +3584 320 lineto +3297 128 2975 32 conicto +2654 -64 2296 -64 conicto +1377 -64 848 493 conicto +320 1051 320 2015 conicto +320 2981 848 3538 conicto +1377 4096 2296 4096 conicto +2660 4096 2981 4000 conicto +3302 3904 3584 3712 conicto +end_ol grestore +gsave 8.994298 2.700000 translate 0.035278 -0.035278 scale +start_ol +256 3072 moveto +757 3072 lineto +1384 675 lineto +2008 3072 lineto +2600 3072 lineto +3226 675 lineto +3851 3072 lineto +4352 3072 lineto +3554 0 lineto +2962 0 lineto +2305 2518 lineto +1646 0 lineto +1054 0 lineto +256 3072 lineto +end_ol grestore +gsave 9.593736 2.700000 translate 0.035278 -0.035278 scale +start_ol +3584 3712 moveto +3584 3136 lineto +3307 3393 2994 3520 conicto +2681 3648 2328 3648 conicto +1634 3648 1265 3228 conicto +896 2809 896 2015 conicto +896 1223 1265 803 conicto +1634 384 2328 384 conicto +2681 384 2994 511 conicto +3307 639 3584 896 conicto +3584 320 lineto +3297 128 2975 32 conicto +2654 -64 2296 -64 conicto +1377 -64 848 493 conicto +320 1051 320 2015 conicto +320 2981 848 3538 conicto +1377 4096 2296 4096 conicto +2660 4096 2981 4000 conicto +3302 3904 3584 3712 conicto +end_ol grestore +gsave 10.105754 2.700000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +showpage diff -r 000000000000 -r e9ecd5b5f29a figures/CwC.pdf Binary file figures/CwC.pdf has changed diff -r 000000000000 -r e9ecd5b5f29a figures/call-return.dia Binary file figures/call-return.dia has changed diff -r 000000000000 -r e9ecd5b5f29a figures/call-return.eps --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/figures/call-return.eps Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,717 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/kent/WorkSpace/master-paper/figures/call-return.dia +%%Creator: Dia v0.97 +%%CreationDate: Tue Jan 26 13:59:51 2010 +%%For: kent +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 390 281 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /A /B /C /D /E +/F /G /H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W /X /Y +/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c +/d /e /f /g /h /i /j /k /l /m +/n /o /p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +-1.050000 -11.275000 translate +%%EndProlog + + +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 1.400000 2.250000 m 1.400000 6.250000 l 2.400000 6.250000 l 2.400000 2.250000 l f +0.000000 0.000000 0.000000 srgb +n 1.400000 2.250000 m 1.400000 6.250000 l 2.400000 6.250000 l 2.400000 2.250000 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 1.400000 7.250000 m 1.400000 11.250000 l 2.400000 11.250000 l 2.400000 7.250000 l f +0.000000 0.000000 0.000000 srgb +n 1.400000 7.250000 m 1.400000 11.250000 l 2.400000 11.250000 l 2.400000 7.250000 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 7.400000 3.250000 m 7.400000 7.250000 l 8.400000 7.250000 l 8.400000 3.250000 l f +0.000000 0.000000 0.000000 srgb +n 7.400000 3.250000 m 7.400000 7.250000 l 8.400000 7.250000 l 8.400000 3.250000 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 7.400000 8.250000 m 7.400000 11.250000 l 8.400000 11.250000 l 8.400000 8.250000 l f +0.000000 0.000000 0.000000 srgb +n 7.400000 8.250000 m 7.400000 11.250000 l 8.400000 11.250000 l 8.400000 8.250000 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 13.400000 5.250000 m 13.400000 10.250000 l 14.400000 10.250000 l 14.400000 5.250000 l f +0.000000 0.000000 0.000000 srgb +n 13.400000 5.250000 m 13.400000 10.250000 l 14.400000 10.250000 l 14.400000 5.250000 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 2.400000 6.250000 m 3.396000 6.250000 5.400000 1.250000 7.095306 2.945306 c s +[] 0 sd +0 slj +0 slc +n 7.360472 3.210472 m 6.830141 3.033695 l 7.095306 2.945306 l 7.183695 2.680141 l ef +n 7.360472 3.210472 m 6.830141 3.033695 l 7.095306 2.945306 l 7.183695 2.680141 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 7.400000 11.250000 m 6.404000 11.250000 5.400000 7.250000 2.830902 7.250000 c s +[] 0 sd +0 slj +0 slc +n 2.455902 7.250000 m 2.955902 7.000000 l 2.830902 7.250000 l 2.955902 7.500000 l ef +n 2.455902 7.250000 m 2.955902 7.000000 l 2.830902 7.250000 l 2.955902 7.500000 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 8.400000 7.250000 m 9.396000 7.250000 11.400000 3.250000 13.095306 4.945306 c s +[] 0 sd +0 slj +0 slc +n 13.360472 5.210472 m 12.830141 5.033695 l 13.095306 4.945306 l 13.183695 4.680141 l ef +n 13.360472 5.210472 m 12.830141 5.033695 l 13.095306 4.945306 l 13.183695 4.680141 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 13.400000 10.250000 m 12.404000 10.250000 10.400000 8.250000 8.830902 8.250000 c s +[] 0 sd +0 slj +0 slc +n 8.455902 8.250000 m 8.955902 8.000000 l 8.830902 8.250000 l 8.955902 8.500000 l ef +n 8.455902 8.250000 m 8.955902 8.000000 l 8.830902 8.250000 l 8.955902 8.500000 l cp s +gsave 1.500000 4.550000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 1.937092 4.550000 translate 0.035278 -0.035278 scale +start_ol +1535 3200 moveto +1185 3200 1008 2840 conicto +832 2481 832 1759 conicto +832 1039 1008 679 conicto +1185 320 1535 320 conicto +1887 320 2063 679 conicto +2240 1039 2240 1759 conicto +2240 2481 2063 2840 conicto +1887 3200 1535 3200 conicto +1536 3584 moveto +2127 3584 2439 3116 conicto +2752 2649 2752 1759 conicto +2752 871 2439 403 conicto +2127 -64 1536 -64 conicto +944 -64 632 403 conicto +320 871 320 1759 conicto +320 2649 632 3116 conicto +944 3584 1536 3584 conicto +end_ol grestore +gsave 1.550000 9.500000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 1.987092 9.500000 translate 0.035278 -0.035278 scale +start_ol +640 384 moveto +1408 384 lineto +1408 3136 lineto +576 2944 lineto +576 3328 lineto +1434 3520 lineto +1920 3520 lineto +1920 384 lineto +2688 384 lineto +2688 0 lineto +640 0 lineto +640 384 lineto +end_ol grestore +gsave 7.550000 5.500000 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 7.989589 5.500000 translate 0.035278 -0.035278 scale +start_ol +1535 3200 moveto +1185 3200 1008 2840 conicto +832 2481 832 1759 conicto +832 1039 1008 679 conicto +1185 320 1535 320 conicto +1887 320 2063 679 conicto +2240 1039 2240 1759 conicto +2240 2481 2063 2840 conicto +1887 3200 1535 3200 conicto +1536 3584 moveto +2127 3584 2439 3116 conicto +2752 2649 2752 1759 conicto +2752 871 2439 403 conicto +2127 -64 1536 -64 conicto +944 -64 632 403 conicto +320 871 320 1759 conicto +320 2649 632 3116 conicto +944 3584 1536 3584 conicto +end_ol grestore +gsave 7.500000 9.950000 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 7.939589 9.950000 translate 0.035278 -0.035278 scale +start_ol +640 384 moveto +1408 384 lineto +1408 3136 lineto +576 2944 lineto +576 3328 lineto +1434 3520 lineto +1920 3520 lineto +1920 384 lineto +2688 384 lineto +2688 0 lineto +640 0 lineto +640 384 lineto +end_ol grestore +gsave 13.500000 8.000000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 13.947080 8.000000 translate 0.035278 -0.035278 scale +start_ol +1535 3200 moveto +1185 3200 1008 2840 conicto +832 2481 832 1759 conicto +832 1039 1008 679 conicto +1185 320 1535 320 conicto +1887 320 2063 679 conicto +2240 1039 2240 1759 conicto +2240 2481 2063 2840 conicto +1887 3200 1535 3200 conicto +1536 3584 moveto +2127 3584 2439 3116 conicto +2752 2649 2752 1759 conicto +2752 871 2439 403 conicto +2127 -64 1536 -64 conicto +944 -64 632 403 conicto +320 871 320 1759 conicto +320 2649 632 3116 conicto +944 3584 1536 3584 conicto +end_ol grestore +gsave 1.050000 1.975000 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave 1.274788 1.975000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +end_ol grestore +gsave 1.679402 1.975000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 2.084016 1.975000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 2.436185 1.975000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 7.100000 2.025000 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave 7.324788 2.025000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +end_ol grestore +gsave 7.729402 2.025000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 8.134016 2.025000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 8.486185 2.025000 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 13.300000 2.050000 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave 13.524788 2.050000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +end_ol grestore +gsave 13.929402 2.050000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 14.334016 2.050000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +showpage diff -r 000000000000 -r e9ecd5b5f29a figures/call-return.pdf Binary file figures/call-return.pdf has changed diff -r 000000000000 -r e9ecd5b5f29a figures/continuation.dia Binary file figures/continuation.dia has changed diff -r 000000000000 -r e9ecd5b5f29a figures/continuation.eps --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/figures/continuation.eps Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,418 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/kent/WorkSpace/master-paper/figures/continuation.dia +%%Creator: Dia v0.97 +%%CreationDate: Tue Jan 26 14:06:59 2010 +%%For: kent +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 427 158 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /A /B /C /D /E +/F /G /H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W /X /Y +/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c +/d /e /f /g /h /i /j /k /l /m +/n /o /p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +-1.975000 -7.025000 translate +%%EndProlog + + +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 2.000000 2.000000 m 2.000000 6.000000 l 3.000000 6.000000 l 3.000000 2.000000 l f +0.000000 0.000000 0.000000 srgb +n 2.000000 2.000000 m 2.000000 6.000000 l 3.000000 6.000000 l 3.000000 2.000000 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 16.000000 2.000000 m 16.000000 6.000000 l 17.000000 6.000000 l 17.000000 2.000000 l f +0.000000 0.000000 0.000000 srgb +n 16.000000 2.000000 m 16.000000 6.000000 l 17.000000 6.000000 l 17.000000 2.000000 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 5.500000 2.000000 m 5.500000 6.000000 l 6.500000 6.000000 l 6.500000 2.000000 l f +0.000000 0.000000 0.000000 srgb +n 5.500000 2.000000 m 5.500000 6.000000 l 6.500000 6.000000 l 6.500000 2.000000 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 12.500000 2.000000 m 12.500000 5.000000 l 13.500000 5.000000 l 13.500000 2.000000 l f +0.000000 0.000000 0.000000 srgb +n 12.500000 2.000000 m 12.500000 5.000000 l 13.500000 5.000000 l 13.500000 2.000000 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 9.000000 2.000000 m 9.000000 7.000000 l 10.000000 7.000000 l 10.000000 2.000000 l f +0.000000 0.000000 0.000000 srgb +n 9.000000 2.000000 m 9.000000 7.000000 l 10.000000 7.000000 l 10.000000 2.000000 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 3.000000 6.000000 m 3.996000 6.000000 3.500000 1.000000 5.114590 1.807295 c s +[] 0 sd +0 slj +0 slc +n 5.450000 1.975000 m 4.890983 1.975000 l 5.114590 1.807295 l 5.114590 1.527786 l ef +n 5.450000 1.975000 m 4.890983 1.975000 l 5.114590 1.807295 l 5.114590 1.527786 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 13.500000 5.000000 m 14.500000 5.000000 14.000000 1.500000 15.581964 1.895491 c s +[] 0 sd +0 slj +0 slc +n 15.945767 1.986442 m 15.400062 2.107710 l 15.581964 1.895491 l 15.521330 1.622638 l ef +n 15.945767 1.986442 m 15.400062 2.107710 l 15.581964 1.895491 l 15.521330 1.622638 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 6.500000 6.000000 m 7.496000 6.000000 7.000000 1.000000 8.614590 1.807295 c s +[] 0 sd +0 slj +0 slc +n 8.950000 1.975000 m 8.390983 1.975000 l 8.614590 1.807295 l 8.614590 1.527786 l ef +n 8.950000 1.975000 m 8.390983 1.975000 l 8.614590 1.807295 l 8.614590 1.527786 l cp s +0.050000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 10.000000 7.000000 m 11.500000 7.000000 10.500000 1.500000 12.081964 1.895491 c s +[] 0 sd +0 slj +0 slc +n 12.445767 1.986442 m 11.900062 2.107710 l 12.081964 1.895491 l 12.021330 1.622638 l ef +n 12.445767 1.986442 m 11.900062 2.107710 l 12.081964 1.895491 l 12.021330 1.622638 l cp s +gsave 2.050000 4.250000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 2.487092 4.250000 translate 0.035278 -0.035278 scale +start_ol +1535 3200 moveto +1185 3200 1008 2840 conicto +832 2481 832 1759 conicto +832 1039 1008 679 conicto +1185 320 1535 320 conicto +1887 320 2063 679 conicto +2240 1039 2240 1759 conicto +2240 2481 2063 2840 conicto +1887 3200 1535 3200 conicto +1536 3584 moveto +2127 3584 2439 3116 conicto +2752 2649 2752 1759 conicto +2752 871 2439 403 conicto +2127 -64 1536 -64 conicto +944 -64 632 403 conicto +320 871 320 1759 conicto +320 2649 632 3116 conicto +944 3584 1536 3584 conicto +end_ol grestore +gsave 16.100000 4.200000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 16.537092 4.200000 translate 0.035278 -0.035278 scale +start_ol +640 384 moveto +1408 384 lineto +1408 3136 lineto +576 2944 lineto +576 3328 lineto +1434 3520 lineto +1920 3520 lineto +1920 384 lineto +2688 384 lineto +2688 0 lineto +640 0 lineto +640 384 lineto +end_ol grestore +gsave 5.600000 4.150000 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 6.039589 4.150000 translate 0.035278 -0.035278 scale +start_ol +1535 3200 moveto +1185 3200 1008 2840 conicto +832 2481 832 1759 conicto +832 1039 1008 679 conicto +1185 320 1535 320 conicto +1887 320 2063 679 conicto +2240 1039 2240 1759 conicto +2240 2481 2063 2840 conicto +1887 3200 1535 3200 conicto +1536 3584 moveto +2127 3584 2439 3116 conicto +2752 2649 2752 1759 conicto +2752 871 2439 403 conicto +2127 -64 1536 -64 conicto +944 -64 632 403 conicto +320 871 320 1759 conicto +320 2649 632 3116 conicto +944 3584 1536 3584 conicto +end_ol grestore +gsave 12.650000 3.750000 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 13.089589 3.750000 translate 0.035278 -0.035278 scale +start_ol +640 384 moveto +1408 384 lineto +1408 3136 lineto +576 2944 lineto +576 3328 lineto +1434 3520 lineto +1920 3520 lineto +1920 384 lineto +2688 384 lineto +2688 0 lineto +640 0 lineto +640 384 lineto +end_ol grestore +gsave 9.100000 4.700000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 9.547080 4.700000 translate 0.035278 -0.035278 scale +start_ol +1535 3200 moveto +1185 3200 1008 2840 conicto +832 2481 832 1759 conicto +832 1039 1008 679 conicto +1185 320 1535 320 conicto +1887 320 2063 679 conicto +2240 1039 2240 1759 conicto +2240 2481 2063 2840 conicto +1887 3200 1535 3200 conicto +1536 3584 moveto +2127 3584 2439 3116 conicto +2752 2649 2752 1759 conicto +2752 871 2439 403 conicto +2127 -64 1536 -64 conicto +944 -64 632 403 conicto +320 871 320 1759 conicto +320 2649 632 3116 conicto +944 3584 1536 3584 conicto +end_ol grestore +showpage diff -r 000000000000 -r e9ecd5b5f29a figures/continuation.pdf Binary file figures/continuation.pdf has changed diff -r 000000000000 -r e9ecd5b5f29a master_paper.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/master_paper.sty Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,375 @@ +% +% 修士卒業論文スタイルファイル master_papar.sty(ver. 2.1e) +% Time-stamp: <01/03/01 22:01:27 ryuji> +% +% ver 2.1e 2/3/01 ryuji +% ver 2.0e 17/12/00 ryuji +% ver 1.0e 05/11/99 hiroki +% +% modifier: Ryuji Gushiken(ryuji@ads.ie.u-ryukyu.ac.jp) +% +% author: Hiroki Taira(hiroki@ads.ie.u-ryukyu.ac.jp) + +% usage: +% +%\documentclass[a4j]{jreport} +% +%\usepackage{master_paper} +% +% +%\jtitle{修士論文スタイルファイル\\自律分散研バージョン} +%\etitle{\LaTeX style test file for master paper} +%\year{平成11年度} +%\affiliation{琉球大学大学院理工学研究科\\ 情報工学専攻} +%\author{名字 名前} +% +%\begin{document} +% +%\maketitle +% +%%要旨 +%\input{abstract.tex} +% +%%目次 +%\tableofcontents +% +%%図目次 +%\listoffigures +% +%%表目次 +%\listoftables +% +%%第一章 +%\input{chapter1.tex} +%%chapter1.texの\chapter{}の後ろに次のコマンドを追加してください。 +%%ページカウントがリセットされ、ページ数がアラビア文字になります。 +%% \pagenumbering{arabic} +%%第二章 +%\input{chapter2.tex} +%%第三章 +%\input{chapter3.tex} +% +%%付録 +%\input{appendix.tex} +% +%%謝辞 +%%\input{thanx.tex} +% +%%参考文献 +%\input{biblography.tex} +% +%\end{document} + +\typeout{****************************************************************} +\typeout{** 平成15年度 琉球大学大学院 学位論文(修士) ********************} +\typeout{** スタイルファイル(LaTeX2e) : 非公式 ********************} +\typeout{****************************************************************} + +%長さ設定 +\hoffset -1in \addtolength{\hoffset}{20mm} +\voffset -1in \addtolength{\voffset}{10mm} +\oddsidemargin 10mm +\topmargin 0mm +\headheight 10mm +\headsep 15mm +\textheight 39\baselineskip \addtolength{\textheight}{\topskip} +\textwidth 160mm +\marginparsep 3mm +\marginparwidth 15mm +\footskip \headsep + + +%年度 +\def\@year{} +\def\year#1{\gdef\@year{#1}} +%和文タイトル +\def\jetitle{} +\def\jtitle#1{\gdef\@title{#1}} +%英文タイトル +\def\@etitle{} +\def\etitle#1{\gdef\@etitle{#1}} +%所属 +%\def\@belongto{} +%\def\belongto#1{\gdef\@belongto{#1}} +\def\@affiliation{} +\def\affiliation#1{\gdef\@affiliation{#1}} +\let\belongto\affiliation + +\def\thesis{学位論文(修士)} + +%表紙 +%\renewcommand{\maketitle}{% +%\newpage\null +%\thispagestyle{empty} +%\vskip 1cm% +%\begin{center}% +%\let\footnote\thanks +% {\huge \@title \par}% +% \vskip 1.5em% +% {\huge \@etitle \par}% +% \vskip 2.5em% +% {\LARGE \@year \ \thesis \par}% +% \vskip 10em% +%% {\huge \@belongto \par}% +% {\LARGE \@affiliation \par}% +% \vskip 1.5em% +% {\LARGE \@author \par}% +%\end{center}% +%%\par\vskip 1.5em +%} +\renewcommand{\maketitle}{% +\newpage\null +\thispagestyle{empty} +\vskip 1cm% +\begin{center}% +\let\footnote\thanks + {\huge\bfseries\mc\@title \par}% + \vskip 3.0em% + {\huge\textbf{\@etitle}\par}% + \vskip 1.5em% + {\LARGE \@year \ \thesis \par}% + \vskip 13em% + {\LARGE \@affiliation \par}% + \vskip 1.5em% + {\LARGE \@author \par}% +\end{center}} + + +%abstract +\renewenvironment{abstract}{% + \titlepage + \thispagestyle{empty} + \null\vfil + \@beginparpenalty\@lowpenalty + {\Huge \bfseries \abstractname}% + \begin{center}% + \@endparpenalty\@M + \end{center} +}% + +%目次 +\renewcommand{\tableofcontents}{% + \pagestyle{plain} + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\contentsname + \@mkboth{\contentsname}{\contentsname}% + } \pagenumbering{roman}\@starttoc{toc}% + \if@restonecol\twocolumn\fi +} + +%付録 +\renewcommand{\appendix}{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \renewcommand{\@chapapp}{\appendixname}% + \renewcommand{\@chappos}\space% + \renewcommand{\thechapter}{\@Alph\c@chapter} + \renewcommand{\thesection}{\thechapter-\arabic{section}}} + + +%章 +\renewcommand{\chapter}{% +% \pagestyle{plain} +% \pagestyle{m@tterheadings} + \pagestyle{anotherheadings} + \if@openright\cleardoublepage\else\clearpage\fi +% \thispagestyle{jpl@in}% + \thispagestyle{anotherplain}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter\space\@chappos (\thepage ページ)}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{\@chapapp\thechapter\@chappos}#1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \@makechapterhead{#2}\@afterheading} +\def\@makechapterhead#1{\hbox{}% + \vskip2\Cvs + {\parindent\z@ + \raggedright +% + \reset@font\huge\bfseries + \ifnum \c@secnumdepth >\m@ne + \setlength\@tempdima{\linewidth}% + \setbox\z@\hbox{\@chapapp\thechapter\@chappos\hskip1zw}% + \addtolength\@tempdima{-\wd\z@}% + \unhbox\z@\nobreak + \vtop{\hsize\@tempdima#1}% + \else + #1\relax + \fi}\nobreak\vskip3\Cvs} + + +\renewcommand{\prepartname}{\relax} %\renewcommand{\prepartname}{第} +\renewcommand{\postpartname}{部} +\renewcommand{\prechaptername}{第}%\renewcommand{\prechaptername}{第} +\renewcommand{\postchaptername}{章} +\renewcommand{\contentsname}{目 次} +\renewcommand{\listfigurename}{図 目 次} +\renewcommand{\listtablename}{表 目 次} +\renewcommand{\bibname}{参考文献} +\renewcommand{\indexname}{索 引} +\renewcommand{\figurename}{図} +\renewcommand{\tablename}{表} +\renewcommand{\appendixname}{付 録} +\renewcommand{\abstractname}{要 旨} + + +%%%% new environment for me(ryuji) +%定義のための環境 +\newcounter{defnum}[chapter] +\newcommand{\predef}{定義} +\newcommand{\postdef}{\relax} +\newenvironment{definition}{\vskip5mm% + \center\begin{minipage}{.8\textwidth} + \addtocounter{defnum}{1} + \begin{description}\item[\textbf{\predef\thechapter.\thedefnum\postdef}] } + {\end{description}\end{minipage}\newline\vskip5mm} + +\newcommand{\preex}{例題} +\newcommand{\postex}{\relax} +\newenvironment{example}{\vskip5mm% + \center\begin{minipage}{.9\textwidth} + \begin{description}\item[\textbf{[\preex\postex]\hskip1zw}] } + {\end{description}\end{minipage}\newline\vskip5mm} + +%%%% customized by me(ryuji) +%footnoteの表示部 +\def\@makefnmark{\hbox{\@textsuperscript{\normalfont + 注\kern0.1em \@thefnmark}}} + +%%%%%% added by ryuji %%%%%%%%%% +% ヘディング +% c.f. 奥村晴彦,''LaTeX2e 美文書作成入門,'' 技術評論社, pp207--231, 1997. + +%ヘッダ、フッタに追加するもの +\def\@lefthead{} +\def\marklefthead#1{\gdef\@lefthead{\small #1}} +\def\@leftfoot{} +\def\markleftfoot#1{\gdef\@leftfoot{\small #1}} + + +%\def\ps@headings{% +\def\ps@m@tterheadings{% + \let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@headnombre + \let\@oddfoot\@empty\let\@evenfoot\@empty +% \def\@evenhead{\thepage\hfil\leftmark}% + \def\@oddhead{\hss\addtolength{\textwidth}{-4.5zw} +% \underline{\hbox to \textwidth{\hfil\textbf{\rightmark}}% + \underline{\hbox to \textwidth{\vfil\@lefthead\hfil\textbf{\leftmark}}% + \hfil\hskip4zw\thepage}}% + + \def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne + \@chapapp\thechapter\@chappos\hskip1zw + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi + ##1}}% + } + + +%もう一個のバージョン:headings(本命) +\def\ps@anotherheadings{% + \let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@headnombre + \def\@oddfoot{\reset@font% + \textbf{\footnotesize \@leftfoot}\hfil\bf\thepage}% + \let\@evenfoot\@empty + \def\@oddhead{\hss +% \underline{\hbox to \textwidth{\hfil\textbf{\rightmark}}% + \underline{\hbox to \textwidth{\@lefthead\hfil\textbf{\leftmark}}% + \hfil}}% + + \def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne + \@chapapp\thechapter\@chappos\hskip1zw + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi + ##1}}% + } +%もう一個のバージョン:plain(本命) +\def\ps@anotherplain{% + \let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@headnombre + \def\@oddfoot{\reset@font% + \textbf{\footnotesize \@leftfoot}\hfil\bf\thepage}% + \let\@evenfoot\@empty + \let\@oddhead\@empty + \def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne + \@chapapp\thechapter\@chappos\hskip1zw + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi + ##1}}% + } + +%スタイルセットのため +\renewenvironment{thebibliography}[1] +{\chapter*{\bibname\@mkboth{\bibname}{\bibname}}% + \markboth{\bibname}{\bibname} + \addcontentsline{toc}{chapter}{参考文献} + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty\clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} + + +%索引のため +\renewenvironment{theindex}{% + \clearpage + \columnseprule.4pt \columnsep 2zw + \markboth{\indexname}{\indexname} + \addcontentsline{toc}{chapter}{\indexname} + \begin{multicols}{3}[{\chapter*{\indexname}}] + \@mkboth{\indexname}{\indexname} + \thispagestyle{anotherplain}% + \parindent=0pt + \parskip=0pt plus .3pt \relax + \let\item=\@idxitem + \raggedright + \footnotesize\narrowbaselines + }{\end{multicols}} +\def\indexname{索引} +\def\narrowbaselines{\fontsize\@xpt\@xiipt\selectfont} +\def\@idxitem{\par \hangindent4zw} +\def\subitem{\par \hangindent4zw \hspace*{2zw}} +\def\subsubitem{\par \hangindent4zw \hspace*{3zw}} + +%禁則処理の追加 + %事前でのブレークを禁止(禁止>=10000) +\prebreakpenalty\jis`,=10000 % , +\prebreakpenalty\jis`.=10000 % . +%\prebreakpenalty\jis"2124=10000 % , +%\prebreakpenalty\jis"2125=10000 % . +%\prebreakpenalty\jis`、=10000 % 、 +%\prebreakpenalty\jis`。=10000 % 。 +%%\prebreakpenalty\jis"2124=10000 % 、 +%%\prebreakpenalty\jis"2125=10000 % 。 diff -r 000000000000 -r e9ecd5b5f29a master_paper.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/master_paper.tex Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,96 @@ +\documentclass[a4j,12pt]{jreport} +\usepackage{master_paper} +\usepackage{ascmac} %% itembox +\usepackage[dvipdfm]{graphicx} +\usepackage{listings, jlisting} +\usepackage{multirow} +\usepackage{slashbox} +\lstset{basicstyle=\footnotesize, frame=trbl, framesep=5pt} + +% dvipdfm を使って PDF ファイルに日本語の栞をつける +%\usepackage[dvipdfm]{color} +\usepackage[dvipdfm,bookmarks=true, + bookmarksnumbered=true, + bookmarkstype=toc]{hyperref} +%\AtBeginDvi{\special{pdf:tounicode /*環境によって違う*/}} +\AtBeginDvi{\special{pdf:tounicode EUC-UCS2}} + + + +% lstlistingsパッケージの設定 +%\renewcommand{\lstlistingname}{リスト} +\lstset{ + language=C,% + stringstyle=\ttfamily,% + basicstyle=\small\ttfamily,% + commentstyle=\itshape,% + classoffset=1,% + keywordstyle=\bfseries,% + framesep=5pt,% + showstringspaces=false,% + %frame=tRBl, + %numbers=left,stepnumber=1,numberstyle=\footnotesize% +}% +\def\lstlistingname{コード} +\def\lstlistlistingname{プログラムコード目次} + + + +%\jtitle{Continuation based CのGCCによる高速化とその応用} +\jtitle{組み込み向け言語Continuation based CのGCC上の実装} +\etitle{} +\year{平成21年度} +\affiliation{\center% + \vspace{-10mm} + \includegraphics[clip,keepaspectratio,width=.15\textwidth] + {u-ryukyu-Mark.eps}\\ + \vskip15mm + 琉球大学大学院 \ 理工学研究科\\ 情報工学専攻} +\author{与儀 健人} + +\marklefthead{% 左上に挿入 + \begin{minipage}[b]{.4\textwidth} + \includegraphics[height=1zw,clip,keepaspectratio]{emblem-bitmap.eps} + 琉球大学大学院学位論文(修士) + \end{minipage}} +\markleftfoot{% 左下に挿入 + \begin{minipage}{.8\textwidth} + Continuation based Cの高速化とその応用 + \end{minipage}} + + +%%% 索引のために以下の2行を追加 +%\usepackage{makeidx,multicol} +%\makeindex +\begin{document} + +\maketitle + +%要旨 +\input{abstract.tex} + +%目次 +\tableofcontents +%図目次 +\listoffigures +%表目次 +\listoftables + +%\pagenumbering{arabic} +\input{purposes.tex} +\input{cbc.tex} +\input{implementation.tex} +\input{taskmanager.tex} +\input{evaluations.tex} +\input{conclusion.tex} + +%謝辞 +\input{thanx.tex} +%参考文献 +\input{bibliography.tex} +%付録 +\input{appendix.tex} + + +%\printindex +\end{document} diff -r 000000000000 -r e9ecd5b5f29a memo.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/memo.txt Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,185 @@ + +[研究目的] + o 検証に適する言語 + o Demonstration,分割 + o ハードウェア記述 + o → それらを実現するためには継続をベースとした言語が良い + o 先行研究 + - micro-c (mc実装) + - gcc (卒論時点での) + +[Continuation based C] + o CbCの要求仕様 + o コードセグメントと継続制御 + - call-returnから継続へ + - コードセグメント + - 継続制御 (light-weight continuation) + o 状態遷移記述 (河野先生の論文から拝借) + o return + +[実装] + o tail callを使ったgoto文の実装を簡単に説明(卒論の範囲) + o 並列代入 + o _CbC_returnの実装方法 + +[CbCベースTaskManager] + +[評価] + o mcとの速度比較 + - 最適化を行った場合、-fomit-framepointer, noreturn, fastcall + - i386,ppc,x86_64,spu + # i386なら-O2, omit,fastcallでmcとほぼ同等 + # レジスタベースのアーキテクチャならさらにいい結果がでる? + # ppcはmcの倍早くなる + o CbC言語のソースコードの評価 + - プログラミングの手法などについて + # ゲームのようなループベースのソフトウェア記述に有利 + - スタック操作 ← キンタク先輩の修論を参考に + - オブジェクト指向との関係 + - スパゲティコードとメソッドベース + + + + +CbCの目的 + 多言語 -> CbC -> アセンブラ、ハードウェア + Cとの互換性 + 関数の分割としてのコードセグメント + コードセグメント単位でのタブロー方を用いた検証 + 最適化 + +背景 + o Demonstration + - 継続が重要 キンタク先輩の修論を参考に + o タブロー法による検証 + - アツキ先輩のが詳しい? + + +やったこと + code segmentの追加 + gotoの実装 + CbC_return + +評価 quicksortでいいか? + cbc-gcc <-> c-gcc + cbc-gcc <-> cbc-mc + +environment -> method call ? + +プログラム + o 状態遷移ですべてを考える + o ある状態を保ってループ + o 別の状態に移ってループこの繰り返しがプログラム + o これはCbCで記述しやすい + o 状態をオブジェクト、ループ構造をメソッドとする + o 第一引数を状態を表すオブジェクトとする + + + + + + + o micro-cとgccがあった + o しかし新しい機能の追加 + o また、gccにはバグや当初の期待よりも高速化されないという問題が + o 本論文では実装手法を説明する + o また、micro-cと対比した性能比較をおこなった + + + + + + +企業システムの多様化、IT導入の加速により、ソフトウェアは大規模化・複雑 +化する傾向にある。また家電製品のデジタル化も進み、組み込みシステムの需 +要も増大している。 + +それにともないハードウェアはムーアの法則よろしく驚異的な進歩を遂げ、近 +年はCPUのマルチコア化が進み、また新たな段階を築こうとしている。 + +このハードウェアの進歩に対し、ソフトウェアの開発に用いられる記述言語は +オブジェクト指向プログラミングの発明・導入やデザインパターンに見られる +技術の集約などが行われ、注目されてきた。 + +%しかしながら90年代以降、言語その物に対する大きな変化は見られない。 + +オブジェクト指向を主としたJavaはその有用性が認められ多くのシステム開発 +に取り入られてきたが、その反面 Cなどの低レベルな言語による記述に比べて +余分な条件判断やメモリアクセスを増やしてしまう。そのため軽量かつ高速な +応答が要求されるReal-time処理や組み込み用途には適さない。 + +またCellに見られるような複雑なアーキテクチャをもつマシンではプログラミ +ング自体も複雑になる。Cのプログラムから直接アーキテクチャに関わる命令 +(DMAやシグナル)を使用するのでは、高級言語の設計思想と矛盾すると言わざ +るを得ない。 + +大規模システムにおけるバグの存在も深刻な問題である。 +テストファーストな開発スタイルなどで工学的なアプローチからバグの抑制が +試みられているが、完全な排除は難しい。数学的なアプローチから無矛盾を証 +明する技術の研究も進んでいるが、現在のスタックベースのプログラミングは +状態数が膨大になり、実用化された例は少ない。さらにマルチコアの台頭によ +り検証もより必要性を増すと考えられる。 + +ハードウェアの進化、数学的検証にソフトウェアが対応するためにはこれまで +とは違う新たな視点を持ったプログラミング言語が望ましい。 +しかし既存のソフトウェアやシステムは膨大な数に上り、これらを新しい言語 +に書き換えるのは無理がある。新しいプログラミング言語は古い言語との互換 +性が必須である。 + + + +しかし現在 + + +現在の互換性 + + +ソフトウェア開発における種々のテクニックでバグの発生を減らし + + + +%オブジェクト指向やリフレクション等の動的変更技術は動的な適合性をもとに +%設計されており、Cなどの低レベルな言語による記述に比べて余分な条件判断 +%を増やしてしまう。この様な言語は + + + +システムのソフトウェアを開発する記述言語の方は +大規模シス +テムの開発に主に使われているコンパイル言語は + + + + + +[修士期間での作業] + o goto のシンタクス + ,envの除去 + return + o fastcall + o 並列代入 + expand_call -> parser + o PPCのmd + - md作成 + - tailcall制限解除 + o gimple? + o prototypeの自動生成 + o mercurial管理 +[成果] + o GCCにおけるポータビリティ + o GCCの変更についていきやすい + o 速度向上! + +卒論時のgccとの比較は可能か? +多分quicksortは動かない… + +[評価] + o gccで + o できれば卒論時のgccと比較 + o mcとgcc + + + + + + diff -r 000000000000 -r e9ecd5b5f29a purposes.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/purposes.tex Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,124 @@ +\chapter{序論} +\label{chp:first} +\pagenumbering{arabic} + +%% 問題提起 +%% 解決案の提示 +%% 研究目標 +%% 本論文の各章の概要 + + +\section{背景と目的} + + +企業システムの多様化、IT導入の加速により、ソフトウェアは大規模化・複雑 +化する傾向にある。また家電製品のデジタル化も進み、組み込みシステムの需 +要も増大している。 + +それにともないハードウェアはムーアの法則よろしく驚異的な進歩を遂げ、近 +年はCPUのマルチコア化が進み、また新たな段階を築こうとしている。 + +ハードウェアの進歩に対し、ソフトウェアの開発に用いられる記述言語は、オ +ブジェクト指向プログラミングの発明・導入やデザインパターンに見られる技 +術の集約などが行われ、注目されてきた。 +%しかしながら90年代以降、言語その物に対する大きな変化は見られない。 +オブジェクト指向を主としたJavaはその有用性が認められ多くのシステム開発 +に取り入られている。 +しかしその反面、Cなどの低レベルな言語による記述に比べてこれらの技術は +余分な条件判断やメモリアクセスを増やしてしまう。そのため軽量かつ高速な +応答が要求される Real-time処理や組み込み用途には適さない。 + +またCellに見られるような複雑なアーキテクチャをもつマシンではプログラミ +ング自体も複雑になる。Cで記述されたプログラムからアーキテクチャに直接 +関わる命令 (DMAやシグナル)を使用するのでは、高級言語の設計思想と矛盾す +るともみられる。 + +大規模システムにおけるバグの存在も深刻な問題である。 +テストファーストな開発スタイルなどで工学的なアプローチからバグの抑制が +試みられているが、完全な排除は難しい。数学的なアプローチから無矛盾を証 +明する技術の研究も進んでいるが、現在のスタックベースのプログラミングは +状態数が膨大になり、実用化された例は少ない。しかしマルチコアの台頭によ +り並列プログラミングの必要性も高まっており、これからより検証の必要性が +増すと考えられる。 + +ハードウェアの進化、数学的検証にソフトウェアが対応するためにはこれまで +とは違う新たな視点を持ったプログラミング言語が望ましい。 +しかし既存のソフトウェアやシステムは膨大な数に上り、これらを新しい言語 +に書き換えるのは無理がある。新しい言語は古い言語との互換性が必須である。 + + +我々はこれらの問題に取り組むため、Continuation based Cという言語を提案 +している。Continuation based C(以下CbC)はCからサブルーチンやループ構造 +を除いたCの下位言語であり、ハードウェアの記述、また記述したプログラム +の検証などを目的としている。 + +これまでCbCのコンパイルにはmicro-cをベースとしたコンパイラとGNUコンパ +イラコレクション(以下gcc)をベースとしたコンパイラが用いられてきた。 +しかしgccにはバグや当初の期待ほど速度がでないという問題があり、また研 +究段階であるCbC言語自体にも仕様の変更などがあった。 + +%しかしgccは実用的なプログラムを動かすにはまだバグが多く、当初の期待ほ +%ど速度もでないという問題がある。また、研究段階であるCbC言語自体にも仕 +%様の変更などがあった。 + +本論文ではGCCベースのCbCコンパイラの問題の洗い出しとその問題の改善を行 +い、実用レベルのCbCプログラムの動作を目指す。また、CbCを用いたプログラ +ムの例として現在開発中のCbCベースTaskManager の紹介を行う。 +最後に実装したgccベースコンパイラの評価としてmicro-cベースコンパイラと +の速度比較を行い、 同じくTaskManager開発を通してのCbCによるプログラミ +ングの記述性についても評価・考察を行う。 + +%また、CbCを用いた応用例として現在開発中のCbCベース TaskManagerを紹介 +%し、 micro-cとの速度比較による評価を行う。さらにCbC の使用例として現 +%在開発中のCbCによる TaskManagerを紹介し、CbCによるプログラミングの記 +%述性についても論じる。 + + + + + + + +%我々はこれまで、様々な視点から軽量継続を用いた言語、Continuation based +%Cの有用性について研究してきた。このContinuation based C(以下CbC)はCか +%らサブルーチンやループ構造を除いたCの下位言語であり、ハードウェアとソ +%フトウェアの記述、また記述したプログラムの検証を目的として本研究室が提 +%案している言語である。 + +%\section{先行研究とCbC開発の動機} + +%\subsection{プログラムの検証} +%計算機科学の進歩により、ソフトウェアは大規模かつ複雑なものになっている。しかしそれに応じて、設計段階において誤りが生じる可能性も高くなってきており、設計されたシステムに誤りがないことを保証するための論理設計や検証手法及びデバッグ手法の確立が重要な課題となっている。 + +%どんなプログラムでも状態と状態遷移が存在し、その全てを網羅的に探索することでデッドロックなどの望ましくない状態を検出することができる。探索にはさまざまな手法が考えられるが、プログラムを直接状態遷移として記述できればこの探索に有利となる。 + +%本研究室の下地らはこの特徴を持つCbCを用いて線形時相論理による検証を提案し、その有用性を示した。\cite{bib:shimoji} + + +%\subsection{ゲームプログラミングにおけるデモンストレーション} +%我々は家庭用ゲーム機で動作するゲームプログラムのオープンな開発フレームワークに関する研究も行ってきた。 +%家庭用ゲーム機の多くは特殊なアーキテクチャをもち、そのためゲームプログラムには汎用性や冗長性が極めて小さく、移植が困難という問題がある。 + +%その問題の解決に、ゲームプログラム全体を小規模なプログラムの集合である``デモンストレーション''に分割するという手法を本研究室の金城らが提案した。\cite{bib:kinjo},\cite{bib:chiaki} + +%このデモンストレーション手法はプログラムを細かく分割するため、ゲーム機や組み込みなどの資源が制約された環境ではサブルーチンによるスタック操作がネックとなる。 +%そのためこの手法ではプログラム分割の実現にCbCを用いており、CからCbCへの機械的な変換方法について述べている。 + + +%\subsection{ハードウェア記述、ソフトウェアプログラミング} + +%\subsection{軽量継続を用いたプログラミング} +%以上の研究はそれぞれ軽量継続というCbC言語の特徴を利用して進められている。 + + +\section{論文構成} +%\ref{chp:cbc}にてContinuation based Cの要求仕様と詳細について説明する。 +%\ref{chp:impl}章ではgccへの実装方法を説明する。 + + +次章以降、本稿は\ref{chp:cbc}章にてCbCについて説明する。 +\ref{chp:impl}章にてgccへの実装について説明、 +\ref{chp:task}章ではCbCを用いたプログラムの実例としてTaskManagerを挙げ、 +\ref{chp:impl}章,\ref{chp:task}の評価を\ref{chp:eval}章で行う。 +最後に\ref{chp:concl}章をもってまとめとする。 + diff -r 000000000000 -r e9ecd5b5f29a sources/factorial.cbc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/factorial.cbc Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,24 @@ +code print_factorial(int prod) { + printf("factorial = %d\n", prod); + exit(0); +} + +code factorial0(int prod, int x) { + if (x >= 1) { + goto factorial0(prod*x, x-1); + } else { + goto print_factorial(prod); + } +} + +code factorial(int x) { + goto factorial0(1, x); +} + +int main(int argc, char **argv) { + int i; + i = atoi(argv[1]); + + goto factorial(i); +} + diff -r 000000000000 -r e9ecd5b5f29a sources/gcc_divider_s.asm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/gcc_divider_s.asm Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,9 @@ +divider_s: + lwz 11,0(3) + slwi 0,4,2 + lwzx 0,11,0 + cmpw 7,0,6 + blt 7,.L17 + b divider_e + addi 4,4,1 + b divider_s diff -r 000000000000 -r e9ecd5b5f29a sources/indirect-example.cbc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/indirect-example.cbc Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,8 @@ +code somesegment( . . . ) { + code (*codepoint)(); + /* do something */ + if ( ) + goto nextsegment(); + else + goto (*segmentpointer)(); +} diff -r 000000000000 -r e9ecd5b5f29a sources/mc_divider_s.asm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/mc_divider_s.asm Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,17 @@ +divider_s: + la 1,.LC19@l(31) + addis 1,1,.LC19@ha + mr 3,28 + slwi 3,3,2 + mr 11,29 + lwz 11,0@l(11) + add 11,11,3 + lwz 11,0@l(11) + cmpw 4,11,26 + bge 4,.LC21 + mr 11,28 + addi 11,11,1@l + mr 28,11 + b divider_s +.LC21: + b divider_e diff -r 000000000000 -r e9ecd5b5f29a sources/parallel-example.cbc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/parallel-example.cbc Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,4 @@ +code somesegment(int a, int b) { + /* do something */ + goto nextsegment(b, a); +} diff -r 000000000000 -r e9ecd5b5f29a sources/quicksort_divider_s.cbc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/quicksort_divider_s.cbc Fri Jan 29 15:45:41 2010 +0900 @@ -0,0 +1,9 @@ +code divider_s(QS_IF *recvif, + int s, int e, int p, + stack sp) +{ + if (recvif->v[s] 1 %_Br [ 0 0 50 100 %_Bs 1 0 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Black, White) (Black, White) 0 2 Bd [ 0 0 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > 1 %_Br [ 0 0 50 100 %_Bs 1 0 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Chrome) (Chrome) 0 6 Bd [ 0 < 464646454545444444444343434342424241414141404040403F3F3F3E3E3E3E3D3D3D3C3C3C3C3B 3B3B3B3A3A3A39393939383838383737373636363635353535343434333333333232323131313130 3030302F2F2F2E2E2E2E2D2D2D2D2C2C2C2B2B2B2B2A2A2A2A292929282828282727272726262625 2525252424242323232322222222212121202020201F1F1F1F1E1E1E1D1D1D1D1C1C1C1C1B1B1B1A 1A1A1A1919191818181817171717161616151515151414141413131312121212111111101010100F 0F0F0F0E0E0E0D0D0D0D0C0C0C0C0B0B0B0A0A0A0A09090909080808070707070606060505050504 04040403030302020202010101010000 > < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > < 1F1E1E1E1E1E1E1E1E1E1D1D1D1D1D1D1D1D1C1C1C1C1C1C1C1C1B1B1B1B1B1B1B1B1B1A1A1A1A1A 1A1A1A19191919191919191818181818181818181717171717171717161616161616161615151515 15151515151414141414141414131313131313131312121212121212121211111111111111111010 1010101010100F0F0F0F0F0F0F0F0F0E0E0E0E0E0E0E0E0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C 0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A090909090909090909080808080808080807070707070707 07060606060606060606050505050505050504040404040404040303030303030303030202020202 02020201010101010101010000000000 > 1 %_Br 0 0.275 1 < 6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544 434241403F3E3D3C3B3A393837363534333231302F2E2D2C2B2A292827262524232221201F > 1 %_Br 0 < 00000101010102020202030303040404040505050506060607070707080808090909090A0A0A0A0B 0B0B0C0C0C0C0D0D0D0D0E0E0E0F0F0F0F1010101011111112121212131313141414141515151516 161617171717181818181919191A1A1A1A1B1B1B1B1C1C1C1D1D1D1D1E1E1E1F1F1F1F2020202021 212122222222232323232424242525252526262626272727282828282929292A2A2A2A2B2B2B2B2C 2C2C2D2D2D2D2E2E2E2E2F2F2F303030303131313132323233333333343434353535353636363637 373738383838393939393A3A3A3B3B3B3B3C3C3C3C3D3D3D3E3E3E3E3F3F3F404040404141414142 42424343434344444444454545464646 > < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < 00000101020203030304040505050606070708080809090A0A0A0B0B0C0C0D0D0D0E0E0F0F101010 1111121212131314141515151616171718181819191A1A1A1B1B1C1C1D1D1D1E1E1F1F1F20202121 222222232324242525252626272727282829292A2A2A2B2B2C2C2D2D2D2E2E2F2F2F303031313232 32333334343435353636373737383839393A3A3A3B3B3C3C3C3D3D3E3E3F3F3F4040414142424243 434444444545464647474748484949494A4A4B4B4C4C4C4D4D4E4E4F4F4F50505151515252535354 54545555565657575758585959595A5A5B5B5C5C5C5D5D5E5E5F5F5F606061616162626363646464 6565666666676768686969696A6A6B6B > 1 %_Br 0 0 0 0 1 %_Br < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > < 4D4C4C4C4B4B4B4A4A4A4A4949494848484747474746464645454544444444434343424242414141 414040403F3F3F3E3E3E3E3D3D3D3C3C3C3B3B3B3B3A3A3A39393938383838373737363636353535 35343434333333323232323131313030302F2F2F2F2E2E2E2D2D2D2C2C2C2C2B2B2B2A2A2A292929 292828282727272626262625252524242423232323222222212121202020201F1F1F1E1E1E1D1D1D 1D1C1C1C1B1B1B1A1A1A1A1919191818181717171716161615151514141414131313121212111111 111010100F0F0F0E0E0E0E0D0D0D0C0C0C0B0B0B0B0A0A0A09090908080808070707060606050505 05040404030303020202020101010000 > 0 0 1 %_Br [ 1 0 50 92 %_Bs 0 0.275 1 0.12 1 50 59 %_Bs 0 0.275 1 0.42 1 50 50 %_Bs 1 0 50 49 %_Bs 1 0 50 41 %_Bs 1 0.3 0 0 1 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Green, Blue) (Green, Blue) 0 2 Bd [ < 99999A9A9B9B9B9C9C9D9D9D9E9E9F9F9FA0A0A1A1A1A2A2A3A3A3A4A4A5A5A5A6A6A7A7A7A8A8A9 A9A9AAAAABABABACACADADADAEAEAFAFAFB0B0B1B1B1B2B2B3B3B3B4B4B5B5B5B6B6B7B7B7B8B8B9 B9B9BABABBBBBBBCBCBDBDBDBEBEBFBFBFC0C0C1C1C1C2C2C3C3C3C4C4C5C5C5C6C6C7C7C7C8C8C9 C9C9CACACBCBCBCCCCCDCDCDCECECFCFCFD0D0D1D1D1D2D2D3D3D3D4D4D5D5D5D6D6D7D7D7D8D8D9 D9D9DADADBDBDBDCDCDDDDDDDEDEDFDFDFE0E0E1E1E1E2E2E3E3E3E4E4E5E5E5E6E6E7E7E7E8E8E9 E9E9EAEAEBEBEBECECEDEDEDEEEEEFEFEFF0F0F1F1F1F2F2F3F3F3F4F4F5F5F5F6F6F7F7F7F8F8F9 F9F9FAFAFBFBFBFCFCFDFDFDFEFEFFFF > < 000102020304050506070808090A0B0B0C0D0E0E0F101111121314141516171718191A1A1B1C1D1D 1E1F20202122232324252626272829292A2B2C2C2D2E2F2F303132323334353536373838393A3B3B 3C3D3E3E3F404141424344444546474748494A4A4B4C4D4D4E4F5050515253535455565657585959 5A5B5C5C5D5E5F5F606162626364656566676868696A6B6B6C6D6E6E6F7071717273747475767777 78797A7A7B7C7D7D7E7F80808182828384858586878888898A8B8B8C8D8E8E8F9091919293949495 96979798999A9A9B9C9D9D9E9FA0A0A1A2A3A3A4A5A6A6A7A8A9A9AAABACACADAEAFAFB0B1B2B2B3 B4B5B5B6B7B8B8B9BABBBBBCBDBEBEBF > < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > 0 1 %_Br [ 1 0.75 0 0 1 50 100 %_Bs 0.6 0 1 0 1 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Orange, Green, Violet) (Orange, Green, Violet) 0 3 Bd [ < F0EFEFEFEEEEEEEDEDEDECECECEBEBEBEAEAEAE9E9E9E8E8E8E7E7E7E6E6E6E5E5E5E4E4E4E3E3E3 E3E2E2E2E1E1E1E0E0E0DFDFDFDEDEDEDDDDDDDCDCDCDBDBDBDADADAD9D9D9D8D8D8D7D7D7D6D6D6 D5D5D5D4D4D4D3D3D3D2D2D2D1D1D1D0D0D0CFCFCFCECECECDCDCDCCCCCCCBCBCBCACACAC9C9C9C8 C8C8C7C7C7C6C6C6C5C5C5C4C4C4C3C3C3C2C2C2C2C1C1C1C0C0C0BFBFBFBEBEBEBDBDBDBCBCBCBB BBBBBABABAB9B9B9B8B8B8B7B7B7B6B6B6B5B5B5B4B4B4B3B3B3B2B2B2B1B1B1B0B0B0AFAFAFAEAE AEADADADACACACABABABAAAAAAA9A9A9A8A8A8A7A7A7A6A6A6A5A5A5A4A4A4A3A3A3A2A2A2A1A1A1 A0A0A0A09F9F9F9E9E9E9D9D9D9C9C9C > < 5455555657575859595A5A5B5C5C5D5E5E5F5F6061616263636465656666676868696A6A6B6B6C6D 6D6E6F6F707171727273747475767677777879797A7B7B7C7C7D7E7E7F8080818282838384858586 87878888898A8A8B8C8C8D8D8E8F8F909191929393949495969697989899999A9B9B9C9D9D9E9E9F A0A0A1A2A2A3A4A4A5A5A6A7A7A8A9A9AAAAABACACADAEAEAFAFB0B1B1B2B3B3B4B5B5B6B6B7B8B8 B9BABABBBBBCBDBDBEBFBFC0C1C1C2C2C3C4C4C5C6C6C7C7C8C9C9CACBCBCCCCCDCECECFD0D0D1D2 D2D3D3D4D5D5D6D7D7D8D8D9DADADBDCDCDDDDDEDFDFE0E1E1E2E3E3E4E4E5E6E6E7E8E8E9E9EAEB EBECEDEDEEEFEFF0F0F1F2F2F3F4F4F5 > < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > < 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000101010101010101010101010101010101010101010101010101010101 01010101010101010101010101010101010101010101010101010101010101010101010101010101 01010101010101010101010101010101010101010101010101010101010101020202020202020202 02020202020202020202020202020202020202020202020202020202020202020202020202020202 02020202020202020202020202020202020202020202020202020202020202020202020202020202 02020202020202020202020303030303 > 1 %_Br < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0 > < A1A0A0A09F9F9F9E9E9E9D9D9D9D9C9C9C9B9B9B9A9A9A9999999898989797979696969595959594 94949393939292929191919090908F8F8F8E8E8E8E8D8D8D8C8C8C8B8B8B8A8A8A89898988888887 878787868686858585848484838383828282818181808080807F7F7F7E7E7E7D7D7D7C7C7C7B7B7B 7A7A7A79797978787878777777767676757575747474737373727272717171717070706F6F6F6E6E 6E6D6D6D6C6C6C6B6B6B6A6A6A6A6969696868686767676666666565656464646363636262626261 61616060605F5F5F5E5E5E5D5D5D5C5C5C5B5B5B5B5A5A5A59595958585857575756565655555554 54 > < F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6 F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8 F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFA FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD FDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF FF > 0 1 %_Br [ 0.61 0.96 0 0.01 1 50 100 %_Bs 0.94 0.33 1 0 1 50 50 %_Bs 0 0.63 0.96 0 1 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Pink, Yellow, Green ) (Pink, Yellow, Green ) 0 3 Bd [ < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4E4F50 5152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273 > < 05050505050505050505050505050404040404040404040404040404040404040404040403030303 03030303030303030303030303030303030303020202020202020202020202020202020202020202 0201010101010101010101010101010101010101010101000000000000000000000000 > < CCCCCCCCCCCBCBCBCBCBCBCBCBCBCACACACACACACACACAC9C9C9C9C9C9C9C9C9C8C8C8C8C8C8C8C8 C8C7C7C7C7C7C7C7C7C7C6C6C6C6C6C6C6C6C6C5C5C5C5C5C5C5C5C5C4C4C4C4C4C4C4C4C3C3C3C3 C3C3C3C3C3C2C2C2C2C2C2C2C2C2C1C1C1C1C1C1C1C1C1C0C0C0C0C0C0C0C0C0BFBFBF > 0 1 %_Br < 0D0D0D0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0B 0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A 0A0A0A09090909090909090909090909090909090909090808080808080808080808080808080808 08080807070707070707070707070707070707070706060606060606060606060606060606060605 05050505050505050505050505050505050404040404040404040404040404040404030303030303 03030303030303030303030202020202020202020202020202020201010101010101010101010101 010101000000000000000000 > < B2B2B2B2B1B1B1B0B0B0AFAFAEAEAEADADACACABABAAAAA9A9A8A8A7A7A6A6A5A5A4A4A3A3A2A2A1 A0A09F9F9E9E9D9D9C9B9B9A9A999898979796959594949392929190908F8F8E8D8D8C8B8B8A8989 88888786868584848382828180807F7E7D7D7C7B7B7A7979787777767575747372727170706F6E6D 6D6C6B6B6A69686867666565646363626160605F5E5D5D5C5B5A5A59585757565554545352515150 4F4E4D4D4C4B4A4A4948474646454443434241403F3F3E3D3C3B3B3A393837373635343333323130 2F2F2E2D2C2B2B2A2928272726252423222221201F1E1D1D1C1B1A1918181716151413131211100F 0E0E0D0C0B0A090908070605 > < 0000010101020202030304040505060607070808090A0A0B0B0C0C0D0E0E0F0F1011111213131415 151616171818191A1B1B1C1D1D1E1F1F202122222324242526272728292A2A2B2C2C2D2E2F303031 323333343536363738393A3A3B3C3D3E3E3F4041424243444546464748494A4B4B4C4D4E4F505051 5253545556565758595A5B5B5C5D5E5F6061626263646566676869696A6B6C6D6E6F707171727374 75767778797A7B7B7C7D7E7F80818283848586868788898A8B8C8D8E8F9091929394949596979899 9A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAAAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0 C1C2C3C4C5C6C7C8C9CACBCC > 0 1 %_Br [ 0.45 0 0.75 0 1 50 100 %_Bs 0 0.02 0.8 0 1 50 64 %_Bs 0.05 0.7 0 0 1 57 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Purple, Red, Yellow) (Purple, Red, Yellow) 0 3 Bd [ 0 < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A > < CCCCCCCDCDCDCDCDCECECECECECFCFCFCFD0D0D0D0D0D1D1D1D1D1D2D2D2D2D2D3D3D3D3D3D4D4D4 D4D5D5D5D5D5D6D6D6D6D6D7D7D7D7D7D8D8D8D8D8D9D9D9D9DADADADADADBDBDBDBDBDCDCDCDCDC DDDDDDDDDDDEDEDEDEDFDFDFDFDFE0E0E0E0E0E1E1E1E1E1E2E2E2E2E2E3E3E3E3E4E4E4E4E4E5E5 E5E5E5E6E6E6E6E6E7E7E7E7E7E8E8E8E8E9E9E9E9E9EAEAEAEAEAEBEBEBEBEBECECECECECEDEDED EDEEEEEEEEEEEFEFEFEFEFF0F0F0F0F0F1F1F1F1F1F2F2F2F2F3F3F3F3F3F4F4F4F4F4F5F5F5F5F5 F6F6F6F6F6F7F7F7F7F8F8F8F8F8F9F9F9F9F9FAFAFAFAFAFBFBFBFBFBFCFCFCFCFDFDFDFDFDFEFE FEFEFEFFFFFF > 0 1 %_Br < E5E4E3E2E1E0DFDEDDDCDBDAD9D8D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBE BDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A99989796 9594939291908F8E8D8C8B8A898887868584838281807F7E7D7C7B7A797877767574737271706F6E 6D6C6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A49484746 4544434241403F3E3D3C3B3A393837363534333231302F2E2D2C2B2A292827262524232221201F1E 1D1C1B1A191817161514131211100F0E0D0C0B0A09080706050403020100 > < E5E6E6E6E6E6E6E6E6E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E9E9E9E9E9E9E9E9E9EAEAEAEA EAEAEAEAEAEBEBEBEBEBEBEBEBEBECECECECECECECECECEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEE EEEFEFEFEFEFEFEFEFEFF0F0F0F0F0F0F0F0F0F1F1F1F1F1F1F1F1F1F2F2F2F2F2F2F2F2F2F3F3F3 F3F3F3F3F3F3F4F4F4F4F4F4F4F4F4F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7 F7F7F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFCFC FCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFF > < 00010203040405060708090A0B0C0C0D0E0F10111213141415161718191A1B1C1D1D1E1F20212223 242525262728292A2B2C2D2D2E2F30313233343535363738393A3B3C3D3D3E3F4041424344454546 4748494A4B4C4D4E4E4F50515253545556565758595A5B5C5D5E5E5F60616263646566666768696A 6B6C6D6E6E6F70717273747576767778797A7B7C7D7E7F7F80818283848586878788898A8B8C8D8E 8F8F90919293949596979798999A9B9C9D9E9F9FA0A1A2A3A4A5A6A7A7A8A9AAABACADAEAFAFB0B1 B2B3B4B5B6B7B8B8B9BABBBCBDBEBFC0C0C1C2C3C4C5C6C7C8C8C9CACBCC > 0 1 %_Br [ 0 0.04 1 0 1 50 100 %_Bs 0 1 0.8 0 1 50 50 %_Bs 0.9 0.9 0 0 1 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Rainbow) (Rainbow) 0 6 Bd [ < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > 1 0 0 1 %_Br 1 < 0708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E 2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F50515253545556 5758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E 7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6 A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCE CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6 F7F8F9FAFBFCFDFEFF > 0 0 1 %_Br 1 < 00000000000000000000000000000000000001010101010101010101010101010101010101010101 01010101010101010101010101010202020202020202020202020202020202020202020202020202 02020202020202020202030303030303030303030303030303030303030303030303030303030303 03030303030304040404040404040404040404040404040404040404040404040404040404040404 04040505050505050505050505050505050505050505050505050505050505050505050505050606 06060606060606060606060606060606060606060606060606060606060606060606070707070707 07070707070707070707070707070707 > < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > 0 1 %_Br < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > 0 1 0 1 %_Br 0 < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > 1 0 1 %_Br [ 0 1 0 0 1 50 100 %_Bs 1 1 0 0 1 50 80 %_Bs 1 0.0279 0 0 1 50 60 %_Bs 1 0 1 0 1 50 40 %_Bs 0 0 1 0 1 50 20 %_Bs 0 1 1 0 1 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Steel Bar) (Steel Bar) 0 3 Bd [ 0 0 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > 1 %_Br 0 0 0 < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > 1 %_Br [ 0 0 50 100 %_Bs 1 0 50 70 %_Bs 0 0 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (White & Red Radial) (White & Red Radial) 1 18 Bd [ 0 1 1 0 1 %_Br 0 1 1 0 1 %_Br 0 < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > 0 1 %_Br 0 0 0 0 1 %_Br 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > 0 1 %_Br 0 1 1 0 1 %_Br 0 < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > 0 1 %_Br 0 0 0 0 1 %_Br 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > 0 1 %_Br 0 1 1 0 1 %_Br 0 < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > 0 1 %_Br 0 0 0 0 1 %_Br 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > 0 1 %_Br 0 1 1 0 1 %_Br 0 < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > 0 1 %_Br 0 0 0 0 1 %_Br 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > 0 1 %_Br [ 0 1 1 0 1 50 0 %_Bs 0 1 1 0 1 50 0 %_Bs 0 1 1 0 1 50 12.5 %_Bs 0 0 0 0 1 50 12.5 %_Bs 0 0 0 0 1 50 25 %_Bs 0 1 1 0 1 50 25 %_Bs 0 1 1 0 1 50 37.5 %_Bs 0 0 0 0 1 50 37.5 %_Bs 0 0 0 0 1 50 50 %_Bs 0 1 1 0 1 50 50 %_Bs 0 1 1 0 1 50 62.5 %_Bs 0 0 0 0 1 50 62.5 %_Bs 0 0 0 0 1 50 75 %_Bs 0 1 1 0 1 50 75 %_Bs 0 1 1 0 1 50 87.5 %_Bs 0 0 0 0 1 50 87.5 %_Bs 0 0 0 0 1 50 100 %_Bs 0 1 1 0 1 50 100 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Yellow & Orange Radial) (Yellow & Orange Radial) 1 2 Bd [ 0 < 0001010203040506060708090A0B0C0C0D0E0F10111213131415161718191A1B1C1D1D1E1F202122 232425262728292A2B2B2C2D2E2F303132333435363738393A3B3C3D3E3E3F404142434445464748 494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60606162636465666768696A6B6C6D6E6F 707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C > < FFFFFFFFFEFEFEFEFEFEFEFDFDFDFDFDFDFCFCFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAFAF9F9F9F9F9 F9F8F8F8F8F8F8F7F7F7F7F7F7F6F6F6F6F6F6F5F5F5F5F5F5F4F4F4F4F4F3F3F3F3F3F3F2F2F2F2 F2F2F1F1F1F1F1F0F0F0F0F0F0EFEFEFEFEFEFEEEEEEEEEEEDEDEDEDEDEDECECECECECEBEBEBEBEB EBEAEAEAEAEAE9E9E9E9E9E9E8E8E8E8E8E8E7E7E7E7E7E6E6E6E6E6E5 > 0 1 %_Br [ 0 0 1 0 1 52 19 %_Bs 0 0.55 0.9 0 1 50 100 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Yellow & Purple Radial) (Yellow & Purple Radial) 1 2 Bd [ < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < 1415161718191A1B1C1D1E1F1F202122232425262728292A2A2B2C2D2E2F30313233343536363738 393A3B3C3D3E3F40414142434445464748494A4B4C4D4D4E4F50515253545556575858595A5B5C5D 5E5F60616263646465666768696A6B6C6D6E6F6F707172737475767778797A7B7B7C7D7E7F808182 83848586868788898A8B8C8D8E8F90919292939495969798999A9B9C9D9D9E9FA0A1A2A3A4A5A6A7 A8A9A9AAABACADAEAFB0B1B2B3B4B4B5B6B7B8B9BABBBCBDBEBFC0C0C1C2C3C4C5C6C7C8C9CACBCB CCCDCECFD0D1D2D3D4D5D6D7D7D8D9DADBDCDDDEDFE0E1E2E2E3E4E5E6E7E8E9EAEBECEDEEEEEFF0 F1F2F3F4F5F6F7F8F9F9FAFBFCFDFEFF > < ABAAAAA9A8A7A7A6A5A5A4A3A3A2A1A1A09F9F9E9D9D9C9B9B9A9999989797969595949393929191 908F8F8E8D8D8C8B8B8A8989888787868585848383828181807F7F7E7D7D7C7B7B7A797978777776 7575747373727171706F6F6E6D6D6C6B6B6A6969686767666565646362626160605F5E5E5D5C5C5B 5A5A5958585756565554545352525150504F4E4E4D4C4C4B4A4A4948484746464544444342424140 403F3E3E3D3C3C3B3A3A3938383736363534343332323130302F2E2E2D2C2C2B2A2A292828272626 25242423222121201F1F1E1D1D1C1B1B1A1919181717161515141313121111100F0F0E0D0D0C0B0B 0A090908070706050504030302010100 > 0 1 %_Br [ 0 0.08 0.67 0 1 50 14 %_Bs 1 1 0 0 1 50 100 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Yellow, Violet, Orange, Blue) (Yellow, Violet, Orange, Blue) 0 4 Bd [ < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < A1A1A1A1A2A2A2A2A3A3A3A3A4A4A4A4A4A5A5A5A5A6A6A6A6A7A7A7A7A8A8A8A8A9A9A9A9AAAAAA AAAAABABABABACACACACADADADADAEAEAEAEAFAFAFAFB0B0B0B0B0B1B1B1B1B2B2B2B2B3B3B3B3B4 B4B4B4B5B5B5B5B6B6B6B6B6B7B7B7B7B8B8B8B8B9B9B9B9BABABABABBBBBBBBBCBCBCBCBCBDBDBD BDBEBEBEBEBFBFBFBFC0C0C0C0C1C1C1C1C2C2C2C2C2C3C3C3C3C4C4C4C4C5C5C5C5C6C6C6C6C7C7 C7C7C8C8C8C8C8C9C9C9C9CACACACACBCBCBCBCCCCCCCCCDCDCDCDCECECECECECFCFCFCFD0D0D0D0 D1D1D1D1D2D2D2D2D3D3D3D3D4D4D4D4D4D5D5D5D5D6D6D6D6D7D7D7D7D8D8D8D8D9D9D9D9DADADA DADADBDBDBDBDCDCDCDCDDDDDDDDDEDE > < F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E4E3E2E1E0DFDEDDDCDBDAD9D8D7D6D5D4D3D2D1D0CF CECDCCCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B4B3B2B1B0AFAEADACABAAA9 A8A7A6A5A4A3A2A1A09F9E9D9C9C9B9A999897969594939291908F8E8D8C8B8A8988878685848483 8281807F7E7D7C7B7A797877767574737271706F6E6D6C6C6B6A696867666564636261605F5E5D5C 5B5A59585756555454535251504F4E4D4C4B4A494847464544434241403F3E3D3C3C3B3A39383736 3534333231302F2E2D2C2B2A29282726252424232221201F1E1D1C1B1A191817161514131211100F 0E0D0C0C0B0A09080706050403020100 > 0 1 %_Br < 9C9B9A9A9998989796969595949393929191908F8F8E8E8D8C8C8B8A8A8989888787868585848383 82828180807F7E7E7D7C7C7B7B7A797978777776757574747372727170706F6E6E6D6D6C6B6B6A69 6968676766666564646362626161605F5F5E5D5D5C5B5B5A5A595858575656555454535352515150 4F4F4E4D4D4C4C4B4A4A4948484746464545444343424141403F3F3E3E3D3C3C3B3A3A3939383737 36353534333332323130302F2E2E2D2C2C2B2B2A292928272726252524242322222120201F1E1E1D 1D1C1B1B1A191918171716161514141312121111100F0F0E0D0D0C0B0B0A0A090808070606050404 030302010100 > < F5F4F4F4F3F3F3F2F2F2F1F1F1F0F0F0EFEFEFEEEEEEEDEDEDECECECEBEBEAEAEAE9E9E9E8E8E8E7 E7E7E6E6E6E5E5E5E4E4E4E3E3E3E2E2E2E1E1E1E0E0E0DFDFDEDEDEDDDDDDDCDCDCDBDBDBDADADA D9D9D9D8D8D8D7D7D7D6D6D6D5D5D5D4D4D3D3D3D2D2D2D1D1D1D0D0D0CFCFCFCECECECDCDCDCCCC CCCBCBCBCACACAC9C9C8C8C8C7C7C7C6C6C6C5C5C5C4C4C4C3C3C3C2C2C2C1C1C1C0C0C0BFBFBFBE BEBEBDBDBCBCBCBBBBBBBABABAB9B9B9B8B8B8B7B7B7B6B6B6B5B5B5B4B4B4B3B3B3B2B2B1B1B1B0 B0B0AFAFAFAEAEAEADADADACACACABABABAAAAAAA9A9A9A8A8A8A7A7A6A6A6A5A5A5A4A4A4A3A3A3 A2A2A2A1A1A1 > < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5 > < 03030303030202020202020202020202020202020202020202020202020202020202020202020202 02020202020202020202020202020202020202020202020202020202020202020202020202020202 02020202020202020202020202020202020202020201010101010101010101010101010101010101 01010101010101010101010101010101010101010101010101010101010101010101010101010101 01010101010101010101010101010101010101010101010101010101010101010101010101000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000 > 1 %_Br < 0D0D0E0F0F10101111121313141415161617171819191A1A1B1C1C1D1D1E1E1F2020212122232324 2425262627272828292A2A2B2B2C2D2D2E2E2F30303131323333343435353637373838393A3A3B3B 3C3D3D3E3E3F3F404141424243444445454647474848494A4A4B4B4C4C4D4E4E4F4F505151525253 54545555565757585859595A5B5B5C5C5D5E5E5F5F60616162626363646565666667686869696A6B 6B6C6C6D6E6E6F6F70707172727373747575767677787879797A7B7B7C7C7D7D7E7F7F8080818282 8383848585868687878889898A8A8B8C8C8D8D8E8F8F90909192929393949495969697979899999A 9A9B9C > < 08090A0B0C0D0E0F0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E 2F303132333435363738393A3B3C3D3E3F40404142434445464748494A4B4C4D4E4F505152535455 565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717172737475767778797A7B7C 7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A2A3 A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACB CCCDCECFD0D1D2D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2 F3F4F5 > < F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8D7D6D5D4D3D2D1D0CFCECDCCCB CAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3 A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A898887868584838281807F7E7D7C7B 7A797877767574737271706F6E6D6C6B6A696867666564636261605F5E5D5C5B5A59585756555453 5251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A393837363534333231302F2E2D2C2B 2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A09080706050403 020100 > < 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000101010101010101010101010101010101010101010101010101010101010101 01010101010101010101010101010101010101010101010101010101010101010101010101010101 01010101010101010101010101010101010101010101010202020202020202020202020202020202 02020202020202020202020202020202020202020202020202020202020202020202020202020202 02020202020202020202020202020202020202020202020202020202020202020202020202020303 030303 > 1 %_Br [ 1 0.87 0 0 1 50 95 %_Bs 0 0.63 0.96 0 1 50 65 %_Bs 0.61 0.96 0 0.01 1 50 35 %_Bs 0.05 0.03 0.95 0 1 50 5 %_Bs BD %AI5_EndGradient %AI5_End_NonPrinting-- %AI5_BeginPalette 0 0 Pb 0 0 0 0 k Pc 0 0 0 1 k Pc 0 0.45 0.6 0 k Pc 0 0.5 0.05 0 k Pc 0 0.9 1 0 k Pc 1 0.2 1 0 k Pc 1 0.4 0.15 0 k Pc 0.2 0 1 0 k Pc 0.25 1 0.25 0 k Pc 0.4 0.4 0.4 0 k Pc 0.4 0.7 1 0 k Pc 0.75 0.9 0 0 k Pc 1 0 0.55 0 (Aqua) 0 x Pc 1 0.5 0 0 (Blue) 0 x Pc 0.5 0.4 0.3 0 (Blue Gray) 0 x Pc 0.8 0.05 0 0 (Blue Sky) 0 x Pc 0.5 0.85 1 0 (Brown) 0 x Pc 1 0.9 0.1 0 (Dark Blue) 0 x Pc 1 0.55 1 0 (Forest Green) 0 x Pc 0.05 0.2 0.95 0 (Gold) 0 x Pc 0.75 0.05 1 0 (Grass Green) 0 x Pc 0 0.45 1 0 (Orange) 0 x Pc 0.15 1 1 0 (Red) 0 x Pc 0.45 0.9 0 0 (Violet) 0 x Pc Bb 2 (Black, White) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc Bb 2 (Chrome) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc Bb 2 (Green, Blue) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc Bb 2 (Orange, Green, Violet) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc Bb 2 (Pink, Yellow, Green ) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc Bb 2 (Purple, Red, Yellow) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc Bb 2 (Rainbow) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc Bb 2 (Steel Bar) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc Bb 0 0 0 0 Bh 2 (White & Red Radial) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc Bb 0 0 0 0 Bh 2 (Yellow & Orange Radial) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc Bb 0 0 0 0 Bh 2 (Yellow & Purple Radial) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc Bb 2 (Yellow, Violet, Orange, Blue) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc (Arrow1.2.out/in) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Arrow1.2.side) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Bricks) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Checks) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Confetti) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (DblLine1.2.inner) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (DblLine1.2.outer) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (DblLine1.2.side) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Diamonds) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Hexagon) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Laurel.inner) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Laurel.outer) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Laurel.side) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Leaves-fall) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Polka dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Random circles) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Rope.side) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Scales) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (SolidStar.side) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Stars) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Stripes) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (TriBevel.outer) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (TriBevel.side) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc (Waves-scroll) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc 1 1 1 1 k Pc 1 g Pc 0 g Pc 0.75 g Pc 0.5 g Pc 0.25 g Pc 0 g Pc Bb 2 (Black & White) -4220 4422 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0.25 0 0 0 k Pc 0.5 0 0 0 k Pc 0.75 0 0 0 k Pc 1 0 0 0 k Pc 0.25 0.25 0 0 k Pc 0.5 0.5 0 0 k Pc 0.75 0.75 0 0 k Pc 1 1 0 0 k Pc 0 g Pc 0 0.25 0 0 k Pc 0 0.5 0 0 k Pc 0 0.75 0 0 k Pc 0 1 0 0 k Pc 0 0.25 0.25 0 k Pc 0 0.5 0.5 0 k Pc 0 0.75 0.75 0 k Pc 0 1 1 0 k Pc 0 g Pc 0 0 0.25 0 k Pc 0 0 0.5 0 k Pc 0 0 0.75 0 k Pc 0 0 1 0 k Pc 0.25 0 0.25 0 k Pc 0.5 0 0.5 0 k Pc 0.75 0 0.75 0 k Pc 1 0 1 0 k Pc (Yellow Stripe) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc 0.25 0.125 0 0 k Pc 0.5 0.25 0 0 k Pc 0.75 0.375 0 0 k Pc 1 0.5 0 0 k Pc 0.125 0.25 0 0 k Pc 0.25 0.5 0 0 k Pc 0.375 0.75 0 0 k Pc 0.5 1 0 0 k Pc 0 0.25 0.125 0 k Pc 0 0.5 0.25 0 k Pc 0 0.75 0.375 0 k Pc 0 1 0.5 0 k Pc 0 0.125 0.25 0 k Pc 0 0.25 0.5 0 k Pc 0 0.375 0.75 0 k Pc 0 0.5 1 0 k Pc 0.125 0 0.25 0 k Pc 0.25 0 0.5 0 k Pc 0.375 0 0.75 0 k Pc 0.5 0 1 0 k Pc 0.25 0 0.125 0 k Pc 0.5 0 0.25 0 k Pc 0.75 0 0.375 0 k Pc 1 0 0.5 0 k Pc 0.25 0.125 0.125 0 k Pc 0.5 0.25 0.25 0 k Pc 0.75 0.375 0.375 0 k Pc 1 0.5 0.5 0 k Pc 0.25 0.25 0.125 0 k Pc 0.5 0.5 0.25 0 k Pc 0.75 0.75 0.375 0 k Pc 1 1 0.5 0 k Pc 0.125 0.25 0.125 0 k Pc 0.25 0.5 0.25 0 k Pc 0.375 0.75 0.375 0 k Pc 0.5 1 0.5 0 k Pc 0.125 0.25 0.25 0 k Pc 0.25 0.5 0.5 0 k Pc 0.375 0.75 0.75 0 k Pc 0.5 1 1 0 k Pc 0.125 0.125 0.25 0 k Pc 0.25 0.25 0.5 0 k Pc 0.375 0.375 0.75 0 k Pc 0.5 0.5 1 0 k Pc 0.25 0.125 0.25 0 k Pc 0.5 0.25 0.5 0 k Pc 0.75 0.375 0.75 0 k Pc 1 0.5 1 0 k Pc PB %AI5_EndPalette %%EndSetup %AI5_BeginLayer 1 1 1 1 0 0 0 79 128 255 Lb (\203\214\203C\203\204\201| 1) Ln 0 A 0 O 0 g 800 Ar 2 J 0 j 1 w 2 M []0 d %AI3_Note: 0 D 0 XR 101.7998 199.2002 m 106.2998 199.1001 111.2998 198.5 115.7998 197.8999 C 115.7998 197.7998 L 122.2998 196.2998 129.7998 194.7998 135.7998 191.6001 C 131.5 191.2002 127.8999 190.8999 124.1001 191.8999 C 122 189.7002 119.2002 194.1001 117.7002 190.7998 C 117 191.2002 115.5 192.3999 115.2002 191.2998 C 114.7998 191.1001 114.5 190.1001 113.8999 190.2998 C 112.3999 191.2002 112.1001 193.7998 110.3999 194 C 109.8999 193.1001 110.2002 192.3999 110.3999 191.7998 C 108.5 190.1001 107.7998 193.1001 106.2998 193.8999 C 105.3999 193.2998 105.5 193.1001 105.3999 192.1001 C 104.2002 192.1001 102.7002 193 102 193.7002 C 101.3999 192.2002 100.3999 192.5 99.2002 193 C 96.7998 195.1001 L 95.2002 195.2002 96.2998 193.5 95.6001 193 C 94.2998 193.1001 92.8999 194.1001 92.2002 195.3999 C 91.7998 195.2998 90.8999 195.7002 91 194.7998 C 91.2998 193.6001 91.2002 193.7998 90.7998 193 C 89 192.3999 87.7998 196 86.6001 193.2002 C 85.2002 192.6001 84.3999 194 82.8999 194 C 83.1001 193.1001 82 193.1001 81.3999 193 C 80.8999 193.1001 80.2002 193.2998 79.6001 193.6001 C 79 193.7998 78.6001 194.7002 77.7998 194.5 C 77.7002 193.7002 77.2002 193.2002 77.5 192.3999 C 76.3999 192.1001 75.2998 192.2002 74.2002 193.2002 C 72.8999 193.2002 73.6001 191.2002 72.3999 191.3999 C 71.7998 191 71.2002 191.5 70.3999 191.8999 C 69.7002 192.2002 69.2998 191.3999 69.2002 190.8999 C 68.5 190.3999 67.1001 189.5 65.8999 190.2998 C 65.6001 190.6001 L 64.2998 187.7998 60.6001 190 58.6001 187.7002 C 58.2998 186.2002 56.8999 187.8999 55.7998 187.6001 C 52.8999 186.1001 51.6001 182 48 183.1001 C 47.7998 182.7998 L 47.6001 182.8999 L 42.1001 178.6001 36.1001 175.5 30.7998 171.2002 C 30.7998 171.6001 L 32.2002 172.7002 33.1001 174.2002 34.3999 175 C 35.2002 175.7998 36.7998 176.7002 37.7002 177.7998 C 37.7002 177.7002 L 38.3999 178.1001 39.3999 179.6001 40.2998 180 C 40.3999 179.8999 L 42 181.3999 44.8999 182.5 46.6001 184.1001 C 47.7002 184.3999 48.6001 185.2998 49.6001 185.6001 C 49.5 186.1001 50.1001 186.2998 50.3999 186.2002 C 50.2998 186.3999 L 52.3999 187.7998 55.2998 188.7998 56.8999 190 C 57.2002 189.7002 57.7002 189.8999 58 190.2002 C 58.5 190.5 59.5 191.1001 60.3999 191 C 61.3999 192.6001 63.5 192.3999 64.8999 193.1001 C 64.8999 193.2998 L 65.6001 193.2998 L 65.6001 193.6001 L 67.8999 194.1001 69.8999 194.8999 72.2002 195.3999 C 72.6001 195.7002 L 77.1001 196.3999 81.1001 197.7998 85.3999 198.3999 C 85.8999 198.3999 86.2998 198 86.6001 198.6001 C 86.6001 198.5 L 90.6001 198.7998 94 199.2998 98.2002 199.3999 C 99.2002 199 100.7002 199.2998 101.7998 199.2002 C f 151.8999 193.7002 m 151.6001 192.6001 152.5 193.2998 152.5 192.5 C 152.2998 190.7002 152.3999 189.3999 153.6001 187.8999 C 153.7998 187.7002 L 154 187.5 155.3999 187.6001 155.8999 187.6001 C 161.2002 188.8999 167 187.8999 171.7002 188.5 C 171.7002 188.3999 L 173.6001 188 176.5 189.2002 178.1001 187.6001 C 178.2998 187.7998 L 179 186.8999 179.5 185.7998 179 184.7998 C 179.2998 183 179.2002 181.8999 179.2002 180.2002 C 179.2998 179.6001 178.7002 178.5 179.2998 178 C 179.6001 177.5 178.6001 177.1001 179.2998 176.6001 C 178.7002 175.6001 178.7998 174.5 179.2002 173.2998 C 179 173.2998 L 178.7002 171 179 169 178.8999 166.2998 C 178.5 166 177.7998 165 176.8999 165 C 176 165.2998 174.5 165.2002 174.3999 166.2998 C 174.5 167.1001 174.1001 168.2002 173.8999 168.7002 C 173.7998 170.5 174 172.6001 173.7998 174.6001 C 173.8999 174.6001 L 173.8999 181.2002 L 170.7002 183.7998 166.5 182.2998 163 182.5 C 161.2998 180.5 160.6001 176.3999 161.2998 173.6001 C 161.6001 173.5 L 160.5 173.1001 161.7998 172.7002 161.6001 172 C 162 169.7998 161.7002 168.7998 161.6001 166.3999 C 160.8999 165.7002 160.2002 165.1001 159.2002 164.6001 C 158.2002 164.7998 156.7002 165.3999 156.1001 166.7002 C 156.2998 167.3999 155.8999 168.1001 155.5 168.5 C 155.6001 170.1001 155.3999 172.1001 156 173.6001 C 155.5 174.2002 156.6001 174.8999 155.7998 175.2002 C 156.1001 175.7002 L 156.1001 180.3999 L 155.2998 181.2998 155.3999 182.3999 154 182.8999 C 152.5 183.5 151.1001 182.7002 149.5 182.6001 C 147.6001 182.7002 145.8999 183.3999 144.3999 182.2002 C 141.6001 179.5 142.8999 174.6001 143.2998 171.6001 C 143.2002 169.5 143.7998 167 142.2002 165.3999 C 141.3999 164.7002 140.2998 164.5 139.3999 164.6001 C 138 165.2002 139.6001 166.6001 138.2002 167.3999 C 138.2002 167.7998 139 168.2002 138.2002 168.5 C 138.3999 170.7998 138.5 173.3999 138 175.3999 C 138.2002 175.3999 L 138.2998 176.2998 138.2002 176.2002 138.1001 177.1001 C 138 177.1001 L 138.6001 178 137.2998 178.6001 137.7998 179.7998 C 137.3999 179.8999 L 137.5 179.8999 L 137.2002 180.6001 137.2002 181.5 136.7002 182.2002 C 133.5 181.7002 127 184.1001 125.5 179.2002 C 125.7002 177.8999 125.2002 175.6001 125.5 173.7998 C 125.3999 171.2002 125.2998 167.8999 125.2002 166.2002 C 125.2998 166.2998 L 125 166.6001 125.6001 164.7998 124.3999 165 C 123.5 164.5 121.8999 164.5 121 165 C 120.3999 166.1001 120.7998 168 120 169 C 120.2998 172.6001 119.3999 175.6001 120.3999 178.8999 C 120 178.7998 L 120.2002 179.7002 119.7998 180.2002 120.5 181.2002 C 120.5 183.3999 120.5 183.6001 120.5 186 C 121 186.6001 121.3999 186.2002 121.7998 187.1001 C 121.7998 187 L 122.5 188.5 123.8999 187 125.2002 187.1001 C 131.2002 187.8999 136.7002 187.2998 142.1001 187.8999 C 143.5 188.2002 144.8999 187.6001 146.2998 188.2998 C 146.3999 189.2002 146.6001 190.1001 146.8999 190.6001 C 146.7002 190.6001 147.2002 192.2002 147 192.6001 C 147.3999 193.3999 147.8999 194.2002 148.8999 194.7998 C 150.1001 195.2002 151.2998 194.1001 151.8999 193.7002 C f 87.7002 185.2998 m 88.2998 184.7002 88.2998 184 88.1001 183.3999 C 87.6001 181.1001 L 87.7998 180.7998 87.6001 180 87.7002 179.6001 C 87.6001 179.7998 L 87 178.3999 87.2002 177.1001 87 175.7998 C 86.7002 174.8999 87.2998 174 86.6001 173.2002 C 86.8999 171.7998 86.6001 170.5 86.8999 169.3999 C 87.2998 168.8999 87 167.5 87.5 166.8999 C 87.7998 166.5 88.7998 166.5 88.8999 167.3999 C 88.8999 168.6001 L 89.1001 168.5 89.2002 168.7002 89.2998 168.7998 C 89 169.1001 L 89.6001 169.1001 88.8999 170 89.2002 170.3999 C 88.7998 170.7998 L 89.7998 170.7998 88.8999 171.6001 89.2998 172.1001 C 89 172.2998 L 89.7002 172.7002 89.2002 173.5 89.8999 173.8999 C 89.6001 174.5 L 89.7998 174.3999 89.7998 174.5 89.8999 174.6001 C 89.3999 176 90.6001 177.8999 90.7002 179.2998 C 91.1001 180.8999 92.2998 183.1001 92.5 184.2998 C 93.1001 185 L 93.5 184.7002 L 93.2998 182 92.8999 178.7998 92.8999 176.2002 C 92.3999 174.5 92.7002 173.3999 93.1001 172 C 93.3999 172 L 93 171.6001 L 93.8999 171.1001 93.5 172 94.1001 172.2998 C 93.3999 173.1001 95.1001 173.3999 94.3999 174.2002 C 94.3999 174.1001 94.5 174.1001 94.6001 174 C 94.5 174.7002 95.7002 175.7002 95.2998 177 C 96.3999 177.1001 94.8999 178.5 96.2002 178.6001 C 96.3999 179.8999 L 96.6001 179.6001 L 96.7002 181.1001 97.2998 181.7998 98 183.1001 C 97.6001 183.7002 98.5 184 98.5 184.3999 C 99 184.3999 L 99.1001 182.5 98.8999 180.8999 98.8999 179.2998 C 98.2998 177.5 98.7998 174.8999 98.2002 173.2002 C 98.5 172.6001 98.7998 172.2998 99.6001 172.2998 C 99.8999 173.5 100.5 174.2998 100.3999 175.2998 C 101.2998 175.8999 101.2002 177.6001 101.5 178.2998 C 101.7002 178.5 102 178.2998 102.1001 178.6001 C 101.7998 179.3999 102.7002 180.7002 103.2002 181.3999 C 102.8999 182.3999 103.7998 182.5 103.7998 183.2002 C 103.7998 181.7002 104.7998 180.6001 103.7998 179.3999 C 104.1001 177.2998 103.2998 175.7002 104.2998 173.7998 C 104.6001 174 105 174.1001 104.8999 174.6001 C 104.8999 174.3999 105.2002 174.3999 105.2002 174.6001 C 105.3999 175 105.2998 175.6001 105.3999 176 C 105.5 175.8999 L 105.8999 176.2002 105.7002 177.2998 106 178 C 106.2002 177.8999 106.3999 178.1001 106.2998 178.2998 C 106.3999 178.6001 107.1001 179.2002 107 179.5 C 107.2002 179.3999 L 107.2002 180.1001 108.2998 180.1001 108.2002 181.1001 C 108.6001 181.7002 L 108.7998 181.3999 109 180.7002 109.3999 180.1001 C 108.7002 180 109.3999 179.2998 108.7998 179.2998 C 109 177.2998 107.6001 175.1001 108.7002 173.7998 C 108.3999 173.5 108.8999 173.2002 109.1001 173 C 109.7998 173.7002 110.6001 175 111.1001 176 C 111 176.7002 111.7998 177.2002 111.7002 177.7998 C 112.2998 177.7998 L 112.6001 179.5 L 112.6001 179.2998 L 112.8999 179.3999 113 180.1001 113.3999 180.6001 C 113.3999 180.5 L 113.7998 180.8999 114.5 180.2002 114.2002 179.7998 C 113.6001 178.3999 113.5 176.7998 113 175.2998 C 113.1001 174.3999 113.1001 173.6001 112.6001 172.8999 C 113.3999 172.2002 L 113.7002 172.5 114.2002 172.8999 113.8999 173.2998 C 115 173.3999 114.5 174.1001 115.2998 174.7998 C 115.3999 175.2002 116.2002 175.6001 116.2002 176.3999 C 116.5 172.2998 115.8999 168.2998 116.2998 164 C 116 163.7998 L 113.2998 165.8999 109 165.7002 105.5 165.7002 C 98 163.1001 91.5 155.5 82.8999 159.1001 C 80.2002 161.8999 77.6001 167.5 72.5 165.7002 C 65.2998 163.8999 58.5 157.2002 50.8999 154.7002 C 46.8999 153.7998 43.2998 151.8999 39.5 151.7998 C 35.6001 152.5 30.3999 152.8999 28 149.6001 C 27.6001 148 26.5 145.8999 26.7998 144.1001 C 25.8999 141.5 24.3999 139.5 22 139.1001 C 17.2002 137.2002 13.6001 133.3999 9.2002 130.7002 C 9 131 9.2998 131.7002 8.7998 131.8999 C 9.5 132.7998 L 9.7998 133 9.5 134.2002 10.3999 134.3999 C 10.1001 134.7998 L 10.8999 135 12.2998 134.7002 12.6001 135.7998 C 12.5 138.1001 L 12.6001 138.1001 L 12.6001 138.3999 L 13 138.3999 L 12.5 139 13.1001 138.2002 13.2002 139.1001 C 13.5 139.7998 12.5 140.7002 13.7002 141 C 14.2998 140.6001 14.7002 140.7998 15.5 141 C 16.1001 141.3999 15.7998 142.8999 15.7002 143.2998 C 14.7002 144 16 144.2998 16.2998 145.1001 C 17 144.7998 16.8999 143.7002 17.7998 144.2002 C 17.7998 144.1001 17.7002 143.8999 17.8999 143.8999 C 18.1001 144.2002 18.7998 144.5 18.7002 145.2002 C 18.5 146.3999 18.2002 147.8999 19.1001 148.7002 C 19.6001 147.8999 20.5 147.7002 20.6001 146.8999 C 21 146.8999 L 21.2002 149 L 21.3999 148.8999 L 21.3999 150.1001 21 149.3999 21.7998 150.5 C 21.3999 151.1001 L 21.7002 150.8999 21.7002 151.2998 21.7998 151.3999 C 21.6001 151.7998 21.6001 152.2002 21.7002 152.6001 C 21.7998 151.2998 22.7998 151.6001 23.2002 150.5 C 23.6001 150.3999 24.5 150.3999 24.5 151.2002 C 25.2002 151.8999 24.1001 152.7002 24.5 153.6001 C 24.1001 154 L 24.2002 154 L 24.3999 155.8999 L 25 155.6001 25.7998 153.1001 27 153.7002 C 27.2998 154.2998 27.1001 155.2002 27.3999 155.7998 C 26.8999 156.7002 27.2998 157.5 27.1001 158.7998 C 27.3999 158.2998 L 27.6001 158.5 L 28 158 L 27.7998 157.8999 L 29 156.5 L 28.8999 156.3999 L 29.3999 155.8999 L 30.2998 157 29.7002 159.3999 29.8999 160.8999 C 31.2998 159 L 31.3999 159.1001 L 31.2002 158.5 32.3999 158.2002 32.6001 157.7002 C 33.3999 158.2998 L 32.8999 158.7998 33.2998 161.1001 32.5 161.6001 C 32.8999 162.5 32.1001 162.6001 32 163.3999 C 32.2002 163.2998 L 32.3999 163.5 32.2002 163.8999 32.2998 164.2002 C 32 164.2002 L 32 164.8999 L 32.3999 164.2998 L 32.6001 164.7998 L 32.6001 163.2998 33.8999 163.7002 34.1001 162.3999 C 34.2002 162.5 L 34.5 161.1001 35.3999 160.3999 35.8999 159.1001 C 35.8999 158.5 36.2998 157.8999 36.7998 157.7998 C 37.8999 158.3999 37.2998 159.7998 37.2998 160.8999 C 37.2998 161.5 L 37.2002 161.3999 L 36.6001 161.7998 37.5 163.6001 36.3999 164 C 36.3999 167.2998 L 36.6001 166.7998 36.5 166.6001 36.7002 166.1001 C 36.8999 166.1001 36.7998 166.2998 36.7998 166.3999 C 38.7998 163.8999 39.2002 160.8999 42 159.1001 C 42.5 160.2002 41.7998 162.3999 41.3999 163.7998 C 41.2002 163.7002 41.2998 163.3999 41.2998 163.2002 C 41.7002 164.7002 40.5 165.5 40.6001 167 C 40.1001 167.2002 40.5 167.5 40.6001 167.7998 C 40 168.2002 40 169.2998 40.1001 169.8999 C 41.3999 170.3999 41 168.2002 41.8999 168.1001 C 42 167.2998 42.3999 166.7998 43 166.3999 C 43.2998 166.2002 42.3999 165.2002 43.3999 165.3999 C 43.1001 165 43.7998 164.7998 43.7998 164.5 C 44 164.5 L 44.2002 163.7002 45.5 161.7998 46.2002 161.5 C 46.2002 160.8999 46.7998 160.6001 47.2998 160.2998 C 47.8999 160.7998 47.5 161.7998 47.7998 162.1001 C 47.2002 162.3999 47.7998 162.7998 47.3999 163.2002 C 47.5 163.2002 L 47.2002 164.1001 46.6001 164.2998 47 165.3999 C 46 165.2002 47 166.2998 46.2002 166.7002 C 46.2998 167.3999 45.3999 168.8999 45 169.7002 C 44.7002 170.7998 45.2998 172.1001 44.8999 173 C 45.2002 173.1001 45.3999 173.3999 45.6001 173.6001 C 45.7998 173 L 46.1001 173.2998 L 45.7998 172.2998 47.1001 172 46.7998 171 C 47.5 170.1001 47.7002 169.3999 48.5 168.1001 C 48.1001 167.5 49.3999 167.2998 49.2998 167 C 49.3999 167.2002 49.3999 165.3999 49.8999 166.1001 C 50.7002 165.1001 50.7998 163.2002 52.1001 162.7002 C 52.6001 162.7002 52.6001 163.7002 52.6001 164 C 51.6001 165.5 52.3999 167.7002 51.5 169.3999 C 51.3999 170.6001 50.7002 172.2998 51.1001 173.2002 C 50.8999 173.3999 L 51.2998 173.8999 50.6001 175.1001 51 175.8999 C 52.6001 175.8999 52.6001 173.7002 53.7998 172.6001 C 53.7998 171.7002 53.8999 170.1001 55 169.2998 C 54.6001 169 55 168.7002 55.1001 168.3999 C 55.3999 168.2998 55.2998 167.3999 55.7998 167.2998 C 55.8999 166.8999 56 166.1001 56.8999 166.1001 C 57.1001 166.2998 57.7002 166.2998 57.5 166.7998 C 57.6001 166.7998 57.7002 166.7002 Y 58.1001 167 57.7998 167.2998 57.6001 167.5 C 57.7002 167.5 L 57.6001 167.8999 L 57.7002 167.8999 57.7998 167.7998 Y 57.7998 168.5 L 57.5 168.5 L 57.6001 168.1001 57.8999 169.2002 57.5 169.2998 C 57.5 169.7002 57.3999 170 57.2002 170.2998 C 57.3999 170.2002 L 57.1001 170.7002 57.5 171.1001 56.8999 171.6001 C 57 171.6001 L 57.5 173.3999 55.6001 175.2002 56.6001 177.1001 C 56.6001 177.8999 56.2002 178 56.5 178.7998 C 58.2002 179.5 57.7002 177.1001 58.2998 176.2998 C 58.3999 176.3999 L 58.7002 175.8999 58.7998 175 59.2002 174.7998 C 59.6001 174.2002 58.2002 173.5 59.3999 173 C 59.5 173.2002 L 59.5 172.6001 60.7002 171.7998 60.5 171 C 60.8999 170.8999 60.7002 170.2002 61 169.8999 C 61.7998 169.1001 L 62.2998 169.2002 62.2002 169.7002 62.2998 170 C 61.8999 170.5 62.3999 170.8999 62.2002 171.5 C 62.2998 171.5 L 62.3999 172.1001 62.1001 173.1001 62.3999 173.8999 C 62 174.2002 L 62.8999 176.2002 61.7998 178.3999 62.2998 180.6001 C 62.7998 180.1001 62.8999 181.1001 63.3999 181 C 63.7002 179.3999 64.2002 178.2998 64.2998 176.6001 C 64.3999 176.7998 L 64.2002 175.6001 65.2002 174.2998 65.2998 172.8999 C 65.6001 172.8999 L 65.5 172.2998 65.7002 171.8999 65.8999 171.3999 C 66.2998 171.1001 67 171.6001 66.7002 172.1001 C 67 171.7998 L 67.2998 172.8999 67.2998 175.1001 67 176.2998 C 67.3999 177.3999 67.2002 178.7998 67.1001 180.1001 C 67.2002 180.1001 67.3999 180.1001 67.3999 180.2002 C 67.1001 180.5 67.8999 180.2998 67.7002 180.7998 C 67.7002 181.3999 L 67.8999 181.3999 68 181.7002 68.2002 181.7998 C 68.2002 182 67.6001 182.3999 68.2002 182.3999 C 69.1001 182 68.7002 180.5 69.5 179.5 C 69.3999 177 70.1001 175.6001 70.2002 173.2002 C 70.2998 173.1001 70.3999 173.2002 70.3999 173.2998 C 70.2998 173.2998 70.6001 172.7998 70.8999 172.6001 C 71.7002 172.6001 71.1001 172.6001 71.6001 172.3999 C 72.1001 173 72.1001 173.5 72.1001 174.2002 C 72.3999 174 L 72.6001 174.2002 L 72.2002 175 72.7998 176.3999 72.6001 177 C 73.1001 178.2998 72.7998 179.1001 73.6001 180.2002 C 73.2002 180.2002 L 73.6001 181 73.2002 182.5 74.2002 183 C 74.2002 183.7998 L 74.5 184.2002 74.8999 183.6001 75.2002 184 C 75.1001 182.2002 75.8999 180.2998 75.7002 178.3999 C 75.7002 178.6001 75.7998 178.7998 75.6001 178.8999 C 75 177.2002 76.1001 175.7002 76.1001 174 C 76.3999 173.7998 76.7002 173.6001 76.7998 173.2002 C 77.5 173.3999 77.2998 173.8999 77.5 174.6001 C 77.7002 174.6001 77.8999 174.5 78 174.7002 C 77.5 174.7998 77.8999 175.6001 78.1001 175.8999 C 77.8999 176 77.8999 176.2998 78.1001 176.3999 C 78.3999 177.3999 78.6001 178.2998 78.5 179.3999 C 78.6001 179.2998 L 79.2998 180.7002 79 181.7002 79.7998 182.7998 C 80 183.6001 80.7002 184.2998 80.7998 184.8999 C 81.1001 181 80.6001 176.7002 81 172.8999 C 81.1001 173 81.1001 173.1001 81.2002 173 C 81.1001 172.6001 81.2002 172.5 81.2002 172 C 81.1001 172.1001 81 172.1001 V 80.5 171.7002 81.3999 171.7002 81.2002 171.3999 C 81.1001 170.8999 81.3999 170.3999 81.5 169.8999 C 81.7998 169.7998 L 81.3999 169.6001 L 82.2002 168.7002 L 82 168.5 L 82.1001 168.3999 82.1001 168.2002 82.2998 168.2002 C 83.1001 168.6001 82.2998 169 82.8999 169.2998 C 83.2002 170.7998 83.3999 171.3999 83.5 172.6001 C 83.7998 173.6001 84.1001 174.3999 84.1001 175.3999 C 83.7002 176.1001 84.8999 176.5 84.5 177.3999 C 84.7998 178.7998 85.7998 180 85.7002 181.3999 C 85.7998 181.2998 L 86.1001 181.7002 86.2002 182.3999 86.2998 182.7998 C 86.5 183.3999 87.2998 184.1001 87.1001 185.2998 C 87.3999 184.8999 L 87.7002 185.2998 L f 106.2002 162.7002 m 106.2998 159.5 105.3999 156.8999 106.7998 154.2998 C 108.5 153.1001 107.7002 155.6001 108.3999 156 C 108 156 L 108.3999 156.5 L 108.7002 157.2002 107.5 158.2002 108.2002 159 C 107.8999 160.7998 108.1001 161.7998 109.6001 162.7998 C 109.8999 159.7002 110.3999 158 110.5 154.7002 C 110.7998 154.7002 L 110.7002 154.1001 110.7002 153.2002 111.2002 152.8999 C 111.7998 152.7002 111.1001 151.8999 111.7998 151.8999 C 112.2002 152.2998 L 112 152.2998 112.1001 152.5 112.1001 152.6001 C 112.2002 152.5 L 112.2998 152.7998 113.1001 153.1001 112.3999 153.5 C 112.7998 153.5 L 112.7002 155.2002 113.5 157 113.2998 158.7998 C 113.7998 160.6001 L 113.3999 160.6001 L 114 161.2002 L 114.3999 160.3999 115.2998 160.7002 115.3999 160 C 115.7998 159.5 116.2998 158.7002 116.2998 158 C 116 156.7002 117 155.2002 116.2002 154 C 115.8999 150.7002 116.7998 148.8999 116 146 C 111.1001 148.7998 106 147.3999 101.2998 145.1001 C 96.2002 143.1001 92.1001 139.5 86.8999 140.3999 C 84.3999 140.2002 82.6001 141.8999 80.6001 143.2002 C 79.6001 144.3999 78.2998 146.7002 76.2002 146 C 72.1001 145.3999 70.6001 141.3999 67.6001 139.3999 C 67.3999 139 L 65.7998 136.8999 62.7998 135.2998 60.7002 134.2002 C 60.6001 134.2998 L 58.7002 133.2002 55.6001 132.1001 53.2998 131 C 52.6001 130.2998 50.2998 129.6001 49.6001 128.2998 C 47.8999 126.7002 46.7002 123.7998 47.3999 121.6001 C 46.5 119.6001 48.7002 118.8999 47.2998 117.2002 C 45.7002 113.7002 40.8999 112 38.2998 109.7002 C 36.1001 108.7998 34.7998 107.2998 33.7002 105.7002 C 33.8999 106.7002 32.7998 107.7002 33.7002 108.3999 C 33.7002 109 L 33.7998 109 34 109 34.1001 108.7998 C 33.7998 110.7998 36.3999 109.3999 35.7998 111.5 C 35.8999 111.5 L 35.8999 112.8999 L 36.8999 113.2002 38 113.1001 37.6001 114.3999 C 36.7002 114.6001 37.2998 115.8999 36.3999 116 C 36.2002 116.5 36.7002 116.6001 36.7998 116.8999 C 37.6001 117.2998 39.1001 115.7002 39.1001 117.2002 C 40 117.5 38.8999 118 39.1001 118.8999 C 38.7998 120.1001 L 39 119.8999 L 39.1001 120.5 L 40.1001 120.2998 40.7002 118.2998 41.6001 119.3999 C 41.3999 120 L 41.8999 120.1001 41.5 120.3999 41.7998 120.6001 C 40.8999 121 41.5 123.2998 40.8999 124.1001 C 40.7002 124.1001 L 40.7002 123.8999 41.3999 124.2998 41.2002 124.7002 C 41.8999 124.6001 42.6001 122.6001 43.6001 122.7998 C 42.7998 122.7998 44 124.3999 43.1001 124.7998 C 43 125 43.2002 125 43.2998 125.2002 C 43.2002 125.3999 43 125.2002 42.7998 125.2998 C 43.2002 126.7002 42.1001 127.2998 42.7998 128.6001 C 43.1001 128.6001 43.2998 128.7002 43.3999 128.8999 C 43.7002 128.6001 L 43.8999 129.1001 43.8999 128.7002 44.2998 128.6001 C 44.6001 128 44.2998 127.1001 45.2002 126.7998 C 45.1001 126.2998 45.7002 126.2002 46 126.1001 C 46.6001 126.1001 46.2998 126.7998 46.7002 127.1001 C 46.6001 127.5 45.7998 127.7002 46.3999 128 C 46.1001 129 46 130.6001 45.6001 131.3999 C 46.1001 131.6001 L 45.7002 131.8999 45.7002 132.7002 46.1001 133 C 46.7998 133.2998 47.6001 132.1001 48.2002 133.1001 C 48.1001 133.7002 48.3999 134.3999 48.5 134.8999 C 48.5 135.1001 48.3999 134.6001 48.6001 134.6001 C 48.6001 135.2002 49 136 48.3999 136.2998 C 48.5 136.2002 48.6001 136.2002 V 48.7002 136.2998 48.7002 136.3999 48.7002 136.6001 C 49.7002 136.2002 50.2002 135.1001 50.7998 134 C 51.2002 134.2002 L 51.2002 134 51.2998 134 51.3999 133.8999 C 51.8999 134.2002 51.7998 135.1001 52.1001 135.6001 C 51.6001 136.5 52.3999 136.8999 51.5 137.3999 C 52 138.7002 51.5 139.3999 51.5 140.6001 C 52.2002 140.7002 52.7998 140 52.7998 139.2998 C 53.2002 139.3999 L 53.1001 139.1001 53.3999 138.8999 53.2998 138.6001 C 53.6001 138 54.1001 138.7998 54.5 138.3999 C 55.2998 140.2998 54.5 140.7002 54.1001 142.3999 C 54.6001 142.5 54.1001 143.3999 54.7998 143.2998 C 54.7002 143.2002 L 55.5 142.2002 56.2998 141 56.7998 140 C 57.1001 140.2998 57.6001 139.2998 58 140 C 58 141.7002 57.8999 141.2998 58.1001 142.7002 C 58.2002 142.7002 L 57.7998 143.1001 58.5 143.8999 57.7998 144.3999 C 57.8999 144 58.7002 145.3999 58.1001 145.6001 C 58.1001 146 58.7998 145.7998 59 145.7002 C 59.1001 144.7002 60.1001 144.5 60 143.5 C 60.6001 143.2998 60.1001 141.2002 61.3999 142.2998 C 61.8999 143.6001 61.2998 144.7998 61.7002 146.3999 C 61.6001 146.3999 L 61.8999 147.3999 61.7002 148.2998 61.7998 149.7998 C 63.5 148.6001 63.2002 147.2998 64.3999 145.7998 C 65.2002 145.8999 64.8999 146.7002 65.2998 147.1001 C 65.2998 147.5 64.6001 148.2998 65 148.7002 C 64.6001 149 65 149.2998 65.2002 149.6001 C 65.2002 151.2998 L 65.2998 151.2998 65.3999 151.5 65.5 151.6001 C 65.6001 151.7002 65.3999 151.7998 65.2998 151.8999 C 65.5 152.2002 L 65.8999 151.3999 67.2998 150.7998 67 149.6001 C 67.6001 148.8999 67.7002 147.5 68.5 146.6001 C 68.7002 146.6001 68.8999 146.2002 69.1001 146.5 C 69.1001 146.7998 L 69.5 146.5 68.8999 145.8999 69.6001 146.2002 C 69.7002 146.6001 L 69.7998 146.5 L 69.7002 147.5 70.8999 147.8999 70.3999 148.8999 C 70 149.6001 L 70.1001 149.7998 70.6001 149.7002 70.3999 150.1001 C 70 149.6001 70.2998 150.6001 70.1001 150.7002 C 70.2002 150.6001 L 70.2998 150.7002 70.2998 150.7002 70.2998 150.7998 C 69.3999 151.2002 69.8999 152.8999 70.1001 153.7998 C 70.2002 154.1001 70.3999 154.2998 70.2998 154.7002 C 71.3999 154.7002 70.7998 153 71.7998 153 C 72.1001 152 72 150 73.2998 149.5 C 74.1001 150.1001 73.2998 151.2998 74 151.8999 C 73.7002 151.8999 L 74.5 152.5 74 153.7002 74.2002 154.7002 C 74.2998 154.6001 74.3999 154.7998 74.5 154.8999 C 74.5 155.2002 74.2002 155.1001 74.2002 155.3999 C 74.2002 155.7998 74.5 156 74.7998 156.3999 C 76 154.3999 75.2002 152.8999 76.7998 151.2002 C 77.7002 151.6001 77.5 151.8999 78 152.5 C 77.7998 154 77.6001 155.2998 78.2002 157 C 78.3999 156.7998 L 78.6001 157.2002 78.2998 157.6001 78.5 158 C 78.6001 157.2998 79.1001 157.1001 79.2002 156.5 C 79.6001 154.7998 79.6001 152.5 79.8999 150.7002 C 80 150.7998 L 80.7002 150.3999 79.7002 149.3999 80.8999 149.2998 C 81.3999 149.7002 81.2998 150.8999 81.2002 151.2002 C 81.3999 151.2002 81.6001 151.1001 81.7002 151.2998 C 81.3999 151.8999 L 82.2002 151.7002 81.7002 152.7002 81.7998 153.1001 C 82 153.1001 L 81.5 154.2998 82.5 154.8999 82.3999 156.2002 C 82.7002 155.7002 83.8999 154.8999 83.6001 153.6001 C 84.1001 153.1001 L 84.1001 149.5 L 84.5 149.5 L 84.7002 148.7002 84.2002 147.8999 85.1001 147.6001 C 85.2002 147.8999 85.7998 147.8999 85.6001 148.3999 C 85.8999 148.3999 L 86.2998 150.7998 85.6001 153.1001 86.5 155.2998 C 86.3999 155.3999 L 86.6001 155.6001 L 87.2998 154.7002 87.1001 153.7002 87.7998 153.1001 C 87.7998 151.2002 88.5 151.1001 88.3999 149.2998 C 89.2002 149.2998 88.8999 146.6001 90.1001 148.2998 C 90.1001 148.7002 L 90.3999 148.7002 L 90.7998 149.5 90 150.8999 90.7002 151.6001 C 90.5 151.7998 L 90.2998 151.7002 90.3999 151.6001 90.3999 151.3999 C 90 151.8999 90.7002 152.2002 90.7998 152.6001 C 90.5 153.8999 91.2998 155 91.6001 155.8999 C 92.2002 154.6001 92.2998 153.3999 92.3999 152 C 92.5 150.6001 93.1001 149.7002 93.5 148.2998 C 93.6001 148.3999 L 94.1001 147.6001 L 95.1001 148.2002 94.5 148.7002 94.7998 149.5 C 94.6001 150.2998 94.8999 151 94.7002 151.7998 C 94.7998 152.3999 95.3999 151.5 95.2998 152.2998 C 94.7002 152.5 95.3999 152.7998 95.2998 153.1001 C 95.6001 154.3999 96 155.7998 96.3999 157.2002 C 97 155.2002 97.3999 153.2002 97.8999 151.3999 C 98.1001 151.2002 98.5 151.2998 98.7998 151.2998 C 98.7998 152.2002 100.1001 153 99.5 154 C 99.5 155 L 99.6001 154.8999 L 99.6001 156 100.2998 157.2998 100.1001 158.6001 C 100.8999 159.1001 100.2998 159.7002 101 160.2998 C 101 160.3999 101.1001 160.5 101.2002 160.6001 C 102 159.7002 101.3999 158.2998 102.1001 157.3999 C 101.6001 157.1001 101.7998 156.3999 101.7998 155.7998 C 101.7998 155.6001 102 155.6001 102.1001 155.6001 C 102.1001 155.2002 102.2002 154.7998 102.5 154.3999 C 103 154.7998 103.3999 154.6001 103.7002 155.2998 C 103.3999 155.5 L 103.7002 155.5 L 103.7002 157.6001 L 103.7002 157.3999 103.8999 157.3999 104 157.3999 C 103.5 159 104.3999 160.1001 104.5 161.7998 C 104.7002 161.7002 104.8999 161.7998 104.8999 162 C 104.8999 162.3999 L 104.8999 162.2998 105 162.2002 105.1001 162.2002 C 104.6001 163 105.8999 162.7998 106.2002 162.7002 C f 172 159.6001 m 172.2998 159.7998 L 172.2998 159.7002 L 172.7998 159.7002 173.3999 159.7998 173.7998 159.3999 C 174.1001 159.3999 175.1001 159.7002 175.7002 159.6001 C 176.2998 159.7998 178.2998 160.2998 178 159 C 178.3999 158.7002 178.5 158.2998 178.3999 157.7998 C 178.7998 157.7998 L 179.5 154 179.5 150.3999 179.2998 146.2998 C 178.7998 145.2998 178.7002 143.5 179.2998 142.7002 C 179.5 142.7002 179 142.6001 178.8999 142.3999 C 178.8999 142.1001 179.5 141.6001 178.8999 141.5 C 179.5 140.2002 179.7002 138.6001 178.7998 137.3999 C 177.7002 136.2998 L 173.2002 136.8999 169.6001 135.7998 165.2002 136.2998 C 164.6001 136.6001 163.7998 138.6001 163.7002 139.7002 C 164.8999 141.2998 167.5 141.2998 170.2002 141.2002 C 171.3999 141 172.2998 141.1001 173.5 141.6001 C 173.8999 141.2998 174.2998 141.7998 174.6001 142.1001 C 174.6001 142.2002 L 174.7998 142.2002 L 174.7002 143.2998 175.7002 144.7998 174.1001 145.3999 C 171 146.2002 167.3999 144.7998 164.3999 146.3999 C 164.6001 146.5 164.5 146.7002 164.5 146.8999 C 163.7998 147.2002 164.3999 148.7002 164.2998 149.3999 C 164.7998 149.1001 164.7998 150 165.3999 149.8999 C 165.2002 150 L 167.8999 151.7998 171.2998 149.6001 174.3999 150.5 C 175.5 151 174.5 151.8999 175.6001 152.3999 C 175.2002 152.3999 L 175.5 152.7002 175.5 153.5 175 153.7002 C 172.3999 155.7998 167.7002 153.7002 165.2002 155.5 C 164.7002 156.2998 164.2998 157.3999 164.2002 158.5 C 164.5 158.2998 164.7002 159.2002 165 158.7998 C 166.3999 160.2998 169.2998 159.7002 171.1001 160 C 172 159.6001 L f 135.7002 157.1001 m 135.1001 153.6001 129.7998 154.8999 127.1001 154 C 126.2998 153.7998 124.2998 154 124.7002 152.5 C 123.8999 151.7002 125.1001 151.2998 125 150.3999 C 128.1001 149.2002 131.5 151.2002 133.8999 149.5 C 134.1001 149.2002 136.1001 148.2998 135.2002 147.1001 C 134.6001 147 134.6001 145.8999 133.6001 145.6001 C 130.7002 144.3999 127 146.6001 124.7998 143.5 C 124.2002 142.5 125.3999 141.7002 126 141.3999 C 127 141.2002 127.8999 140.6001 129 141 C 129 140.8999 L 130.6001 140.6001 133.2998 141 134.7998 140 C 134.5 139.3999 135.2998 139.7002 135.3999 139.2998 C 137 137 133.6001 136.7998 132.3999 136 C 129.6001 135.3999 126.2002 135.8999 123 136.1001 C 121.7998 135.8999 120.8999 137.1001 120.6001 138.2002 C 120.6001 139.3999 120.7002 140.5 120.1001 141.7002 C 120 141.6001 L 120.1001 143.7998 119.7998 144.8999 119.7998 147.6001 C 120.2002 147.5 L 120.2002 149.5 L 119.8999 148.8999 L 119.8999 150.3999 120.1001 152.2998 119.8999 153.7998 C 120.5 154.1001 120 154.8999 119.8999 155.3999 C 120.7002 155.2002 119.6001 156.1001 120.5 155.7998 C 119.8999 156.3999 120.7998 157.2998 121.1001 158.3999 C 121.2998 158.2002 L 121.3999 158.5 121.6001 158.7002 121.6001 159.1001 C 121.7002 159 L 122 159.6001 L 126.6001 157.5 132.1001 161 135.7002 157.1001 C f 49.8999 150.5 m 49.7998 150.6001 L 49.6001 148.6001 46.7998 147.1001 45.6001 145.6001 C 44 146.1001 41.7998 146.1001 40.2998 145.1001 C 40 144.1001 41.6001 144.7002 41.8999 144.2002 C 42.7998 143.8999 43.6001 143.5 44 142.7002 C 43.3999 142.2998 42.2002 142.2998 41.8999 141.7002 C 41.6001 142 L 39 140.8999 L 39.5 139.6001 42 140 41.3999 138.7002 C 40.2998 137.7998 38.8999 137.2998 38 136.2002 C 38.7002 135.7002 39.5 134.8999 39.3999 133.8999 C 39.3999 134 L 38.1001 133.2002 36.7002 132.7998 35.2002 131.7998 C 35.2998 130.8999 36.3999 131 36.6001 130.2002 C 36.2998 128.6001 32.5 128.1001 34.7998 126 C 34.2002 125.7998 34.6001 124.8999 33.7998 124.8999 C 34 124.7998 L 33.2002 123.7998 31.6001 123.6001 32.3999 121.7002 C 32.8999 121.3999 L 32.6001 121.1001 32.5 121.6001 32.2998 121.2002 C 30.6001 120.3999 30.6001 117.7002 30.5 115.8999 C 30 115.2998 30 114.6001 29.5 114 C 29.7998 112.5 28.3999 111.3999 28.8999 110.2002 C 27.8999 111.2998 28.3999 113.5 28.2002 115.3999 C 28 115.3999 28 115.6001 27.7998 115.7002 C 28.2002 115.7002 L 27.8999 116.3999 28 116.5 27.7998 117.2002 C 28 117.1001 L 28.2002 117.6001 28.3999 119.2002 28.2998 120.6001 C 28.6001 120.6001 L 28.6001 121.1001 L 28.2998 121.1001 L 28.6001 121.8999 L 28.7002 121.7998 L 28.8999 123.1001 28.7998 124.1001 28.7998 124.8999 C 29 124.8999 L 29.3999 125.2998 28.6001 125.5 29.2998 125.6001 C 29.7002 126.5 28.7998 127.7002 29.8999 128.2002 C 29.5 128.5 L 29.6001 128.3999 L 30.2002 129.1001 29.7998 130 30.5 130.7002 C 30.1001 131.2002 L 30.6001 131.2002 30.2998 131.8999 30.3999 132.2002 C 30.6001 132.2002 30.7002 132.3999 31 132.6001 C 30.6001 133.5 31.5 134.5 31.6001 135.5 C 31.8999 136.5 31.8999 136.3999 32 137.6001 C 33 137.3999 32.2002 138.7998 32.6001 139.1001 C 31.7998 140 33.7998 140.1001 33.1001 141 C 33.3999 141.2002 33.2998 142.3999 34.2002 142.6001 C 34.2002 143.2998 L 34.2998 143.2002 L 34.7998 143.5 34.3999 144.7998 35.3999 145.1001 C 34.8999 145.3999 35.3999 145.7998 35.3999 146.2002 C 35.5 146.1001 35.5 146 35.6001 146 C 35.5 147.3999 36.7998 148.5 38 149.5 C 38.7002 148.8999 39 150.1001 39.6001 149.3999 C 39.8999 149.5 40.8999 149.1001 41.3999 149.2998 C 44.2998 149.5 47.6001 150.1001 50 151.3999 C 50 151.1001 49.6001 150.7998 49.8999 150.5 C f *u 159.5 158.2998 m 159.8999 155.5 151.6001 151.8999 158.2002 150.6001 C 158.7998 150.5 158.8999 149.7998 159.3999 149.5 C 160.1001 149.2002 159.8999 147.3999 159.7998 146.6001 C 159.1001 145.2002 155.6001 144.7998 156.1001 142.2998 C 157 141.7002 158.6001 141.1001 159 139.7002 C 159.6001 139.6001 L 159.6001 138.2002 159.2998 137.2002 158 136.2998 C 155.5 137.1001 152.8999 138.3999 150.6001 139.7998 C 146.2998 140.7998 145.1001 134.8999 140.8999 136.7002 C 140.6001 137.2002 140.3999 137.7002 139.8999 137.8999 C 139.5 140 142.2998 141.2002 143.7998 142.3999 C 143.6001 144 141.7002 144.7002 140.7998 145.8999 C 140.2998 146.5 140 147.6001 140.2002 148.3999 C 140.2998 148.2998 L 140.5 148.3999 140.6001 148.7998 140.3999 148.8999 C 139.8999 149 140.5 149.2998 140.5 149.5 C 140.7998 149.7002 141.1001 149.3999 141 150 C 141.7998 149.7002 141.7998 150.8999 142.2998 151 C 142.6001 151.5 144 152.2998 143.7998 153 C 142.2002 154.6001 139.5 155.5 140.2002 158 C 143 159.7998 145.6001 157 147.7002 156.2002 C 148.1001 155.8999 148.8999 155.5 149.7998 155.5 C 151 156.1001 152.2998 156.3999 153.5 157.3999 C 153.3999 157.6001 L 154.3999 157.6001 154.7998 158.8999 156.3999 158.8999 C 156.8999 159.2998 157.7998 159.1001 158.3999 158.8999 C 158.7998 158.2998 158.7998 158.5 159.5 158.2998 C f 1 D 149 149.3999 m 147.6001 149.2002 147.7002 148.7002 146.7998 148 C 146.8999 147.1001 147.8999 146.7002 148.6001 146.5 C 149.8999 145.7002 151.2998 146.6001 152.7998 146.6001 C 152.6001 147 153 147.7002 152.8999 147.6001 C 152.7998 148.1001 152.7002 148.7002 152.2002 148.7998 C 151.2998 148.8999 150 149.7002 149 149.3999 C f *U 0 D 184.3999 145 m 184.8999 144.6001 185.2002 143.6001 185.7998 142.8999 C 186.7998 139.8999 189.1001 137.3999 189.2002 134.5 C 189.7002 133.7998 190.2998 132.6001 190.3999 131.5 C 190.7002 131.5 L 190.6001 129.8999 191.5 129.1001 191.5 127.2998 C 192.1001 125.7002 192.2998 123.2998 193 121.7998 C 193 119.5 194.1001 117.3999 193.7002 115.1001 C 194.2002 113.7998 194.1001 112.7998 194.2998 111.5 C 194.5 111.5 L 194.2002 105.2002 195.3999 100.2002 194.2002 93.7998 C 193.8999 90.6001 193.7002 88 193.3999 85 C 192.6001 84 193.2002 82.7998 192.7002 81.7998 C 192.3999 78.3999 191 74.5 190.2002 71 C 189.6001 70.7002 189.7998 69.7998 189.6001 69.5 C 188.8999 67.1001 187.6001 64.8999 187 62.2998 C 186 62.2002 186.7998 60.8999 186 60.7998 C 186.1001 60.5 185.8999 60.1001 185.6001 60.1001 C 184.2998 56.3999 182.2998 53.5 180.1001 50.2998 C 180.2002 49.7998 L 179.7002 49.7998 179.6001 49.2002 179.5 48.7998 C 178.1001 46.8999 176.5 44.8999 175.2002 43 C 175.2998 42.7998 L 173.2002 40.5 171.6001 38.5 169.3999 36 C 162.1001 28.2002 154.2998 21.5 144.6001 16.1001 C 129.8999 8.2998 113.3999 3.8999 97.1001 4.3999 C 96.7998 3.7998 96.5 4.7998 96.2002 4.3999 C 87.8999 3.7002 79.8999 6.7998 71.6001 8.7998 C 71.3999 8.5 L 69.6001 9.6001 67.2998 10 65.5 10.3999 C 55.7002 13.7002 45.5 19.1001 37.2998 26 C 37.2998 26.6001 36.3999 26.6001 36.3999 27.1001 C 33 29 31.2998 32.2998 28.7002 34.7998 C 28.8999 35.7002 28 34.8999 28.2998 35.6001 C 32.7998 32.2002 38.5 27.3999 43.7002 24.7998 C 47.2002 22.7002 51.1001 21 54.5 18.5 C 56.5 17.5 58.3999 15.2998 60.3999 13.8999 C 60.7998 13.3999 61.7002 14.2002 61.2998 14.6001 C 62.7998 15.7002 63.5 14.7998 64.7002 14 C 65.3999 13.2998 66.3999 11.2998 67.7998 11.7998 C 68.3999 13.3999 L 71.5 13.8999 72.3999 10.6001 74.5 9.6001 C 75 10.3999 74.2998 11.5 74.8999 12.1001 C 76.7998 11.7002 77.6001 10.7998 78.6001 9.1001 C 79.2998 9.6001 79.8999 10.1001 79.7998 10.8999 C 81.1001 10.7002 83.2002 9.7998 84 8.8999 C 84.5 9.5 84.6001 10 84.7002 10.7998 C 86.7002 10.6001 88.1001 8.3999 89.6001 8.3999 C 90.1001 10.7998 L 90.5 10.5 91.6001 9.8999 92.2002 10 C 93.6001 8.7998 94 7.2002 96.2002 7 C 97 8.7998 94.2002 9.6001 96.1001 11.2002 C 97.5 10.6001 98.5 9.6001 99.6001 8.6001 C 100.5 8.7998 100.1001 9.8999 100.1001 10.2998 C 99.7998 10.6001 99.2998 10.8999 99.6001 11.3999 C 101.2002 12 102.7002 10.1001 104.2998 8.8999 C 104.8999 8.7002 105.7002 8.5 106 9.2002 C 106 10.6001 104.7002 10.3999 104.2002 10.8999 C 104.2002 12.2002 105.2998 11.7998 106.1001 12.2002 C 106.5 11.7998 107.2002 11.6001 107.6001 11.5 C 108.7002 10.6001 L 109 10.8999 109.2002 10.2002 109.6001 10.2002 C 110.1001 9.7002 111.7002 8.2002 113 8.7998 C 112.3999 10.2002 111.3999 10.7002 110.5 11.8999 C 110.6001 12 L 110.2002 12.6001 L 111.5 12.6001 112.3999 13 113.7998 12 C 114.6001 11.7998 115.7002 11.6001 116.7998 11 C 117.2002 11.7998 116.6001 12.3999 116.2998 13.1001 C 115.7998 13.1001 L 115.8999 13.3999 115.6001 13.8999 115.2002 14 C 116.2002 14.2998 117.6001 14.6001 118.2998 13.8999 C 119.7998 13.7998 119.6001 13.8999 120.6001 13.2002 C 121.1001 13.2002 122 12.7002 122.6001 13.2002 C 121.8999 13.8999 121 14.7998 121 15.3999 C 121.2998 16.6001 123.1001 15.6001 124 15.7002 C 125.6001 15.1001 126.8999 13.3999 128.3999 14 C 127.7998 15.5 126.6001 16.2998 125.5 17.2998 C 127.5 18.1001 129.6001 16.8999 131 16 C 132.6001 16.2002 L 132.7002 18.1001 127.8999 19.1001 130.8999 20.6001 C 131.5 20.1001 132.7002 20.2002 133.3999 19.2998 C 134.6001 18.7998 136.1001 18 137.5 17.2002 C 137.7002 17.3999 138.1001 17.2002 138.2002 17.5 C 137.7998 19.3999 135.8999 20.2002 134.5 21.2002 C 134.6001 21.3999 L 134.6001 21.8999 133.8999 21.5 134.2002 22.2002 C 134.2002 22.1001 L 137.2002 22.1001 139.6001 19.7998 142.8999 20 C 142.6001 20.3999 L 142.7002 20.3999 142.8999 20.3999 142.8999 20.5 C 141.7002 22 139.5 22.7998 138.3999 24.7998 C 139.7998 25 L 139.7998 25.2002 L 141.7002 24.7998 143.7998 23 145.7002 23 C 146.1001 24.6001 143.7002 25.2998 142.8999 26.2002 C 142.6001 26.5 142.2002 26.7002 142.6001 27.2002 C 143.2998 27.5 L 145 26.7998 147.7002 26.3999 149.2998 25.8999 C 149.5 25.8999 150.2002 26.2998 149.7998 26.6001 C 148.2002 27.7002 146.2002 28.2002 145.7998 30 C 147.8999 29.7002 150.6001 28.7002 152.6001 28.6001 C 152.7998 28.7002 L 151.7002 30.7002 149.2998 30.5 148 31.8999 C 148.7998 32.6001 148.8999 32.2998 150 32.8999 C 150.5 32.7002 151.3999 32.2002 152.2002 32 C 154 32.3999 156.2002 30.8999 158.2998 31.8999 C 158.2998 32.1001 158.1001 32.2002 158 32.2998 C 157.7002 32.2002 L 157.8999 32.3999 L 156.2998 34.2002 152.2998 34.2002 151.7002 36.1001 C 152.7998 36 154.7998 35.8999 156 35.7998 C 157.6001 35.6001 159.2998 35 161 35.6001 C 161.2998 36.2998 160.6001 36 160.2998 36.3999 C 160 36.3999 L 160 36.7002 L 158.2002 37.3999 156.5 38.3999 155.2002 39.3999 C 158.6001 39.1001 162.1001 38.7998 165 38.7998 C 165.2002 39.6001 164.1001 39.8999 163.3999 40.1001 C 161.7002 40.7998 159.7002 41.2002 158.2998 42.3999 C 159.1001 42.7002 161 42.1001 161.5 42.7998 C 162.2002 42.3999 162.8999 42.3999 163.6001 42.7998 C 165.3999 42.5 167.2998 42.7002 169.1001 42.5 C 169.2998 42.7002 169.2002 43 169.2002 43.2998 C 168.7002 43.5 167.7998 44.5 166.6001 44.5 C 165.2002 45.1001 163.3999 45.2002 162 46.1001 C 161.7002 46.6001 162.2998 46.7002 161.7998 47.2002 C 163.8999 48 166.1001 46.5 168.2002 47 C 168.8999 46.6001 169.6001 47 170.3999 47.3999 C 168.8999 49.2998 166.5 48.3999 164.7998 50.2002 C 165.8999 50.6001 168.1001 51.1001 169.8999 50.5 C 170.2002 50.7002 170.3999 50.7998 170.6001 50.5 C 172.2998 50.2002 174.2998 50.3999 175.7998 50.2998 C 176.3999 50.6001 L 175.8999 51.3999 174.7002 52.1001 173.8999 51.7998 C 171.8999 53.1001 170 53.1001 167.6001 53.8999 C 167.2002 54.3999 167.7998 54.7002 168.1001 55.1001 C 171 55.5 174.1001 55.3999 177.2002 55.3999 C 177.8999 55.8999 177 56.5 176.7998 56.6001 C 175.2998 57.3999 172 56.8999 171 58.3999 C 170.3999 58.2998 170.5 59 170 59.2002 C 172.2998 60.2998 175 59.2998 177.3999 60.1001 C 177.2002 60.2002 L 177.7998 60.2002 178.2002 60.7002 178.7002 61 C 177 62.8999 174 61.3999 172.2002 63.3999 C 172.3999 63.8999 173.7998 63.6001 174.3999 63.7998 C 176.6001 64.2998 179.2998 64.1001 181.6001 65.2002 C 181.6001 66.1001 180.2002 66.2002 179.6001 66.3999 C 177.8999 66.7002 175.2998 66.2002 173.8999 66.7002 C 173.8999 67.1001 L 175.2998 67.2998 176.7998 68 177.7998 68 C 178 68.3999 178.8999 68.2998 179.3999 68.7998 C 180.8999 69 182.7002 69.1001 184.2002 69.6001 C 184.3999 70 L 182.7002 70.7998 181.3999 70.7998 179.3999 71.2998 C 178.2998 71.7998 177 71.2002 175.8999 71.3999 C 176.7998 73.7998 179.5 72.8999 181.2998 73.7998 C 182.3999 73.7998 183.1001 74.1001 183.6001 75 C 181.7998 77.1001 178.8999 74.5 177.2002 75.7998 C 176.7998 78.3999 181 77.2002 181.7998 78.6001 C 183.5 78.7998 185.2998 79.2998 186.7002 79.7998 C 187 80.2998 L 184.7002 81.1001 181.2002 81 178.7002 81 C 178.6001 81.6001 179.1001 82.2998 179.6001 82.7002 C 180.2002 82.7002 180.3999 83.1001 180.7998 83.2998 C 182.6001 84.2002 183.2002 83.7998 184.8999 85.1001 C 183.5 87.2002 181.2998 85.5 179.3999 85.3999 C 179.1001 86.3999 179.5 87.3999 180 88.2002 C 180.7002 88.2002 180.7002 88.7002 181.1001 89 C 183.7002 90.5 185.7998 91 188.5 92.2002 C 188.8999 92.7998 L 185.8999 94.7998 183.3999 91.3999 179.8999 92.3999 C 180.6001 92.7998 179.7998 93.5 180.2002 94.2002 C 181.6001 94.7998 183.2002 95.2998 184.2002 96.2002 C 184.8999 96.2998 185.7998 97.2002 186.6001 97.2998 C 188 97.5 189 98.6001 190.2998 99.1001 C 187.2002 100.7002 184.2998 97.7002 181 98 C 180.2998 99.5 180.7002 100.3999 182.2002 101 C 183.7002 101.7998 185.2002 102.6001 186.5 103.7002 C 186.5 103.6001 L 186.8999 103.2998 186.8999 103.8999 187.2002 104 C 187.2002 103.8999 L 188.1001 104.1001 188.2002 105.2998 189.6001 105.3999 C 189.7002 106 L 188.8999 106.2002 L 186 105.3999 183.3999 104.2998 180.5 103.8999 C 180.7998 104.6001 181.3999 105.3999 181.7998 105.5 C 182.3999 106.3999 183.6001 107.3999 185 107.5 C 185 108.1001 186 107.8999 186.3999 108.7998 C 185.7998 109.5 184.3999 108.8999 183.7002 109.7998 C 183.5 110.2998 184.6001 110.3999 184.2002 111.2002 C 184.7998 111.3999 184.8999 112.5 185.6001 112.6001 C 185.2002 112.8999 187.2002 114 185.3999 114.1001 C 184.1001 113.5 L 183.7998 114.7998 183.6001 116.1001 184.2002 117.3999 C 184.2998 117.2002 L 184.7998 117.8999 185.7002 117.7998 186.3999 118.7998 C 185.7998 119.3999 L 185.2998 119.2998 184.6001 119.1001 184.1001 119.2002 C 184.2998 121.5 184 123.3999 184.2998 125.8999 C 184 126.6001 184.5 127.6001 183.7998 128.2002 C 184.6001 128.7002 183.7002 129.2002 183.7998 129.7998 C 183.7002 129.7002 L 183.7998 130.7002 183.6001 132.1001 183.5 133.2998 C 183.2002 133.2998 L 183.5 133.8999 183.2002 134.6001 183.5 135 C 183.1001 135.2998 183.5 135.3999 183.2002 135.7002 C 183.5 136 L 183 136 L 183.2998 136.8999 182.8999 139.2002 183.2002 140.5 C 183.5 140.7998 L 182.8999 141.6001 183.6001 142.2998 183.1001 143.3999 C 183.7002 143.3999 183.5 144.7002 183.7002 145.1001 C 183 145.3999 183.7998 146.2002 183.6001 146.8999 C 183.7002 145.8999 184.2998 145.8999 184.3999 145 C f 131.8999 132.7998 m 132.8999 132.5 134.2002 132.7002 135.3999 132.7998 C 135.3999 132.7002 L 138.8999 132.2002 141.7998 132.7002 145.1001 132.5 C 145.6001 132.6001 L 145.6001 132.5 L 146.2998 132.5 147.8999 132.7002 149 132.3999 C 150 133.2998 151 132 151.8999 132.6001 C 154.7002 132.7998 157 132.2002 160 132.6001 C 160 132.5 L 165.2998 132.2002 172.7002 132.5 178 132.2002 C 178.2998 131.6001 179.2002 131.2002 179.5 130.6001 C 179.2998 126 179.8999 120.5 179 116.2998 C 179.2002 115.2998 179.2998 114.2998 179.3999 113.5 C 178.7002 112 180.5 109.7998 177.7998 109.2002 C 176.7998 109 176 109.3999 175.2002 109.8999 C 175.1001 110.7998 174.8999 112.1001 175 113.2002 C 175 114 174.3999 116.6001 175.1001 118 C 175.3999 119.7998 174.2002 120.8999 175 122.6001 C 173.8999 122.7998 174.6001 124 174.6001 124.6001 C 174.6001 125.8999 173.7998 127.1001 173.2998 128.5 C 171.1001 129.3999 169.6001 128.2002 167.5 128.6001 C 165.2998 129 162.2998 129.1001 160 128.5 C 150.3999 128.3999 142.1001 127.7998 132.2002 128 C 132 127.7998 L 130.3999 127.8999 127.5 128.1001 126.2002 127.2002 C 125.8999 126.2002 125.7998 125.7002 125.5 124.8999 C 125.7002 123.8999 125.2998 122.7998 125.7998 121.8999 C 125.5 121.6001 L 126 121.3999 L 125.7002 120.2002 126.1001 118.6001 125.6001 117.5 C 126 116.7998 L 125.7998 116.7998 125.7998 116.6001 125.6001 116.5 C 125.7002 114.7002 125.5 113.1001 125.3999 111.3999 C 124.5 110.7002 125.7998 108.1001 123.7998 108.6001 C 122.6001 108.3999 121.2998 108.8999 120.6001 109.7998 C 120.7002 110.7002 120.3999 111.7998 120.6001 112.7998 C 119.8999 113.1001 121 113.2998 120.6001 113.7998 C 120.3999 115.5 120.5 117.6001 120.5 119.5 C 120.7002 119.5 L 120.2002 119.7998 120.7002 120.2998 121 120.7002 C 120.6001 120.7998 121 121.3999 120.7002 121.7002 C 120.2998 121.3999 121.5 122.1001 120.7002 122.2998 C 120.7998 122.2002 120.8999 122.2998 121 122.3999 C 120.7002 122.6001 L 120.8999 122.6001 121 122.7998 121.1001 122.8999 C 120.6001 122.7998 121 123.7998 120.7002 124.1001 C 120.7998 124.1001 L 121 125.5 120.7998 125.7998 120.7998 127.7002 C 120.6001 128.2998 120.7002 128.2998 120.7998 129.1001 C 121 129.1001 L 120.7002 130.2002 L 121 130.2002 L 120.1001 130.5 121.6001 131.2002 121.1001 131.6001 C 121.8999 132.1001 122.3999 132.1001 V 122.6001 131.8999 L 123.2002 132.3999 124 131.7998 124.2998 132.6001 C 130.2002 132.7998 L 130.2002 132.7002 L 131.8999 133 L 131.8999 132.7998 L f *u 135.3999 123 m 135.7002 122.7998 L 135.2002 122.3999 L 135.6001 121.8999 L 135.5 122 L 135.2998 121.8999 135.3999 121.7002 135.3999 121.6001 C 135.3999 121.3999 135.6001 121.3999 135.7002 121.3999 C 135 119.3999 135.5 117.6001 135.2002 115.2998 C 135.2002 114.3999 135.7998 114 136.1001 113.3999 C 136.2002 113.5 L 137.3999 111.7002 140.8999 112.8999 142.8999 112.7002 C 144 112.6001 144.7002 113.3999 145.8999 112.7998 C 146.5 113.3999 148.2002 113 147.5 114.2002 C 145.2998 117.2002 141.2002 113.2002 139.7998 117.2002 C 139.5 118.2002 139.3999 119.1001 139.3999 120.2002 C 139.3999 120.1001 L 139.7998 119.7998 139.6001 120.5 139.7998 120.6001 C 139.3999 120.6001 L 140.3999 120.8999 139.6001 121.8999 140.2002 122.5 C 140.1001 122.3999 140.2002 122.2998 140.2998 122.2998 C 140.3999 122.2998 L 139.8999 122.7998 140.8999 123.1001 140.3999 123.6001 C 140.8999 123.3999 L 140.7998 123.8999 141 124.7998 141.6001 124.8999 C 147.6001 124.8999 152.7998 124.5 158.8999 124.7002 C 159.6001 123.6001 160.3999 122.7002 160.1001 121.1001 C 160.2002 120.7998 160.3999 120.2998 160.3999 120.1001 C 160.3999 120.2002 L 159.7002 118.6001 160.7998 115.8999 157.7002 115.6001 C 155.8999 115.2002 154 115.5 152.8999 114.1001 C 152.8999 112.7998 154.5 113.3999 154.8999 112.6001 C 157.6001 112.3999 161 112.3999 164.2002 112.6001 C 165.2998 113.6001 164.5 115.2998 165.2002 116.2002 C 164.7998 116.7998 165.3999 117.1001 165 118.1001 C 164.7998 118 164.7998 118.2002 164.6001 118.2998 C 164.7002 119.2002 165 121.1001 165.2002 121.8999 C 164.8999 122.2998 L 165.8999 122.7002 164.2998 124 165.7998 124.2002 C 165.7002 124.7998 166.7002 125.5 167.2002 125.7998 C 167.6001 125.7998 L 167.7998 125.3999 168.3999 125.2998 168.7998 124.8999 C 169.7002 123.7998 L 169.8999 121.3999 169.6001 118.1001 169.8999 115.2998 C 169.7002 115.1001 L 169.7002 109.1001 L 164 107.7998 158.8999 108.6001 153.2002 107.8999 C 151.8999 106.2002 152.5 103.5 150.5 102.3999 C 149.3999 102.2998 148.2998 102.7998 147.6001 103.3999 C 146.8999 104.3999 148.1001 105.3999 146.8999 106.2002 C 147 106.7002 147.1001 107.1001 146.8999 107.6001 C 145.3999 108.3999 L 141 108.6001 136.3999 107.8999 131.5 108.3999 C 130.7998 110.1001 131 111.2002 130.3999 112.7998 C 129.8999 113.2002 131 113.8999 130.2002 114.2002 C 130.2998 116.3999 129.7998 119 130.7002 120.7998 C 129.6001 120.7002 131.3999 121.5 130.3999 121.8999 C 130.1001 122.3999 131 122.2002 130.6001 122.6001 C 130 124 130.8999 125 132.1001 125.7998 C 132.7002 125.7002 133.6001 126.2002 134 125.5 C 134.5 124.7998 135.3999 124.2998 135.3999 123 C f 1 D 148.6001 121.1001 m 147 120.8999 145.2998 122.2002 144.1001 120.2002 C 143.6001 119.5 144.5 119.7002 144.7002 119.2002 C 147.7998 118.3999 152.1001 119 155.2998 119.2002 C 155.5 119.7998 L 155.2998 119.7998 L 155.2002 120.5 154.3999 120.6001 154.1001 121 C 152.2002 121.2002 150.6001 121.6001 148.6001 121.1001 C f *U 0 D 162.6001 105.7998 m 162.7998 105.1001 164 105.3999 164.2998 105.1001 C 165.7998 104 168.1001 102.1001 169.2998 100.6001 C 169.3999 99.8999 169.7002 98.7998 169.1001 98.7998 C 165.7002 100.3999 162.5 102.3999 159.7002 105 C 159.7002 105.1001 158.7998 105.1001 159.1001 105.5 C 160 105.7002 160.7002 105.6001 161.7998 105.6001 C 161.8999 106 L 162.2002 105.7998 162.2002 105.5 162.6001 105.7998 C f 144.3999 104.5 m 144.5 102.7002 145.6001 100.2998 147.2002 99.3999 C 147.7002 99 148.2998 99.2002 148.6001 98.5 C 150.2998 99.5 151.8999 98.7998 153.1001 97.7998 C 153.7002 96.3999 156.1001 95.1001 157.2998 94.6001 C 157.5 94.2998 157.3999 94 157.3999 93.7002 C 157.6001 93.6001 158.5 92.7002 158.5 91.7998 C 158.8999 91.8999 159.2002 91.2998 159.2002 91 C 159.3999 91.1001 L 162.2002 87.6001 165.1001 84.7998 165.7998 80.2002 C 165.3999 79.7002 165.6001 78.7002 165.3999 77.8999 C 163.8999 78.2002 164 80 162.7998 80.8999 C 160.5 84 157.6001 87 154.3999 89.7998 C 153.6001 90.7998 152 92.2002 150.7998 93.1001 C 150.6001 92.7998 150.1001 92.5 150.5 92.2002 C 150.3999 92 150.6001 91.8999 150.7002 91.7998 C 151 92 L 151.5 90.7998 152.2998 89.6001 153.1001 88.6001 C 155.3999 85 L 155.5 85.1001 L 156.8999 83.6001 157.8999 81.1001 159 79.8999 C 159.1001 78.1001 161 77.8999 160.8999 76.1001 C 161.2002 76.1001 L 161.5 75.2002 161.6001 74.1001 162.2002 73.3999 C 162.2998 72.3999 163 72.1001 163 71 C 163 70 162.2998 69.7998 161.8999 69.1001 C 159.3999 72.6001 L 159.5 72.7002 L 154.2002 80.7002 148.7998 87.7002 141.5 94 C 141 94 L 140.8999 94.2998 140.2002 94.8999 139.7002 95.2002 C 139.2998 96 138.1001 95.5 138.1001 96.6001 C 137.8999 96.6001 L 137.7998 100.3999 L 138.3999 101 L 138 101.2998 L 138.3999 101.2998 L 138.3999 102.3999 138.2002 103.1001 139 103.8999 C 138.7002 104.7002 140.2998 104.7002 141.1001 105 C 144.3999 104.5 L f 158.2998 101.2998 m 158.5 100.1001 159.7002 100.2002 160.3999 99.2002 C 163.2998 96.5 165.5 94.1001 168.1001 90.3999 C 167.7002 89.5 169 88 167.5 87.2002 C 166.6001 88.3999 164.7998 89.5 164.2002 90.7002 C 163.2002 91 162.7002 92.3999 161.6001 93 C 160.6001 93.6001 159.7002 95.2002 158.7998 95.8999 C 157.3999 97.5 155.2002 98.7998 154.2998 100.7002 C 155.2002 101.7998 L 155.1001 102 155.7002 102.6001 155.6001 103.2002 C 156.2998 102.7002 157.5 101.7998 158.2998 101.2998 C f 136.7998 93.7002 m 136.8999 93.8999 137.5 93.2998 138 93.5 C 138.5 92.7998 139.6001 93.2002 140.2002 92.3999 C 142.1001 91.2998 142.6001 90 144.7002 88.3999 C 144.7998 88.6001 L 145.2998 87.7998 L 145.3999 88 L 145.8999 87.3999 146.7998 86.3999 147.2002 85.7002 C 148.1001 85.8999 147.3999 83.8999 148.7998 84 C 148.6001 83.6001 149.1001 83 149.2998 83.2998 C 150 81.5 151.2998 81 151.7998 79.1001 C 152 79.1001 L 151.6001 78.6001 152.3999 78.7998 152.2002 78.2002 C 152.6001 78.2998 152.5 77.6001 152.8999 77.2002 C 153 77.2998 L 153.2998 75.7998 154.7002 74.2002 154.8999 72.6001 C 155.2002 72.6001 L 155.5 70 157.2002 67.7002 157.3999 65.6001 C 157.8999 65.2998 158.2002 64.7002 158 64.1001 C 158.3999 64.2002 L 159.5 62.3999 157.8999 60.8999 157.2998 59.7998 C 157.2002 59.7998 157.1001 60.1001 157 60 C 156.7002 59.7998 L 156.3999 60.6001 156.1001 61.5 155.6001 62.2002 C 155.1001 63.5 154.8999 66.1001 153.5 67.1001 C 152.1001 69.7998 151 72.2002 149 74.5 C 149.2002 74.5 149.2002 74.6001 149.2998 74.6001 C 147.6001 76.7002 146.5 79 145 80.2998 C 144.3999 79.6001 L 145 77.7998 146.2002 76 147 74.2998 C 146.7998 73 147.8999 72.7002 148.2002 71.2002 C 148.5 70.8999 148.1001 69.7998 148.7002 70 C 149.2002 68.1001 150 65.8999 150.7002 63.6001 C 151 63.6001 L 150.7002 62.1001 151.8999 61.5 151.7998 60.1001 C 152.8999 57.7998 152.3999 57 153.7002 54.7002 C 153.5 54.7002 152.2998 53.2998 151.7998 52.7002 C 150.8999 52.8999 151.7002 54.1001 150.7998 54.2002 C 151 54.2002 L 151 54.3999 150.7002 54.7998 150.6001 55 C 150.3999 55.6001 150.1001 57.1001 149.3999 57.7002 C 149.5 57.7002 L 149.2002 58.6001 148.5 59.7998 148.1001 60.6001 C 148.2998 61 147.7002 61.5 147.7998 61.8999 C 147.5 61.8999 L 147.7998 63 147 63.2002 146.7998 64.2998 C 146.5 64.2998 L 146.2998 65.2002 146 65.5 145.7998 66.6001 C 145.6001 67.1001 L 145.3999 67 145.3999 66.7998 145.3999 66.7002 C 145.2002 68.2998 143.8999 68.6001 143.5 70.2002 C 143 70.2002 L 142.7998 69.6001 142.8999 68.8999 142.8999 68.2998 C 143.2998 68.3999 L 143.7998 66.7998 143.6001 65 144.5 64 C 144.5 62.7998 144.8999 62.2002 145.1001 61 C 145.5 60.7998 145.2998 59.2002 146 58.8999 C 145.7998 58.3999 146.5 58.1001 146 57.5 C 147 54.8999 147.3999 50.8999 148.3999 48.2002 C 146.5 46.2998 L 145.3999 48.7998 144.5 51.3999 143.7998 53.6001 C 143.3999 54.7998 142.6001 55.7998 142.2998 57.3999 C 142.1001 57.3999 L 142.2002 57.6001 142.2998 58.1001 142.2002 58.2998 C 140.8999 58.6001 142.2002 60 141.1001 60.2002 C 141.2002 60.8999 140.5 61.7998 140.2998 62 C 140.5 62.2998 L 139.7998 62.5 140.3999 62.7998 139.7998 63.2002 C 139.6001 63.7002 139.2998 64.2002 138.7998 64.6001 C 138.7002 64.3999 L 138.7002 64.2998 138.7998 64.8999 138.6001 65 C 137.2998 65 138.3999 64.2002 138.1001 63.5 C 138.3999 63.2002 L 138.5 63.2998 138.5 63.5 138.5 63.6001 C 138.2998 62.7998 138.7002 62.6001 138.6001 61.7998 C 139.2998 61.5 139.2002 60.6001 139.1001 59.8999 C 139.7998 59.8999 139.6001 58 140 57.6001 C 140.2998 56.3999 140 55.2998 140.7998 54.3999 C 140.7002 52.2998 141.3999 51.1001 141.2002 49.2002 C 141.8999 47.2002 141.7998 44.7002 142.2002 42.6001 C 142.2002 42.2998 142.2998 41.6001 141.7002 41.3999 C 141.1001 41.2998 L 141.2002 41.5 141 41.6001 140.8999 41.7998 C 141 41.7998 L 140.7002 43.5 140.2002 44.7002 139.3999 46.2998 C 139.1001 46.7998 139.7998 47.7002 138.7998 47.8999 C 139.3999 49.1001 138.1001 50 138.1001 51.2002 C 137.7998 52.6001 L 137.6001 52.3999 L 137 54.5 135.8999 57.3999 135 59.2002 C 135.3999 59.8999 134.2002 60.1001 134.2998 60.7998 C 134.2002 60.7002 L 133.8999 61.2002 134.2002 61.7002 133.3999 61.7998 C 132.5 60.2998 134.2002 58.6001 133.7998 56.7998 C 134.2002 55.2002 134.7998 52.6001 135.1001 50.7998 C 135.5 50.5 135.1001 49.2002 135.7002 48.7998 C 135.6001 48.7998 L 136.1001 48 135.6001 46.5 136.2998 46 C 136.2002 46 L 136.7002 44.2002 136.2002 42 136.7002 40.7002 C 136.8999 40.7002 L 136.6001 39.7998 136.6001 40.1001 136.3999 39 C 136.3999 38.1001 136.1001 37.2998 135.3999 36.7002 C 134.2998 37.2002 134.8999 39.7002 134.2998 39.7002 C 134.3999 39.7002 L 134.1001 41.2998 133.6001 42.2998 133.3999 44.2998 C 133.1001 44.5 L 133.5 44.8999 132.7998 45.8999 133 46.3999 C 132.5 46.8999 132.8999 47 132.5 47.2998 C 132.7002 47.5 L 131.5 49.6001 131.2002 52.7002 129.7002 54.7002 C 128.5 52.7002 130.2998 48.8999 130.2998 46.6001 C 130.5 42.2998 131.5 38.7998 131 34.6001 C 130.8999 34.3999 130.7002 34.2998 130.7002 34.1001 C 130.7998 34 L 129.5 32.8999 L 129 33.7002 129.1001 34.7998 128.7998 35.3999 C 129.2002 36.1001 127.8999 37.2998 128.5 37.8999 C 128 38.6001 128 40.7002 128 41.3999 C 127.6001 41.6001 L 128.2998 42.1001 127.2002 42.2002 127.6001 42.7002 C 127.6001 43.3999 127.6001 44.2002 127.1001 44.5 C 127 45.1001 127.2998 45.8999 126.7998 46.2998 C 127.3999 46.7998 126.2002 47.2002 126.5 47.8999 C 126.7002 49.3999 125.7002 50.1001 125.5 51.5 C 125.3999 51.3999 125.3999 51.2002 125.3999 51.1001 C 125 51.7002 L 124.2002 51.7002 124.7002 51.1001 124.6001 50.5 C 124.6001 50.3999 124.7998 50.3999 124.8999 50.3999 C 124.6001 45.3999 126 39.2998 125.5 34.7998 C 124.8999 33.8999 125.2998 32.6001 124.7002 31.7002 C 124.6001 30.7998 124.1001 30.3999 123.7998 29.6001 C 123 31.1001 123.5 32.5 123 33.7998 C 123.1001 33.7998 L 122.3999 35.2002 123.5 36.7002 122.2998 38.2998 C 123.1001 39.2002 121.7002 40.2998 122.2002 41.6001 C 121.7002 42.1001 L 121.7998 42.1001 L 121.7998 42.2998 121.8999 42.7998 121.3999 42.7998 C 121.7002 42.7998 L 121.8999 43.2002 121.7002 43.7002 121.2998 43.7998 C 121.6001 43.7998 L 121.6001 44.2998 L 121.1001 44.2998 L 121.5 45.7998 120.3999 46.7998 120.1001 48.2002 C 119.7998 48 L 119.7998 48.1001 119.7998 48.2998 119.6001 48.3999 C 118.2998 45.7002 119.3999 42.2998 119.2998 39.7998 C 119.3999 39.7998 119.3999 39.7998 Y 119.2002 39.6001 L 119.7998 39.3999 119.2998 38.2002 119.6001 37.8999 C 119.5 37.8999 L 118.7002 35.6001 119.2998 32.7998 118.7998 30.2002 C 119 30.2002 L 118.3999 29.5 118.5 27.5 117 27.5 C 116.7998 27.2002 L 117 28.6001 115.8999 29.7002 116.2998 31.7002 C 116 31.8999 L 116.2002 33 116.2002 33.8999 116 35 C 116.2998 35.2998 L 115.7998 35.6001 L 116.2002 35.7998 L 116.3999 36.6001 116.2998 38.2002 116.2002 39.3999 C 116.2998 39.2002 L 116.1001 41.5 115.7998 43.2998 115.1001 45.3999 C 115.2998 46.1001 115.2002 46.7002 115.1001 47.5 C 113.8999 47.8999 115.2998 49.2998 114.3999 49.8999 C 115.1001 50.2998 113.7998 50.7002 114.6001 51.1001 C 114.5 51.3999 114.2998 50.8999 114.3999 51.3999 C 114.5 51.5 L 114.1001 51.5 L 114.1001 52.6001 L 114.2002 52.6001 L 114.1001 53.1001 114 53.3999 114.6001 53.8999 C 114.2002 54.1001 L 115.1001 54.6001 113.8999 54.8999 114.5 55.3999 C 115.1001 55.8999 115.6001 57 116.2998 57.5 C 116.3999 57.7002 117.1001 58.6001 117.3999 58 C 117.6001 58.2998 117.6001 58.3999 117.2002 58.7002 C 118.6001 60.2998 119.7998 61.2002 120.7002 62.8999 C 120.7998 62.7998 L 121.1001 63.1001 122.2998 64.3999 122.3999 65.2002 C 122.5 65 L 122.3999 65.8999 123.7002 65.7002 123.2002 66.6001 C 124 66.7002 124.2002 67.8999 124.3999 68.7998 C 125.7002 68.7998 124.8999 70 126 70.2998 C 125.5 71.3999 127.1001 71.2002 126.5 72.1001 C 126.7002 72.5 128 72.7002 127.7002 73.7998 C 128.7998 74 128 75.2002 128.7998 75.6001 C 129 76 129.3999 76.2998 129.2002 76.8999 C 129.3999 76.8999 129.3999 76.8999 129.5 76.7998 C 129.8999 76.8999 129.1001 77.3999 129.7002 77.2998 C 130.2002 77.7002 129.2998 78.2002 130.1001 78.5 C 130.1001 78.3999 130 78.2002 130.2002 78.1001 C 130.3999 78.3999 130.2998 78.8999 130.2998 79.2998 C 130.6001 79.1001 L 131 80.3999 L 131.2998 80.2002 L 131.6001 80.6001 131.2002 81.7002 131.6001 81.7002 C 131.8999 81.5 L 132 82.6001 L 132.2002 82.6001 132.2002 82.2998 132.3999 82.6001 C 132.6001 83.6001 L 132.7002 83.6001 132.7002 83.5 132.7998 83.5 C 132.7998 84.1001 L 133 84.1001 L 133.1001 85.1001 L 133.6001 85.1001 L 132.8999 86.2998 134.7998 86.2998 134.2002 87.6001 C 134.7002 88 135 88.7002 135.1001 89.2002 C 135.2002 90 L 136 90.5 135.7998 90.7998 136.1001 91.6001 C 136.6001 92 136.7002 93 136.7998 93.7998 C 136.7998 93.7002 L f 0 J 0 w 4 M 177 105 m 173 105 L 172.5 55 135.373 20.021 91.479 20.021 c 47.5845 20.021 7.5 55.5 12 114.5 C 1.626 108.4907 L 1.4585 106.2656 1.3735 104.0176 1.3735 101.75 c 1.3735 52.8184 41.0415 13.1499 89.9731 13.1499 c 138.9048 13.1499 178 52 177 105 C f 0.2 w 116.5 186.75 m 92.75 194.25 67 187.5 v 34.3887 178.9517 20.75 155.75 y 38.5 178.25 67.75 185.5 v 96.1782 192.5464 116.25 183.75 y 116.5 186.75 l f 0 w 77.25 162 m 75 164.5 l 42.25 149.5 32.5 113.75 v 43 144.75 77.25 162 v f 111 51.8335 m 109.937 52.9429 109.1665 52 108.1665 51.6665 c 107.1665 51.3335 102.1665 48.1665 98.1665 46.8335 c 94.1665 45.5 93.8335 45.1665 91.1665 45 c 88.5 44.8335 85.8335 44.1665 84 43.6665 c 82.1665 43.1665 80.3335 43.5 78.3335 44 c 76.3335 44.5 70.5 46.3335 67.3335 45.6665 c 64.1665 45 63.6665 43.1665 61.5 42.5 c 59.3335 41.8335 56.3335 41.6665 52.8335 43.3335 c 49.3335 45 47.0103 46.1846 45 47.3335 c 43.8335 48 42.9429 48.8501 42 50.5 c 41.3335 51.6665 38.4165 53.8335 35.5 55.8335 c 31.7988 58.3711 24.3335 63.6665 22.8335 65.5 c 27 57 28.5 55.3335 v 30 53.6665 30 52.3335 32.6665 52.3335 c 35.3335 52.3335 36.6665 51.8335 37.5 51 c 38 50.5 37.1665 50 35.8335 50.1665 c 34.9902 50.272 33.2739 50.1968 34.1665 48.6665 c 34.9165 48.75 35.5835 48.6665 v 36.25 48.5835 37.5 48.75 38.25 48.6665 c 39 48.5835 40.3335 48.1665 40.8335 47.4165 c 40.3335 46.75 39.3335 46.5 v 38.3335 46.25 37.1665 45.8335 37.75 45.3335 c 38.3335 44.8335 39.5835 44.3335 40.9165 44.5835 c 42.25 44.8335 44 45.25 44.6665 44.8335 c 45.3335 44.4165 44.8335 43.5835 43 43 c 41.1665 42.4165 40.9165 41.75 41.8335 41.4165 c 42.75 41.0835 44.5835 41.3335 45.5835 41.9165 c 46.5835 42.5 47 42.3335 47.4165 42.1665 c 47.8335 42 47.9165 41.4165 46.75 40.9165 c 45.5835 40.4165 44.5835 39.5 45.25 39.1665 c 45.9165 38.8335 48.3335 39.4165 49.1665 39.6665 c 50 39.9165 51.4165 40.25 52 39.8335 c 52.5835 39.4165 52.75 39 51.25 38.0835 c 49.75 37.1665 48.75 36.1665 49.3335 35.6665 c 49.9165 35.1665 51.3335 35.8335 52.0835 36.3335 c 52.8335 36.8335 55.4165 38.9165 56.25 38.3335 c 57.0835 37.75 55.9165 35.5 55.0835 34.5835 c 54.25 33.6665 53.8335 32.5 54.9165 32.0835 c 56 31.6665 56.6665 33 57.3335 33.75 c 58 34.5 63.4165 41.3335 64.4165 41 c 65.4165 40.6665 63.3335 36.5835 62.5 35.3335 c 61.6665 34.0835 59.25 29.9165 60.25 29.3335 c 61.25 28.75 64.0835 31.75 64.9165 33.25 c 65.75 34.75 67.9165 38.5835 68.75 38.25 c 69.5835 37.9165 69.5 36.0835 68.25 33.75 c 67 31.4165 64.9165 27.9165 66 27.25 c 67.0835 26.5835 69.3335 29.75 70.5835 32 c 71.8335 34.25 73.8335 38.25 74.9165 37.9165 c 76 37.5835 75.1665 35.25 74.0835 32.4165 c 73 29.5835 71.4165 25.8335 72.5835 25.5 c 73.75 25.1665 76.0835 27.6665 76.9165 29.9165 c 77.75 32.1665 80 37 81.25 36.6665 c 82.5 36.3335 81.8335 34.3335 81.4165 32.8335 c 81 31.3335 80.1665 28.0835 79.4165 26.6665 c 78.6665 25.25 78.8335 24.1665 79.4165 24.1665 c 80 24.1665 83.3335 28.5835 84.5 31.6665 c 85.6665 34.75 86.6665 37.8335 87.4165 38.1665 c 88.1665 38.5 88.1665 38.5 88.0835 37.8335 c 88 37.1665 88.0835 35.6665 87.9165 33.5835 c 87.75 31.5 87.25 28.4165 86.6665 27.1665 c 86.0835 25.9165 85.9165 23 86.75 23.0835 c 87.5835 23.1665 87.4165 24.5 88.25 25.25 c 89.0835 26 90.1665 28 90.5835 30.3335 c 91.75 31.9165 91.9165 33.3335 v 92.0835 34.75 92.5835 35.1665 92.8335 36.1665 c 93.0835 37.1665 93.3335 38.75 93.8335 38.5835 c 94.3335 38.4165 94.25 37.5835 94.3335 36.6665 c 94.4165 35.75 94.75 35 94.5 34.0835 c 94.25 33.1665 94.5 32.5835 94.3335 31.9165 c 94.1665 31.25 93.5835 29.8335 93.4165 28.5 c 93.25 27.1665 93.4165 25.9165 93.25 25.1665 c 93.0835 24.4165 93 23.0835 93.8335 23.6665 c 94.6665 24.25 95.5645 25.6519 95.75 28.25 c 95.8335 29.4165 96.9165 30.5 y 97.3335 30.75 97.4165 31.75 v 97.5 32.75 98.4165 37.3335 99.0835 37.25 c 99.75 37.1665 99.5835 36.6665 99.5835 35.6665 c 99.5835 34.6665 99.9165 32 99.5 30.25 c 99.0835 28.5 98.1665 24.25 98.6665 24.0835 c 99.1665 23.9165 100.8335 24.8335 101.1665 27.5835 c 101.5 30.3335 102.3335 31.75 102.4165 33.75 c 102.5 35.75 103.6665 38.5 104.3335 38.25 c 105 38 105 37.0835 105 36.25 c 105 35.4165 106 31.8335 105.5835 30.6665 c 105.1665 29.5 104.9165 27.0835 105 26.4165 c 105.0835 25.75 105.3335 24.75 105.8335 25.1665 c 106.3335 25.5835 106.9092 27.4375 107.25 30.25 c 107.5835 33 107.6665 34.9165 107.9165 35.8335 c 108.1665 36.75 107.9165 38.0835 108.25 38.5835 c 108.5835 39.0835 108.5835 39.4165 109.0835 38.5835 c 109.5835 37.75 110.25 36.5835 110.25 35.3335 c 110.25 34.0835 110.4165 30.1665 110 28.5 c 109.5835 26.8335 109.9165 26.0835 110.75 26.1665 c 111.7207 26.2637 112.5 28.1665 112.8335 31.3335 c 113.2173 34.9834 113.3335 41.6665 113 44.5835 c 112.6665 47.5 112.9165 49.8335 111 51.8335 c f LB %AI5_EndLayer-- %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_Illustrator_AI5 /terminate get exec Adobe_ColorImage_AI6 /terminate get exec Adobe_level2_AI5 /terminate get exec %%EOF \ No newline at end of file