Mercurial > hg > Papers > 2014 > taninari-master
changeset 29:7149e38f717c
add poster.
author | Taninari YU <you@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 19 Feb 2014 18:07:53 +0900 |
parents | e3cd3d01734e |
children | 5869fb6d7f20 |
files | paper/abstract.tex paper/chapter1.tex paper/chapter2.tex paper/chapter3.tex paper/chapter4.tex paper/chapter5.tex paper/chapter6.tex paper/conclusion.tex paper/master_paper.pdf paper/thanx.tex poster/master_poster.graffle/data.plist poster/master_poster.graffle/image5.png poster/master_poster.graffle/image6.pdf poster/master_poster.graffle/image7.pdf |
diffstat | 14 files changed, 4290 insertions(+), 58 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/abstract.tex Tue Feb 04 08:50:46 2014 +0900 +++ b/paper/abstract.tex Wed Feb 19 18:07:53 2014 +0900 @@ -1,5 +1,5 @@ \begin{abstract} -各クライアントをツリー状に接続し、親が配信したデータを木の上から下へと流すことで負荷分散をすることができる分散版VNC(TreeVNC)のアプリケーションを実装を行った。VNCとはネットワークを介して画面を共有することができるアプリケーションである。 +各クライアントをツリー状に接続し、親が配信したデータを木の上から下へと流すことで負荷分散をすることができる分散版VNC(TreeVNC)のアプリケーションの実装を行った。VNCとはネットワークを介して画面を共有することができるアプリケーションである。 従来のVNCでは配信者へ負荷が集中する設計となっている。大学の講義等でVNCを用いて画面共有を行うと、クライアントの増加に比例して配信者への負荷が増え処理性能が低下してしまう。 この問題を解決する為に、ツリー構造にクライアントを接続させ、データを上から下へと流していく方法を提案した。 これにより、利用者が増加しても質を落とすことないスケーラビリティを持ったサービスを作成することができる。
--- a/paper/chapter1.tex Tue Feb 04 08:50:46 2014 +0900 +++ b/paper/chapter1.tex Wed Feb 19 18:07:53 2014 +0900 @@ -1,17 +1,17 @@ \chapter{研究背景と目的} \pagenumbering{arabic} -授業を行う際、プロジェクタなどの投影機を使用して授業を進める場合が多い。しかし、広い部屋だと後ろの席に座っている生徒が見えにくいなどの不便を感じることがよくある。 -もし、授業を受けている学生の手元にパソコンがあるならば、手元のパソコンに先生の説明しているスライドを表示して授業を進めることでどこの席に座っていても、手元の画面に表示されているので見えづらいという問題は解決される。 -みんなの手元に先生の画面を配信するシステムとして、ビデオケーブルを引いて画面を配信する方法がある。しかし、この方法で画面共有をするには、工事を行ってビデオケーブル引かなければならないので、コストがかかってしまう。 + 授業を行う際、プロジェクタなどの投影機を使用して授業を進める場合が多い。しかし、広い部屋だと、後ろの席に座っている生徒が見えにくいなどの不便を感じることがよくある。 +もし、授業を受けている学生の手元にパソコンがあるならば、手元のパソコンに教師が説明しているスライドを表示して授業を進めることでどこの席に座っていても、手元の画面に表示されているので見えづらいという問題は解決される。 +また、みんなの手元に教師の画面を配信するシステムとして、ビデオケーブルを引いて画面を配信する方法がある。しかし、この方法で画面共有をするには、工事を行ってビデオケーブル引かなければならないので、コストがかかってしまう。 ビデオケーブルを引かずに、WEBページに授業のスライドを載せることで、Webページを共有することができる。しかし、この場合は、ページが同期していないので、どのスライドを説明してるのかわからなくなるといった問題が発生する。 -プログラミングの授業などでは、先生がどのような作業をしているかがとても重要になってくるが、これはWEBページを使用しても実現することができない。 +プログラミングの授業などでは、教師がどのような作業をしているかが重要になってくるが、これはWEBページを使用しても実現することができない。 これらの問題は、オープンソースなアプリケーションであるVNCを用いることで解決することができる。 VNCとは、RFBプロトコルを使用して、画面のデータを配信するシステムであり、RFBプロトコルは自身の画面をネットワークを介して他の画面に配信するためのプロトコルである。 VNCは多人数で同時に接続してしまうと処理性能が落ちて授業の進行に画面がついていかなくなったり、アプリケーションの処理自体が止まってしまったりしてしまうという問題がある。 この現象は一つのコンピュータに多人数が繋がるときに生じる問題である。 クライアントをツリー状に接続させ、上から順番にデータを流していく方法によって、VNCサーバに対する負荷を分散させることができ、問題が解決できると考えた。 -ゼミでVNCを使用することを想定する。従来のVNCでは、発表者が変わるごとに新しくVNCに接続し直す必要がある。接続の手間を省くことで、ゼミをスムーズに進行させることができる。 -本研究では、多人数で画面共有ができるようにクライアントをツリー構造に接続させ、上から順番にデータを流していく方法で、VNCサーバに対する負荷を分散させるTreeVNCを作成し、更に、ゼミなどで使いやすいようにユーザインタフェースの提案と実装を行う。 +ゼミでVNCを使用することを想定する。従来のVNCでは、発表者が変わるごとに新しくVNCに接続し直す必要がある。接続の手間を省くことで、ゼミをスムーズに進行させることができる。\\ + 本研究では、多人数で画面共有ができるようにクライアントをツリー構造に接続させ、上から順番にデータを流していく方法で、VNCサーバに対する負荷を分散させるTreeVNCを作成した。更に、ゼミなどで使いやすいようにユーザインタフェースの提案と実装を行う。 %先生のスライドを生徒の手元にあるパソコンに表示することができる。しかし、多人数の生徒が先生のパソコンに同時に接続してしまうと処理性能が落ちて授業の進行に画面がついていかなくなってしまう。 %更に当研究室では、VNCを使用してゼミを進めている。従来のVNCを使用すると発表者が変わるごとに新しくVNCを立ち上げ 直す必要がある。このような手間がなくなるとスムーズにゼミを進めることができる。\\ % 本研究では、多人数で画面共有ができるようにクライアントをツリー構造に接続させ、上から順番にデータを流していく方法でVNCサーバに対する負荷を分散させるTreeVNCを作成し、更にゼミなどで使いやすいようにユーザインタフェースの提案と実装を行う。
--- a/paper/chapter2.tex Tue Feb 04 08:50:46 2014 +0900 +++ b/paper/chapter2.tex Wed Feb 19 18:07:53 2014 +0900 @@ -1,18 +1,18 @@ \chapter{画面共有システム} -この章では、従来画面共有で使用されているTightVNCとそれに使われてるRFBプロトコルについて説明する。その上で、多人数で使用する際の問題点を説明する。 + この章では、従来画面共有で使用されているTightVNCとそれに使われてるRFBプロトコルについて説明する。その上で、多人数で使用する際の問題点を説明する。 \section{RFBプロトコル} RFB(remote frame buffer)プロトコル\cite{rfbProtocol}とは、自身の画面を送信し、ネットワーク越しに他者の画面に表示するプロトコルである。 ユーザが居る側をRFBクライアント側と呼び、Framebufferへの更新が行われる側はRFBサーバと呼ぶ。 Framebufferとは、メモリ上に置かれた画像データのことである。 RFBプロトコルの概要を図\ref{fig:rfb}に示す。 -RFBプロトコルでは、最初にプロトコルバージョンの確認や認証が行われる(図\ref{fig:rfb}中,1: ,2: ,3: ,4:)。 +RFBプロトコルでは、最初にプロトコルバージョンの確認(図\ref{fig:rfb}中,2)や認証が行われる(図\ref{fig:rfb}中 ,3:)。 %RFBプロトコルでは、最初にサーバ・クライアント間でハンドシェイクが行われる。ハンドシェイクでは、プロトコルバージョンの確認・接続に対しての認証が行われる。 -その後、クライアントに向けてFramebufferの大きさやデスクトップに付けられた名前などが含まれている初期メッセージが送信される。(図\ref{fig:rfb}中,5:) +その後、クライアントに向けてFramebufferの大きさやデスクトップに付けられた名前などが含まれている初期メッセージが送信される。(図\ref{fig:rfb}中,4:) %ハンドシェイク後には、クライアントに向けて初期メッセージが送信される。初期メッセージにはフレームバッファの大きさやデスクトップに付けられた名前などが含まれている。 -RFBサーバ側はFramebufferの更新が行われるたびに、RFBクライアントに対してFramebufferの変更部分だけを送信する。更にRFBクライアントのFramebufferUpdateRequestが来るとそれに答え返信する。 +RFBサーバ側はFramebufferの更新が行われるたびに、RFBクライアントに対してFramebufferの変更部分だけを送信する(図\ref{fig:rfb}中,5:)。更にRFBクライアントのFramebufferUpdateRequestが来るとそれに答え返信する。 RFBプロトコルは、描画データに使われるエンコードが多数用意されており、また独自のエンコードを実装することもできるプロトコルである。 \begin{figure}[!htbp] \begin{center} @@ -34,7 +34,7 @@ \section{授業でVNCを使用するときの問題点} VNCを多人数で使用する際は、サーバに対してクライアントの接続が一極集中してしまうことが問題である。 実験として、iMacで複数のPCからVNCをかけ検証してみた。 -10台接続するとVNCクライアントでの画面の更新が遅くなり、さらにCPU使用率も跳ね上がっていた。 +10台接続するとVNCクライアントでの画面の更新が遅くなり、さらにCPU使用率も跳ね上がっていた(表\ref{tb:cpuuserate})。 \begin{table}[htbp] \caption{スループットとCPU使用率} @@ -56,7 +56,7 @@ Javaを用いて実装されており、フリーで入手することができる。 Vnc Reflectorは、Vncサーバとクライアントとの間に入り、VNCサーバとの通信を代わり に行うプログラムである。 -クライアントはVnc Reflectorへ接続するので、VNCサーバとの接続はVnc Reflectorのみ +クライアントはVnc Reflectorへ接続するため、VNCサーバとの接続はVnc Reflectorのみ となり、VNCサーバ側の負荷を減らすことができる。 しかし、VNC Reflectorも接続はProxyに一極に集中してしまっているためサーバの負荷は軽減するが、 Proxyに対しては負荷がかかる。 @@ -64,7 +64,7 @@ \section{ゼミでVNCを使用するときの問題点} ゼミでは通常発表者が複数人いるので、発表者が切り替わる。VNCを用いて発表を行う場合、発表者が切り替わるごとに接続し直さなければならない。 -それに伴い接続し直す際の認証が毎回発生する。 +それに伴い、接続し直す際の認証が毎回発生する。 また、高解像度のマルチディスプレイを使用している人がいる場合は、送信される画像データの量が多くなりすぎてしまいメモリを圧迫してしまうことがある。 @@ -97,7 +97,7 @@ \end{figure} \subsection{Broadcastパケットの性質} -Broacdcastパケットの性質として大きすぎるデータの送信ができないという性質がある。どの程度の大きさのパケットまで送れるかをテストしてみたところ、64000byteまでだと送信可能であることがわかった。 +Broacdcastパケットの性質として、大きすぎるデータの送信ができないという性質がある。どの程度の大きさのパケットまで送れるかをテストしてみたところ、64000byteまでだと送信可能であることがわかった。 もう一つの性質にパケットが消失(ロスト)しても特定することができないという性質がある。 MulticastについてもBroadcastと同じ性質を持っている。 @@ -105,7 +105,7 @@ Broadcastの性質で説明したとおり、Broadcastではデータが消失したことをクライアントが検出することができない。そこでプロトコルを拡張し、データごとにシリアル番号を振り、連続でない値が来た場合、正しくデータが届いていないと判断し、データの消失を検出することができる。 \subsection{Acknowledgeの設計} -データが消失したのを検出した際、どのような対応をとるのかが問題になる。シリアル番号を振っているのでサーバ対して、消失したデータのシリアル番号を指定することで、消失したデータの再送が可能となる。この際、再送にBroadcastを用いると、またデータの消失が起こるので、消失したデータを再送する際はTCPコネクションを用いて送信を行うのが良い。 +データが消失したのを検出した際、どのような対応をとるのかが問題になる。シリアル番号を振っているのでサーバ対して、消失したデータのシリアル番号を指定することで、消失したデータの再送が可能となる。この際、再送にBroadcastを用いると、またデータの消失が起こるため、消失したデータを再送する際はTCPコネクションを用いて送信を行うのが良い。 \subsection{Broadcastを使用した送信} Broadcastを使用する場合は一度に送信するパケットのサイズを64000byte以下にしなければならない。もし、1920*1080のサイズの画像データを送信する際、約600万byte(1920*1080*3)となってしまう。これでは送信することができないのでデータを分割し64000byte以下にして送信しなければならない。 @@ -122,7 +122,7 @@ \label{fig:rawdata} \end{figure} -テストで、図\ref{fig:comparenormalandtree}のように2列づつに分割して送信するプログラムを書いた。 +テストで、図\ref{fig:rawdata}のように2列づつに分割して送信するプログラムを書いた。 書いたテストプログラムでは、毎回バッファをコピーして送っているため処理が重かった。 BroadcastとMulticastでどのくらいパケットロスするかのテストも行った。 @@ -143,7 +143,7 @@ -結果として、データ分割の処理が重い、且つ予想以上のパケットロス率という結果をになったので、BraodcastやMulticastを用いた実装にはもう少し工夫が必要だということがわかった。 +結果として、データ分割の処理が重く、且つ、予想以上のパケットロス率という結果をになったため、BraodcastやMulticastを用いた実装にはもう少し工夫が必要だということがわかった。
--- a/paper/chapter3.tex Tue Feb 04 08:50:46 2014 +0900 +++ b/paper/chapter3.tex Wed Feb 19 18:07:53 2014 +0900 @@ -5,7 +5,7 @@ 多人数の同時接続を可能にするには、一極集中で接続するのではなく接続を分散させることが必要である。そこで、Node同士で接続を行うことによって負荷分散をすることが実現できるのではないかと考えた。\\ 負荷分散を行う際、Node同士どのようなトポロジを組むのが適切か検討した結果、上から流れてきたデータを下のNodeへと伝えていくことのできる木構造が良いと考えた。\\ 今回行った設計ではNodeを木構造に接続させデータを流すためにサーバとNodeの間にRoot Node(サーバとNodeの通信を仲介するもの)を設置する方式をとった。Root Nodeは主にNodeの管理とServerから流れてきた画像データの管理を担当する。\\ -木構造で設計したものを(図\ref{fig:treestructure})に示す。\\ +木構造で設計したものを図\ref{fig:treestructure}に示す。\\ \begin{figure}[htbp] @@ -39,10 +39,9 @@ \end{figure} -(表\ref{tb:oneporttraffic})はポート一本あたりの通信量である。\\ +表\ref{tb:oneporttraffic}はポート一本あたりの通信量である。\\ 表から推察できるように、ポート一本あたりの負荷は従来のVNCの場合はNode数に比例して増えている。しかしTreeVNCの場合はTreeの子供の数が一定なので、Node数に関係なく一定である。\\ -送信する量も通常のVNCの場合、Node数に比例した量のデータ送信しなければならいので、CPUに負荷がかかり性能が低下したり停止したりしている。\\ -対してTreeVNCはが増えても配信するデータは一定なので性能が低下せず使用することができる。 +送信する量も通常のVNCの場合、Node数に比例した量のデータ送信しなければならいので、CPUに負荷がかかり性能が低下したり停止したりしている。これに対してTreeVNCはが増えても配信するデータは一定なので性能が低下せず使用することができる。 \begin{table}[htbp] \caption{ポート一本あたりの通信量(NはNode数、MはTreeの子供の数)} @@ -99,8 +98,8 @@ %$line$は接続先を訪ねてきたNodeのIPアドレスであり、$(nodeCounter - 1) / treebranch$で接続するべき親を求め結果を返している。\\ %treebranchは木の分岐数である。 -$line$は接続先を訪ねてきたNodeのIPアドレスである。初めに接続してきた、Nodeのアドレスを自分が保持しているlist(LinkedList)に登録する。\\ -親の番号は$(counter - 1)/TreeBraanche$で求めることができるので、listに親の番号を指定し、親のIPアドレスを取得する。\\ +$line$は接続先を訪ねてきたNodeのIPアドレスである。初めに接続してきた、Nodeのアドレスを自分が保持しているlist(LinkedList)に登録する。 +親の番号は$(counter - 1)/TreeBraanche$で求めることができるので、listに親の番号を指定し、親のIPアドレスを取得する。 取得したIpを接続してきたNode($line$)に送り返すことで、NodeはどのIPアドレスに接続すればよいのか知ることができる。 \begin{lstlisting}[language=java,frame=lrbt,label=src:tree,caption=クライアント管理のプログラム,numbers=left] @@ -126,7 +125,7 @@ \caption{表示画面の切り替え} \label{fig:change} \end{figure} -画面の切替をどのユーザが行うのかという問題がある。Root Nodeに対してユーザが毎回IPアドレスを入力して切り替えるのはUserInterface的によくない。そこで、Node側に画面切り替えを行うボタンを設置し、ボタンを押すとRoot Nodeに自分の画面へ切り替えるように命令を出しRoot Nodeが了承すると画面が切り替わるように設計した。 +画面の切替をどのユーザが行うのかという問題がある。Root Nodeに対してユーザが毎回IPアドレスを入力して切り替えるのはUserInterface的によくない。そこで、Node側に画面切り替えを行うボタンを設置し、ボタンを押すとRoot Nodeに自分の画面へ切り替えるように命令を出し、Root Nodeが了承すると画面が切り替わるように設計した。 \newpage \section{マルチディスプレイの対応} @@ -146,7 +145,7 @@ このようにして木を再構成することができる。 \newpage -図\ref{fig:reconnection}は再接続の様子を記したコラボレーションダイアグラムである。以下に関数の説明をする。 +図\ref{fig:reconnection}、図\ref{fig:reconnection2}は再接続の様子を記したコラボレーションダイアグラムである。以下に関数の説明をする。 \begin{figure}[!htbp] \begin{center} @@ -185,7 +184,7 @@ \newpage \section{MulticastQueue} -画面が更新された際に画像の更新をNodeに伝えなければならない。ノードが多数ある場合、各ノードに順番に更新を知らせるのではなく、同時に画面の更新を知らせたい。 +画面が更新された際に画像の更新をNodeに伝えなければならない。Nodeが多数ある場合、各Nodeに順番に更新を知らせるのではなく、同時に画面の更新を知らせたい。 同時に更新を知らせるために、CountDownLatchを用いてMultiCastQueueを作成した。 \begin{figure}[!htbp] @@ -290,9 +289,9 @@ \subsection{ZRLEE} -そこで、Root NodeがZRLEで受け取ったデータをunzipし、データをzipし直して最後にfinish() -をいれることで初めからデータを読んでいなくても解凍を行えるようにした -(毎回新しい辞書を使うようにした)。(図\ref{fig:ZRLEE}) +Root NodeがZRLEで受け取ったデータをunzipし、データをzipし直して最後にfinish() +をいれることで、初めからデータを読んでいなくても解凍を行えるようにした +(毎回新しい辞書を使うようにした)(図\ref{fig:ZRLEE})。 このエンコードはZRLEEエンコードと定義した。 一度ZRLEEエンコードに変換してしまえば、そのデータをそのまま流すだけで良い。 よって変換はRoot Nodeが行う一回だけですむ。
--- a/paper/chapter4.tex Tue Feb 04 08:50:46 2014 +0900 +++ b/paper/chapter4.tex Wed Feb 19 18:07:53 2014 +0900 @@ -14,7 +14,7 @@ \section{UIの実装} \subsection{FramebufferUpdateの概要} RFBプロトコルでは、FramebufferUpdateによって、矩形状の画像データが送信されてくる。\\ -FrameBufferUpdateの概要を(表\ref{tb:framebufferupdate},表\ref{tb:framebufferupdate2})に示す。 + FrameBufferUpdateの概要を(表\ref{tb:framebufferupdate},表\ref{tb:framebufferupdate2})に示す。 \begin{table}[htbp] \caption{FramebufferUpdate} @@ -46,7 +46,7 @@ \end{center} \end{table} -ここまでがheaderとして送信されるデータである。矩形の画像なのでx-position、y-position、width、heightの4つの値で画像の位置と大きさを決めることができる。\\ +ここまでがheaderとして送信されるデータである。矩形の画像なのでx-position、y-position、width、heightの4つの値で画像の位置と大きさを決めることができる。\\ headerに続いて、実際の画像データが送信されてくる。\\ 画像データはZRLEエンコーディングで送信される。最初の4バイトはデータの長さを表現して、次にその大きさ分のzlibDataが送信される(表\ref{tb:ZRLE})。 @@ -64,8 +64,8 @@ \subsection{マルチディスプレイへの対応} 送られてきたzlibDataは展開されると左から右、上から下へ並んだ、64*64ピクセルのタイル群画像データとなる。 -ここで、画像データがどのように送られてくるのかを調べてみたところ、2つディスプレイがあるとすると、両ディスプレイにまたがった画像更新が来ることがないことがわかった。\\ -図\ref{fig:rawdata}の黒い部分が画像データだとすると、図\ref{fig:rawdata}のようなFramebufferUpdateは送られてくることはない。 +ここで、画像データがどのように送られてくるのかを調べてみたところ、2つディスプレイがあるとすると、両ディスプレイにまたがった画像更新が来ることがないことがわかった。\\ +図\ref{fig:sendscreenimage}の黒い部分が画像データだとすると、図\ref{fig:sendscreenimage}のようなFramebufferUpdateは送られてくることはない。 \begin{figure}[!htbp] \begin{center} @@ -80,13 +80,13 @@ 以上のことを踏まえ、FramebufferUpdateで送信されてきたheaderを確認し、x-positionを確認することで、どの画面の画像データを送信するかを選択することができる。\\ -例えば、図\ref{fig:rawdata}では、左側の画面を送信したいときは、x-positionが1920より小さい場合送信し、右側を送信したい場合は1920以上のデータを送信するようにフィルタリングすることで実現できる。 +例えば、図\ref{fig:sendscreenimage}では、左側の画面を送信したいときは、x-positionが1920より小さい場合送信し、右側を送信したい場合は1920以上のデータを送信するようにフィルタリングすることで実現できる。 \newpage \subsection{表示画面の切り替え} ゼミなど発表者が多数いる状況でVNCを使用すると、発表者が切り替わるごとにサーバを立ち上げなおさなければならない。\\ -画面の切替手順を図\ref{fig:changevncserver}に示す。 + 画面の切替手順を図\ref{fig:changevncserver}に示す。 \begin{figure}[!htbp] \begin{center} @@ -99,8 +99,7 @@ 初めに、Root Nodeに対して画面を切り替える命令(1:changeVNCServer("10.3"))を出す。命令を受け取ったRoot Nodeは引数で受けっとた IPのコンピュータに対して、接続要求を出す(2:requestVNC())。要求を受け取ったコンピュータはが認証を承諾するとRoot Nodeに対して、接続要求を承諾したことを通知する(3:acceptConnection())。Root Nodeは元から通信していたネットワーク接続を閉じる命令を出す(4:CloseConnection())。最後に繋がっているNodeに新しい画面に切り替わったことを通知する(5:newServer())。 -newServer()の内部処理ををListing\ref{src:changescreen}に示す。これは、Root Nodeが子供に対して、画面の切り替えが起こったことを知らせるソースコードである。\\ -clientListは、現在接続されているクライアント情報が入っている。クライアントにそれぞれTCP接続を行い、サーバが変わったので接続し直させる命令を送信する。 +newServer()の内部処理ををListing\ref{src:changescreen}に示す。これは、Root Nodeが子供に対して、画面の切り替えが起こったことを知らせるソースコードである。clientListは、現在接続されているクライアント情報が入っている。クライアントにそれぞれTCP接続を行い、サーバが変わったので接続し直させる命令を送信する。 \begin{lstlisting}[language=java,frame=lrbt,label=src:changescreen,caption=画面が切り替わったことを知らせるプログラム,numbers=left] for (String client : clientList) { @@ -186,8 +185,8 @@ \end{lstlisting} Listing\ref{src:gethost}のif文の中でstrと受け取った値(recvPacket.getData())を比較しているが、このstrを任意に決めることで、strの情報を知らない人には一覧情報が提供されなくなる。 -一覧情報が提供されない場合はIPアドレスを直接指定しなければ接続することができないので、IPアドレスとstrを知らない人は接続することができないので、プライベートな画面共有を行うこともできるように実装している。 -Broadcast Packetを受け取ると、受け取ったIPアドレスに対し、TCPコネクションを張り、現在起動しているVNC Serverの一覧を送る(replayBroadcast())。 +一覧情報が提供されない場合はIPアドレスを直接指定しなければ接続することができないため、IPアドレスとstrを知らない人は接続することができないため、プライベートな画面共有を行うこともできるように実装している。 +Broadcast Packetを受け取ると、受け取ったIPアドレスに対し、TCPコネクションを張り、現在起動しているVNC Serverの一覧を送る(Listing\ref{src:getbroadcast})。 \begin{lstlisting}[language=java,frame=lrbt,label=src:getbroadcast,caption=Broadcastを受け取るプログラム,numbers=left] byte[] buf = new byte[BufSize]; byte[] resorve = new byte[BufSize]; @@ -211,7 +210,7 @@ \end{lstlisting} -Listing\ref{src:gethost}は、Root Nodeから受け取ったVNCServer一覧を表示する部分である。ここで使用されているtextは、javaのGUIコンポーネントであるJFrameを継承したクラスのインスタンスである。 +Listing\ref{src:getaddr}は、Root Nodeから受け取ったVNCServer一覧を表示する部分である。ここで使用されているtextは、javaのGUIコンポーネントであるJFrameを継承したクラスのインスタンスである。 \begin{lstlisting}[language=java,frame=lrbt,label=src:getaddr,caption=起動サーバ一覧を表示するプログラム,numbers=left] Socket socket = server.accept(); is = new BufferedReader(new InputStreamReader(
--- a/paper/chapter5.tex Tue Feb 04 08:50:46 2014 +0900 +++ b/paper/chapter5.tex Wed Feb 19 18:07:53 2014 +0900 @@ -1,6 +1,6 @@ \chapter{TreeVNCの新機能} -この章では、卒業論文のTreeVNCからの大きな変更点について述べる。 + この章では、卒業論文のTreeVNCからの大きな変更点について述べる。 \section{UIの拡張} TreeVNCをゼミで使用し、必要な機能や欲しい機能を洗い出し、実装を行った。
--- a/paper/chapter6.tex Tue Feb 04 08:50:46 2014 +0900 +++ b/paper/chapter6.tex Wed Feb 19 18:07:53 2014 +0900 @@ -21,10 +21,10 @@ \end{table} \subsection{CUI Versionの作成} TreeVNCはGUI(Graphical User Interface)を使用したアプリケーションである。並列計算環境はCUI(Character User Interface)なので、そのままだと実行することができない。\\ -そこで、TreeVNCからGUIを使用している部分を取り除いてCUI環境で実行できるようにする必要があったので作成することにした。\\ -Listing\ref{src:tree}はTreeVNCのMain文の一部である。ここで継承されているJAppletは、GUIのコンポーネントなので、このクラスを使用するとCUI環境で実行することができない。\\ -CUI環境で実行するにはJAppletを継承していないクラスを作成する必要があるが、Listing\ref{src:getclass}のようなViewerクラスを受け渡す場所をすべてでCUIとGUIのクラスに対応しなければならない。\\ -この問題に対して、CUIとGUIの共通Interface(Listing\ref{src:interface})を作成し、このInterfaceを利用することで解決した。 + そこで、TreeVNCからGUIを使用している部分を取り除いてCUI環境で実行できるようにする必要があったので作成することにした。\\ + Listing\ref{src:main}はTreeVNCのMain文の一部である。ここで継承されているJAppletは、GUIのコンポーネントなので、このクラスを使用するとCUI環境で実行することができない。\\ + CUI環境で実行するにはJAppletを継承していないクラスを作成する必要があるが、Listing\ref{src:getclass}のようなViewerクラスを受け渡す場所をすべてでCUIとGUIのクラスに対応しなければならない。\\ + この問題に対して、CUIとGUIの共通Interface(Listing\ref{src:interface})を作成し、このInterfaceを利用することで解決した。 \begin{lstlisting}[language=java,frame=lrbt,label=src:main,caption=TreeVNCのMainClass,numbers=left] @@ -55,8 +55,7 @@ \subsection{Capistrano} 今回の実験では、48台のサーバ上でCUI版のTreeVNCを立ち上げる必要がある。実験する度に、各サーバにログインしてアプリケーションを立ち上げるのは手間がかかりすぎてしまう。Capistranoを使用することで、この問題を解決することができる。\\ Capistranoは複数のサーバ上で同時に処理を実行するためのオープンソースなソフトウェアであり、Rubyを用いて作成されている。\\ - -Capistranoを実行する際に使用するスクリプトをListing\ref{src:capistrano}に示す。\\ + Capistranoを実行する際に使用するスクリプトをListing\ref{src:capistrano}に示す。\\ スクリプトはListing\ref{src:cap_run}として実行することができる。\\ @@ -80,7 +79,7 @@ そこで、木の深さによる遅延がどの程度発生するのかを測定してみた。 \subsection{遅延の測定方法} RFBプロトコルでは、送られてくるデータの先頭にどのような処理をするかの命令番号が入っている。\\ -表\ref{tb:message}は送られてくるメッセージの一覧である。\\ + 表\ref{tb:message}は送られてくるメッセージの一覧である。\\ 命令番号11(CheckDelay)はプロトコルを拡張して作成した命令である。 \begin{table}[htbp] @@ -117,7 +116,7 @@ \subsection{遅延の測定結果} 2分木で木を構成した場合、Node数が48台だと深さが6となる。\\ Root Nodeを起動し、並列計算環境48台を起動し、Root Nodeから一番下のNodeまでどのくらいの時間がかるのかを測定した。\\ -\ref{tab:delay} はデータを20回ほど測定し最遅値を取った遅延の表である。\\ +表\ref{tab:delay} はデータを20回ほど測定し最遅値を取った遅延の表である。\\ \begin{table}[!htbp] \caption{データ送信の遅延} \label{tab:delay} @@ -133,7 +132,7 @@ \begin{figure}[!htbp] \begin{flushleft} -\includegraphics[scale = 0.8]{images/graph-lost.pdf} +\includegraphics[scale = 0.8]{images/hist.pdf} \end{flushleft} \caption{ 段差(step)によるデータの遅延 @@ -153,7 +152,7 @@ \newpage \section{画面のフリーズ} データがTimeOutによってどの程度損失しているのかを調べてみた。\\ -今回、測定するために画像データのヘッダーの前にシリアルナンバーを付加した(Listing\ref{src:serial})。これによりNode側は、順番通りに画像が来なかった場合、データが損失したことを知ることができる。 + 今回、測定するために画像データのヘッダーの前にシリアルナンバーを付加した(Listing\ref{src:serial})。これによりNode側は、順番通りに画像が来なかった場合、データが損失したことを知ることができる。 Node側の確認用コードをListing\ref{src:timeout}に示す。このコードはRoot Nodeから流れてきたデータを受け取り自分の持っているcheckCounterと比較して、違う値が出ていればデータが損失していることになる。 \begin{lstlisting}[language=java,frame=lrbt,label=src:serial,caption=データの確認プログラム(Root Node側),numbers=left] @@ -181,7 +180,7 @@ \end{lstlisting} 現在の実装では、0.625秒データの読み込みがなければ、データをTimeOut Threadが読み込み、Node側には順番通りのデータが行かなくなるので画面がフリーズしたように見える。\\ -実験の結果、6段目のNodeでデータを受け取って表示してみた結果、データが損失するのを見ることができなかった。\\ + 実験の結果、6段目のNodeでデータを受け取って表示してみた結果、データが損失するのを見ることができなかった。\\ データがロストしなのは良いことであるが、その分Root Nodeのメモリ上にデータがあるので、Root NodeがMemoryOverFlowを起こす可能性がある。私のディスプレイ環境(1920*1080)では、MemoryOverFlowが起こることはなかったが、Retinaディスプレイなどの高解像度ディスプレイを使用している場合は、MemoryOverFlowを起こす可能性がある。TimeOutの時間は今後調整が必要である。 @@ -192,10 +191,11 @@ 分木数を変更してもコネクションの数はかわらないし、スイッチに対する負荷も変わらない。よって、100人程度で使用する場合は2分木が最適であるということがわかった。 \section{ZRLEとZRLEEのデータ圧縮率の比較} -作成したTreeVNCでは、従来のVNCで使用されているエンコードを使用しておらず、独自で作成しているZRLEEエンコードを使用している。\\一見ZRLEは辞書が一つでZRLEEは辞書が一つ一つの画像データに付加されていて、データ量はZRLEEのほうが多くなってしまっている可能性があるので、ZRLEEとZRLEのデータ量にどの程度の差が出るのかを調べてみた。 +作成したTreeVNCでは、従来のVNCで使用されているエンコードを使用しておらず、独自で作成しているZRLEEエンコードを使用している。\\ + 一見ZRLEは辞書が一つでZRLEEは辞書が一つ一つの画像データに付加されていて、データ量はZRLEEのほうが多くなってしまっている可能性があるので、ZRLEEとZRLEのデータ量にどの程度の差が出るのかを調べてみた。 全く圧縮されていないRAWデータ,Zlib圧縮を使用しているZRLEE、ZRLEのデータ量の比較を行った。 -図6は1920 * 1080の画面の全描画にかかるデータ量を測った結果を示した図である。 -ZRLEEの方がデータ量が少なくですんでいる(図\ref{fig:compare_encoding})。 +図\ref{fig:compare_encoding}は1920 * 1080の画面の全描画にかかるデータ量を測った結果を示した図である。 +ZRLEEの方がデータ量が少なくですんでいる。 これは、ZRLE(Zlib)が初めに送られた辞書を用いての解凍が余り有効的に働いていない場合があるからだと思われる。 つまりVNCの場合はZRLEEの様に毎回辞書のデータを付加させて送ってもデータ量に差がでない可能性があることが分かった。
--- a/paper/conclusion.tex Tue Feb 04 08:50:46 2014 +0900 +++ b/paper/conclusion.tex Wed Feb 19 18:07:53 2014 +0900 @@ -6,7 +6,7 @@ 実装を行っていく中で必要になる、新しいEncodingタイプZRLLEの開発、木の再構成の機能、MulticastQueue等の機能が必要だとわかったので、これらの設計を行い実装を行った。 更に、TreeVNCをゼミで使用した際、画面の切り替え機能、ディスプレイの指定機能などが必要だと感じたので、それらの設計、実装を行った。 検証では、学科で用意されている並列計算環境を使用して、木のRoot Nodeから一番下のNodeまでの画像送信の遅延やTimeOutThreadによる画像のロスト率の検証を行い、木の分岐数の最適化について考察を行った。 -それから、開発したエンコードZRLEEとZRLEのデータ量の比較を行った。 +さらに、開発したエンコードZRLEEとZRLEのデータ量の比較を行った。
--- a/paper/thanx.tex Tue Feb 04 08:50:46 2014 +0900 +++ b/paper/thanx.tex Wed Feb 19 18:07:53 2014 +0900 @@ -1,6 +1,6 @@ \chapter*{謝辞} \addcontentsline{toc}{chapter}{謝辞} -本研究を行うにあたり, ご多忙にも関わらず日頃より多くの助言, ご指導をいただきました河野真治助教授に心より感謝いたします.\\ +本研究を行うにあたり, ご多忙にも関わらず日頃より多くの助言, ご指導をいただきました河野真治准教授に心より感謝いたします.\\ 研究を行うにあたり, 並列計算環境の調整, 意見, 実装に協力いただいた大城信康さん並列信頼研究室の全てのメンバーに感謝いたします.\\ 最後に, 大学の修士まで支えてくれた家族の方々に深く感謝します.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/poster/master_poster.graffle/data.plist Wed Feb 19 18:07:53 2014 +0900 @@ -0,0 +1,4234 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>ActiveLayerIndex</key> + <integer>0</integer> + <key>ApplicationVersion</key> + <array> + <string>com.omnigroup.OmniGraffle</string> + <string>139.18.0.187838</string> + </array> + <key>AutoAdjust</key> + <true/> + <key>BackgroundGraphic</key> + <dict> + <key>Bounds</key> + <string>{{0, 0}, {2027.6220703125, 2860.68505859375}}</string> + <key>Class</key> + <string>SolidGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>28</real> + </dict> + <key>ID</key> + <integer>2</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <key>BaseZoom</key> + <integer>0</integer> + <key>CanvasOrigin</key> + <string>{0, 0}</string> + <key>ColumnAlign</key> + <integer>1</integer> + <key>ColumnSpacing</key> + <real>36</real> + <key>CreationDate</key> + <string>2012-01-04 16:02:58 +0000</string> + <key>Creator</key> + <string>Daichi TOMA</string> + <key>DisplayScale</key> + <string>1.000 cm = 1.000 cm</string> + <key>GraphDocumentVersion</key> + <integer>8</integer> + <key>GraphicsList</key> + <array> + <dict> + <key>Bounds</key> + <string>{{29.144315384406468, 2341.816650390625}, {945.69140625, 461.18045043945312}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1268</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf0 \'81\'45\'8f\'e3\'8d\'b6\'90\'7d\'82\'cc\'82\'e6\'82\'a4\'82\'c8\'90\'d8\'82\'e8\'91\'d6\'82\'a6\'82\'aa\'94\'ad\'90\'b6\'82\'b5\'82\'bd\'8f\'ea\'8d\'87\'81\'41\'8e\'9f\'82\'cc\'82\'e6\'82\'a4\'82\'c8\'8e\'e8\ +\'81\'40\'8f\'87\'82\'c5\'89\'e6\'96\'ca\'82\'cc\'90\'d8\'91\'d6\'82\'f0\'8d\'73\'82\'a4(\'8f\'e3\'89\'45\'90\'7d)\'81\'42\ +1.\'82\'dc\'82\'b8\'81\'41\'90\'da\'91\'b1\'82\'f0\'8a\'c7\'97\'9d\'82\'b5\'82\'c4\'82\'a2\'82\'e9Root Node\'82\'c9\'91\'ce\'82\'b5\'82\'c4\'89\'e6\'96\'ca\'95\'cf\'8d\'58\ +\'81\'40\'82\'cc\'97\'76\'8b\'81\'82\'f0\'8f\'6f\'82\'b7\ +2. Root Node\'82\'cd\'8e\'77\'92\'e8\'82\'b3\'82\'ea\'82\'bd\'89\'e6\'96\'ca\'82\'d6\'82\'cc\'90\'da\'91\'b1\'82\'f0\'8d\'73\'82\'a4\ +3. Root Node\'82\'cd\'8e\'67\'97\'70\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'83\'58\'83\'67\'83\'8a\'81\'5b\'83\'80\'82\'f0\'95\'c2\'82\'b6\'82\'e9\ +4. Node\'82\'bd\'82\'bf\'82\'c9\'90\'56\'82\'b5\'82\'a2\'89\'e6\'96\'ca\'82\'cc\'8f\'ee\'95\'f1\'82\'f0\'93\'60\'82\'a6\'82\'e9\ +\'8f\'e3\'8b\'4c\'82\'cc\'95\'fb\'96\'40\'82\'f0\'97\'70\'82\'a2\'82\'e9\'82\'b1\'82\'c6\'82\'c5\'81\'41Node\'82\'cc\'83\'67\'83\'7c\'83\'8d\'83\'57\'82\'f0\'95\'cf\'8d\'58\'82\'b7\'82\'e9\'82\'b1\'82\'c6\'82\'c8\'82\'ad\'89\'e6\'96\'ca\'82\'cc\'90\'d8\'91\'d6\'82\'f0\'8d\'73\'82\'a4\'82\'b1\'82\'c6\'82\'aa\'82\'c5\'82\'ab\'82\'e9}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{38.859079998498885, 2325.8259630817311}, {945.69140625, 468.44192970482601}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1267</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{29.144312242736419, 1814.7903154008791}, {945.69140625, 143.29535136988582}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1101</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf0 \'81\'45\'94\'ad\'95\'5c\'8e\'d2\'82\'aa\'91\'bd\'90\'94\'82\'a2\'82\'e9\'8f\'ea\'8d\'87\'81\'41\'94\'ad\'95\'5c\'8e\'d2\'82\'aa\'95\'cf\'82\'ed\'82\'e9\'82\'bd\'82\'d1\'82\'c9\'81\'41\'83\'4e\'83\'89\'83\'43\ +\'81\'40\'83\'41\'83\'93\'83\'67\'82\'cd\'90\'da\'91\'b1\'82\'b5\'92\'bc\'82\'b7\'95\'4b\'97\'76\'82\'aa\'82\'a0\'82\'e9}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{381.87405205103482, 1873.3748393192341}, {621.77685546875, 468.44192970482601}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1266</integer> + <key>ImageID</key> + <integer>7</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1264</integer> + </dict> + <key>ID</key> + <integer>1256</integer> + <key>Points</key> + <array> + <string>{279.43969774455178, 2010.8246972382412}</string> + <string>{216.78691725958669, 2061.8420781140849}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>HeadScale</key> + <real>2.2142860889434814</real> + <key>Legacy</key> + <true/> + <key>Pattern</key> + <integer>11</integer> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>4</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1258</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Bounds</key> + <string>{{269.15618348468183, 1936.4641758174796}, {92.290321350097656, 90.317656436763826}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1258</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.811765</string> + <key>g</key> + <string>0.435294</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 Next\ +VNC\ +Serve}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1262</integer> + </dict> + <key>ID</key> + <integer>1259</integer> + <key>Points</key> + <array> + <string>{210.31064099017505, 2126.5317832764849}</string> + <string>{265.71670865490387, 2193.4451679867325}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>HeadScale</key> + <real>2.2142860889434814</real> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>4</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1264</integer> + </dict> + </dict> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1263</integer> + </dict> + <key>ID</key> + <integer>1260</integer> + <key>Points</key> + <array> + <string>{152.94303875994467, 2127.5868204180724}</string> + <string>{103.27970624237216, 2192.3898280688832}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>HeadScale</key> + <real>2.2142860889434814</real> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>4</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1264</integer> + </dict> + </dict> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1264</integer> + </dict> + <key>ID</key> + <integer>1261</integer> + <key>Points</key> + <array> + <string>{180.93761202917548, 2027.2819635829017}</string> + <string>{180.93761202917548, 2045.3993816432549}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>HeadScale</key> + <real>2.2142860889434814</real> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>4</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1265</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{248.94099925915305, 2183.762749739536}, {92.290321350097656, 90.317656436763826}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1262</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.4</string> + <key>g</key> + <string>0.8</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 Node}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{29.144311095182474, 2183.7627688578286}, {92.290321350097656, 90.317656436763826}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1263</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.4</string> + <key>g</key> + <string>0.8</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 Node}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{134.79243384979912, 2045.8994042163492}, {92.290321350097656, 90.317656436763826}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1264</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.4</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>0.8</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 Root\ +Node}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{134.79244297510189, 1936.4642845730391}, {92.290321350097656, 90.317656436763826}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1265</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.811765</string> + <key>g</key> + <string>0.435294</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 VNC\ +Serve}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + </array> + <key>ID</key> + <integer>1257</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{1024.0783935826075, 2533.1400180560913}, {977.54876708984375, 272}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1189</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf0 \'81\'45iPad\'81\'45\'96\'b3\'90\'fc\'82\'d6\'82\'cc\'91\'ce\'89\'9e\ +\'81\'40\'93\'c6\'8e\'a9\'82\'cc\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'68\'82\'f0\'8e\'67\'97\'70\'82\'b5\'82\'c4\'82\'a2\'82\'e9\'82\'cc\'82\'c5\'81\'41\'88\'ea\'94\'ca\'82\'c5\'8e\'67\'97\'70\'82\'b3\'82\'ea\'82\'c4\ +\'81\'40\'82\'a2\'82\'e9\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'68\'82\'d6\'8b\'74\'95\'cf\'8a\'b7\'82\'b7\'82\'e9\'95\'4b\'97\'76\'82\'aa\'82\'a0\'82\'e9\ +\'81\'45Multicast\'82\'f0\'97\'70\'82\'a2\'82\'bd\'83\'66\'81\'5b\'83\'5e\'93\'5d\'91\'97\ +\'81\'45\'89\'e6\'96\'ca\'94\'cd\'88\'cd\'82\'cc\'8e\'77\'92\'e8\'8b\'40\'94\'5c}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1020.0147683073671, 2527.4967689888645}, {994.98516845703114, 272}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1188</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1187</integer> + <key>Points</key> + <array> + <string>{1044.8196564781604, 2488.0626371936478}</string> + <string>{1087.2392840389305, 2487.4468521786921}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1186</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1186</integer> + <key>Points</key> + <array> + <string>{1038.0044664346922, 2508.9551627042056}</string> + <string>{1051.9120521306818, 2466.3203150931381}</string> + <string>{1074.3930178904766, 2466.3203150931381}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1185</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1185</integer> + <key>Points</key> + <array> + <string>{1024.0784754756983, 2508.5733892642434}</string> + <string>{1064.1667024749786, 2509.6723861233231}</string> + <string>{1078.6751066066281, 2508.5733892642434}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1103.0257799560191, 2459.7520176490375}, {843.98895263671875, 83.582667871569939}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>1184</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs96 \cf1 \'8d\'a1\'8c\'e3\'82\'cc\'89\'db\'91\'e8}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1020.0147506772284, 2448.5576991970142}, {994.98516845703114, 78.939186323149386}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1183</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.6</string> + <key>r</key> + <string>0.2</string> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1541.9875472481447, 759.14102591916344}, {49.181015014648438, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W6</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>1169</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs48 \cf0 y}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1958.7406519805781, 1062.9071284740771}, {30.358657836914062, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W6</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>1170</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs48 \cf0 X}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1171</integer> + <key>Points</key> + <array> + <string>{1566.0780976240919, 1082.9411033641286}</string> + <string>{1946.597195810006, 1082.9411033641286}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1172</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1172</integer> + <key>Points</key> + <array> + <string>{1566.0780976240919, 1082.9411033641286}</string> + <string>{1566.0780976240919, 795.14101996710701}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1031.3370065564609, 745.14092001202289}, {552.170654296875, 434}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1159</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf0 \'81\'45VNC\'82\'c5\'82\'cd\'81\'41\'8d\'b6\'90\'7d\'82\'cc\'82\'e6\'82\'a4\'82\'c9\'82\'51\'82\'c2\ +\'81\'40\'82\'cc\'89\'e6\'96\'ca\'82\'c9\'8c\'d2\'82\'aa\'82\'e9\'89\'e6\'91\'9c\'8d\'58\'90\'56\'83\'66\'81\'5b\ +\'81\'40\'83\'5e\'82\'aa\ +\'81\'45\'83\'77\'83\'62\'83\'5f\'82\'a9\'82\'e7\'89\'e6\'91\'9c\'82\'ccX-position\ +\'81\'40\'82\'f0\'8e\'e6\'93\'be\'82\'b5\'81\'41\'83\'74\'83\'42\'83\'8b\'83\'5e\'83\'8a\'83\'93\'83\'4f\'82\'b7\ +\'81\'40\'82\'e9\'82\'b1\'82\'c6\'82\'c5\'88\'ea\'82\'c2\'82\'cc\'83\'66\'83\'42\'83\'58\'83\'76\'83\'8c\'83\'43\ +\'81\'40\'8f\'ee\'95\'f1\'82\'f0\'91\'97\'90\'4d\'82\'b7\'82\'e9\'82\'b1\'82\'c6\'82\'aa\'82\'c5\'82\'ab\'82\'e9\ +}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1531.2907390871103, 782.28979256368609}, {476.02377319335938, 314.50247192382812}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1173</integer> + <key>ImageID</key> + <integer>6</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1150.9159503019737, 1793.5895374055517}, {700.6778564453125, 439.85800170898438}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1157</integer> + <key>ImageID</key> + <integer>5</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1028.7329591321779, 2259.8985451555213}, {977.54876708984375, 164}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1156</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf0 \'81\'45\'82\'d9\'82\'c6\'82\'f1\'82\'c7\'82\'cc\'83\'66\'81\'5b\'83\'5e\'82\'cc\'92\'78\'89\'84\'82\'aa1~100\'83\'7e\'83\'8a\'95\'62\'82\'c9\'8e\'fb\'82\'dc\'82\'c1\'82\'c4\'82\'a2\'82\'e9\ +\'81\'45\'96\'d8\'82\'cc\'90\'5b\'82\'b3\'82\'f05\'92\'69\'82\'c9\'82\'b5\'82\'c4\'82\'e00.5\'95\'62\'88\'c8\'8f\'e3\'82\'cc\'92\'78\'89\'84\'82\'aa\'94\'ad\'90\'b6\'82\'b5\'82\'c4\'82\'a2\'82\'c8\'82\'a2\ +\'81\'40\'82\'cc\'82\'c5\'81\'41100\'90\'6c\'92\'f6\'93\'78\'82\'c5\'8e\'67\'97\'70\'82\'b7\'82\'e9\'8f\'ea\'8d\'87\'82\'cd2\'95\'aa\'96\'d8\'82\'aa\'8d\'c5\'93\'4b\'82\'c5\'82\'a0\'82\'e9}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1024.0784321712463, 1681.8696856745821}, {977.54876708984375, 110}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1154</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf0 \'81\'45\'89\'ba\'82\'cc\'83\'4f\'83\'89\'83\'74\'82\'cd\'81\'41\'88\'ea\'94\'d4\'8f\'e3\'82\'a9\'82\'e7\'88\'ea\'94\'d4\'89\'ba\'82\'ccNode\'82\'d6\'83\'66\'81\'5b\'83\'5e\'82\'aa\'93\'cd\'82\'ad\'81\'40\ +\'81\'40\'82\'dc\'82\'c5\'82\'cc\'92\'78\'89\'84\'82\'cc\'95\'aa\'95\'7a\'82\'f0\'95\'5c\'8e\'a6\'82\'b5\'82\'bd\'83\'71\'83\'58\'83\'67\'83\'4f\'83\'89\'83\'80\'82\'c5\'82\'a0\'82\'e9}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1298.1362839297699, 1870.4503298785824}, {2, 13}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>Flow</key> + <string>Resize</string> + <key>ID</key> + <integer>1150</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs24 \cf0 }</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + <key>Wrap</key> + <string>NO</string> + </dict> + <dict> + <key>Bounds</key> + <string>{{1057.2701625916404, 1398.260486447776}, {445.66510009765625, 380}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1149</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf0 \'81\'45\'8d\'b6\'82\'cc\'95\'5c\'82\'cd\'81\'41\'88\'ea\'94\'d4\'8f\'e3\'82\'a9\'82\'e7\'88\'ea\ +\'81\'40\'94\'d4\'89\'ba\'82\'ccNode\'82\'d6\'83\'66\'81\'5b\'83\'5e\'82\'aa\ +\'81\'40\'93\'cd\'82\'ad\'82\'dc\'82\'c5\'82\'cc\'92\'78\'89\'84\'82\'cc\'92\'86\'82\'c5\'81\'41\ +\'81\'40\'88\'ea\'94\'d4\'92\'78\'82\'a2\'92\'6c\'82\'f0\'8e\'a6\'82\'b5\'82\'bd\'82\'e0\'82\'cc\ +\'81\'40\'82\'c5\'82\'a0\'82\'e9\ +\ +}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Bounds</key> + <string>{{1735.15881788866, 1563.2697955658871}, {205.08229049111637, 60.668166411600893}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1175</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs60 \cf0 446\'83\'7e\'83\'8a\'95\'62}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1530.0764442350339, 1563.26985327032}, {205.08229049111637, 60.668166411600893}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1176</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs60 \cf0 5}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1735.1587188300737, 1502.6016571928935}, {205.08229049111637, 60.668166411600893}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1177</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs60 \cf0 244\'83\'7e\'83\'8a\'95\'62}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1530.0764355282136, 1502.6016209234544}, {205.08229049111637, 60.668166411600893}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1178</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs60 \cf0 3}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1735.1588178886605, 1441.93350210622}, {205.08229049111637, 60.668166411600893}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1179</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs60 \cf0 32\'83\'7e\'83\'8a\'95\'62}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1530.0765345868003, 1441.9334658367807}, {205.08229049111637, 60.668166411600893}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1180</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs60 \cf0 1}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1735.1587917681966, 1381.2652959415952}, {205.08229049111637, 60.668166411600893}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1181</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs72 \cf0 \'8d\'c5\'92\'78\'92\'6c}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1530.0765084663374, 1381.2652596721566}, {205.08229049111637, 60.668166411600893}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1182</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs72 \cf0 \'92\'69\'90\'94}</string> + </dict> + </dict> + </array> + <key>ID</key> + <integer>1174</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{1330.9236352028486, 1319.7677801514728}, {332.69940185546875, 56}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1137</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue0;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf2 \'96\'d8\'82\'cc\'90\'5b\'82\'b3\'82\'c9\'82\'e6\'82\'e9\'92\'78\'89\'84}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1057.2701562517918, 1217.4855206225195}, {920.47454833984375, 110}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1134</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf0 \'81\'45\'8a\'77\'89\'c8\'82\'cc\'95\'c0\'97\'f1\'8c\'76\'8e\'5a\'8a\'c2\'8b\'ab\'82\'c6OS\'82\'cc\'8e\'f6\'8b\'c6\'82\'f0\'8e\'d8\'82\'e8\'82\'c4\'90\'ab\'94\'5c\'82\'cc\'95\'5d\'89\'bf\'82\'f0\ +\'81\'40\'8d\'73\'82\'c1\'82\'bd}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1132</integer> + <key>Points</key> + <array> + <string>{1045.1414333950781, 2279.9403078369246}</string> + <string>{1087.2392651889099, 2280.2627167000614}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1131</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1131</integer> + <key>Points</key> + <array> + <string>{1038.0020772556977, 2298.7904057367978}</string> + <string>{1051.912033280661, 2262.0638399604832}</string> + <string>{1074.3929990404558, 2262.0638399604832}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1130</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1130</integer> + <key>Points</key> + <array> + <string>{1024.0784566256771, 2298.4615934396393}</string> + <string>{1064.1666836249583, 2299.4082941835691}</string> + <string>{1078.6750877566074, 2298.4615934396393}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1127</integer> + <key>Points</key> + <array> + <string>{1045.1416333301713, 1167.3053399041075}</string> + <string>{1087.2394651240029, 1167.6277487672442}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1126</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1126</integer> + <key>Points</key> + <array> + <string>{1038.0022771907909, 1186.1554378039805}</string> + <string>{1051.9122332157542, 1149.4288720276663}</string> + <string>{1074.3931989755488, 1149.4288720276663}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1125</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1125</integer> + <key>Points</key> + <array> + <string>{1024.0786565607707, 1185.8266255068222}</string> + <string>{1064.166883560051, 1186.773326250752}</string> + <string>{1078.6752876917003, 1185.8266255068222}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1103.025961041091, 1143.7707920929365}, {843.98895263671875, 72}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>1124</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs96 \cf1 \'95\'5d\'89\'bf}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1020.0149317623008, 1134.1277530625941}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1123</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.6</string> + <key>r</key> + <string>0.2</string> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1020.014771149331, 1172.1225844184974}, {994.98516845703114, 1262.641845703125}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1118</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1117</integer> + <key>Points</key> + <array> + <string>{38.931715435008059, 1762.4008885338073}</string> + <string>{81.224562779057337, 1762.1886414132707}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1116</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1116</integer> + <key>Points</key> + <array> + <string>{31.988697403392706, 1782.4322454191704}</string> + <string>{45.897330870808631, 1742.3043356967912}</string> + <string>{68.378296630603202, 1742.3043356967912}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1115</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1115</integer> + <key>Points</key> + <array> + <string>{18.063754215825149, 1782.07294712975}</string> + <string>{58.151981215105465, 1783.1073234422938}</string> + <string>{72.660385346754765, 1782.07294712975}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{97.011058696145938, 1736.1222513406854}, {843.98895263671875, 78.668042653039706}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>1114</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs96 \cf1 \'89\'e6\'96\'ca\'90\'d8\'82\'e8\'91\'d6\'82\'a6\'8b\'40\'94\'5c\'82\'cc\'8e\'c0\'91\'95}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{14.000029417355449, 1725.5861540386866}, {994.98516845703114, 74.297595838981934}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1113</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.6</string> + <key>r</key> + <string>0.2</string> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{97.011041845471141, 1747.1420251236391}, {843.98895263671875, 163.26446432365668}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>1100</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs96 \cf1 \'8c\'a4\'8b\'86\'8a\'54\'97\'76}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{14.000012566680653, 1800.4096292535694}, {994.98516845703114, 999.08716931636661}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1098</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{38.859082990315251, 1064.553050516435}, {494.11065673828125, 542}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1093</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue0;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf0 \'81\'45\'88\'ea\'8b\'c9\'8f\'57\'92\'86\'82\'c9\'82\'e6\'82\'e9\'95\'89\'89\'d7\'82\'f0\'95\'aa\'8e\'55\ +\'81\'40\'82\'b3\'82\'b9\'82\'e9\'82\'bd\'82\'df\'82\'c9\'83\'4e\'83\'89\'83\'43\'83\'41\'83\'93\'83\'67\ +\'81\'40\'82\'f0\cf2 \'96\'d8\'8d\'5c\'91\'a2\cf0 \'82\'c9\'90\'da\'91\'b1\'82\'b3\'82\'b9\'95\'89\'89\'d7\ +\'81\'40\'82\'f0\'95\'aa\'8e\'55\'82\'b3\'82\'b9\'82\'e9\ +\'81\'45\'83\'4e\'83\'89\'83\'43\'83\'41\'83\'93\'83\'67\'82\'cc\'83\'67\'83\'7c\'83\'8d\'83\'57\'82\'f0\ +\'81\'40\'8a\'c7\'97\'9d\'82\'b7\'82\'e9\'82\'bd\'82\'df\'82\'c9Root Node\ +\'81\'40\'82\'f0\'90\'dd\'92\'75\'82\'b7\'82\'e9\ +\'81\'45Node\'82\'cd\'81\'41Root Node\'82\'c9\'90\'da\ +\'81\'40\'91\'b1\'82\'f0\'8d\'73\'82\'a2\'81\'41\'8e\'77\'92\'e8\'82\'b3\'82\'ea\'82\'bd\'8f\'ea\'8f\'8a\ +\'81\'40\'82\'c9\'8c\'71\'82\'aa\'82\'e9}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1197</integer> + </dict> + <key>ID</key> + <integer>1191</integer> + <key>Points</key> + <array> + <string>{917.55793084733773, 1395.9747046073044}</string> + <string>{889.38942745042027, 1466.7311981102557}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>HeadScale</key> + <real>2.2142860889434814</real> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>4</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1200</integer> + </dict> + </dict> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1198</integer> + </dict> + <key>ID</key> + <integer>1192</integer> + <key>Points</key> + <array> + <string>{730.4946125163159, 1395.9102002303941}</string> + <string>{759.07965469952842, 1466.7958063068797}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>HeadScale</key> + <real>2.2142860889434814</real> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>4</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1201</integer> + </dict> + </dict> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1199</integer> + </dict> + <key>ID</key> + <integer>1193</integer> + <key>Points</key> + <array> + <string>{694.4841969318411, 1394.7009369365696}</string> + <string>{658.29762891660755, 1468.0050604754056}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>HeadScale</key> + <real>2.2142860889434814</real> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>4</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1201</integer> + </dict> + </dict> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1200</integer> + </dict> + <key>ID</key> + <integer>1194</integer> + <key>Points</key> + <array> + <string>{849.06463128459529, 1257.3629382312054}</string> + <string>{904.45147877617615, 1321.2206416912732}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>HeadScale</key> + <real>2.2142860889434814</real> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>4</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1202</integer> + </dict> + </dict> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1201</integer> + </dict> + <key>ID</key> + <integer>1195</integer> + <key>Points</key> + <array> + <string>{791.68148906923011, 1258.3711735187242}</string> + <string>{742.0379328275709, 1320.2124246543628}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>HeadScale</key> + <real>2.2142860889434814</real> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>4</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1202</integer> + </dict> + </dict> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1202</integer> + </dict> + <key>ID</key> + <integer>1196</integer> + <key>Points</key> + <array> + <string>{819.68378145101178, 1162.6294792816732}</string> + <string>{819.68378145101178, 1179.8792549238851}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>HeadScale</key> + <real>2.2142860889434814</real> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>4</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1203</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{826.96985988764641, 1464.5015992941753}, {92.290321350097656, 86.218597412109375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1197</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.4</string> + <key>g</key> + <string>0.8</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 Node}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{729.39345696970327, 1464.5016848632808}, {92.290321350097656, 86.218597412109375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1198</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.4</string> + <key>g</key> + <string>0.8</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 Node}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{592.6010156023076, 1464.5016757379822}, {92.290321350097656, 86.218597412109375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1199</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.4</string> + <key>g</key> + <string>0.8</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 Node}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{887.68717706001394, 1311.9857060112754}, {92.290321350097656, 86.218597412109375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1200</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.4</string> + <key>g</key> + <string>0.8</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 Node}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{667.89048889604339, 1311.9857242618837}, {92.290321350097656, 86.218597412109375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1201</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.4</string> + <key>g</key> + <string>0.8</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 Node}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{773.53861165066007, 1180.379276499094}, {92.290321350097656, 86.218597412109375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1202</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.4</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>0.8</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 Root\ +Node}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{773.53862077596295, 1075.9108602943534}, {92.290321350097656, 86.218597412109375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1203</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.811765</string> + <key>g</key> + <string>0.435294</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuStdN-W8;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\b\fs32 \cf0 VNC\ +Serve}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + </array> + <key>ID</key> + <integer>1190</integer> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1050</integer> + <key>Points</key> + <array> + <string>{39.126701287222822, 983.22513264987265}</string> + <string>{81.22453308105446, 983.54754151300938}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1049</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1049</integer> + <key>Points</key> + <array> + <string>{31.987345147842341, 1002.0752305497458}</string> + <string>{45.89730117280584, 965.34866477343132}</string> + <string>{68.37826693260044, 965.34866477343132}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1048</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1048</integer> + <key>Points</key> + <array> + <string>{18.063724517822088, 1001.7464182525873}</string> + <string>{58.151951517102503, 1002.6931189965176}</string> + <string>{72.660355648751818, 1001.7464182525873}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{29.144311222648469, 1606.5531005859375}, {941.11841643988441, 110}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1047</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue0;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf0 \'81\'45\'82\'b1\'82\'cc\'82\'e6\'82\'a4\'82\'c9\'95\'89\'89\'d7\'82\'f0\'95\'aa\'8e\'55\'82\'b7\'82\'e9\'82\'b1\'82\'c6\'82\'c5\'81\'41\cf2 \'91\'bd\'90\'6c\'90\'94\'82\'d6\'93\'af\'8e\'9e\cf0 \'82\'c9\'81\'41\ +\'81\'40\cf2 \'8d\'82\'89\'f0\'91\'9c\'93\'78\'82\'cc\'89\'e6\'96\'ca\cf0 \'82\'f0\'94\'7a\'90\'4d\'82\'b7\'82\'e9\'82\'b1\'82\'c6\'82\'aa\'82\'c5\'82\'ab\'82\'e9}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{97.011028998142933, 959.69058483870174}, {843.98895263671875, 72}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>1046</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs96 \cf1 TreeVNC\'82\'cc\'8d\'5c\'90\'ac}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{13.999999719352502, 950.04754580835936}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1045</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.6</string> + <key>r</key> + <string>0.2</string> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{13.999999719352502, 1018.0475463867188}, {994.98516845703114, 691.7520751953125}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1044</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1039</integer> + <key>Points</key> + <array> + <string>{1045.1414728933676, 487.34311929082259}</string> + <string>{1087.2393046871991, 487.66552815395931}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1038</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1038</integer> + <key>Points</key> + <array> + <string>{1038.0021167539871, 506.19321719069558}</string> + <string>{1051.9120727789505, 469.46665141438137}</string> + <string>{1074.393038538745, 469.46665141438137}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1037</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1037</integer> + <key>Points</key> + <array> + <string>{1024.0784961239669, 505.86440489353731}</string> + <string>{1064.1667231232473, 506.81110563746711}</string> + <string>{1078.6751272548966, 505.86440489353731}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1031.336988305854, 535.80859375}, {965.04840087890625, 218}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>1036</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs72 \cf0 \'81\'45\'8a\'4f\'95\'94\'83\'66\'83\'42\'83\'58\'83\'76\'83\'8c\'83\'43\'82\'c8\'82\'c7\'82\'f0\'8e\'67\'97\'70\'82\'b5\'82\'c4\'81\'41\'89\'e6\'96\'ca\'82\'aa\'95\'a1\'90\'94\'82\'a0\'82\'e9\'8f\'ea\'8d\'87\'81\'41\ +\'81\'40\'91\'53\'89\'e6\'96\'ca\'82\'cc\'8f\'ee\'95\'f1\'82\'aa\'91\'97\'82\'e7\'82\'ea\'82\'c4\'82\'b5\'82\'dc\'82\'a4\ +\'81\'45\'83\'5b\'83\'7e\'82\'c8\'82\'c7\'82\'c5\'94\'ad\'95\'5c\'82\'c9\'8e\'67\'97\'70\'82\'b7\'82\'e9\'83\'66\'83\'42\'83\'58\'83\'76\'83\'8c\'83\'43\'82\'cd\'88\'ea\'82\'c2\'82\'c5\'82\'a0\'82\'e9\'82\'b1\ +\'81\'40\'82\'c6\'82\'aa\'91\'bd\'82\'a2}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1103.0258006042877, 463.80857147965168}, {843.98895263671875, 72}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>1035</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs96 \cf1 \'83\'7d\'83\'8b\'83\'60\'83\'66\'83\'42\'83\'58\'83\'76\'83\'8c\'83\'43\'82\'d6\'82\'cc\'91\'ce\'89\'9e}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1020.0147713254972, 454.1655324493093}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1034</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.6</string> + <key>r</key> + <string>0.2</string> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{1020.0147713254971, 522.16552734375}, {994.98516845703114, 597.4617919921875}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1033</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1032</integer> + <key>Points</key> + <array> + <string>{39.12670128722305, 487.34312556363773}</string> + <string>{81.224533081054688, 487.6655344267744}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1031</integer> + <key>Position</key> + <real>0.32640770077705383</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1031</integer> + <key>Points</key> + <array> + <string>{31.987345147842568, 506.19322346351072}</string> + <string>{45.89730117280606, 469.46665768719646}</string> + <string>{68.378266932600667, 469.46665768719646}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1030</integer> + <key>Position</key> + <real>0.25490197539329529</real> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>1030</integer> + <key>Points</key> + <array> + <string>{18.063724517822315, 505.8644111663524}</string> + <string>{58.151951517102724, 506.81111191028231}</string> + <string>{72.660355648752045, 505.8644111663524}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{110.54030484860618, 337.58828347836419}, {806.52337646484375, 96}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>13</real> + </dict> + <key>ID</key> + <integer>24</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs128 \cf1 \'92\'4a\'90\'ac \'97\'59 (\'95\'c0\'97\'f1\'90\'4d\'97\'8a\'8c\'a4\'8b\'86\'8e\'ba)}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{45.790769541536349, 554.74955275370053}, {909.8997802734375, 386}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>989</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue0;\red204\green102\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs64 \cf0 \'81\'45\'91\'bd\'90\'6c\'90\'94\'82\'c5\'90\'da\'91\'b1\'82\'b7\'82\'e9\'82\'b1\'82\'c6\'82\'aa\'89\'c2\'94\'5c\'82\'c8\'89\'e6\'96\'ca\'8b\'a4\'97\'4c\'83\'56\'83\'58\'83\'65\'83\'80\cf2 TreeVNC\'82\'cc\ +\'81\'40\'8a\'4a\'94\'ad\cf0 \'82\'f0\'8d\'73\'82\'c1\'82\'bd\ +\'81\'45\'94\'ad\'95\'5c\'8e\'d2\'82\'aa\'91\'bd\'90\'94\'82\'a2\'82\'e9\'8f\'ea\'8d\'87\'82\'c9\'8e\'67\'97\'70\'82\'b5\'88\'d5\'82\'ad\'82\'b7\'82\'e9\'82\'bd\'82\'df\'82\'c9\'81\'41\cf2 \'89\'e6\'96\'ca\'82\'cc\'90\'d8\'82\'e8\ +\'81\'40\'91\'d6\'82\'a6\'8b\'40\'94\'5c\cf0 \'82\'f0\'8e\'c0\'91\'95\'82\'b5\'82\'bd\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\cf3 new\cf0 \ +\'81\'45\cf2 \'83\'7d\'83\'8b\'83\'60\'83\'66\'83\'42\'83\'58\'83\'76\'83\'8c\'83\'43\'82\'c9\'91\'ce\'89\'9e\cf0 \'82\'b7\'82\'e9\'82\'bd\'82\'df\'82\'c9\'88\'ea\'82\'c2\'82\'cc\'89\'e6\'96\'ca\'82\'f0\'95\'5c\'8e\'a6\'82\'b7\'82\'e9\ +\'81\'40\'8b\'40\'94\'5c\'82\'f0\'8e\'c0\'91\'95\'82\'b5\'82\'bd \'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\cf3 new\cf0 \ +\'81\'45\'83\'75\'83\'8c\'81\'5b\'83\'68\'8f\'e3\'82\'c5\'90\'ab\'94\'5c\'82\'cc\'91\'aa\'92\'e8\'82\'f0\'8d\'73\'82\'c1\'82\'bd\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\'81\'40\cf3 new\cf0 \ +}</string> + <key>VerticalPad</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{110.54030885183316, 67.011042055309161}, {1850.97509765625, 250}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>HiraKakuProN-W6</string> + <key>Size</key> + <real>110</real> + </dict> + <key>ID</key> + <integer>5</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\slleading-800\pardirnatural + +\f0\b\fs220 \cf1 \'8e\'f6\'8b\'c6\'82\'e2\'83\'5b\'83\'7e\'8c\'fc\'82\'af\'82\'cc\'89\'e6\'96\'ca\'8b\'a4\'97\'4c\'83\'56\'83\'58\'83\'65\'83\'80\ +TreeVNC\'82\'cc\'90\'dd\'8c\'76\'82\'c6\'8e\'c0\'91\'95}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{14, 14.786078060684758}, {2001.00004626803, 422.37860107421875}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>10</real> + </dict> + <key>ID</key> + <integer>23</integer> + <key>IsLocked</key> + <string>YES</string> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.913725</string> + <key>g</key> + <string>0.627451</string> + <key>r</key> + <string>0</string> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.72549</string> + <key>g</key> + <string>0.419608</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{97.011028998143161, 463.80857775246676}, {843.98895263671875, 72}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + <key>Font</key> + <string>HiraKakuProN-W3</string> + <key>Size</key> + <real>48</real> + </dict> + <key>ID</key> + <integer>10</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Align</key> + <integer>0</integer> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs96 \cf1 \'8c\'a4\'8b\'86\'8a\'54\'97\'76}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{13.999999719352729, 454.16553872212438}, {994.98516845703114, 68}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>29</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.6</string> + <key>r</key> + <string>0.2</string> + </dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.8</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{13.999999719352729, 522.16553872212455}, {994.98516845703114, 411}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>27</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>0.5</real> + </dict> + </dict> + </dict> + </array> + <key>GridInfo</key> + <dict> + <key>GridSpacing</key> + <real>35.433071136474609</real> + <key>ShowsGrid</key> + <string>YES</string> + </dict> + <key>GuidesLocked</key> + <string>NO</string> + <key>GuidesVisible</key> + <string>YES</string> + <key>HPages</key> + <integer>1</integer> + <key>ImageCounter</key> + <integer>8</integer> + <key>ImageLinkBack</key> + <array> + <dict/> + <dict/> + <dict/> + </array> + <key>ImageList</key> + <array> + <string>image7.pdf</string> + <string>image6.pdf</string> + <string>image5.png</string> + </array> + <key>KeepToScale</key> + <false/> + <key>Layers</key> + <array> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>Layer 1</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + </array> + <key>LayoutInfo</key> + <dict> + <key>Animate</key> + <string>NO</string> + <key>circoMinDist</key> + <real>18</real> + <key>circoSeparation</key> + <real>0.0</real> + <key>layoutEngine</key> + <string>dot</string> + <key>neatoSeparation</key> + <real>0.0</real> + <key>twopiSeparation</key> + <real>0.0</real> + </dict> + <key>LinksVisible</key> + <string>NO</string> + <key>MagnetsVisible</key> + <string>NO</string> + <key>MasterSheets</key> + <array/> + <key>ModificationDate</key> + <string>2014-02-19 09:05:43 +0000</string> + <key>Modifier</key> + <string>Yu Taninari</string> + <key>NotesVisible</key> + <string>NO</string> + <key>Orientation</key> + <integer>2</integer> + <key>OriginVisible</key> + <string>NO</string> + <key>PageBreaks</key> + <string>YES</string> + <key>PrintInfo</key> + <dict> + <key>NSBottomMargin</key> + <array> + <string>float</string> + <string>41</string> + </array> + <key>NSHorizonalPagination</key> + <array> + <string>coded</string> + <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string> + </array> + <key>NSLeftMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + <key>NSPaperName</key> + <array> + <string>string</string> + <string>3267D658-4D5D-4516-BE6F-0B81B734895F</string> + </array> + <key>NSPaperSize</key> + <array> + <string>size</string> + <string>{2063.6220703125, 2919.68505859375}</string> + </array> + <key>NSPrintReverseOrientation</key> + <array> + <string>int</string> + <string>0</string> + </array> + <key>NSRightMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + <key>NSTopMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + </dict> + <key>PrintOnePage</key> + <false/> + <key>ReadOnly</key> + <string>NO</string> + <key>RowAlign</key> + <integer>1</integer> + <key>RowSpacing</key> + <real>36</real> + <key>SheetTitle</key> + <string>Canvas 1</string> + <key>SmartAlignmentGuidesActive</key> + <string>YES</string> + <key>SmartDistanceGuidesActive</key> + <string>YES</string> + <key>UniqueID</key> + <integer>1</integer> + <key>UseEntirePage</key> + <false/> + <key>VPages</key> + <integer>1</integer> + <key>WindowInfo</key> + <dict> + <key>CurrentSheet</key> + <integer>0</integer> + <key>ExpandedCanvases</key> + <array> + <dict> + <key>name</key> + <string>Canvas 1</string> + </dict> + </array> + <key>Frame</key> + <string>{{32, 4}, {1864, 1054}}</string> + <key>ListView</key> + <true/> + <key>OutlineWidth</key> + <integer>142</integer> + <key>RightSidebar</key> + <false/> + <key>ShowRuler</key> + <true/> + <key>Sidebar</key> + <true/> + <key>SidebarWidth</key> + <integer>120</integer> + <key>VisibleRegion</key> + <string>{{-27, 0}, {2082.6039790122081, 1111.1269042543265}}</string> + <key>Zoom</key> + <real>0.82348829507827759</real> + <key>ZoomValues</key> + <array> + <array> + <string>Canvas 1</string> + <real>0.82348829507827759</real> + <real>0.0</real> + </array> + </array> + </dict> +</dict> +</plist>