(* Content-type: application/mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 7.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 145, 7] NotebookDataLength[ 524021, 11114] NotebookOptionsPosition[ 517269, 10924] NotebookOutlinePosition[ 517635, 10940] CellTagsIndexPosition[ 517592, 10937] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["\<\ Rate-level model of TCP (2 routes)\ \>", "Section", CellChangeTimes->{{3.5172514258699875`*^9, 3.5172514294735937`*^9}, { 3.530955322288701*^9, 3.5309553232559023`*^9}, {3.530958627762701*^9, 3.530958654251547*^9}}], Cell[BoxData[ TagBox[ StyleBox[ DynamicModuleBox[{$CellContext`cap1$$ = 50, $CellContext`cap2$$ = 50, $CellContext`RTT0$$ = 100, $CellContext`RTT1$$ = 100, Typeset`show$$ = True, Typeset`bookmarkList$$ = {}, Typeset`bookmarkMode$$ = "Menu", Typeset`animator$$, Typeset`animvar$$ = 1, Typeset`name$$ = "\"untitled\"", Typeset`specs$$ = {{{ Hold[$CellContext`cap1$$], 50, ""}, 0, 100, 5}, { Hold[ Row[{"\!\(\*SubscriptBox[\(C\), \(1\)]\) ", Manipulate`Place[1], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`cap1$$], " pkt/s"]]}]], Manipulate`Dump`ThisIsNotAControl}, {{ Hold[$CellContext`cap2$$], 50, ""}, 0, 100, 5}, { Hold[ Row[{"\!\(\*SubscriptBox[\(C\), \(2\)]\) ", Manipulate`Place[2], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`cap2$$], " pkt/s"]]}]], Manipulate`Dump`ThisIsNotAControl}, {{ Hold[$CellContext`RTT0$$], 100, ""}, 0, 250, 10}, { Hold[ Row[{ Style["\!\(\*SubscriptBox[\(RTT\), \(B\)]\) ", Hue[0.284, 0.27, 0.682]], Manipulate`Place[3], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`RTT0$$], " ms"]]}]], Manipulate`Dump`ThisIsNotAControl}, {{ Hold[$CellContext`RTT1$$], 100, ""}, 0, 250, 10}, { Hold[ Row[{ Style["\!\(\*SubscriptBox[\(RTT\), \(A\)]\) ", Hue[0.582, 0.28, 0.636]], Manipulate`Place[4], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`RTT1$$], " ms"]]}]], Manipulate`Dump`ThisIsNotAControl}}, Typeset`size$$ = { 599., {98., 102.}}, Typeset`update$$ = 0, Typeset`initDone$$, Typeset`skipInitDone$$ = False, $CellContext`cap1$29501$$ = 0, $CellContext`cap2$29502$$ = 0, $CellContext`RTT0$29503$$ = 0, $CellContext`RTT1$29504$$ = 0}, DynamicBox[Manipulate`ManipulateBoxes[ 2, StandardForm, "Variables" :> {$CellContext`cap1$$ = 50, $CellContext`cap2$$ = 50, $CellContext`RTT0$$ = 100, $CellContext`RTT1$$ = 100}, "ControllerVariables" :> { Hold[$CellContext`cap1$$, $CellContext`cap1$29501$$, 0], Hold[$CellContext`cap2$$, $CellContext`cap2$29502$$, 0], Hold[$CellContext`RTT0$$, $CellContext`RTT0$29503$$, 0], Hold[$CellContext`RTT1$$, $CellContext`RTT1$29504$$, 0]}, "OtherVariables" :> { Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$, Typeset`skipInitDone$$}, "Body" :> DynamicModule[{$CellContext`X = {20, 20}, $CellContext`Xnew}, Dynamic[ Refresh[ With[{$CellContext`pars = {$CellContext`c1 -> $CellContext`cap1$$, \ $CellContext`c2 -> $CellContext`cap2$$, $CellContext`rtt0 -> \ $CellContext`RTT0$$/100, $CellContext`rtt1 -> $CellContext`RTT1$$/100}}, If[($CellContext`Xnew = \ $CellContext`updatemodel[$CellContext`linear2a, $CellContext`linear2atopo, \ $CellContext`pars, $CellContext`X]) === None, Null, $CellContext`X = $CellContext`Xnew]; Row[{ Show[ $CellContext`linear2aplot[$CellContext`pars, \ $CellContext`linear2atopo, $CellContext`X], ImageSize -> {Automatic, 200}], Show[ $CellContext`feas2a[$CellContext`pars, $CellContext`X], ImageSize -> {Automatic, 200}]}]], TrackedSymbols :> {$CellContext`cap1$$, $CellContext`cap2$$, \ $CellContext`RTT0$$, $CellContext`RTT1$$, $CellContext`X}]]], "Specifications" :> {{{$CellContext`cap1$$, 50, ""}, 0, 100, 5, ControlPlacement -> 1}, Row[{"\!\(\*SubscriptBox[\(C\), \(1\)]\) ", Manipulate`Place[1], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`cap1$$], " pkt/s"]]}], {{$CellContext`cap2$$, 50, ""}, 0, 100, 5, ControlPlacement -> 2}, Row[{"\!\(\*SubscriptBox[\(C\), \(2\)]\) ", Manipulate`Place[2], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`cap2$$], " pkt/s"]]}], {{$CellContext`RTT0$$, 100, ""}, 0, 250, 10, ControlPlacement -> 3}, Row[{ Style["\!\(\*SubscriptBox[\(RTT\), \(B\)]\) ", Hue[0.284, 0.27, 0.682]], Manipulate`Place[3], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`RTT0$$], " ms"]]}], {{$CellContext`RTT1$$, 100, ""}, 0, 250, 10, ControlPlacement -> 4}, Row[{ Style["\!\(\*SubscriptBox[\(RTT\), \(A\)]\) ", Hue[0.582, 0.28, 0.636]], Manipulate`Place[4], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`RTT1$$], " ms"]]}]}, "Options" :> {ControlPlacement -> Top, SynchronousUpdating -> False}, "DefaultOptions" :> {}], ImageSizeCache->{648., {185., 190.}}, SingleEvaluation->True], Deinitialization:>None, DynamicModuleValues:>{}, Initialization:>({$CellContext`X = {30.623255186023147`, 30.967294231069776`}, $CellContext`updatemodel[ Pattern[$CellContext`fm, Blank[]], Pattern[$CellContext`topo, Blank[]], Pattern[$CellContext`pars, Blank[]], Pattern[$CellContext`x0, Blank[]]] := Module[{$CellContext`res, $CellContext`subs, $CellContext`Vars, \ $CellContext`eqs, $CellContext`eqsi, $CellContext`n, $CellContext`terms, \ $CellContext`drifts, $CellContext`d0}, $CellContext`n = Length[$CellContext`fm]; $CellContext`terms = Part[$CellContext`fm, All, 1]; $CellContext`drifts = Part[$CellContext`fm, All, 2]; $CellContext`d0 = ReplaceAll[ ReplaceAll[ ReplaceAll[$CellContext`drifts, $CellContext`topo], Thread[$CellContext`terms -> $CellContext`x0]], \ $CellContext`pars]; If[ $CellContext`AllZero[$CellContext`d0, 10^(-5)], None, $CellContext`subs = Table[Part[$CellContext`terms, $CellContext`i] -> \ $CellContext`Vars[$CellContext`i][$CellContext`t], {$CellContext`i, \ $CellContext`n}]; $CellContext`eqs = Table[Derivative[1][ $CellContext`Vars[$CellContext`i]][$CellContext`t] == Part[$CellContext`drifts, $CellContext`i], {$CellContext`i, \ $CellContext`n}]; $CellContext`eqsi = Table[$CellContext`Vars[$CellContext`i][0] == Part[$CellContext`x0, $CellContext`i], {$CellContext`i, \ $CellContext`n}]; $CellContext`res = First[ NDSolve[ ReplaceAll[ ReplaceAll[ ReplaceAll[ Join[$CellContext`eqs, $CellContext`eqsi], \ $CellContext`topo], $CellContext`subs], $CellContext`pars], Table[ $CellContext`Vars[$CellContext`i], {$CellContext`i, \ $CellContext`n}], {$CellContext`t, 0, 10}]]; ReplaceAll[ ReplaceAll[ ReplaceAll[$CellContext`terms, $CellContext`subs], \ {$CellContext`t -> 10}], $CellContext`res]]], $CellContext`AllZero[ Pattern[$CellContext`x, Blank[]], Pattern[$CellContext`opts, BlankNullSequence[]]] := Apply[And, Thread[Chop[$CellContext`x, $CellContext`opts] == 0]], Attributes[Derivative] = { NHoldAll, ReadProtected}, $CellContext`linear2a = {$CellContext`y0 -> \ $CellContext`rtt0^2 (-$CellContext`p1 - $CellContext`p2 + 2/($CellContext`rtt0^2 $CellContext`y0^2)) $CellContext`y0^2, \ $CellContext`y1 -> $CellContext`rtt1^2 (-$CellContext`p1 + 2/($CellContext`rtt1^2 $CellContext`y1^2)) $CellContext`y1^2}, \ $CellContext`linear2atopo = {$CellContext`p1 -> Max[0, 1 - $CellContext`c1/($CellContext`y0 + $CellContext`y1)], \ $CellContext`p2 -> Max[0, 1 - $CellContext`c2/$CellContext`y0]}, \ $CellContext`linear2aplot[ Pattern[$CellContext`pars, Blank[]], Pattern[$CellContext`topo, Blank[]], Pattern[$CellContext`x0, Blank[]]] := Module[{$CellContext`vals}, $CellContext`vals = Thread[{$CellContext`y0, $CellContext`y1} -> $CellContext`x0]; \ $CellContext`ShowNetwork[{ $CellContext`link[ 0, {-2, 3.5}, 1, "src0", Label -> $CellContext`ShowLoad], $CellContext`link[ 0, {-2, 6}, 1, "src1", Label -> $CellContext`ShowLoad], $CellContext`link[0, {6, 4.8}, 1, "dst0"], $CellContext`link[0, {2, 6}, 1, "dst1"], $CellContext`link[ ReplaceAll[$CellContext`c1/100, $CellContext`pars], {0, 5}, 1, "link1", Label -> $CellContext`ShowDrop[$CellContext`drop]], $CellContext`link[ ReplaceAll[$CellContext`c2/100, $CellContext`pars], {4, 5}, 1, "link2", Label -> $CellContext`ShowDrop[$CellContext`drop]], $CellContext`flow[ ReplaceAll[ ReplaceAll[$CellContext`y0/ 100, $CellContext`vals], $CellContext`pars], { "src0", "link1", "link2", "dst0"}, "flow0"], $CellContext`flow[ ReplaceAll[ ReplaceAll[$CellContext`y1/ 100, $CellContext`vals], $CellContext`pars], { "src1", "link1", "dst1"}, "flow1"], Null}, PlotRange -> {{-3, 7}, {2.5, 7.5}}, $CellContext`FlowStyle -> {$CellContext`col0, \ $CellContext`col1, $CellContext`col2}]], $CellContext`ShowNetwork[ Pattern[$CellContext`objects, Blank[]], Pattern[$CellContext`opts, BlankNullSequence[]]] := Module[{$CellContext`links, $CellContext`flows, \ $CellContext`linknames, $CellContext`linkdefs, $CellContext`flownames, \ $CellContext`linksused, $CellContext`adjacency, $CellContext`midpoints, \ $CellContext`GetMidpoints, $CellContext`flowdesc, $CellContext`flowpaths, \ $CellContext`cols, $CellContext`thicks, $CellContext`plotrange, \ $CellContext`loads}, $CellContext`links = Cases[$CellContext`objects, Blank[$CellContext`link]]; $CellContext`flows = Cases[$CellContext`objects, Blank[$CellContext`flow]]; $CellContext`linknames = Thread[Map[$CellContext`LinkName, $CellContext`links] -> Range[ Length[$CellContext`links]]]; $CellContext`linkdefs = Thread[Map[$CellContext`LinkName, $CellContext`links] -> Map[{ $CellContext`LinkCoord[#], $CellContext`LinkLength[#]}& , $CellContext`links]]; \ $CellContext`flownames = Thread[Map[$CellContext`FlowName, $CellContext`flows] -> Range[ Length[$CellContext`flows]]]; $CellContext`linksused = Map[$CellContext`LinksUsed, $CellContext`flows]; \ $CellContext`adjacency = Map[ Function[{$CellContext`linkname}, Map[$CellContext`Indicator[ MemberQ[#, $CellContext`linkname]]& , $CellContext`linksused]], Map[First, $CellContext`linknames]]; $CellContext`midpoints = Thread[ $CellContext`Midpoints[ Map[$CellContext`LinkCapacity, $CellContext`links], Map[ Map[$CellContext`FlowRate, $CellContext`flows] #& , \ $CellContext`adjacency]]]; $CellContext`GetMidpoints[ Pattern[$CellContext`links, Blank[List]], Pattern[$CellContext`flownum, Blank[]]] := Map[If[ Not[ StringQ[#]], #, $CellContext`uselink[#, Part[$CellContext`midpoints, ReplaceAll[#, $CellContext`linknames], $CellContext`flownum]]]& \ , $CellContext`links]; $CellContext`loads = Map[Map[$CellContext`FlowRate, $CellContext`flows] #& , \ $CellContext`adjacency]; $CellContext`flowdesc = ReplaceAll[ MapThread[$CellContext`GetMidpoints, { Map[$CellContext`Waypoints, $CellContext`flows], Range[ Length[$CellContext`flows]]}], $CellContext`linkdefs]; \ $CellContext`flowpaths = Map[$CellContext`CleanLine[ Flatten[ $CellContext`DrawFlow[#]]]& , $CellContext`flowdesc]; \ $CellContext`cols = ReplaceAll[ ReplaceAll[$CellContext`FlowStyle, {$CellContext`opts}], \ {$CellContext`FlowStyle -> $CellContext`FlowColours[ Length[$CellContext`flows]]}]; $CellContext`cols = \ $CellContext`Rep[$CellContext`cols, Length[$CellContext`flows]]; $CellContext`plotrange = ReplaceAll[ ReplaceAll[PlotRange, {$CellContext`opts}], { PlotRange -> {{Min[Map[First, Map[$CellContext`LinkCoord, $CellContext`links]] - Map[$CellContext`LinkLength, $CellContext`links]/2] - 1, Max[Map[First, Map[$CellContext`LinkCoord, $CellContext`links]] + Map[$CellContext`LinkLength, $CellContext`links]/2] + 1}, { Min[Map[$CellContext`Second, Map[$CellContext`LinkCoord, $CellContext`links]] - Map[$CellContext`LinkCapacity, $CellContext`links]/2 - 1], Max[Map[$CellContext`Second, Map[$CellContext`LinkCoord, $CellContext`links]] + Map[$CellContext`LinkCapacity, $CellContext`links]/2] + 1}}}]; $CellContext`thicks = Map[Thickness, Map[$CellContext`FlowRate, $CellContext`flows]/( Part[$CellContext`plotrange, 1, 2] - Part[$CellContext`plotrange, 1, 1])]; Show[{ Graphics[ Transpose[{$CellContext`cols, $CellContext`thicks, \ $CellContext`flowpaths}]], Map[$CellContext`DrawLink, $CellContext`links], Graphics[ MapThread[$CellContext`DrawLinkLabel, {$CellContext`links, \ $CellContext`loads}]]}, PlotRange -> $CellContext`plotrange, Apply[Sequence, FilterRules[ FilterRules[{$CellContext`opts}, Options[Graphics]], Except[PlotRange]]]]], $CellContext`LinkName[ $CellContext`link[ Pattern[C, Blank[]], Optional[ Pattern[$CellContext`xy, Blank[]], {0.5, 0}], Optional[ Pattern[$CellContext`L, Blank[]], 1], Optional[ Pattern[$CellContext`name, Blank[]], "link"], Pattern[$CellContext`rest, BlankNullSequence[]]]] := $CellContext`name, $CellContext`LinkCoord[ $CellContext`link[ Pattern[C, Blank[]], Optional[ Pattern[$CellContext`xy, Blank[]], {0.5, 0}], Pattern[$CellContext`rest, BlankNullSequence[]]]] := $CellContext`xy, $CellContext`LinkLength[ $CellContext`link[ Pattern[C, Blank[]], Optional[ Pattern[$CellContext`xy, Blank[]], {0.5, 0}], Optional[ Pattern[$CellContext`L, Blank[]], 1], Pattern[$CellContext`rest, BlankNullSequence[]]]] := $CellContext`L, $CellContext`FlowName[ $CellContext`flow[ Pattern[$CellContext`rate, Blank[]], Pattern[$CellContext`waypoints, Blank[]], Pattern[$CellContext`name, Blank[]]]] := $CellContext`name, $CellContext`LinksUsed[ $CellContext`flow[ Pattern[$CellContext`rate, Blank[]], Pattern[$CellContext`waypoints, Blank[]], Pattern[$CellContext`name, Blank[]]]] := Cases[$CellContext`waypoints, Blank[String]], $CellContext`Indicator[False] = 0, $CellContext`Indicator[True] = 1, $CellContext`Midpoints[ Pattern[$CellContext`c, Blank[]], Pattern[$CellContext`x, Blank[]]] := Condition[ With[{$CellContext`y = $CellContext`x/Apply[ Plus, $CellContext`x]}, $CellContext`c (Drop[ FoldList[Plus, 0, $CellContext`y], 1] - $CellContext`y/ 2) - $CellContext`c/2], And[$CellContext`c >= Apply[Plus, $CellContext`x], Not[ $CellContext`AllZero[$CellContext`x]]]], $CellContext`Midpoints[ Pattern[$CellContext`c, Blank[]], Pattern[$CellContext`x, Blank[]]] := Condition[Drop[ FoldList[Plus, 0, $CellContext`x], 1] - $CellContext`x/ 2 - $CellContext`c/ 2 - (-$CellContext`c + Apply[Plus, $CellContext`x])/ 2, $CellContext`c < Apply[Plus, $CellContext`x]], $CellContext`Midpoints[ Pattern[$CellContext`c, Blank[]], {}] := {}, $CellContext`Midpoints[ Pattern[$CellContext`c, Blank[]], Pattern[$CellContext`x, Blank[]]] := Condition[ Table[0, { Length[$CellContext`x]}], $CellContext`AllZero[$CellContext`x]], $CellContext`LinkCapacity[ $CellContext`link[ Pattern[C, Blank[]], Pattern[$CellContext`rest, BlankNullSequence[]]]] := C, $CellContext`FlowRate[ $CellContext`flow[ Pattern[$CellContext`rate, Blank[]], Pattern[$CellContext`rest, BlankNullSequence[]]]] := $CellContext`rate, $CellContext`Waypoints[ $CellContext`flow[ Pattern[$CellContext`rate, Blank[]], Pattern[$CellContext`waypoints, Blank[]], Pattern[$CellContext`rest, BlankNullSequence[]]]] := $CellContext`waypoints, \ $CellContext`CleanLine[ Pattern[$CellContext`line, Blank[]]] := Module[{$CellContext`s, $CellContext`a, $CellContext`b, \ $CellContext`cleansegment, $CellContext`res, $CellContext`inds}, \ $CellContext`cleansegment[ Pattern[$CellContext`s, Blank[Splines`Spline]]] := Table[ Part[$CellContext`s, 3][$CellContext`x], {$CellContext`x, 0, Length[ First[$CellContext`s]] - 1, 1/10}]; $CellContext`cleansegment[ Line[{ Pattern[$CellContext`a, Blank[]], Pattern[$CellContext`b, Blank[]]}]] := {$CellContext`a, $CellContext`b}; \ $CellContext`res = Flatten[ Map[$CellContext`cleansegment, $CellContext`line], 1]; $CellContext`inds = Prepend[ Select[ Range[ Length[$CellContext`res]], Part[$CellContext`res, #] != Part[$CellContext`res, # - 1]& ], 1]; Line[ Part[$CellContext`res, $CellContext`inds]]], Splines`Spline[ Pattern[Splines`Private`pts, Blank[List]], Pattern[Splines`Private`type, Blank[Symbol]], Pattern[Splines`Private`opts, RepeatedNull[ Alternatives[ Blank[Rule], Blank[RuleDelayed]]]]] := Splines`Spline[Splines`Private`pts, Splines`Private`type, Splines`SplineFit[Splines`Private`pts, Splines`Private`type], Splines`Private`opts], Splines`Spline[ Pattern[Splines`Private`pts, Blank[List]], Pattern[Splines`Private`type, Blank[Symbol]], Splines`SplineFunction[ Pattern[Splines`Private`t, Blank[]], Pattern[Splines`Private`r, Blank[]], Pattern[Splines`Private`cpts, Blank[]], Pattern[Splines`Private`rest, BlankNullSequence[]]], Pattern[Splines`Private`opts, RepeatedNull[ Alternatives[ Blank[Rule], Blank[RuleDelayed]]]]] := Condition[ Splines`Spline[Splines`Private`pts, Splines`Private`type, Splines`SplineFit[Splines`Private`pts, Splines`Private`type], Splines`Private`opts], Or[ Splines`Private`pts != Splines`Private`cpts, Splines`Private`type != Splines`Private`t]], UpSetDelayed[ MakeBoxes[ Splines`Spline[ Pattern[Splines`Private`p, Blank[]], Pattern[Splines`Private`t, Blank[]], Pattern[Splines`Private`b, BlankSequence[]]], Pattern[FormatType, Blank[]]], Format[ Row[{ "Spline[", Splines`Private`p, ",", Splines`Private`t, ",", "<>", "]"}], FormatType]], Format[ Splines`Spline[ Pattern[Splines`Private`p, Blank[]], Pattern[Splines`Private`t, Blank[]], Pattern[Splines`Private`b, BlankSequence[]]]] := Row[{"Spline[", Splines`Private`p, ",", Splines`Private`t, ",", "<>", "]"}], Options[Splines`Spline] = { Splines`SplinePoints -> 25, Splines`SplineDots -> None, MaxBend -> 10., Splines`SplineDivision -> 20.}, TagSet[Splines`Spline, MessageName[Splines`Spline, "args"], "The spline object `` is not a valid 2D spline of the form \ Spline[pts, type, (SplineFunction[...]), (opts)], and cannot be rendered."], TagSet[Splines`Spline, MessageName[Splines`Spline, "sptt"], "Warning: Value of option SplinePoints -> `1` is not an integer >= 3, \ setting to 25."], TagSet[Splines`Spline, MessageName[Splines`Spline, "usage"], "\!\(\*RowBox[{\" Spline \", \"[\", RowBox[{RowBox[{\" {\", \ RowBox[{SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 1\", \" TR \ \"]], \",\", SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 2\", \" \ TR \"]], \",\", StyleBox[\" \[Ellipsis] \", \" TR \"]}], \"}\"}], \",\", \ StyleBox[\" type \", \" TI \"]}], \"]\"}]\) is a two-dimensional graphics \ primitive which represents a spline of type \!\(\*StyleBox[\" type \", \" TI \ \"]\) through (or controlled by) points \ \!\(\*RowBox[{SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 1\", \" \ TR \"]], \",\", \" \", SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" \ 2\", \" TR \"]], \",\", \" \", StyleBox[\" \[Ellipsis] \", \" TR \"]}]\). "], Splines`SplineFit[ PatternTest[ Pattern[Splines`Private`pts, Blank[List]], MatrixQ[#, NumberQ[ N[#]]& ]& ], PatternTest[ Pattern[Splines`Private`type, Blank[Symbol]], MemberQ[{ Splines`Cubic, Splines`Bezier, Splines`CompositeBezier}, #]& ]] := Splines`SplineFunction[Splines`Private`type, {0., N[Length[Splines`Private`pts] - 1]}, Splines`Private`pts, Splines`Private`splineinternal[ Splines`Private`pts, Splines`Private`type]], TagSet[Splines`SplineFit, MessageName[Splines`SplineFit, "cbezlen"], "Points are needed to generate a spline."], TagSet[Splines`SplineFit, MessageName[Splines`SplineFit, "usage"], "\!\(\*RowBox[{\" SplineFit \", \"[\", RowBox[{RowBox[{\" {\", \ RowBox[{SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 1\", \" TR \ \"]], \",\", SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 2\", \" \ TR \"]], \",\", StyleBox[\" \[Ellipsis] \", \" TR \"]}], \"}\"}], \",\", \ StyleBox[\" type \", \" TI \"]}], \"]\"}]\) generates a SplineFunction object \ of the specified \!\(\*StyleBox[\" type \", \" TI \"]\) from the points \ \!\(\*RowBox[{SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 1\", \" \ TR \"]], \",\", SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 2\", \ \" TR \"]], \",\", StyleBox[\" \[Ellipsis] \", \" TR \"]}]\)."], TagSet[Splines`Cubic, MessageName[Splines`Cubic, "usage"], "Cubic is a setting specifying the type of spline generated by Spline \ and SplineFit."], TagSet[Splines`Bezier, MessageName[Splines`Bezier, "usage"], "Bezier is a setting specifying the type of spline generated by \ Spline and SplineFit."], TagSet[Splines`CompositeBezier, MessageName[Splines`CompositeBezier, "usage"], "CompositeBezier is a setting specifying the type of spline generated \ by Spline and SplineFit."], Splines`SplineFunction[ Pattern[Splines`Private`type, Blank[]], { Pattern[Splines`Private`min, Blank[]], Pattern[Splines`Private`max, Blank[]]}, Pattern[Splines`Private`pts, Blank[]], Pattern[Splines`Private`internal, Blank[]]][ PatternTest[ Pattern[Splines`Private`in, Blank[]], NumberQ[ N[#]]& ]] := Module[{Splines`Private`out}, If[ Or[ Splines`Private`in < Splines`Private`min, Splines`Private`in > Splines`Private`max], Message[ MessageName[Splines`SplineFunction, "dmval"], Splines`Private`in]; Splines`Private`out = $Failed, Splines`Private`out = Splines`Private`evalspline[ Which[Splines`Private`in == Splines`Private`max, Min[Splines`Private`max, Splines`Private`in], Splines`Private`in == Splines`Private`min, Max[Splines`Private`min, Splines`Private`in], True, Splines`Private`in], Splines`Private`type, Splines`Private`pts, Splines`Private`internal]]; Condition[Splines`Private`out, Splines`Private`out =!= $Failed]], UpSetDelayed[ MakeBoxes[ Splines`SplineFunction[ Pattern[Splines`Private`t, Blank[]], Pattern[Splines`Private`r, Blank[]], Pattern[Splines`Private`b, BlankSequence[]]], Pattern[FormatType, Blank[]]], Format[ Row[{ "SplineFunction[", Splines`Private`t, ", ", Splines`Private`r, ", ", "<>", "]"}], FormatType]], Format[ Splines`SplineFunction[ Pattern[Splines`Private`t, Blank[]], Pattern[Splines`Private`r, Blank[]], Pattern[Splines`Private`b, BlankSequence[]]]] := Row[{"SplineFunction[", Splines`Private`t, ", ", Splines`Private`r, ", ", "<>", "]"}], TagSet[Splines`SplineFunction, MessageName[Splines`SplineFunction, "dmval"], "Input value `1` lies outside the domain of the spline function."], TagSet[Splines`SplineFunction, MessageName[Splines`SplineFunction, "usage"], "\!\(\*RowBox[{\" SplineFunction \", \"[\", RowBox[{StyleBox[\" type \ \", \" TI \"], \",\", StyleBox[\" domain \", \" TI \"], \",\", StyleBox[\" \ internal \", \" TI \"]}], \"]\"}]\) represents a spline function created by \ the SplineFit function parametrizing a curve with the parameter in the \ specified \!\(\*StyleBox[\" domain \", \" TI \"]\). When given a parameter \ value as an argument it returns the corresponding point on the curve."], Splines`Private`evalspline[ PatternTest[ Pattern[Splines`Private`pt, Blank[]], # == 0& ], Splines`Cubic, Pattern[Splines`Private`pts, Blank[]], Pattern[Splines`Private`internal, Blank[]]] := Part[Splines`Private`internal, 1, All, 1], Splines`Private`evalspline[ Pattern[Splines`Private`pt, Blank[]], Splines`Cubic, Pattern[Splines`Private`pts, Blank[]], Pattern[Splines`Private`internal, Blank[]]] := Module[{Splines`Private`tmp}, Dot[ ({1, #, #^2, #^3}& )[ If[(Splines`Private`tmp = Mod[Splines`Private`pt, 1]) == 0, 1, Splines`Private`tmp]], Transpose[ Part[Splines`Private`internal, Ceiling[Splines`Private`pt]]]]], Splines`Private`evalspline[ Pattern[Splines`Private`pt, Blank[]], Splines`CompositeBezier, Pattern[Splines`Private`pts, Blank[]], Pattern[Splines`Private`internal, Blank[]]] := Module[{Splines`Private`ln = Length[Splines`Private`pts] - 1}, Splines`Private`evalspline[ If[ Splines`Private`ln <= 3, Splines`Private`pt/Splines`Private`ln, Splines`Private`pt (1/2 - If[ OddQ[Splines`Private`ln], 1/(2 Splines`Private`ln), 0])], Splines`Cubic, Splines`Private`pts, Splines`Private`internal]], Splines`Private`evalspline[ Pattern[Splines`Private`pt, Blank[]], Splines`Bezier, Pattern[Splines`Private`pts, Blank[]], Pattern[Splines`Private`internal, Blank[]]] := Splines`Private`internal[ Splines`Private`pt/(Length[Splines`Private`pts] - 1)], Attributes[MakeBoxes] = {HoldAllComplete}, Splines`Private`splineinternal[ Pattern[Splines`Private`pts, Blank[List]], Splines`Cubic] := Transpose[ Map[Splines`Private`splinecoord, Transpose[Splines`Private`pts]]], Splines`Private`splineinternal[ Pattern[Splines`Private`pts, Blank[List]], Splines`CompositeBezier] := Module[{Splines`Private`eqns, Splines`Private`gpts = Splines`Private`pts, Splines`Private`ln = Length[Splines`Private`pts], Splines`Private`end}, If[ Or[Splines`Private`ln < 3, OddQ[Splines`Private`ln]], Which[Splines`Private`ln == 1, Splines`Private`gpts = Flatten[ Table[Splines`Private`gpts, {4}]], Splines`Private`ln == 2, Splines`Private`gpts = { Part[Splines`Private`gpts, 1], Part[Splines`Private`gpts, 1], Part[Splines`Private`gpts, 2], Part[Splines`Private`gpts, 2]}, OddQ[Splines`Private`ln], AppendTo[Splines`Private`gpts, Last[Splines`Private`gpts]], True, Message[ MessageName[Splines`SplineFit, "cbezlen"]]; Return[ InString[$Line]]]]; Splines`Private`end = Take[Splines`Private`gpts, -4]; Splines`Private`gpts = Partition[ Drop[Splines`Private`gpts, -2], 4, 2]; Splines`Private`gpts = Apply[{#, #2, #3 - (#4 - #3), #3}& , Splines`Private`gpts, {1}]; AppendTo[Splines`Private`gpts, Splines`Private`end]; Apply[Transpose[{#, 3 (#2 - #), 3 (#3 - 2 #2 + #), #4 - 3 #3 + 3 #2 - #}]& , Splines`Private`gpts, {1}]], Splines`Private`splineinternal[ Pattern[Splines`Private`pts, Blank[List]], Splines`Bezier] := Module[{Splines`Private`n, Splines`Private`eq, Splines`Private`deg = Length[Splines`Private`pts] - 1}, Splines`Private`eq = Table[#^Splines`Private`n (1 - #)^(Splines`Private`deg - Splines`Private`n), { Splines`Private`n, 0, Splines`Private`deg}]; Evaluate[ Apply[Plus, Splines`Private`pts Table[ Binomial[Splines`Private`deg, Splines`Private`n], { Splines`Private`n, 0, Splines`Private`deg}] Splines`Private`eq]]& ], Splines`Private`splinecoord[ Pattern[Splines`Private`vals, Blank[]]] := Module[{Splines`Private`lst, Splines`Private`ln = Length[Splines`Private`vals], Splines`Private`d, Splines`Private`n}, Splines`Private`lst = Join[{3 (Part[Splines`Private`vals, 2] - Part[ Splines`Private`vals, 1])}, Table[ 3 (Part[Splines`Private`vals, Splines`Private`n + 2] - Part[ Splines`Private`vals, Splines`Private`n]), { Splines`Private`n, Splines`Private`ln - 2}], { 3 (Part[Splines`Private`vals, Splines`Private`ln] - Part[ Splines`Private`vals, Splines`Private`ln - 1])}]; Splines`Private`d = Splines`Private`trisolve[Splines`Private`lst, Splines`Private`ln]; Table[{ Part[Splines`Private`vals, Splines`Private`n], Part[Splines`Private`d, Splines`Private`n], 3 (Part[Splines`Private`vals, Splines`Private`n + 1] - Part[ Splines`Private`vals, Splines`Private`n]) - 2 Part[Splines`Private`d, Splines`Private`n] - Part[ Splines`Private`d, Splines`Private`n + 1], 2 (Part[Splines`Private`vals, Splines`Private`n] - Part[ Splines`Private`vals, Splines`Private`n + 1]) + Part[Splines`Private`d, Splines`Private`n] + Part[Splines`Private`d, Splines`Private`n + 1]}, { Splines`Private`n, 1, Splines`Private`ln - 1}]], Splines`Private`trisolve[ Pattern[Splines`Private`lst, Blank[]], Pattern[Splines`Private`ln, Blank[]]] := Module[{}, LinearSolve[ SparseArray[{Band[{1, 1}] -> Join[{2}, Table[4, {Splines`Private`ln - 2}], {2}], Band[{1, 2}] -> 1, Band[{2, 1}] -> 1}], Splines`Private`lst]], $Line = 476, TagSet[Splines`SplinePoints, MessageName[Splines`SplinePoints, "usage"], "SplinePoints is an option for Spline which determines the number of \ initial samples for rendering a spline. "], TagSet[Splines`SplineDots, MessageName[Splines`SplineDots, "usage"], "SplineDots is an option for Spline that specifies a style for a \ point. "], TagSet[Splines`SplineDivision, MessageName[Splines`SplineDivision, "usage"], "SplineDivision is an option for Spline which specifies the maximum \ number of subdivisions to be used in attempting to generate a smooth \ spline."], $CellContext`DrawFlow[{ $CellContext`point[ Pattern[$CellContext`p1, Blank[]]], $CellContext`uselink[{ Pattern[$CellContext`p2, Blank[]], Pattern[$CellContext`len, Blank[]]}, Pattern[$CellContext`mp, Blank[]]], Pattern[$CellContext`path, BlankSequence[]]}] := { Splines`Spline[{$CellContext`p1, $CellContext`p2 + \ {-$CellContext`len/2 - 0.2, $CellContext`mp}, $CellContext`p2 + {-$CellContext`len/ 2, $CellContext`mp}}, Splines`Bezier], $CellContext`DrawFlow[{ $CellContext`uselink[{$CellContext`p2, $CellContext`len}, \ $CellContext`mp], $CellContext`path}]}, $CellContext`DrawFlow[{ $CellContext`uselink[{ Pattern[$CellContext`p1, Blank[]], Pattern[$CellContext`len1, Blank[]]}, Pattern[$CellContext`mp1, Blank[]]], $CellContext`uselink[{ Pattern[$CellContext`p2, Blank[]], Pattern[$CellContext`len2, Blank[]]}, Pattern[$CellContext`mp2, Blank[]]], Pattern[$CellContext`path, BlankSequence[]]}] := { Line[{$CellContext`p1 + {-$CellContext`len1/ 2, $CellContext`mp1}, $CellContext`p1 + {$CellContext`len1/ 2, $CellContext`mp1}}], Splines`Spline[{$CellContext`p1 + {$CellContext`len1/ 2, $CellContext`mp1}, $CellContext`p1 + {$CellContext`len1/2 + 0.2, $CellContext`mp1}, ($CellContext`p1 + {$CellContext`len1/2 + 0.2, $CellContext`mp1} + $CellContext`p2 + {-$CellContext`len2/ 2 - 0.2, $CellContext`mp2})/ 2, $CellContext`p2 + {-$CellContext`len2/2 - 0.2, $CellContext`mp2}, $CellContext`p2 + {-$CellContext`len2/ 2, $CellContext`mp2}}, Splines`CompositeBezier], $CellContext`DrawFlow[{ $CellContext`uselink[{$CellContext`p2, $CellContext`len2}, \ $CellContext`mp2], $CellContext`path}]}, $CellContext`DrawFlow[{ $CellContext`uselink[{ Pattern[$CellContext`p1, Blank[]], Pattern[$CellContext`len, Blank[]]}, Pattern[$CellContext`mp, Blank[]]], $CellContext`point[ Pattern[$CellContext`p2, Blank[]]]}] := { Line[{$CellContext`p1 + {-$CellContext`len/ 2, $CellContext`mp}, $CellContext`p1 + {$CellContext`len/ 2, $CellContext`mp}}], Splines`Spline[{$CellContext`p1 + {$CellContext`len/ 2, $CellContext`mp}, $CellContext`p1 + {$CellContext`len/2 + 0.2, $CellContext`mp}, $CellContext`p2}, Splines`Bezier]}, $CellContext`DrawFlow[{ $CellContext`uselink[{ Pattern[$CellContext`p1, Blank[]], Pattern[$CellContext`len1, Blank[]]}, Pattern[$CellContext`mp1, Blank[]]], $CellContext`uselink[{ Pattern[$CellContext`p2, Blank[]], Pattern[$CellContext`len2, Blank[]]}, Pattern[$CellContext`mp2, Blank[]]]}] := { Line[{$CellContext`p1 + {-$CellContext`len1/ 2, $CellContext`mp1}, $CellContext`p1 + {$CellContext`len1/ 2, $CellContext`mp1}}], Splines`Spline[{$CellContext`p1 + {$CellContext`len1/ 2, $CellContext`mp1}, $CellContext`p1 + {$CellContext`len1/2 + 0.2, $CellContext`mp1}, ($CellContext`p1 + {$CellContext`len1/2 + 0.2, $CellContext`mp1} + $CellContext`p2 + {-$CellContext`len2/ 2 - 0.2, $CellContext`mp2})/ 2, $CellContext`p2 + {-$CellContext`len2/2 - 0.2, $CellContext`mp2}, $CellContext`p2 + {-$CellContext`len2/ 2, $CellContext`mp2}}, Splines`CompositeBezier], Line[{$CellContext`p2 + {-$CellContext`len2/ 2, $CellContext`mp2}, $CellContext`p2 + {$CellContext`len2/ 2, $CellContext`mp2}}]}, $CellContext`FlowColours[ Pattern[$CellContext`n, Blank[]]] := Table[ ColorData[ "Pastel"][$CellContext`i], {$CellContext`i, 0, 1, 1/($CellContext`n - 1)}], $CellContext`Rep[ Pattern[$CellContext`x, Blank[]], Pattern[$CellContext`n, Blank[]]] := Take[ Flatten[ Table[$CellContext`x, {$CellContext`n}], 1], $CellContext`n], $CellContext`Second[ Pattern[$CellContext`x, Blank[]]] := Part[$CellContext`x, 2], $CellContext`DrawLink[ $CellContext`link[ Pattern[C, Blank[]], Optional[ Pattern[$CellContext`xy, Blank[]], {0.5, 0}], Optional[ Pattern[$CellContext`L, Blank[]], 1], Optional[ Pattern[$CellContext`name, Blank[]], "link"], Pattern[$CellContext`opts, BlankNullSequence[]]]] := If[C == 0, {}, With[{$CellContext`x = Part[$CellContext`xy, 1], $CellContext`y = Part[$CellContext`xy, 2]}, Graphics[{{ GrayLevel[0.8], Opacity[0.5], Rectangle[{$CellContext`x - $CellContext`L/2, $CellContext`y + C/2}, {$CellContext`x + $CellContext`L/2, $CellContext`y - C/ 2}], Disk[{$CellContext`x - $CellContext`L/2, $CellContext`y}, { 0.1 $CellContext`L, C/2}, {Pi/2, 3 (Pi/2)}], Disk[{$CellContext`x + $CellContext`L/2, $CellContext`y}, { 0.1 $CellContext`L, C/2}, {-Pi/2, Pi/2}]}, Circle[{$CellContext`x - $CellContext`L/2, $CellContext`y}, { 0.1 $CellContext`L, C/2}], Circle[{$CellContext`x + $CellContext`L/2, $CellContext`y}, { 0.1 $CellContext`L, C/2}, {-Pi/2, Pi/2}], Line[{{$CellContext`x - $CellContext`L/2, $CellContext`y + C/2}, {$CellContext`x + $CellContext`L/2, $CellContext`y + C/2}}], Line[{{$CellContext`x - $CellContext`L/2, $CellContext`y - C/ 2}, {$CellContext`x + $CellContext`L/2, $CellContext`y - C/ 2}}]}]]], $CellContext`DrawLinkLabel[ $CellContext`link[ Pattern[C, Blank[]], Optional[ Pattern[$CellContext`xy, Blank[]], {0.5, 0}], Optional[ Pattern[$CellContext`L, Blank[]], 1], Optional[ Pattern[$CellContext`name, Blank[]], "link"], Pattern[$CellContext`opts, BlankNullSequence[]]], Pattern[$CellContext`load, Blank[]]] := Module[{$CellContext`label}, $CellContext`labelfunc = ReplaceAll[ ReplaceAll[Label, {$CellContext`opts}], {Label -> None}]; If[$CellContext`labelfunc === None, {}, $CellContext`labelfunc[ C, $CellContext`load, $CellContext`xy]]], $CellContext`labelfunc = \ $CellContext`ShowDrop[$CellContext`drop], $CellContext`ShowDrop[ Pattern[$CellContext`p, Blank[]]][ Pattern[C, Blank[]], Pattern[$CellContext`loads, Blank[]], Pattern[$CellContext`xy, Blank[]]] := Style[ Text[ StringJoin[ ToString[ NumberForm[100 $CellContext`p[C, Apply[Plus, $CellContext`loads]], {3, 1}]], "%"], $CellContext`xy, {0, 0}], "Legend"], $CellContext`drop[ Pattern[C, Blank[]], Pattern[$CellContext`y, Blank[]]] = Max[0, 1 - C/$CellContext`y], $CellContext`ShowLoad[ Pattern[C, Blank[]], Pattern[$CellContext`loads, Blank[]], Pattern[$CellContext`xy, Blank[]]] := Style[ Text[ NumberForm[ 100 Apply[Plus, $CellContext`loads], {3, 1}], $CellContext`xy, {1, 0}], "Legend"], $CellContext`col0 = Hue[0.284, 0.27, 0.65], $CellContext`col1 = Hue[0.582, 0.28, 0.7], $CellContext`col2 = Hue[0.582, 0.08, 0.836], $CellContext`feas2a[ Pattern[$CellContext`pars, Blank[]], Pattern[$CellContext`x0, Blank[]]] := Module[{$CellContext`vals, $CellContext`Y0, $CellContext`Y1, \ $CellContext`C1, $CellContext`C2, $CellContext`P1, $CellContext`P2}, \ {$CellContext`Y0, $CellContext`Y1} = $CellContext`x0; $CellContext`C1 = ReplaceAll[$CellContext`c1, $CellContext`pars]; $CellContext`C2 = ReplaceAll[$CellContext`c2, $CellContext`pars]; $CellContext`P1 = ReplaceAll[ ReplaceAll[ ReplaceAll[$CellContext`p1, $CellContext`linear2atopo], \ $CellContext`pars], {$CellContext`y0 -> $CellContext`Y0, $CellContext`y1 -> \ $CellContext`Y1}]; $CellContext`P2 = ReplaceAll[ ReplaceAll[ ReplaceAll[$CellContext`p2, $CellContext`linear2atopo], \ $CellContext`pars], {$CellContext`y0 -> $CellContext`Y0, $CellContext`y1 -> \ $CellContext`Y1}]; Show[ Graphics[{ FaceForm[ Lighter[Blue, 0.8]], EdgeForm[Blue], Polygon[{{0, 0}, {0, Min[$CellContext`C1, $CellContext`C2]}, { Max[$CellContext`C1 - $CellContext`C2, 0], Min[$CellContext`C1, $CellContext`C2]}, {$CellContext`C1, 0}, {0, 0}}], Locator[{$CellContext`Y1 (1 - $CellContext`P1), $CellContext`Y0 ( 1 - $CellContext`P1) (1 - $CellContext`P2)}]}], Axes -> True, AxesLabel -> { "\!\(\*SubscriptBox[\(y\), \(A\)]\)", "\!\(\*SubscriptBox[\(y\), \(B\)]\)"}, AxesOrigin -> {0, 0}]], $CellContext`FormatCapacity[ Pattern[$CellContext`x, Blank[]], Optional[ Pattern[$CellContext`suffix, Blank[]], ""]] := StringJoin[ ToString[ NumberForm[$CellContext`x, {3, 0}, NumberPadding -> " ", NumberPoint -> ""]], $CellContext`suffix]}; Typeset`initDone$$ = True), SynchronousInitialization->True, UnsavedVariables:>{Typeset`initDone$$}, UntrackedVariables:>{Typeset`size$$}], "Manipulate", Deployed->True, StripOnInput->False], Manipulate`InterpretManipulate[1]]], "Output", CellChangeTimes->{{3.5309601123291016`*^9, 3.5309601607197266`*^9}}], Cell[CellGroupData[{ Cell["Graphics commands", "Subsection", CellChangeTimes->{{3.437584220640625*^9, 3.437584222671875*^9}, { 3.5009665615302734`*^9, 3.5009665631552734`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"AllZero", "[", RowBox[{"x_", ",", "opts___"}], "]"}], " ", ":=", " ", RowBox[{"And", " ", "@@", " ", RowBox[{"Thread", "[", RowBox[{ RowBox[{"Chop", "[", RowBox[{"x", ",", "opts"}], "]"}], "\[Equal]", "0"}], "]"}]}]}]], "Input", CellChangeTimes->{{3.4385479449332104`*^9, 3.4385479961363354`*^9}}], Cell[BoxData[ RowBox[{"Needs", "[", "\"\\"", "]"}]], "Input", CellChangeTimes->{{3.437585402953125*^9, 3.4375854096875*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Midpoints", "[", RowBox[{"c_", ",", "x_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"y", "=", FractionBox["x", RowBox[{"Plus", " ", "@@", " ", "x"}]]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"c", " ", RowBox[{"(", RowBox[{ RowBox[{"Drop", "[", RowBox[{ RowBox[{"FoldList", "[", RowBox[{"Plus", ",", "0", ",", "y"}], "]"}], ",", "1"}], "]"}], "-", FractionBox["y", "2"]}], ")"}]}], " ", "-", " ", FractionBox["c", "2"]}]}], "]"}], " ", "/;", " ", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"c", "\[GreaterEqual]", RowBox[{"Plus", " ", "@@", " ", "x"}]}], ")"}], " ", "&&", " ", RowBox[{"!", RowBox[{"AllZero", "[", "x", "]"}]}]}], ")"}]}]}]], "Input", CellChangeTimes->{{3.4375734885*^9, 3.437573504609375*^9}, { 3.4375735356875*^9, 3.437573743640625*^9}, {3.4375739571875*^9, 3.437573959765625*^9}, {3.4375739906875*^9, 3.437573994359375*^9}, { 3.437574323671875*^9, 3.437574329*^9}, 3.437574688375*^9, { 3.43757475684375*^9, 3.437574761359375*^9}, {3.43757489165625*^9, 3.437574901890625*^9}, {3.437575083765625*^9, 3.437575105109375*^9}, { 3.43844129251525*^9, 3.438441292749625*^9}, {3.438451047530875*^9, 3.438451081155875*^9}, {3.438451121093375*^9, 3.438451127030875*^9}, { 3.4384512210465*^9, 3.438451221405875*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Midpoints", "[", RowBox[{"c_", ",", "x_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{ RowBox[{"Drop", "[", RowBox[{ RowBox[{"FoldList", "[", RowBox[{"Plus", ",", "0", ",", "x"}], "]"}], ",", "1"}], "]"}], "-", FractionBox["x", "2"], "-", FractionBox["c", "2"], "-", FractionBox[ RowBox[{ RowBox[{"-", "c"}], "+", RowBox[{"Plus", " ", "@@", " ", "x"}]}], "2"]}], " ", "/;", " ", RowBox[{"c", "<", RowBox[{"Plus", " ", "@@", " ", "x"}]}]}]}]], "Input", CellChangeTimes->{{3.437573747953125*^9, 3.437573829171875*^9}, { 3.43757393415625*^9, 3.43757398575*^9}, {3.437574782984375*^9, 3.437574793875*^9}, {3.438441295359*^9, 3.4384412962965*^9}, { 3.438451135749625*^9, 3.43845114826525*^9}, 3.438451225109*^9, { 3.4385479140894604`*^9, 3.4385479175425854`*^9}}], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"Midpoints", "[", RowBox[{"c_", ",", RowBox[{"{", "}"}]}], "]"}], " ", ":=", " ", RowBox[{"{", "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Midpoints", "[", RowBox[{"c_", ",", "x_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"Table", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{"Length", "[", "x", "]"}], "}"}]}], "]"}], " ", "/;", " ", RowBox[{"AllZero", "[", "x", "]"}]}]}]}], "Input", CellChangeTimes->{{3.4384508630465*^9, 3.43845086832775*^9}, { 3.438450937687125*^9, 3.438450960359*^9}, {3.438450993030875*^9, 3.438451029155875*^9}, {3.438451085984*^9, 3.438451087593375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"DrawLink", "[", RowBox[{"link", "[", RowBox[{"C_", ",", RowBox[{"xy_", " ", ":", " ", RowBox[{"{", RowBox[{".5", ",", "0"}], "}"}]}], " ", ",", RowBox[{"L_", " ", ":", " ", "1"}], ",", RowBox[{"name_", " ", ":", " ", "\"\\""}], ",", "opts___"}], "]"}], "]"}], " ", ":=", " ", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"C", "\[Equal]", "0"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "=", RowBox[{ "xy", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], ",", RowBox[{"y", "=", RowBox[{ "xy", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Graphics", "[", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"GrayLevel", "[", ".8", "]"}], ",", RowBox[{"Opacity", "[", ".5", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Rectangle", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "-", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "+", RowBox[{"C", "/", "2"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"x", "+", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "-", RowBox[{"C", "/", "2"}]}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "-", RowBox[{"L", "/", "2"}]}], ",", "y"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{".1", " ", "L"}], ",", RowBox[{"C", "/", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"Pi", "/", "2"}], ",", RowBox[{"3", RowBox[{"Pi", "/", "2"}]}]}], "}"}]}], "]"}], " ", ",", "\[IndentingNewLine]", RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "+", RowBox[{"L", "/", "2"}]}], ",", "y"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{".1", " ", "L"}], ",", RowBox[{"C", "/", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "Pi"}], "/", "2"}], ",", RowBox[{"Pi", "/", "2"}]}], "}"}]}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Circle", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "-", RowBox[{"L", "/", "2"}]}], ",", "y"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{".1", " ", "L"}], ",", RowBox[{"C", "/", "2"}]}], "}"}]}], "]"}], " ", ",", "\[IndentingNewLine]", RowBox[{"Circle", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "+", RowBox[{"L", "/", "2"}]}], ",", "y"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{".1", " ", "L"}], ",", RowBox[{"C", "/", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "Pi"}], "/", "2"}], ",", RowBox[{"Pi", "/", "2"}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "-", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "+", RowBox[{"C", "/", "2"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"x", "+", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "+", RowBox[{"C", "/", "2"}]}]}], "}"}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "-", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "-", RowBox[{"C", "/", "2"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"x", "+", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "-", RowBox[{"C", "/", "2"}]}]}], "}"}]}], "}"}], "]"}]}], "\[IndentingNewLine]", "}"}], "]"}]}], " ", "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.437572441328125*^9, 3.43757251965625*^9}, { 3.437572551359375*^9, 3.437572611859375*^9}, {3.437572651265625*^9, 3.43757272684375*^9}, {3.43757693540625*^9, 3.43757701240625*^9}, { 3.437577042609375*^9, 3.437577051328125*^9}, {3.43757708403125*^9, 3.437577199203125*^9}, {3.43757725471875*^9, 3.437577261109375*^9}, { 3.43842558632775*^9, 3.438425654234*^9}, {3.438426450234*^9, 3.438426455468375*^9}, {3.438453012874625*^9, 3.438453024609*^9}, { 3.4384537095465*^9, 3.43845371351525*^9}, {3.438454445359*^9, 3.438454453624625*^9}, {3.43853781903125*^9, 3.43853782028125*^9}, { 3.43853788553125*^9, 3.4385379571875*^9}, {3.438538255390625*^9, 3.4385382625625*^9}, {3.4385494449019604`*^9, 3.4385495031675854`*^9}, { 3.4385497868863354`*^9, 3.4385497879957104`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"DrawLinkLabel", "[", RowBox[{ RowBox[{"link", "[", RowBox[{"C_", ",", RowBox[{"xy_", " ", ":", " ", RowBox[{"{", RowBox[{".5", ",", "0"}], "}"}]}], ",", RowBox[{"L_:", "1"}], ",", RowBox[{"name_:", "\"\\""}], ",", "opts___"}], "]"}], ",", "load_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", " ", RowBox[{ RowBox[{"{", "label", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"labelfunc", " ", "=", " ", RowBox[{ RowBox[{"Label", " ", "/.", " ", RowBox[{"{", "opts", "}"}]}], " ", "/.", " ", RowBox[{"{", RowBox[{"Label", "\[Rule]", "None"}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"labelfunc", "===", "None"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"labelfunc", "[", RowBox[{"C", ",", "load", ",", "xy"}], "]"}]}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.438538279625*^9, 3.438538329078125*^9}, { 3.43853855178125*^9, 3.438538623875*^9}, {3.438538682265625*^9, 3.438538694265625*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"LinkName", "[", RowBox[{"link", "[", RowBox[{"C_", ",", RowBox[{"xy_", " ", ":", " ", RowBox[{"{", RowBox[{".5", ",", "0"}], "}"}]}], ",", " ", RowBox[{"L_", " ", ":", " ", "1"}], ",", " ", RowBox[{"name_", " ", ":", " ", "\"\\""}], ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "name"}]], "Input", CellChangeTimes->{{3.438426540109*^9, 3.43842655795275*^9}, { 3.43853777934375*^9, 3.438537798015625*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"LinkCapacity", "[", RowBox[{"link", "[", RowBox[{"C_", ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "C"}]], "Input", CellChangeTimes->{{3.438440872624625*^9, 3.438440883609*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"LinkLength", "[", RowBox[{"link", "[", RowBox[{"C_", ",", RowBox[{"xy_", " ", ":", " ", RowBox[{"{", RowBox[{".5", ",", "0"}], "}"}]}], ",", RowBox[{"L_:", "1"}], ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "L"}]], "Input", CellChangeTimes->{{3.438444660984*^9, 3.438444699749625*^9}, { 3.438537787015625*^9, 3.43853780134375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"LinkCoord", "[", RowBox[{"link", "[", RowBox[{"C_", ",", RowBox[{"xy_:", RowBox[{"{", RowBox[{".5", ",", "0"}], "}"}]}], ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "xy"}]], "Input", CellChangeTimes->{{3.438444729655875*^9, 3.438444747843375*^9}, { 3.438537805859375*^9, 3.43853780734375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"FlowName", "[", RowBox[{"flow", "[", RowBox[{"rate_", ",", "waypoints_", ",", "name_"}], "]"}], "]"}], " ", ":=", " ", "name"}]], "Input", CellChangeTimes->{{3.43844040151525*^9, 3.4384404144215*^9}, { 3.438440892593375*^9, 3.438440903968375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"FlowRate", "[", RowBox[{"flow", "[", RowBox[{"rate_", ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "rate"}]], "Input", CellChangeTimes->{{3.438440886437125*^9, 3.438440914484*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"LinksUsed", "[", RowBox[{"flow", "[", RowBox[{"rate_", ",", "waypoints_", ",", "name_"}], "]"}], "]"}], " ", ":=", " ", RowBox[{"Cases", "[", RowBox[{"waypoints", ",", " ", "_String"}], " ", "]"}]}]], "Input", CellChangeTimes->{{3.43842592314025*^9, 3.438425945937125*^9}, { 3.4384260147965*^9, 3.43842601864025*^9}, {3.438440341562125*^9, 3.43844035801525*^9}, 3.438440417468375*^9, {3.43844091732775*^9, 3.438440925593375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Waypoints", "[", RowBox[{"flow", "[", RowBox[{"rate_", ",", "waypoints_", ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "waypoints"}]], "Input", CellChangeTimes->{{3.438443846999625*^9, 3.438443858484*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Second", "[", "x_", "]"}], " ", ":=", " ", RowBox[{ "x", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}]], "Input", CellChangeTimes->{{3.438441088359*^9, 3.438441093530875*^9}}], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"Indicator", "[", "True", "]"}], " ", "=", " ", "1"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"Indicator", "[", "False", "]"}], " ", "=", " ", "0"}], ";"}]}], "Input", CellChangeTimes->{{3.4384416036715*^9, 3.438441611499625*^9}, { 3.4384417820465*^9, 3.43844178457775*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Spline", " ", "from", " ", "start", " ", "to", " ", "link"}], ",", " ", RowBox[{"line", " ", "through", " ", "link"}], ",", " ", RowBox[{ "spline", " ", "through", " ", "midpoint", " ", "to", " ", "next", " ", "link"}], ",", " ", RowBox[{"line", " ", "through", " ", "link"}], ",", " ", RowBox[{"spline", " ", "to", " ", "end"}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{"Spline", " ", "from", " ", "start", " ", "to", " ", "link"}], ",", " ", RowBox[{"line", " ", "through", " ", "link"}], ",", " ", RowBox[{"spline", " ", "to", " ", "end"}]}], " ", "*)"}]}]], "Input", CellChangeTimes->{{3.438444420734*^9, 3.43844442620275*^9}, { 3.438444798530875*^9, 3.4384448375465*^9}, 3.438445973030875*^9}], Cell[BoxData[ RowBox[{ RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"point", "[", "p1_", "]"}], ",", RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p2_", ",", "len_"}], "}"}], ",", "mp_"}], "]"}], ",", "path__"}], "}"}], "]"}], " ", ":=", " ", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"Spline", "[", RowBox[{ RowBox[{"{", RowBox[{"p1", ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "len"}], "/", "2"}], "-", ".2"}], ",", "mp"}], "}"}]}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len"}], "/", "2"}], ",", "mp"}], "}"}]}]}], "}"}], ",", "Bezier"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p2", ",", "len"}], "}"}], ",", "mp"}], "]"}], ",", "path"}], "}"}], "]"}]}], "}"}]}]], "Input", CellChangeTimes->{{3.43844438382775*^9, 3.438444392937125*^9}, { 3.43844496089025*^9, 3.438445029343375*^9}, {3.43844514739025*^9, 3.43844534795275*^9}, {3.438445385874625*^9, 3.438445387280875*^9}, { 3.438445515874625*^9, 3.438445534030875*^9}, {3.438445583499625*^9, 3.438445601484*^9}, {3.438445641968375*^9, 3.438445646405875*^9}, 3.43844600682775*^9, {3.438446204030875*^9, 3.4384462051715*^9}, { 3.43845282939025*^9, 3.438452833343375*^9}, {3.438454092468375*^9, 3.43845409695275*^9}, {3.43845432514025*^9, 3.438454325749625*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p1_", ",", "len1_"}], "}"}], ",", "mp1_"}], "]"}], ",", RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p2_", ",", "len2_"}], "}"}], ",", "mp2_"}], "]"}], ",", "path__"}], "}"}], "]"}], " ", ":=", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len1"}], "/", "2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len1", "/", "2"}], ",", "mp1"}], "}"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spline", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len1", "/", "2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"len1", "/", "2"}], "+", ".2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{ RowBox[{"(", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"len1", "/", "2"}], "+", ".2"}], ",", "mp1"}], "}"}], "+", "p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], "-", ".2"}], ",", "mp2"}], "}"}]}], ")"}], "/", "2"}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], "-", ".2"}], ",", "mp2"}], "}"}]}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], ",", "mp2"}], "}"}]}]}], "}"}], ",", "CompositeBezier"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p2", ",", "len2"}], "}"}], ",", "mp2"}], "]"}], ",", "path"}], "}"}], "]"}]}], "}"}]}]], "Input", CellChangeTimes->{{3.43844554414025*^9, 3.43844557414025*^9}, { 3.4384456580465*^9, 3.438445785312125*^9}, {3.438445837655875*^9, 3.43844585320275*^9}, 3.438446009530875*^9, {3.43844620976525*^9, 3.438446212234*^9}, {3.438454333937125*^9, 3.438454358030875*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p1_", ",", "len_"}], "}"}], ",", "mp_"}], "]"}], ",", RowBox[{"point", "[", "p2_", "]"}]}], "}"}], "]"}], " ", ":=", " ", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len"}], "/", "2"}], ",", "mp"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len", "/", "2"}], ",", "mp"}], "}"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spline", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len", "/", "2"}], ",", "mp"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"len", "/", "2"}], "+", ".2"}], ",", "mp"}], "}"}]}], ",", "p2"}], "}"}], ",", "Bezier"}], "]"}]}], "}"}]}]], "Input", CellChangeTimes->{{3.4384457917965*^9, 3.438445831030875*^9}, { 3.438445864484*^9, 3.438445887468375*^9}, 3.4384460125465*^9, { 3.43844621507775*^9, 3.438446215968375*^9}, {3.438446423249625*^9, 3.438446426109*^9}, {3.438454126655875*^9, 3.438454130905875*^9}, { 3.438454398984*^9, 3.438454413624625*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p1_", ",", "len1_"}], "}"}], ",", "mp1_"}], "]"}], ",", RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p2_", ",", "len2_"}], "}"}], ",", "mp2_"}], "]"}]}], "}"}], "]"}], " ", ":=", " ", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len1"}], "/", "2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len1", "/", "2"}], ",", "mp1"}], "}"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spline", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len1", "/", "2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"len1", "/", "2"}], "+", ".2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{ RowBox[{"(", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"len1", "/", "2"}], "+", ".2"}], ",", "mp1"}], "}"}], "+", "p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], "-", ".2"}], ",", "mp2"}], "}"}]}], ")"}], "/", "2"}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], "-", ".2"}], ",", "mp2"}], "}"}]}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], ",", "mp2"}], "}"}]}]}], "}"}], ",", "CompositeBezier"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], ",", "mp2"}], "}"}]}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{"len2", "/", "2"}], ",", "mp2"}], "}"}]}]}], "}"}], "]"}]}], " ", "}"}]}]], "Input", CellChangeTimes->{{3.438454665749625*^9, 3.438454689155875*^9}, { 3.438454725359*^9, 3.43845474564025*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"CleanLine", "[", "line_", "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", " ", RowBox[{ RowBox[{"{", RowBox[{ "s", ",", "a", ",", "b", ",", "cleansegment", ",", "res", ",", "inds"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"cleansegment", "[", "s_Spline", "]"}], " ", ":=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"s", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], "[", "x", "]"}], ",", RowBox[{"{", RowBox[{"x", ",", "0", ",", RowBox[{ RowBox[{"Length", "[", RowBox[{"First", "[", "s", "]"}], "]"}], "-", "1"}], ",", RowBox[{"1", "/", "10"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"cleansegment", "[", RowBox[{"Line", "[", RowBox[{"{", RowBox[{"a_", ",", "b_"}], "}"}], "]"}], "]"}], " ", ":=", " ", RowBox[{"{", RowBox[{"a", ",", "b"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"res", " ", "=", " ", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"cleansegment", " ", "/@", " ", "line"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"inds", " ", "=", " ", RowBox[{"Prepend", "[", RowBox[{ RowBox[{"Select", "[", RowBox[{ RowBox[{"Range", "[", RowBox[{"Length", "[", "res", "]"}], "]"}], ",", RowBox[{ RowBox[{ RowBox[{ "res", "\[LeftDoubleBracket]", "#", "\[RightDoubleBracket]"}], "\[NotEqual]", RowBox[{"res", "\[LeftDoubleBracket]", RowBox[{"#", "-", "1"}], "\[RightDoubleBracket]"}]}], "&"}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"Part", "[", RowBox[{"res", ",", "inds"}], "]"}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.437585833421875*^9, 3.43758589234375*^9}, { 3.437586235328125*^9, 3.437586330078125*^9}, {3.437586398078125*^9, 3.437586404046875*^9}, {3.43758650146875*^9, 3.437586634828125*^9}, { 3.437586747359375*^9, 3.4375867524375*^9}, {3.43844623489025*^9, 3.438446237093375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Rep", "[", RowBox[{"x_", ",", "n_"}], "]"}], " ", ":=", " ", RowBox[{"Take", "[", RowBox[{ RowBox[{"Flatten", "[", RowBox[{ RowBox[{"Table", "[", RowBox[{"x", ",", RowBox[{"{", "n", "}"}]}], "]"}], ",", "1"}], "]"}], ",", "n"}], "]"}]}]], "Input", CellChangeTimes->{{3.5039887164003906`*^9, 3.5039887209160156`*^9}, { 3.5039887727753906`*^9, 3.5039887846035156`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"ShowNetwork", "[", RowBox[{"objects_", ",", "opts___"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", " ", RowBox[{ RowBox[{"{", RowBox[{ "links", ",", "flows", ",", "linknames", ",", "linkdefs", ",", "flownames", ",", "linksused", ",", "adjacency", ",", "midpoints", ",", "GetMidpoints", ",", "flowdesc", ",", "flowpaths", ",", "cols", ",", "thicks", ",", "plotrange", ",", "loads"}], "}"}], ",", "\n", RowBox[{ RowBox[{"links", " ", "=", " ", RowBox[{"Cases", "[", RowBox[{"objects", ",", "_link"}], "]"}]}], ";", "\n", RowBox[{"flows", " ", "=", " ", RowBox[{"Cases", "[", RowBox[{"objects", ",", "_flow"}], "]"}]}], ";", "\n", RowBox[{"linknames", " ", "=", " ", RowBox[{"Thread", "[", RowBox[{"Rule", "[", RowBox[{ RowBox[{"LinkName", " ", "/@", " ", "links"}], ",", RowBox[{"Range", "@", RowBox[{"Length", "@", "links"}]}]}], "]"}], "]"}]}], ";", "\n", RowBox[{"linkdefs", " ", "=", " ", RowBox[{"Thread", "[", RowBox[{"Rule", "[", RowBox[{ RowBox[{"LinkName", " ", "/@", " ", "links"}], ",", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"LinkCoord", "[", "#", "]"}], ",", RowBox[{"LinkLength", "[", "#", "]"}]}], "}"}], "&"}], " ", "/@", " ", "links"}]}], "]"}], "]"}]}], ";", "\n", RowBox[{"flownames", " ", "=", " ", RowBox[{"Thread", "[", RowBox[{"Rule", "[", RowBox[{ RowBox[{"FlowName", " ", "/@", " ", "flows"}], ",", " ", RowBox[{"Range", "@", RowBox[{"Length", "@", "flows"}]}]}], "]"}], "]"}]}], ";", "\n", RowBox[{"linksused", " ", "=", " ", RowBox[{"LinksUsed", " ", "/@", " ", "flows"}]}], ";", "\n", RowBox[{"adjacency", " ", "=", " ", RowBox[{ RowBox[{"Function", "[", RowBox[{ RowBox[{"{", "linkname", "}"}], ",", RowBox[{ RowBox[{ RowBox[{"Indicator", "@", RowBox[{"MemberQ", "[", RowBox[{"#", ",", "linkname"}], "]"}]}], "&"}], " ", "/@", " ", "linksused"}]}], "]"}], " ", "/@", " ", RowBox[{"(", RowBox[{"First", " ", "/@", " ", "linknames"}], ")"}]}]}], ";", "\n", RowBox[{"(*", " ", RowBox[{ "What", " ", "are", " ", "the", " ", "midpoints", " ", "at", " ", "each", " ", RowBox[{"link", "?"}]}], " ", "*)"}], "\n", RowBox[{"midpoints", " ", "=", " ", RowBox[{"Thread", "[", RowBox[{"Midpoints", "[", RowBox[{ RowBox[{"LinkCapacity", " ", "/@", " ", "links"}], ",", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"FlowRate", " ", "/@", " ", "flows"}], " ", "#"}], ")"}], "&"}], " ", "/@", " ", "adjacency"}]}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{"For", " ", "each", " ", "flow"}], ",", " ", RowBox[{ "what", " ", "is", " ", "its", " ", "midpoint", " ", "at", " ", "each", " ", "link", " ", "it", " ", "passes", " ", RowBox[{"through", "?"}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"GetMidpoints", "[", RowBox[{"links_List", ",", "flownum_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"!", RowBox[{"StringQ", "[", "#", "]"}]}], ",", "#", ",", RowBox[{"uselink", "[", RowBox[{"#", ",", RowBox[{"midpoints", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"#", " ", "/.", " ", "linknames"}], ",", "flownum"}], "\[RightDoubleBracket]"}]}], "]"}]}], "]"}], "&"}], " ", "/@", " ", "links"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "What", " ", "is", " ", "the", " ", "load", " ", "at", " ", "each", " ", RowBox[{"link", "?"}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"loads", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"FlowRate", " ", "/@", " ", "flows"}], " ", "#"}], ")"}], "&"}], " ", "/@", " ", "adjacency"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Now", ",", " ", "draw"}], " ", "*)"}], "\n", RowBox[{"flowdesc", " ", "=", " ", RowBox[{ RowBox[{"MapThread", "[", RowBox[{"GetMidpoints", ",", RowBox[{"{", RowBox[{ RowBox[{"Waypoints", " ", "/@", " ", "flows"}], ",", " ", RowBox[{"Range", "@", RowBox[{"Length", "@", "flows"}]}]}], "}"}]}], "]"}], " ", "/.", " ", "linkdefs"}]}], ";", "\[IndentingNewLine]", RowBox[{"flowpaths", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{"CleanLine", "@", RowBox[{"Flatten", "@", RowBox[{"DrawFlow", "[", "#", "]"}]}]}], " ", "&"}], " ", "/@", " ", "flowdesc"}]}], ";", "\n", RowBox[{"cols", " ", "=", " ", RowBox[{ RowBox[{"FlowStyle", " ", "/.", " ", RowBox[{"{", "opts", "}"}]}], " ", "/.", " ", RowBox[{"{", RowBox[{"FlowStyle", "->", RowBox[{"FlowColours", "[", RowBox[{"Length", "@", "flows"}], "]"}]}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"cols", " ", "=", " ", RowBox[{"Rep", "[", RowBox[{"cols", ",", RowBox[{"Length", "@", "flows"}]}], "]"}]}], ";", "\n", RowBox[{"plotrange", " ", "=", " ", RowBox[{ RowBox[{"PlotRange", " ", "/.", " ", RowBox[{"{", "opts", "}"}]}], " ", "/.", " ", RowBox[{"{", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"Min", "[", RowBox[{ RowBox[{"First", " ", "/@", " ", RowBox[{"(", RowBox[{"LinkCoord", " ", "/@", " ", "links"}], ")"}]}], " ", "-", " ", RowBox[{ RowBox[{"(", RowBox[{"LinkLength", " ", "/@", " ", "links"}], ")"}], "/", "2"}]}], "]"}], "-", "1"}], ",", "\n", RowBox[{ RowBox[{"Max", "[", RowBox[{ RowBox[{"First", " ", "/@", " ", RowBox[{"(", RowBox[{"LinkCoord", " ", "/@", " ", "links"}], ")"}]}], " ", "+", " ", RowBox[{ RowBox[{"(", RowBox[{"LinkLength", " ", "/@", " ", "links"}], ")"}], "/", "2"}]}], "]"}], "+", "1"}]}], "}"}], ",", "\n", RowBox[{"{", RowBox[{ RowBox[{"Min", "[", RowBox[{ RowBox[{"Second", " ", "/@", " ", RowBox[{"(", RowBox[{"LinkCoord", " ", "/@", " ", "links"}], ")"}]}], " ", "-", " ", RowBox[{ RowBox[{"(", RowBox[{"LinkCapacity", " ", "/@", " ", "links"}], ")"}], "/", "2"}], "-", "1"}], "]"}], ",", "\n", RowBox[{ RowBox[{"Max", "[", RowBox[{ RowBox[{"Second", " ", "/@", " ", RowBox[{"(", RowBox[{"LinkCoord", " ", "/@", " ", "links"}], ")"}]}], " ", "+", " ", RowBox[{ RowBox[{"(", RowBox[{"LinkCapacity", " ", "/@", " ", "links"}], ")"}], "/", "2"}]}], "]"}], "+", "1"}]}], "}"}]}], "}"}]}], "}"}]}]}], ";", "\n", RowBox[{"thicks", " ", "=", " ", RowBox[{"Thickness", " ", "/@", " ", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"FlowRate", " ", "/@", " ", "flows"}], ")"}], "/", RowBox[{"(", RowBox[{ RowBox[{"plotrange", "\[LeftDoubleBracket]", RowBox[{"1", ",", "2"}], "\[RightDoubleBracket]"}], "-", RowBox[{"plotrange", "\[LeftDoubleBracket]", RowBox[{"1", ",", "1"}], "\[RightDoubleBracket]"}]}], ")"}]}], ")"}]}]}], ";", "\n", RowBox[{"Show", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Graphics", "@", RowBox[{"Transpose", "[", RowBox[{"{", RowBox[{"cols", ",", " ", "thicks", ",", "flowpaths"}], "}"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"DrawLink", " ", "/@", " ", "links"}], ",", "\[IndentingNewLine]", RowBox[{"Graphics", "@", RowBox[{"MapThread", "[", RowBox[{"DrawLinkLabel", ",", RowBox[{"{", RowBox[{"links", ",", "loads"}], "}"}]}], "]"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"PlotRange", "\[Rule]", "plotrange"}], ",", RowBox[{"Sequence", " ", "@@", " ", RowBox[{"FilterRules", "[", RowBox[{ RowBox[{"FilterRules", "[", RowBox[{ RowBox[{"{", "opts", "}"}], ",", RowBox[{"Options", "[", "Graphics", "]"}]}], "]"}], ",", RowBox[{"Except", "[", "PlotRange", "]"}]}], "]"}]}]}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->CompressedData[" 1:eJwtyk8ow2Ecx/GHklqTYdqG1WZlXLhYs5OmtnDavwOaZPnXyuZmh98wyxI1 flKUWpiWyEHJ3wtHoZRMtNjlp0bm4LT6+fc8nx2eXr0/30fr8TsGCwkhdf+P mhVPdPZYxpzl4i1Qb2OKCcgZu9HqPvT4EFrjhV8+WDOGe/MMPIxAPw8NK/hn 2YaRXezpfag9gJ3HuO+dopXnUHWB/eYSdj1gPzM6mDkTlMic7K4vZ3L9SnSx Gh21oINWdDzkYpZOQ+s8U0xCbmMBlvDQcweH85pe8H82ryBgf2cSYrgPUqey j0wSfoYKAZoyuHuZKbdfFqamrhVMtycAR5hLo3PtOwnqbwc1+RpqE4SM2fUz YaHGjjZt1KaGqJ36MSDpoQbW3L1UovR9Lla+mcnqZI6pKZDw1PUrKZRXwFY5 U/Okgo1V2Jdr0VuwvsgGpfC2THRWU3Xf1D8RoUVL "]], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"FlowColours", "[", "n_", "]"}], " ", ":=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"ColorData", "[", "\"\\"", "]"}], "[", "i", "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "0", ",", "1", ",", RowBox[{"1", "/", RowBox[{"(", RowBox[{"n", "-", "1"}], ")"}]}]}], "}"}]}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.4428237133883753`*^9, 3.4428237414665003`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"FormatCapacity", "[", RowBox[{"x_", ",", RowBox[{"suffix_:", "\"\<\>\""}]}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"ToString", "[", RowBox[{"NumberForm", "[", RowBox[{"x", ",", RowBox[{"{", RowBox[{"3", ",", "0"}], "}"}], ",", RowBox[{"NumberPadding", "\[Rule]", "\"\< \>\""}], ",", RowBox[{"NumberPoint", "\[Rule]", "\"\<\>\""}]}], "]"}], "]"}], "<>", "suffix"}]}]], "Input", CellChangeTimes->{ 3.437584298046875*^9, 3.437649164984375*^9, {3.4385529992769604`*^9, 3.4385530239332104`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"FormatWnd", "[", RowBox[{"w_", ",", RowBox[{"suffix_:", "\"\<\>\""}]}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"ToString", "[", RowBox[{"NumberForm", "[", RowBox[{"w", ",", RowBox[{"{", RowBox[{"3", ",", "2"}], "}"}], ",", RowBox[{"NumberPadding", "\[Rule]", "\"\< \>\""}], ",", RowBox[{"NumberPoint", "\[Rule]", "\"\<.\>\""}]}], "]"}], "]"}], " ", "<>", "suffix"}]}]], "Input", CellChangeTimes->{{3.443175667489035*^9, 3.4431757816089225`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"FormatTime", "[", "x_", "]"}], " ", ":=", " ", RowBox[{ RowBox[{"ToString", "[", RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"1000", " ", "x"}], ",", RowBox[{"{", RowBox[{"3", ",", "0"}], "}"}], ",", RowBox[{"NumberPadding", "\[Rule]", "\"\< \>\""}], ",", RowBox[{"NumberPoint", "\[Rule]", "\"\<\>\""}]}], "]"}], "]"}], "<>", "\"\< ms\>\""}]}]], "Input", CellChangeTimes->{{3.4385532836363354`*^9, 3.4385533368863354`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"ShowLoad", "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Style", "[", RowBox[{ RowBox[{"Text", "[", RowBox[{ RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"100", " ", RowBox[{"(", RowBox[{"Plus", " ", "@@", " ", "loads"}], ")"}]}], ",", RowBox[{"{", RowBox[{"3", ",", "1"}], "}"}]}], "]"}], ",", "xy", ",", RowBox[{"{", RowBox[{"1", ",", "0"}], "}"}]}], "]"}], ",", "\"\\""}], "]"}]}]], "Input", CellChangeTimes->{{3.43853870565625*^9, 3.438538720609375*^9}, { 3.43853876040625*^9, 3.4385387659375*^9}, {3.43853887259375*^9, 3.43853887378125*^9}, {3.438538916375*^9, 3.438538919421875*^9}, { 3.438538955796875*^9, 3.438538964875*^9}, {3.444739882921875*^9, 3.444739891171875*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"ShowCapacity", "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Style", "[", RowBox[{ RowBox[{"Text", "[", RowBox[{ RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"N", "[", RowBox[{"100", " ", "C"}], "]"}], ",", RowBox[{"{", RowBox[{"3", ",", "1"}], "}"}]}], "]"}], ",", "xy", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "]"}], ",", "\"\\""}], "]"}]}]], "Input", CellChangeTimes->{{3.500968721676758*^9, 3.500968752223633*^9}, { 3.500968803864258*^9, 3.500968803973633*^9}, {3.500968851161133*^9, 3.500968852926758*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"ShowEachLoad", "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Style", "[", RowBox[{ RowBox[{"Text", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"100", " ", "#"}], ",", RowBox[{"{", RowBox[{"3", ",", "1"}], "}"}]}], "]"}], "&"}], " ", "/@", " ", RowBox[{"Reverse", "@", "loads"}]}], ",", "xy", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "0"}], "}"}]}], "]"}], ",", "\"\\""}], "]"}]}]], "Input", CellChangeTimes->{{3.4428310667946253`*^9, 3.4428311029352503`*^9}, { 3.4428311512165003`*^9, 3.4428311798258753`*^9}, {3.4428312140133753`*^9, 3.4428312238415003`*^9}, {3.4428312666071253`*^9, 3.4428312684196253`*^9}, { 3.444739896609375*^9, 3.444739902421875*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ShowDrop", "[", "p_", "]"}], "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Style", "[", RowBox[{ RowBox[{"Text", "[", RowBox[{ RowBox[{ RowBox[{"ToString", "@", RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"100", " ", RowBox[{"p", "[", RowBox[{"C", ",", RowBox[{"Plus", "@@", "loads"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"3", ",", "1"}], "}"}]}], "]"}]}], "<>", "\"\<%\>\""}], ",", "xy", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "]"}], ",", "\"\\""}], "]"}]}]], "Input", CellChangeTimes->{{3.43853909840625*^9, 3.43853912971875*^9}, { 3.43853917396875*^9, 3.4385391740625*^9}, {3.43853926025*^9, 3.438539263453125*^9}, {3.438539363125*^9, 3.438539368890625*^9}, { 3.444739786515625*^9, 3.44473979790625*^9}, {3.444739858234375*^9, 3.44473986575*^9}, {3.475969993619936*^9, 3.475970017804057*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ShowVal", "[", "v_", "]"}], "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Style", "[", RowBox[{ RowBox[{"Text", "[", RowBox[{ RowBox[{ RowBox[{"ToString", "@", RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"100.", " ", "v"}], ",", RowBox[{"{", RowBox[{"3", ",", "2"}], "}"}]}], "]"}]}], "<>", "\"\<%\>\""}], ",", "xy", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "]"}], ",", "\"\\""}], "]"}]}]], "Input", CellChangeTimes->{{3.47597016574008*^9, 3.4759702007406173`*^9}, { 3.4759707875996313`*^9, 3.4759707892071557`*^9}, {3.4759745859055433`*^9, 3.475974586008045*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"PressedIf", "[", "pressed_", "]"}], " ", "=", " ", RowBox[{"If", "[", RowBox[{"pressed", ",", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}], ",", "\"\\""}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.4428226770446253`*^9, 3.4428227793727503`*^9}, { 3.4428228896071253`*^9, 3.4428228904040003`*^9}, {3.4428230787165003`*^9, 3.4428231841852503`*^9}, 3.4428233695758753`*^9}] }, Closed]], Cell[CellGroupData[{ Cell["General setup", "Subsection", CellChangeTimes->{{3.4375843495625*^9, 3.437584350421875*^9}, 3.438448783030875*^9, {3.438450536530875*^9, 3.43845053764025*^9}, { 3.4385552676519604`*^9, 3.4385552763082104`*^9}, {3.4428278128727503`*^9, 3.4428278130915003`*^9}, {3.444739644234375*^9, 3.444739644671875*^9}, { 3.451046344890625*^9, 3.4510463469375*^9}, {3.4737716746988955`*^9, 3.473771676681426*^9}, {3.4759718746491194`*^9, 3.4759718763078947`*^9}, { 3.47597192126163*^9, 3.4759719250741887`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"drop", "[", RowBox[{"C_", ",", "y_"}], "]"}], " ", "=", " ", RowBox[{"Max", "[", RowBox[{"0", ",", RowBox[{"1", "-", RowBox[{"C", "/", "y"}]}]}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.4759714730101395`*^9, 3.4759714906216598`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"updatemodel", "[", RowBox[{"fm_", ",", "topo_", ",", "pars_", ",", "x0_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", " ", RowBox[{ RowBox[{"{", RowBox[{ "res", ",", "subs", ",", "Vars", ",", "eqs", ",", "eqsi", ",", "n", ",", "terms", ",", "drifts", ",", "d0"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"n", " ", "=", " ", RowBox[{"Length", "[", "fm", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"terms", " ", "=", " ", RowBox[{"fm", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}]}], ";", " ", RowBox[{"drifts", "=", RowBox[{"fm", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"d0", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{"drifts", " ", "/.", " ", "topo"}], " ", "/.", " ", RowBox[{"Thread", "[", RowBox[{"terms", "\[Rule]", "x0"}], "]"}]}], " ", "/.", " ", "pars"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"AllZero", "[", RowBox[{"d0", ",", SuperscriptBox["10", RowBox[{"-", "5"}]]}], "]"}], ",", "\[IndentingNewLine]", "None", ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"subs", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{ "terms", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], "\[Rule]", RowBox[{ RowBox[{"Vars", "[", "i", "]"}], "[", "t", "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "n"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"eqs", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"Vars", "[", "i", "]"}], "'"}], "[", "t", "]"}], "\[Equal]", RowBox[{ "drifts", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "n"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"eqsi", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"Vars", "[", "i", "]"}], "[", "0", "]"}], "\[Equal]", RowBox[{ "x0", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "n"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"res", " ", "=", " ", RowBox[{"First", "@", RowBox[{"NDSolve", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"Join", "[", RowBox[{"eqs", ",", "eqsi"}], "]"}], "/.", " ", "topo"}], " ", "/.", " ", "subs"}], " ", "/.", " ", "pars"}], ",", "\[IndentingNewLine]", RowBox[{"Table", "[", RowBox[{ RowBox[{"Vars", "[", "i", "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "n"}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"t", ",", "0", ",", "10"}], "}"}]}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"terms", " ", "/.", " ", "subs"}], " ", "/.", " ", RowBox[{"{", RowBox[{"t", "\[Rule]", "10"}], "}"}]}], " ", "/.", " ", "res"}]}]}], " ", "]"}]}]}], "]"}]}]], "Input", CellChangeTimes->CompressedData[" 1:eJxTTMoPSmViYGAQB2IQndT2LPLh05eOh9euyQHRX1yKS0D0/8KmChDNvDd8 FohuvxGyEESXqPQuBdH8YcrrQLQeU+w2EM2eqnccRC9iWfUabF7m5C8g+gTf 6/8gWvTDBzD9acEDnkdA+kVuoiKI/mNxUxNE+6d2OILoX0nJniA6RroYTFsd LfAH0U1eM8F0n9/GsyDaxnX2ORCtwapxDSy/Vx9M39n9YsljkD86jJeC6KPn wraD6CtHFoFphgnzP5pJvwLSD6H06x8QWvUXhN76H0wLzGExB/OP84JpgZ98 EPqGJISOlILIx6lB6FwILdCjBaGvQGiFafZgesFcMA0ABZvGyg== "]], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ "cola1", ",", "cola2", ",", "colb1", ",", "colb2", ",", "colc1", ",", "colc2"}], "}"}], " ", "=", " ", RowBox[{"{", RowBox[{ RowBox[{"RGBColor", "[", RowBox[{"0.76", ",", ".47", ",", ".94"}], "]"}], ",", RowBox[{"Lighter", "[", RowBox[{ RowBox[{"RGBColor", "[", RowBox[{".76", ",", ".47", ",", ".94"}], "]"}], ",", ".5"}], "]"}], ",", RowBox[{"RGBColor", "[", RowBox[{".94", ",", ".79", ",", ".59"}], "]"}], ",", RowBox[{"Lighter", "[", RowBox[{ RowBox[{"RGBColor", "[", RowBox[{".94", ",", ".79", ",", ".59"}], "]"}], ",", ".3"}], "]"}], ",", RowBox[{"RGBColor", "[", RowBox[{"0.79", ",", "0.89", ",", "0.83"}], "]"}], ",", RowBox[{"Darker", "[", RowBox[{ RowBox[{"RGBColor", "[", RowBox[{"0.79", ",", "0.89", ",", "0.83"}], "]"}], ",", ".1"}], "]"}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.475975810020218*^9, 3.475975826247967*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"cold", " ", "=", " ", RowBox[{"Lighter", "[", RowBox[{"Blue", ",", ".6"}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.4759758939602566`*^9, 3.47597589611654*^9}}] }, Closed]], Cell[CellGroupData[{ Cell["Code", "Subsection", CellChangeTimes->{{3.5172632785076275`*^9, 3.517263278819628*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"linear2a", "=", " ", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"y0", "\[Rule]", RowBox[{ SuperscriptBox["rtt0", "2"], SuperscriptBox["y0", "2"], RowBox[{"(", RowBox[{ FractionBox["2", RowBox[{ SuperscriptBox["y0", "2"], SuperscriptBox["rtt0", "2"]}]], "-", "p1", "-", "p2"}], ")"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"y1", "\[Rule]", RowBox[{ SuperscriptBox["rtt1", "2"], SuperscriptBox["y1", "2"], RowBox[{"(", RowBox[{ FractionBox["2", RowBox[{ SuperscriptBox["y1", "2"], SuperscriptBox["rtt1", "2"]}]], "-", "p1"}], ")"}]}]}]}], " ", "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.4737717086506667`*^9, 3.4737717281559663`*^9}, { 3.4737718200011272`*^9, 3.4737719932687883`*^9}, {3.473772026450548*^9, 3.4737720325206413`*^9}, {3.4737729371240435`*^9, 3.4737729510405073`*^9}, {3.4737734728162727`*^9, 3.473773473434308*^9}, { 3.4737735196779537`*^9, 3.473773520284988*^9}, {3.4737744716634035`*^9, 3.4737744734205046`*^9}, {3.473774542022428*^9, 3.4737745995247173`*^9}, { 3.4737747794510083`*^9, 3.4737747799850388`*^9}, {3.4737752933524017`*^9, 3.473775294217451*^9}, {3.475967372359674*^9, 3.475967386614893*^9}, { 3.4759680588227177`*^9, 3.4759680958170357`*^9}, {3.4759686037398376`*^9, 3.4759686047461033`*^9}, {3.4759693601264553`*^9, 3.475969494883525*^9}, { 3.4759717891932063`*^9, 3.47597181550111*^9}, {3.477237393313182*^9, 3.4772374764694586`*^9}, {3.5009667094697266`*^9, 3.5009667189228516`*^9}, {3.5009668833339844`*^9, 3.5009668847265625`*^9}, {3.5009669796484375`*^9, 3.500967071705078*^9}, { 3.5039269059179688`*^9, 3.5039269085273438`*^9}, {3.5039269499804688`*^9, 3.5039270382148438`*^9}, 3.503928874359375*^9, {3.503931020663086*^9, 3.503931060741211*^9}, {3.503931114665039*^9, 3.503931134774414*^9}, { 3.503931195133789*^9, 3.503931199961914*^9}, {3.5172519669679747`*^9, 3.517251969042778*^9}, {3.517252003222438*^9, 3.517252003674839*^9}, { 3.5172520477917166`*^9, 3.5172521360566716`*^9}, {3.517261010504219*^9, 3.51726103962947*^9}, {3.5172610717343264`*^9, 3.517261080953943*^9}, { 3.5309586880256066`*^9, 3.5309586914888124`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"linear2atopo", " ", "=", " ", RowBox[{"{", RowBox[{ RowBox[{"p1", "\[Rule]", RowBox[{"drop", "[", RowBox[{"c1", ",", RowBox[{"y0", "+", "y1"}]}], "]"}]}], ",", RowBox[{"p2", "\[Rule]", RowBox[{"drop", "[", RowBox[{"c2", " ", ",", "y0"}], "]"}]}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.4737717086506667`*^9, 3.4737717281559663`*^9}, { 3.4737718200011272`*^9, 3.4737719932687883`*^9}, {3.473772026450548*^9, 3.4737720325206413`*^9}, {3.4737729371240435`*^9, 3.4737729510405073`*^9}, { 3.4737734728162727`*^9, 3.473773473434308*^9}, {3.4737735196779537`*^9, 3.473773520284988*^9}, {3.4737747250838985`*^9, 3.4737747311992483`*^9}, { 3.473775290397233*^9, 3.473775299281741*^9}, {3.475968611561208*^9, 3.4759686128949785`*^9}, {3.4759695828648767`*^9, 3.475969606762744*^9}, { 3.4759696899177713`*^9, 3.475969696747876*^9}, {3.47596993920535*^9, 3.4759699490992517`*^9}, {3.500967268845703*^9, 3.500967277970703*^9}, { 3.5039270546523438`*^9, 3.5039270794023438`*^9}, {3.503931141477539*^9, 3.503931155118164*^9}, {3.503931202790039*^9, 3.503931204649414*^9}, { 3.5172521411734805`*^9, 3.5172521626547184`*^9}, {3.5309587016132307`*^9, 3.530958715700055*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"linear2apars", " ", "=", " ", RowBox[{"{", RowBox[{ RowBox[{"rtt0", "\[Rule]", ".1"}], ",", RowBox[{"rtt1", "\[Rule]", ".1"}], ",", RowBox[{"c1", "\[Rule]", "50"}], ",", RowBox[{"c2", "\[Rule]", "30"}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.517252168114728*^9, 3.5172522111552033`*^9}, { 3.5172615540091734`*^9, 3.5172615540871735`*^9}, {3.5309587071044397`*^9, 3.5309587166048565`*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"X", "=", RowBox[{"{", RowBox[{"20", ",", "20"}], "}"}]}], ";"}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{{3.5039271328085938`*^9, 3.5039271969960938`*^9}, { 3.503931167508789*^9, 3.503931168836914*^9}, {3.503931207868164*^9, 3.503931208774414*^9}, {3.517252230982838*^9, 3.517252231450839*^9}, { 3.530958712190049*^9, 3.5309587125488496`*^9}}], Cell[BoxData[ RowBox[{"X", " ", "=", " ", RowBox[{"updatemodel", "[", RowBox[{"linear2a", ",", "linear2atopo", ",", "linear2apars", ",", "X"}], "]"}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{{3.5039271328085938`*^9, 3.5039271970117188`*^9}, { 3.517252234882845*^9, 3.517252248470469*^9}, {3.530958721253665*^9, 3.5309587237808695`*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{"30.623255186023147`", ",", "30.967294231069776`"}], "}"}]], "Output", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{{3.5039271566367188`*^9, 3.5039271970117188`*^9}, { 3.5039276111835938`*^9, 3.5039276414335938`*^9}, {3.5039276801054688`*^9, 3.5039276810898438`*^9}, {3.503928047125*^9, 3.503928048875*^9}, { 3.50392888190625*^9, 3.50392888578125*^9}, {3.5039289253125*^9, 3.5039289772822266`*^9}, {3.5039290166103516`*^9, 3.5039290196103516`*^9}, {3.503929125517578*^9, 3.503929143939453*^9}, { 3.503929202283203*^9, 3.503929241330078*^9}, {3.503929303361328*^9, 3.503929306376953*^9}, {3.503929347751953*^9, 3.503929467517578*^9}, 3.503929559173828*^9, {3.503929644126953*^9, 3.503929659955078*^9}, { 3.503929690861328*^9, 3.503929694251953*^9}, {3.503931162290039*^9, 3.503931176024414*^9}, {3.503931214415039*^9, 3.5039312440322266`*^9}, 3.5039418458984375`*^9, 3.5039442220341797`*^9, 3.5039886399414062`*^9, 3.5172522493596706`*^9, {3.5172529935745773`*^9, 3.5172530002357893`*^9}, 3.5309587244360704`*^9, 3.5309601601884766`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ "col2", ",", "col2b", ",", "col1", ",", "col1b", " ", ",", "col0", ",", "col0b", ",", "col3"}], "}"}], "=", RowBox[{"{", RowBox[{ RowBox[{"Hue", "[", RowBox[{".582", ",", ".08", ",", ".836"}], "]"}], ",", RowBox[{"Hue", "[", RowBox[{".582", ",", ".03", ",", ".632"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Hue", "[", RowBox[{".582", ",", ".28", ",", ".7"}], "]"}], ",", RowBox[{"Hue", "[", RowBox[{".582", ",", ".28", ",", ".636"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Hue", "[", RowBox[{".284", ",", ".27", ",", ".65"}], "]"}], ",", RowBox[{"Hue", "[", RowBox[{".284", ",", ".27", ",", ".682"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Hue", "[", RowBox[{"0", ",", ".776", ",", ".882"}], "]"}]}], "}"}]}], ";"}], "\n", RowBox[{"{", RowBox[{ RowBox[{"Style", "[", RowBox[{"\"\<\!\(\*SubscriptBox[\(col\), \(0\)]\)\>\"", ",", "col0b"}], "]"}], ",", RowBox[{"Style", "[", RowBox[{"\"\<\!\(\*SubscriptBox[\(col\), \(1\)]\)\>\"", ",", "col1b"}], "]"}], ",", RowBox[{"Style", "[", RowBox[{"\"\<\!\(\*SubscriptBox[\(col\), \(2\)]\)\>\"", ",", "col2b"}], "]"}]}], "}"}]}], "Input", CellChangeTimes->{{3.5039317062197266`*^9, 3.5039317265791016`*^9}, { 3.5039432667089844`*^9, 3.503943272598633*^9}, {3.517252269358906*^9, 3.5172522727441115`*^9}, {3.5172604731300755`*^9, 3.51726051010214*^9}, { 3.5172605420509963`*^9, 3.517260545436202*^9}, {3.517260586433074*^9, 3.5172606077583113`*^9}, {3.5172607421837473`*^9, 3.5172609009296265`*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ StyleBox["\<\"\\!\\(\\*SubscriptBox[\\(col\\), \\(0\\)]\\)\"\>", StripOnInput->False, LineColor->Hue[0.284, 0.27, 0.682], FrontFaceColor->Hue[0.284, 0.27, 0.682], BackFaceColor->Hue[0.284, 0.27, 0.682], GraphicsColor->Hue[0.284, 0.27, 0.682], FontColor->Hue[0.284, 0.27, 0.682]], ",", StyleBox["\<\"\\!\\(\\*SubscriptBox[\\(col\\), \\(1\\)]\\)\"\>", StripOnInput->False, LineColor->Hue[0.582, 0.28, 0.636], FrontFaceColor->Hue[0.582, 0.28, 0.636], BackFaceColor->Hue[0.582, 0.28, 0.636], GraphicsColor->Hue[0.582, 0.28, 0.636], FontColor->Hue[0.582, 0.28, 0.636]], ",", StyleBox["\<\"\\!\\(\\*SubscriptBox[\\(col\\), \\(2\\)]\\)\"\>", StripOnInput->False, LineColor->Hue[0.582, 0.03, 0.632], FrontFaceColor->Hue[0.582, 0.03, 0.632], BackFaceColor->Hue[0.582, 0.03, 0.632], GraphicsColor->Hue[0.582, 0.03, 0.632], FontColor->Hue[0.582, 0.03, 0.632]]}], "}"}]], "Output", CellChangeTimes->{{3.517260747284957*^9, 3.5172609014444275`*^9}, 3.530958730208081*^9, 3.5309601602978516`*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ShowCaption", "[", RowBox[{"cap_", ",", "size_", ",", RowBox[{"adj_:", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}]}], "]"}], "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Inset", "[", RowBox[{"cap", ",", "xy", ",", "adj", ",", "size"}], "]"}]}]], "Input", CellChangeTimes->{{3.5039326197509766`*^9, 3.5039326981259766`*^9}, { 3.5039327788447266`*^9, 3.5039327866884766`*^9}, {3.5039425626103516`*^9, 3.5039425748320312`*^9}, {3.5039426291220703`*^9, 3.5039426298564453`*^9}, { 3.503942818834961*^9, 3.503942824609375*^9}, {3.503942865633789*^9, 3.503942874192383*^9}}], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"feas2a", "[", RowBox[{"pars_", ",", "x0_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", " ", RowBox[{ RowBox[{"{", RowBox[{ "vals", ",", "Y0", ",", "Y1", ",", "C1", ",", "C2", ",", "P1", ",", "P2"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"Y0", ",", "Y1"}], "}"}], "=", "x0"}], ";", "\[IndentingNewLine]", RowBox[{"C1", " ", "=", " ", RowBox[{"c1", " ", "/.", " ", "pars"}]}], ";", "\[IndentingNewLine]", RowBox[{"C2", " ", "=", " ", RowBox[{"c2", " ", "/.", " ", "pars"}]}], ";", "\[IndentingNewLine]", RowBox[{"P1", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{"p1", "/.", "linear2atopo"}], "/.", "pars"}], "/.", RowBox[{"{", RowBox[{ RowBox[{"y0", "\[Rule]", "Y0"}], ",", RowBox[{"y1", "\[Rule]", "Y1"}]}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"P2", "=", RowBox[{ RowBox[{ RowBox[{"p2", "/.", "linear2atopo"}], "/.", "pars"}], "/.", RowBox[{"{", RowBox[{ RowBox[{"y0", "\[Rule]", "Y0"}], ",", RowBox[{"y1", "\[Rule]", "Y1"}]}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"Show", "[", RowBox[{ RowBox[{"Graphics", "[", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"FaceForm", "[", RowBox[{"Lighter", "[", RowBox[{"Blue", ",", ".8"}], "]"}], "]"}], ",", RowBox[{"EdgeForm", "[", "Blue", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Polygon", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", RowBox[{"Min", "[", RowBox[{"C1", ",", "C2"}], "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"Max", "[", RowBox[{ RowBox[{"C1", "-", "C2"}], ",", "0"}], "]"}], ",", RowBox[{"Min", "[", RowBox[{"C1", ",", "C2"}], "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"C1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Locator", "[", RowBox[{"{", RowBox[{ RowBox[{"Y1", RowBox[{"(", RowBox[{"1", "-", "P1"}], ")"}]}], ",", RowBox[{"Y0", RowBox[{"(", RowBox[{"1", "-", "P1"}], ")"}], RowBox[{"(", RowBox[{"1", "-", "P2"}], ")"}]}]}], "}"}], "]"}]}], "\[IndentingNewLine]", "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Axes", "\[Rule]", "True"}], ",", RowBox[{"AxesLabel", "\[Rule]", RowBox[{"{", RowBox[{ "\"\<\!\(\*SubscriptBox[\(y\), \(A\)]\)\>\"", ",", "\"\<\!\(\*SubscriptBox[\(y\), \(B\)]\)\>\""}], "}"}]}], ",", RowBox[{"AxesOrigin", "\[Rule]", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]", "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"feas2a", "[", RowBox[{"linear2apars", ",", "X"}], "]"}]}], "Input", CellChangeTimes->{{3.5172612167833815`*^9, 3.517261651072544*^9}, { 3.517261710524248*^9, 3.5172617794295692`*^9}, {3.5172618157464333`*^9, 3.5172620737084866`*^9}, {3.5172621043781404`*^9, 3.51726216103744*^9}, { 3.5172622214407463`*^9, 3.5172622565252075`*^9}, {3.5172623004236846`*^9, 3.517262303918091*^9}, {3.517262431479515*^9, 3.517262438437127*^9}, { 3.5172625476997185`*^9, 3.5172625504141235`*^9}, {3.5309587458081083`*^9, 3.5309588213122406`*^9}, {3.53095886645872*^9, 3.5309588767391376`*^9}, { 3.5309589481560636`*^9, 3.5309590906467137`*^9}, {3.530959147508814*^9, 3.5309592248693495`*^9}, {3.5309592807330475`*^9, 3.5309594451729364`*^9}, { 3.5309595954636*^9, 3.5309596025772133`*^9}}], Cell[BoxData[ GraphicsBox[ {EdgeForm[RGBColor[0, 0, 1]], FaceForm[RGBColor[0.8, 0.8, 1.]], PolygonBox[{{0, 0}, {0, 30}, {20, 30}, {50, 0}, {0, 0}}], LocatorBox[{25.139647660356456`, 24.35438576528938}]}, Axes->True, AxesLabel->{ FormBox[ "\"\\!\\(\\*SubscriptBox[\\(y\\), \\(A\\)]\\)\"", TraditionalForm], FormBox[ "\"\\!\\(\\*SubscriptBox[\\(y\\), \\(B\\)]\\)\"", TraditionalForm]}, AxesOrigin->{0, 0}]], "Output", CellChangeTimes->{{3.517261587159232*^9, 3.5172616190144877`*^9}, { 3.5172617550779266`*^9, 3.5172617798975706`*^9}, {3.517261842906081*^9, 3.517261912435403*^9}, {3.5172619444778595`*^9, 3.5172619552418785`*^9}, { 3.517262014802783*^9, 3.517262039825227*^9}, 3.5172620741452875`*^9, 3.5172621614118404`*^9, {3.5172622343419685`*^9, 3.5172622570556087`*^9}, 3.5172623042768917`*^9, 3.517262438936328*^9, 3.5172625040508423`*^9, 3.517262551194125*^9, {3.5309590871523075`*^9, 3.5309590911771145`*^9}, { 3.5309591620012393`*^9, 3.5309591696608524`*^9}, {3.5309592025301104`*^9, 3.530959225477751*^9}, {3.5309593345375423`*^9, 3.530959375596814*^9}, { 3.530959415298884*^9, 3.5309594456721373`*^9}, {3.5309595988176064`*^9, 3.530959603107614*^9}, 3.5309601604072266`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"linear2aplot", "[", RowBox[{"pars_", ",", "topo_", ",", "x0_"}], "]"}], " ", ":=", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "vals", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"vals", " ", "=", " ", RowBox[{"Thread", "[", RowBox[{ RowBox[{"{", RowBox[{"y0", ",", "y1"}], "}"}], "\[Rule]", "x0"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"ShowNetwork", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"link", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "3.5"}], "}"}], ",", "1", ",", "\"\\"", ",", RowBox[{"Label", "\[Rule]", "ShowLoad"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "6"}], "}"}], ",", "1", ",", "\"\\"", ",", RowBox[{"Label", "\[Rule]", "ShowLoad"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{"6", ",", "4.8"}], "}"}], ",", "1", ",", "\"\\""}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{"2", ",", "6"}], "}"}], ",", "1", ",", "\"\\""}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{ RowBox[{ RowBox[{"c1", "/", "100"}], " ", "/.", " ", "pars"}], ",", RowBox[{"{", RowBox[{"0", ",", "5"}], "}"}], ",", "1", ",", "\"\\"", ",", RowBox[{"Label", "\[Rule]", RowBox[{"ShowDrop", "[", "drop", "]"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{ RowBox[{ RowBox[{"c2", "/", "100"}], " ", "/.", " ", "pars"}], ",", RowBox[{"{", RowBox[{"4", ",", "5"}], "}"}], ",", "1", ",", "\"\\"", ",", RowBox[{"Label", "\[Rule]", RowBox[{"ShowDrop", "[", "drop", "]"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"flow", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"y0", "/", "100"}], " ", "/.", " ", "vals"}], " ", "/.", " ", "pars"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", "\"\\""}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"flow", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"y1", "/", "100"}], " ", "/.", " ", "vals"}], " ", "/.", " ", "pars"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", "\"\\""}], "]"}], ","}], "\[IndentingNewLine]", "}"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "3"}], ",", "7"}], "}"}], ",", RowBox[{"{", RowBox[{"2.5", ",", "7.5"}], "}"}]}], "}"}]}], ",", " ", "\[IndentingNewLine]", RowBox[{"FlowStyle", "\[Rule]", RowBox[{"{", RowBox[{"col0", ",", "col1", ",", "col2"}], "}"}]}]}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}], "\n", RowBox[{"linear2aplot", "[", RowBox[{"linear2apars", ",", "linear2atopo", ",", "X"}], "]"}]}], "Input", CellChangeTimes->{{3.43853418128125*^9, 3.4385342699375*^9}, { 3.43853784090625*^9, 3.4385378520625*^9}, {3.438538202203125*^9, 3.438538211203125*^9}, {3.4385387315*^9, 3.4385387333125*^9}, { 3.43853913396875*^9, 3.43853916153125*^9}, {3.438539407671875*^9, 3.43853940909375*^9}, {3.438539623125*^9, 3.4385396279375*^9}, { 3.438540183796875*^9, 3.438540184984375*^9}, {3.4385536773394604`*^9, 3.4385536787144604`*^9}, {3.4385543486675854`*^9, 3.4385543539957104`*^9}, {3.4385544864332104`*^9, 3.4385544994488354`*^9}, {3.4385545549332104`*^9, 3.4385545715582104`*^9}, {3.4759687847251177`*^9, 3.475968883337882*^9}, { 3.4759689400650034`*^9, 3.4759689612440786`*^9}, 3.475969009398568*^9, { 3.475969736845992*^9, 3.475969794348125*^9}, {3.4759698634641867`*^9, 3.4759698731930857`*^9}, {3.475969983231026*^9, 3.4759699852898083`*^9}, { 3.4759701067741737`*^9, 3.475970108210446*^9}, {3.4759702085332365`*^9, 3.4759704040199895`*^9}, {3.475970684850553*^9, 3.4759707287562275`*^9}, { 3.4759754786052723`*^9, 3.475975569092681*^9}, {3.4759756169679236`*^9, 3.475975700620782*^9}, {3.4759758396981735`*^9, 3.4759758474745426`*^9}, { 3.477238632108489*^9, 3.4772386363110533`*^9}, {3.477241284780672*^9, 3.477241284950675*^9}, {3.500967096189453*^9, 3.500967260658203*^9}, { 3.500967502908203*^9, 3.500967543986328*^9}, {3.5009677865810547`*^9, 3.5009677885498047`*^9}, {3.5009679114248047`*^9, 3.5009679159560547`*^9}, {3.5009679620185547`*^9, 3.5009679912851562`*^9}, {3.5009681847382812`*^9, 3.5009683164414062`*^9}, {3.5009683604726562`*^9, 3.5009684392382812`*^9}, {3.5009684792226562`*^9, 3.500968698942383*^9}, { 3.500968760520508*^9, 3.500968784020508*^9}, {3.500968814145508*^9, 3.500968817739258*^9}, {3.5009739233466797`*^9, 3.5009739356904297`*^9}, { 3.5039272043085938`*^9, 3.5039272154023438`*^9}, {3.5039272594023438`*^9, 3.5039273724179688`*^9}, {3.5039274342304688`*^9, 3.5039275839804688`*^9}, {3.5039276585898438`*^9, 3.5039276637617188`*^9}, {3.50392855415625*^9, 3.50392868321875*^9}, { 3.50392878446875*^9, 3.503928805453125*^9}, {3.503929765611328*^9, 3.5039297712695312`*^9}, {3.5039299207695312`*^9, 3.5039299274726562`*^9}, {3.5039303938808594`*^9, 3.5039304426308594`*^9}, {3.5039305990058594`*^9, 3.5039306693339844`*^9}, {3.5039307053027344`*^9, 3.5039308044902344`*^9}, {3.5039308356933594`*^9, 3.5039308515214844`*^9}, {3.5039312564072266`*^9, 3.5039315057822266`*^9}, {3.5039315363916016`*^9, 3.5039315552041016`*^9}, {3.5039315924384766`*^9, 3.5039316878447266`*^9}, {3.5039317357353516`*^9, 3.5039317764384766`*^9}, {3.5039322818916016`*^9, 3.5039322832353516`*^9}, {3.503943292866211*^9, 3.5039433034345703`*^9}, { 3.503943477591797*^9, 3.503943507203125*^9}, {3.5039435599726562`*^9, 3.503943561024414*^9}, {3.5039442118935547`*^9, 3.5039442187841797`*^9}, { 3.5039886174882812`*^9, 3.5039886319570312`*^9}, {3.5039888138222656`*^9, 3.5039888463535156`*^9}, {3.5172522936325483`*^9, 3.51725247102046*^9}, { 3.517252508710126*^9, 3.5172526864412384`*^9}, {3.517252734208522*^9, 3.517252855233535*^9}, {3.517252888055992*^9, 3.517252930628467*^9}, { 3.517253041809862*^9, 3.517253073867919*^9}, {3.517260481148489*^9, 3.517260484393295*^9}, {3.5172625345332956`*^9, 3.517262536530099*^9}, { 3.530959476825392*^9, 3.5309595101314507`*^9}, {3.5309595500207205`*^9, 3.5309595532811265`*^9}}], Cell[BoxData[ GraphicsBox[{{ {Hue[0.284, 0.27, 0.65], Thickness[0.030623255186023147`], LineBox[NCache[{{Rational[-5, 2], 3.5}, { Rational[-3, 2], 3.5}, {-1.4714375, 3.500084072720553}, {-1.4455, 3.500672581764422}, {-1.4218125, 3.5022699634549253`}, {-1.4000000000000001`, 3.5053806541153785`}, {-1.3796875000000002`, 3.5105090900690987`}, {-1.3605, 3.518159707639403}, {-1.3420625, 3.5288369431496074`}, {-1.324, 3.5430452329230286`}, {-1.3059375, 3.5612890132829844`}, {-1.2875, 3.5840727205527907`}, {-1.2683125000000002`, 3.6119007910557643`}, {-1.248, 3.6452776611152222`}, {-1.2261875, 3.684707767054481}, {-1.2025000000000001`, 3.7306955451968578`}, {-1.1765625, 3.7837454318656687`}, {-1.148, 3.8443618633842305`}, {-1.1164375, 3.913049276075861}, {-1.0815, 3.9903121062638753`}, {-1.0428125000000001`, 4.076654790271592}, {-1., 4.1725817644223255`}, {-0.9557625, 4.268508738573059}, {-0.9131, 4.354851422580776}, {-0.8720875, 4.432114252768791}, {-0.8328, 4.50080166546042}, {-0.7953125, 4.561418096978982}, {-0.7597, 4.614467983647794}, {-0.7260375, 4.66045576179017}, {-0.6943999999999999, 4.699885867729429}, {-0.6648625, 4.733262737788886}, {-0.6375, 4.76109080829186}, {-0.6123875, 4.783874515561667}, {-0.5896, 4.802118295921622}, {-0.5692124999999999, 4.816326585695044}, {-0.5512999999999999, 4.827003821205247}, {-0.5359374999999998, 4.8346544387755515`}, {-0.5231999999999999, 4.839782874729273}, {-0.5131624999999999, 4.842893565389725}, {-0.5058999999999998, 4.844490947080229}, {-0.5014874999999999, 4.845079456124099}, {-0.4999999999999998, 4.845163528844651}, { Rational[1, 2], 4.845163528844651}, {0.5286875000000001, 4.845173206124098}, {0.5554999999999999, 4.845240947080229}, { 0.5815625, 4.845424815389726}, {0.608, 4.845782874729273}, { 0.6359374999999999, 4.846373188775552}, {0.6665, 4.847253821205248}, { 0.7008125000000001, 4.848482835695044}, {0.7400000000000001, 4.8501182959216225`}, {0.7851875, 4.852218265561667}, {0.8375, 4.85484080829186}, {0.8980625, 4.858043987788887}, {0.968, 4.861885867729429}, {1.0484375000000001`, 4.86642451179017}, {1.1405, 4.871717983647794}, {1.2453125, 4.877824346978983}, { 1.3639999999999999`, 4.8848016654604205`}, {1.4976874999999998`, 4.89270800276879}, {1.6474999999999997`, 4.901601422580776}, { 1.8145624999999999`, 4.911539988573059}, {1.9999999999999998`, 4.9225817644223255`}, {2.1868625, 4.933623540271592}, { 2.3579000000000003`, 4.943562106263875}, {2.5137875, 4.952455526075861}, {2.6552, 4.960361863384231}, {2.7828125, 4.967339181865669}, {2.8973, 4.973445545196858}, {2.9993374999999998`, 4.9787390170544805`}, {3.0896, 4.983277661115222}, { 3.1687624999999997`, 4.987119541055764}, {3.2375, 4.990322720552791}, {3.2964874999999996`, 4.9929452632829845`}, { 3.3464, 4.995045232923029}, {3.3879125, 4.9966806931496075`}, { 3.4216999999999995`, 4.997909707639403}, {3.4484375, 4.9987903400691}, {3.4688000000000003`, 4.999380654115379}, { 3.4834624999999995`, 4.999738713454925}, {3.4930999999999996`, 4.999922581764423}, {3.4983874999999993`, 4.999990322720552}, { 3.499999999999999, 5.}, {Rational[9, 2], 5.}, {4.5285625000000005`, 4.9999875}, {4.5545, 4.9999}, {4.5781875, 4.9996625}, {4.6, 4.9992}, { 4.620312500000001, 4.9984375}, {4.639499999999999, 4.9973}, { 4.6579375, 4.9957125}, {4.676, 4.9936}, {4.6940625, 4.9908875}, { 4.7125, 4.987500000000001}, {4.7316875000000005`, 4.9833625}, {4.752, 4.978400000000001}, {4.773812500000001, 4.9725375}, { 4.797499999999999, 4.9657}, {4.8234375, 4.9578125}, {4.852, 4.9488}, { 4.8835625, 4.9385875}, {4.9185, 4.927099999999999}, {4.9571875, 4.9142624999999995`}, {5., 4.8999999999999995`}, {5.0442374999999995`, 4.8857375}, {5.0869, 4.8729000000000005`}, {5.1279125, 4.861412500000001}, {5.1672, 4.8512}, {5.2046874999999995`, 4.8421875}, {5.2402999999999995`, 4.8343}, {5.2739625, 4.8274625}, { 5.305599999999999, 4.821599999999999}, {5.335137499999999, 4.816637500000001}, {5.3625, 4.8125}, {5.3876125, 4.8091125}, {5.4104, 4.8064}, {5.4307875, 4.8042875}, {5.4487, 4.802700000000001}, { 5.4640625, 4.8015625}, {5.4768, 4.800800000000001}, { 5.486837499999999, 4.8003375}, {5.4940999999999995`, 4.8001000000000005`}, {5.4985124999999995`, 4.8000125}, { 5.499999999999999, 4.800000000000001}, { Rational[13, 2], 4.8}}, CompressedData[" 1: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 e+v/uGea01f/B59a3P8h+H+a5Wis "]]]}, {Hue[0.582, 0.28, 0.7], Thickness[0.030967294231069777`], LineBox[NCache[{{Rational[-5, 2], 6.}, { Rational[-3, 2], 6.}, {-1.4714375, 5.999947069767246}, {-1.4455, 5.999576558137965}, {-1.4218125, 5.998570883715632}, {-1.4000000000000001`, 5.996612465103721}, {-1.3796875000000002`, 5.993383720905704}, {-1.3605, 5.988567069725057}, {-1.3420625, 5.981844930165252}, {-1.324, 5.972899720829764}, {-1.3059375, 5.961413860322066}, {-1.2875, 5.947069767245633}, {-1.2683125000000002`, 5.929549860203937}, {-1.248, 5.908536557800453}, {-1.2261875, 5.883712278638654}, {-1.2025000000000001`, 5.854759441322015}, {-1.1765625, 5.821360464454009}, {-1.148, 5.78319776663811}, {-1.1164375, 5.739953766477791}, {-1.0815, 5.691310882576527}, {-1.0428125000000001`, 5.6369515335377915`}, {-1., 5.5765581379650575`}, {-0.9557625, 5.516164742392325}, {-0.9131, 5.461805393353589}, {-0.8720875, 5.4131625094523255`}, {-0.8328, 5.369918509292007}, {-0.7953125, 5.331755811476107}, {-0.7597, 5.298356834608101}, {-0.7260375, 5.269403997291462}, {-0.6943999999999999, 5.244579718129663}, {-0.6648625, 5.22356641572618}, {-0.6375, 5.206046508684484}, {-0.6123875, 5.19170241560805}, {-0.5896, 5.180216555100353}, {-0.5692124999999999, 5.171271345764864}, {-0.5512999999999999, 5.164549206205059}, {-0.5359374999999998, 5.159732555024412}, {-0.5231999999999999, 5.156503810826395}, {-0.5131624999999999, 5.154545392214485}, {-0.5058999999999998, 5.153539717792152}, {-0.5014874999999999, 5.15316920616287}, {-0.4999999999999998, 5.153116275930117}, { Rational[1, 2], 5.153116275930116}, {0.5285625, 5.15316920616287}, { 0.5544999999999999, 5.1535397177921505`}, {0.5781875, 5.154545392214484}, {0.6, 5.156503810826395}, {0.6203124999999999, 5.159732555024412}, {0.6395, 5.164549206205059}, {0.6579375, 5.171271345764864}, {0.676, 5.180216555100352}, {0.6940624999999999, 5.1917024156080505`}, {0.7124999999999999, 5.206046508684484}, { 0.7316874999999999, 5.22356641572618}, {0.7519999999999999, 5.244579718129663}, {0.7738125, 5.2694039972914615`}, {0.7975, 5.298356834608101}, {0.8234375, 5.331755811476107}, {0.852, 5.369918509292006}, {0.8835624999999999, 5.413162509452324}, { 0.9184999999999999, 5.461805393353588}, {0.9571875, 5.5161647423923235`}, {1., 5.576558137965057}, {1.0442375, 5.6369515335377915`}, {1.0869, 5.691310882576527}, { 1.1279124999999999`, 5.739953766477791}, {1.1672, 5.78319776663811}, { 1.2046875000000001`, 5.821360464454009}, {1.2403000000000002`, 5.854759441322015}, {1.2739624999999999`, 5.8837122786386535`}, { 1.3056, 5.908536557800453}, {1.3351375, 5.929549860203936}, {1.3625, 5.947069767245632}, {1.3876125000000001`, 5.961413860322066}, {1.4104, 5.972899720829763}, {1.4307875, 5.981844930165252}, { 1.4487000000000003`, 5.988567069725057}, {1.4640625, 5.993383720905704}, {1.4768000000000001`, 5.996612465103721}, { 1.4868375, 5.998570883715632}, {1.4941, 5.9995765581379645`}, { 1.4985125, 5.999947069767246}, {1.5000000000000002`, 6.}, { Rational[5, 2], 6.}}, CompressedData[" 1:eJxVVHtQVGUUXwkpeUwEd/eagIgQ4+Qoi4iKiedDHJCHkgkYiA8wkIKCgiEz FAhBTJlwGoLCBw8rGFCoNJAcDgKViL1kkiVfC7vL8nA3WPYBqNDey/3+6Mzs fHNm7pz9nfN7uCWkvZFoIRKJIs0/7p0vy/b5dzGZf6eQ9vtaQ2wtTpkwr3DE VTfHkkjF1xVdy0xotTZ8rsTc+125mdWGRvzcq2rvyVmWHEriyoirKuNnTjxl yVofczkasa/BqtRvmiVTu7gBBizLXqQJ1bPE1mLlCclHBkxfp7iRrGFJd1bb hSVeBkxaYNcLSpYUjO1sWarS4zFLkTxbxpKvvuRKj9eTfGtvd7NkP4cvTI/u EZ5j95pZYp7W/7tpEluUYcm7q1nyJgfw/CTm7nB9NFbEks3WfTXp/pN47IeX XwxKYQkHz6dXh80brzQ7hLDkjCYbfPfp0MsmuXzWjSVNHySf0dyfwNGwy+k/ GiRE/aRu4s72CXzsLhKpOyWkpMOwIq5xHDe23l3of1oi3G8c+3zrAxJ3SEjY zef9K0q1mPVdztFiewnJ3YZHXTZosDM4Ol8hE5Pg5w7beAyP4S+utQ7Mt2IS +nG+V/g3o5h3QDvac0Q8jy9jBKek1T3Nu8Sk4ZJsf1bEMHq3bMo87i0me9/9 efb719QodVl/8aGjmIzrQ2MKNwyhqdDaKWOGIS/92tpSHKTCYmdpuVbJEJ6e JCXqLd3uPbvDkIqoC/WXyhXofSi6ZnsXQ2LY5r9EDwcx9J2Qpk9bGLJt9Zzb s3WDCL4ZN+IbGcK4dKvg4gAu/jf8i5xahiRy4zwHUNYWoS2pYcjQ6RUauzY5 ftKjL9pSyRBwjO/sTZGjy6arrwScZ8iS7Pg1UVI51q+3Pu53jiHLuYVt5bha lXpQdpYhT+e4eoRNKdH5t8z9/D3l0Cj0W0+lqp+MyIF+v5sX4ADUCfOKy95z yM8dBGfh//j7+SiA4uHl068AiteeF4gS6D48v3YqoPumOeS336pSQYhwDzPb n3X4DsEa4V63+RoCes9ADt/baqD35tSSYD8MlI/XOYCdw+Al8MXru2AEKJ+8 vmNGgfL9wMMqrzRwDHIFPZjN8cAj6DF0CXqRvtDgHPuWBjoEPQ0cYS4HV2kh U9CboEe4K+jxHyczAVfHgeq1fc+ygImDE0D1HDcbOKOx0QHV+54tm4f7G3RA /cD7O2gSqF9W1jn+uVU2CdRPO0PO5Xom6CFH8FtRQWzvdYUeqB8Pn612vxZn gOWCX3/j72eAnwQ/+0RJX63zMQL1e2SmR9lciREShTy4nyxKy1MagebFh+87 2clXmYDmCT8v1QQ0b4qvpSyarjQBzaMDWRFLJbdMQPNKF/BH0t9qEywU8kwb a1542gQ07xbM5yH8Px8tCe3/Azt/bIw= "]]]}}, { {GrayLevel[0.8], Opacity[0.5], RectangleBox[NCache[{Rational[-1, 2], Rational[21, 4]}, {-0.5, 5.25}], NCache[{Rational[1, 2], Rational[19, 4]}, {0.5, 4.75}]], DiskBox[NCache[{Rational[-1, 2], 5}, {-0.5, 5}], NCache[{0.1, Rational[1, 4]}, {0.1, 0.25}], NCache[{Rational[1, 2] Pi, Rational[3, 2] Pi}, {1.5707963267948966`, 4.71238898038469}]], DiskBox[NCache[{Rational[1, 2], 5}, {0.5, 5}], NCache[{0.1, Rational[1, 4]}, {0.1, 0.25}], NCache[{Rational[-1, 2] Pi, Rational[1, 2] Pi}, {-1.5707963267948966`, 1.5707963267948966`}]]}, CircleBox[NCache[{Rational[-1, 2], 5}, {-0.5, 5}], NCache[{0.1, Rational[1, 4]}, {0.1, 0.25}]], CircleBox[NCache[{Rational[1, 2], 5}, {0.5, 5}], NCache[{0.1, Rational[1, 4]}, {0.1, 0.25}], NCache[{Rational[-1, 2] Pi, Rational[1, 2] Pi}, {-1.5707963267948966`, 1.5707963267948966`}]], LineBox[NCache[{{Rational[-1, 2], Rational[21, 4]}, { Rational[1, 2], Rational[21, 4]}}, {{-0.5, 5.25}, {0.5, 5.25}}]], LineBox[NCache[{{Rational[-1, 2], Rational[19, 4]}, { Rational[1, 2], Rational[19, 4]}}, {{-0.5, 4.75}, {0.5, 4.75}}]]}, { {GrayLevel[0.8], Opacity[0.5], RectangleBox[NCache[{Rational[7, 2], Rational[103, 20]}, {3.5, 5.15}], NCache[{Rational[9, 2], Rational[97, 20]}, {4.5, 4.85}]], DiskBox[NCache[{Rational[7, 2], 5}, {3.5, 5}], NCache[{0.1, Rational[3, 20]}, {0.1, 0.15}], NCache[{Rational[1, 2] Pi, Rational[3, 2] Pi}, {1.5707963267948966`, 4.71238898038469}]], DiskBox[NCache[{Rational[9, 2], 5}, {4.5, 5}], NCache[{0.1, Rational[3, 20]}, {0.1, 0.15}], NCache[{Rational[-1, 2] Pi, Rational[1, 2] Pi}, {-1.5707963267948966`, 1.5707963267948966`}]]}, CircleBox[NCache[{Rational[7, 2], 5}, {3.5, 5}], NCache[{0.1, Rational[3, 20]}, {0.1, 0.15}]], CircleBox[NCache[{Rational[9, 2], 5}, {4.5, 5}], NCache[{0.1, Rational[3, 20]}, {0.1, 0.15}], NCache[{Rational[-1, 2] Pi, Rational[1, 2] Pi}, {-1.5707963267948966`, 1.5707963267948966`}]], LineBox[NCache[{{Rational[7, 2], Rational[103, 20]}, { Rational[9, 2], Rational[103, 20]}}, {{3.5, 5.15}, {4.5, 5.15}}]], LineBox[NCache[{{Rational[7, 2], Rational[97, 20]}, { Rational[9, 2], Rational[97, 20]}}, {{3.5, 4.85}, {4.5, 4.85}}]]}, { StyleBox[InsetBox[ TagBox[ InterpretationBox["\<\"30.6\"\>", 30.623255186023147`, AutoDelete->True], NumberForm[#, {3, 1}]& ], {-2, 3.5}, {1, 0}], "Legend", StripOnInput->False], StyleBox[InsetBox[ TagBox[ InterpretationBox["\<\"31.0\"\>", 30.967294231069776`, AutoDelete->True], NumberForm[#, {3, 1}]& ], {-2, 6}, {1, 0}], "Legend", StripOnInput->False], {}, {}, StyleBox[InsetBox["\<\"18.8%\"\>", {0, 5}, {0, 0}], "Legend", StripOnInput->False], StyleBox[InsetBox["\<\"2.0%\"\>", {4, 5}, {0, 0}], "Legend", StripOnInput->False]}}, ImageSize->Large, PlotRange->{{-3, 7}, {2.5, 7.5}}]], "Output", CellChangeTimes->{ 3.5172524910976954`*^9, {3.5172525246533537`*^9, 3.5172526871120396`*^9}, { 3.5172527349729233`*^9, 3.5172528558419356`*^9}, {3.5172528888203936`*^9, 3.5172529312212677`*^9}, 3.5172530030437946`*^9, {3.5172530449142675`*^9, 3.51725307436712*^9}, 3.5172604849236956`*^9, 3.517260547745006*^9, 3.5172606109875174`*^9, 3.517262537403701*^9, {3.53095950420344*^9, 3.5309595108334517`*^9}, 3.530959553873927*^9, 3.5309601605791016`*^9}] }, Open ]], Cell[BoxData[ RowBox[{"Manipulate", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"DynamicModule", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"X", "=", RowBox[{"{", RowBox[{"20", ",", "20"}], "}"}]}], ",", "Xnew"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Dynamic", "[", RowBox[{"Refresh", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"pars", "=", RowBox[{"{", RowBox[{ RowBox[{"c1", "\[Rule]", "cap1"}], ",", RowBox[{"c2", "\[Rule]", "cap2"}], ",", RowBox[{"rtt0", "\[Rule]", RowBox[{"RTT0", "/", "100"}]}], ",", RowBox[{"rtt1", "\[Rule]", RowBox[{"RTT1", "/", "100"}]}]}], "}"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"Xnew", "=", RowBox[{"updatemodel", "[", RowBox[{ "linear2a", ",", "linear2atopo", ",", "pars", ",", "X"}], "]"}]}], ")"}], "===", "None"}], ",", ",", " ", RowBox[{"X", "=", "Xnew"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"Show", "[", RowBox[{ RowBox[{"linear2aplot", "[", RowBox[{"pars", ",", "linear2atopo", ",", "X"}], "]"}], ",", RowBox[{"ImageSize", "\[Rule]", RowBox[{"{", RowBox[{"Automatic", ",", "200"}], "}"}]}]}], "]"}], ",", RowBox[{"Show", "[", RowBox[{ RowBox[{"feas2a", "[", RowBox[{"pars", ",", "X"}], "]"}], ",", RowBox[{"ImageSize", "\[Rule]", RowBox[{"{", RowBox[{"Automatic", ",", "200"}], "}"}]}]}], "]"}]}], "}"}], "]"}]}]}], "\[IndentingNewLine]", "]"}], ",", "\[IndentingNewLine]", RowBox[{"TrackedSymbols", "\[RuleDelayed]", RowBox[{"{", RowBox[{"cap1", ",", "cap2", ",", "RTT0", ",", "RTT1", ",", "X"}], "}"}]}]}], "]"}], " ", "]"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{"\"\<\!\(\*SubscriptBox[\(C\), \(1\)]\) \>\"", ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"cap1", ",", "50", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "100", ",", "5"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"cap1", " ", "//", " ", "N"}], ",", "\"\< pkt/s\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{"\"\<\!\(\*SubscriptBox[\(C\), \(2\)]\) \>\"", ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"cap2", ",", "50", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "100", ",", "5"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"cap2", " ", "//", " ", "N"}], ",", "\"\< pkt/s\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"Style", "[", RowBox[{ "\"\<\!\(\*SubscriptBox[\(RTT\), \(B\)]\) \>\"", ",", "col0b"}], "]"}], ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"RTT0", ",", "100", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "250", ",", "10"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"RTT0", " ", "//", " ", "N"}], ",", "\"\< ms\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"Style", "[", RowBox[{ "\"\<\!\(\*SubscriptBox[\(RTT\), \(A\)]\) \>\"", ",", "col1b"}], "]"}], ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"RTT1", ",", "100", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "250", ",", "10"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"RTT1", " ", "//", " ", "N"}], ",", "\"\< ms\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"ControlPlacement", "\[Rule]", "Top"}], ",", "\[IndentingNewLine]", RowBox[{"SaveDefinitions", "\[Rule]", "True"}], ",", "\[IndentingNewLine]", RowBox[{"SynchronousUpdating", "\[Rule]", "False"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.438536049796875*^9, 3.438536156625*^9}, { 3.438536193828125*^9, 3.438536211625*^9}, {3.438536291203125*^9, 3.43853632078125*^9}, {3.43853642925*^9, 3.4385364329375*^9}, { 3.438536470171875*^9, 3.438536592875*^9}, {3.43853664078125*^9, 3.438536643734375*^9}, {3.438536785515625*^9, 3.43853683709375*^9}, { 3.438536875390625*^9, 3.4385368761875*^9}, {3.438537040359375*^9, 3.43853704109375*^9}, {3.43853714921875*^9, 3.438537180734375*^9}, { 3.43853722209375*^9, 3.438537267203125*^9}, {3.438537330765625*^9, 3.438537331921875*^9}, {3.43853766153125*^9, 3.438537690921875*^9}, { 3.438538995890625*^9, 3.438539000125*^9}, 3.438539063171875*^9, { 3.43853953796875*^9, 3.438539570359375*^9}, {3.43853968*^9, 3.43853972096875*^9}, {3.43854019084375*^9, 3.438540256640625*^9}, { 3.43854042634375*^9, 3.438540475640625*^9}, 3.438540513375*^9, { 3.4385536873394604`*^9, 3.4385536910113354`*^9}, {3.4385538204175854`*^9, 3.4385538237769604`*^9}, {3.4385539890894604`*^9, 3.4385540096832104`*^9}, {3.4385540587925854`*^9, 3.4385541107925854`*^9}, 3.4385541531363354`*^9, {3.4385542043863354`*^9, 3.4385542282769604`*^9}, { 3.4385543690113354`*^9, 3.4385544664019604`*^9}, 3.4385545799175854`*^9, { 3.4385546802300854`*^9, 3.4385547606050854`*^9}, 3.4385548211207104`*^9, { 3.4428269192008753`*^9, 3.4428269602008753`*^9}, {3.4428273958415003`*^9, 3.4428274062477503`*^9}, {3.444737603375*^9, 3.44473760421875*^9}, { 3.44473764940625*^9, 3.444737656578125*^9}, {3.444739597875*^9, 3.444739603640625*^9}, {3.444739951515625*^9, 3.444739956859375*^9}, { 3.4759705241318345`*^9, 3.4759705458934183`*^9}, {3.475970577740158*^9, 3.4759706263784046`*^9}, {3.4759708058449116`*^9, 3.475970827606496*^9}, { 3.475970909386502*^9, 3.4759709339856296`*^9}, {3.4759712588281193`*^9, 3.4759712592506256`*^9}, {3.4759713274976835`*^9, 3.475971329497714*^9}, { 3.475971525606658*^9, 3.4759715267779255`*^9}, {3.475971569497332*^9, 3.4759715709636045`*^9}, {3.4759718451480827`*^9, 3.4759718461830983`*^9}, {3.475975709013666*^9, 3.4759757099461803`*^9}, { 3.47597608167439*^9, 3.4759760976108847`*^9}, {3.4759761732032957`*^9, 3.4759764478020163`*^9}, {3.475976496037757*^9, 3.4759767053784723`*^9}, { 3.4772362198288784`*^9, 3.477236321224186*^9}, {3.4772363562447233`*^9, 3.477236561924133*^9}, {3.4772366590893755`*^9, 3.477236660770651*^9}, { 3.4772376483520985`*^9, 3.4772376787450657`*^9}, {3.477238723252389*^9, 3.4772387347363153`*^9}, 3.477241350586683*^9, {3.500967409986328*^9, 3.500967411048828*^9}, {3.5009737631591797`*^9, 3.5009737664248047`*^9}, { 3.5009738803466797`*^9, 3.5009739101591797`*^9}, {3.5009739513154297`*^9, 3.5009739623623047`*^9}, {3.5039277293242188`*^9, 3.503927865303711*^9}, { 3.50392807478125*^9, 3.503928082375*^9}, {3.503928197296875*^9, 3.503928220671875*^9}, {3.5039282586875*^9, 3.503928295359375*^9}, { 3.503928339734375*^9, 3.503928362625*^9}, {3.5039299641445312`*^9, 3.5039299951601562`*^9}, {3.5039300665976562`*^9, 3.5039301162382812`*^9}, {3.5039308806152344`*^9, 3.5039308807402344`*^9}, {3.5039318208447266`*^9, 3.5039318559853516`*^9}, {3.5039319938916016`*^9, 3.5039320095166016`*^9}, {3.5039320502666016`*^9, 3.5039320520478516`*^9}, {3.5039320932197266`*^9, 3.5039322016416016`*^9}, {3.5039323755634766`*^9, 3.5039323823447266`*^9}, {3.5039324201416016`*^9, 3.5039324308603516`*^9}, 3.5039436036132812`*^9, {3.5039436769902344`*^9, 3.503943677109375*^9}, { 3.503943725786133*^9, 3.5039437340253906`*^9}, {3.5039888623378906`*^9, 3.5039888631660156`*^9}, {3.517252954449709*^9, 3.517252956290512*^9}, { 3.517253089967147*^9, 3.517253094366355*^9}, {3.5172531306364183`*^9, 3.517253275607473*^9}, {3.517259537068471*^9, 3.5172595399388757`*^9}, { 3.5172596102390213`*^9, 3.517259668052723*^9}, {3.5172597572880955`*^9, 3.517259760298901*^9}, {3.5172599956288366`*^9, 3.5172600127732663`*^9}, { 3.517260119961055*^9, 3.5172601201638556`*^9}, {3.5172601552795167`*^9, 3.5172601599283247`*^9}, {3.517260198007992*^9, 3.5172603321058273`*^9}, { 3.517260377267907*^9, 3.517260459901252*^9}, {3.5172605548586187`*^9, 3.5172605609426293`*^9}, {3.5172606161979265`*^9, 3.517260659285202*^9}, { 3.5172609094628415`*^9, 3.517260910976044*^9}, {3.517260962643335*^9, 3.517260967697744*^9}, 3.517261097084371*^9, {3.5172622700660315`*^9, 3.5172622849328575`*^9}, {3.5172626114882307`*^9, 3.517262638975479*^9}, { 3.5172627011727886`*^9, 3.5172627076624002`*^9}, {3.530959574231963*^9, 3.5309596187856417`*^9}, {3.5309597877495384`*^9, 3.530959791025544*^9}, { 3.5309601003134766`*^9, 3.5309601408759766`*^9}}] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ Rate-level model of TCP (3 routes)\ \>", "Section", CellChangeTimes->{{3.5172514258699875`*^9, 3.5172514294735937`*^9}, { 3.530955322288701*^9, 3.5309553232559023`*^9}, {3.530958627762701*^9, 3.5309586298375044`*^9}}], Cell[BoxData[ TagBox[ StyleBox[ DynamicModuleBox[{$CellContext`cap1$$ = 50, $CellContext`cap2$$ = 30, $CellContext`RTT0$$ = 100, $CellContext`RTT1$$ = 100, $CellContext`RTT2$$ = 100, Typeset`show$$ = True, Typeset`bookmarkList$$ = {}, Typeset`bookmarkMode$$ = "Menu", Typeset`animator$$, Typeset`animvar$$ = 1, Typeset`name$$ = "\"untitled\"", Typeset`specs$$ = {{{ Hold[$CellContext`cap1$$], 50, ""}, 0, 100, 5}, { Hold[ Row[{"\!\(\*SubscriptBox[\(C\), \(1\)]\) ", Manipulate`Place[1], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`cap1$$], " pkt/s"]]}]], Manipulate`Dump`ThisIsNotAControl}, {{ Hold[$CellContext`cap2$$], 50, ""}, 0, 100, 5}, { Hold[ Row[{"\!\(\*SubscriptBox[\(C\), \(2\)]\) ", Manipulate`Place[2], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`cap2$$], " pkt/s"]]}]], Manipulate`Dump`ThisIsNotAControl}, {{ Hold[$CellContext`RTT0$$], 100, ""}, 0, 250, 10}, { Hold[ Row[{ Style["\!\(\*SubscriptBox[\(RTT\), \(0\)]\) ", Hue[0.284, 0.27, 0.682]], Manipulate`Place[3], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`RTT0$$], " ms"]]}]], Manipulate`Dump`ThisIsNotAControl}, {{ Hold[$CellContext`RTT1$$], 100, ""}, 0, 250, 10}, { Hold[ Row[{ Style["\!\(\*SubscriptBox[\(RTT\), \(1\)]\) ", Hue[0.582, 0.28, 0.636]], Manipulate`Place[4], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`RTT1$$], " ms"]]}]], Manipulate`Dump`ThisIsNotAControl}, {{ Hold[$CellContext`RTT2$$], 100, ""}, 0, 250, 10}, { Hold[ Row[{ Style["\!\(\*SubscriptBox[\(RTT\), \(2\)]\) ", Hue[0.582, 0.03, 0.632]], Manipulate`Place[5], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`RTT2$$], " ms"]]}]], Manipulate`Dump`ThisIsNotAControl}}, Typeset`size$$ = { 602., {98., 101.}}, Typeset`update$$ = 0, Typeset`initDone$$, Typeset`skipInitDone$$ = False, $CellContext`cap1$223115$$ = 0, $CellContext`cap2$223116$$ = 0, $CellContext`RTT0$223117$$ = 0, $CellContext`RTT1$223118$$ = 0, $CellContext`RTT2$223119$$ = 0}, DynamicBox[Manipulate`ManipulateBoxes[ 2, StandardForm, "Variables" :> {$CellContext`cap1$$ = 50, $CellContext`cap2$$ = 50, $CellContext`RTT0$$ = 100, $CellContext`RTT1$$ = 100, $CellContext`RTT2$$ = 100}, "ControllerVariables" :> { Hold[$CellContext`cap1$$, $CellContext`cap1$223115$$, 0], Hold[$CellContext`cap2$$, $CellContext`cap2$223116$$, 0], Hold[$CellContext`RTT0$$, $CellContext`RTT0$223117$$, 0], Hold[$CellContext`RTT1$$, $CellContext`RTT1$223118$$, 0], Hold[$CellContext`RTT2$$, $CellContext`RTT2$223119$$, 0]}, "OtherVariables" :> { Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$, Typeset`skipInitDone$$}, "Body" :> DynamicModule[{$CellContext`X = {20, 20, 20}, $CellContext`Xnew}, Dynamic[ Refresh[ With[{$CellContext`pars = {$CellContext`c1 -> $CellContext`cap1$$, \ $CellContext`c2 -> $CellContext`cap2$$, $CellContext`rtt0 -> \ $CellContext`RTT0$$/100, $CellContext`rtt1 -> $CellContext`RTT1$$/ 100, $CellContext`rtt2 -> $CellContext`RTT2$$/100}}, If[($CellContext`Xnew = \ $CellContext`updatemodel[$CellContext`linear2, $CellContext`linear2topo, \ $CellContext`pars, $CellContext`X]) === None, Null, $CellContext`X = $CellContext`Xnew]; Row[{ $CellContext`linear2plot[$CellContext`pars, \ $CellContext`linear2topo, $CellContext`X], $CellContext`feas[$CellContext`pars, $CellContext`X]}]], TrackedSymbols :> {$CellContext`cap1$$, $CellContext`cap2$$, \ $CellContext`RTT0$$, $CellContext`RTT1$$, $CellContext`RTT2$$, \ $CellContext`X}]]], "Specifications" :> {{{$CellContext`cap1$$, 50, ""}, 0, 100, 5, ControlPlacement -> 1}, Row[{"\!\(\*SubscriptBox[\(C\), \(1\)]\) ", Manipulate`Place[1], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`cap1$$], " pkt/s"]]}], {{$CellContext`cap2$$, 50, ""}, 0, 100, 5, ControlPlacement -> 2}, Row[{"\!\(\*SubscriptBox[\(C\), \(2\)]\) ", Manipulate`Place[2], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`cap2$$], " pkt/s"]]}], {{$CellContext`RTT0$$, 100, ""}, 0, 250, 10, ControlPlacement -> 3}, Row[{ Style["\!\(\*SubscriptBox[\(RTT\), \(0\)]\) ", Hue[0.284, 0.27, 0.682]], Manipulate`Place[3], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`RTT0$$], " ms"]]}], {{$CellContext`RTT1$$, 100, ""}, 0, 250, 10, ControlPlacement -> 4}, Row[{ Style["\!\(\*SubscriptBox[\(RTT\), \(1\)]\) ", Hue[0.582, 0.28, 0.636]], Manipulate`Place[4], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`RTT1$$], " ms"]]}], {{$CellContext`RTT2$$, 100, ""}, 0, 250, 10, ControlPlacement -> 5}, Row[{ Style["\!\(\*SubscriptBox[\(RTT\), \(2\)]\) ", Hue[0.582, 0.03, 0.632]], Manipulate`Place[5], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`RTT2$$], " ms"]]}]}, "Options" :> {ControlPlacement -> Top, SynchronousUpdating -> False}, "DefaultOptions" :> {}], ImageSizeCache->{651., {197., 202.}}, SingleEvaluation->True], Deinitialization:>None, DynamicModuleValues:>{}, Initialization:>({$CellContext`X = {21.865720174799257`, 34.8017062132135, 23.560915477794186`}, $CellContext`updatemodel[ Pattern[$CellContext`fm, Blank[]], Pattern[$CellContext`topo, Blank[]], Pattern[$CellContext`pars, Blank[]], Pattern[$CellContext`x0, Blank[]]] := Module[{$CellContext`res, $CellContext`subs, $CellContext`Vars, \ $CellContext`eqs, $CellContext`eqsi, $CellContext`n, $CellContext`terms, \ $CellContext`drifts, $CellContext`d0}, $CellContext`n = Length[$CellContext`fm]; $CellContext`terms = Part[$CellContext`fm, All, 1]; $CellContext`drifts = Part[$CellContext`fm, All, 2]; $CellContext`d0 = ReplaceAll[ ReplaceAll[ ReplaceAll[$CellContext`drifts, $CellContext`topo], Thread[$CellContext`terms -> $CellContext`x0]], \ $CellContext`pars]; If[ $CellContext`AllZero[$CellContext`d0, 10^(-5)], None, $CellContext`subs = Table[Part[$CellContext`terms, $CellContext`i] -> \ $CellContext`Vars[$CellContext`i][$CellContext`t], {$CellContext`i, \ $CellContext`n}]; $CellContext`eqs = Table[Derivative[1][ $CellContext`Vars[$CellContext`i]][$CellContext`t] == Part[$CellContext`drifts, $CellContext`i], {$CellContext`i, \ $CellContext`n}]; $CellContext`eqsi = Table[$CellContext`Vars[$CellContext`i][0] == Part[$CellContext`x0, $CellContext`i], {$CellContext`i, \ $CellContext`n}]; $CellContext`res = First[ NDSolve[ ReplaceAll[ ReplaceAll[ ReplaceAll[ Join[$CellContext`eqs, $CellContext`eqsi], \ $CellContext`topo], $CellContext`subs], $CellContext`pars], Table[ $CellContext`Vars[$CellContext`i], {$CellContext`i, \ $CellContext`n}], {$CellContext`t, 0, 10}]]; ReplaceAll[ ReplaceAll[ ReplaceAll[$CellContext`terms, $CellContext`subs], \ {$CellContext`t -> 10}], $CellContext`res]]], $CellContext`AllZero[ Pattern[$CellContext`x, Blank[]], Pattern[$CellContext`opts, BlankNullSequence[]]] := Apply[And, Thread[Chop[$CellContext`x, $CellContext`opts] == 0]], Attributes[Derivative] = { NHoldAll, ReadProtected}, $CellContext`linear2 = {$CellContext`y0 -> \ $CellContext`rtt0^2 (-$CellContext`p1 - $CellContext`p2 + 2/($CellContext`rtt0^2 $CellContext`y0^2)) $CellContext`y0^2, \ $CellContext`y1 -> $CellContext`rtt1^2 (-$CellContext`p1 + 2/($CellContext`rtt1^2 $CellContext`y1^2)) $CellContext`y1^2, \ $CellContext`y2 -> $CellContext`rtt2^2 (-$CellContext`p2 + 2/($CellContext`rtt2^2 $CellContext`y2^2)) $CellContext`y2^2}, \ $CellContext`linear2topo = {$CellContext`p1 -> Max[0, 1 - $CellContext`c1/($CellContext`y0 + $CellContext`y1)], \ $CellContext`p2 -> Max[0, 1 - $CellContext`c2/($CellContext`y0 + $CellContext`y2)]}, \ $CellContext`linear2plot[ Pattern[$CellContext`pars, Blank[]], Pattern[$CellContext`topo, Blank[]], Pattern[$CellContext`x0, Blank[]]] := Module[{$CellContext`vals}, $CellContext`vals = Thread[{$CellContext`y0, $CellContext`y1, $CellContext`y2} -> \ $CellContext`x0]; $CellContext`ShowNetwork[{ $CellContext`link[ 0, {-2, 3.5}, 1, "src0", Label -> $CellContext`ShowLoad], $CellContext`link[ 0, {-2, 6}, 1, "src1", Label -> $CellContext`ShowLoad], $CellContext`link[ 0, {2.5, 6.5}, 1, "src2", Label -> $CellContext`ShowLoad], $CellContext`link[0, {6, 3.5}, 1, "dst0"], $CellContext`link[0, {2, 6}, 1, "dst1"], $CellContext`link[0, {6, 6}, 1, "dst2"], $CellContext`link[ ReplaceAll[$CellContext`c1/100, $CellContext`pars], {0, 5}, 1, "link1", Label -> $CellContext`ShowDrop[$CellContext`drop]], $CellContext`link[ ReplaceAll[$CellContext`c2/100, $CellContext`pars], {4, 5}, 1, "link2", Label -> $CellContext`ShowDrop[$CellContext`drop]], $CellContext`flow[ ReplaceAll[ ReplaceAll[$CellContext`y0/ 100, $CellContext`vals], $CellContext`pars], { "src0", "link1", "link2", "dst0"}, "flow0"], $CellContext`flow[ ReplaceAll[ ReplaceAll[$CellContext`y1/ 100, $CellContext`vals], $CellContext`pars], { "src1", "link1", "dst1"}, "flow1"], $CellContext`flow[ ReplaceAll[ ReplaceAll[$CellContext`y2/ 100, $CellContext`vals], $CellContext`pars], { "src2", "link2", "dst2"}, "flow2"]}, PlotRange -> {{-3, 7}, {2.5, 7.5}}, $CellContext`FlowStyle -> {$CellContext`col0, \ $CellContext`col1, $CellContext`col2}]], $CellContext`ShowNetwork[ Pattern[$CellContext`objects, Blank[]], Pattern[$CellContext`opts, BlankNullSequence[]]] := Module[{$CellContext`links, $CellContext`flows, \ $CellContext`linknames, $CellContext`linkdefs, $CellContext`flownames, \ $CellContext`linksused, $CellContext`adjacency, $CellContext`midpoints, \ $CellContext`GetMidpoints, $CellContext`flowdesc, $CellContext`flowpaths, \ $CellContext`cols, $CellContext`thicks, $CellContext`plotrange, \ $CellContext`loads}, $CellContext`links = Cases[$CellContext`objects, Blank[$CellContext`link]]; $CellContext`flows = Cases[$CellContext`objects, Blank[$CellContext`flow]]; $CellContext`linknames = Thread[Map[$CellContext`LinkName, $CellContext`links] -> Range[ Length[$CellContext`links]]]; $CellContext`linkdefs = Thread[Map[$CellContext`LinkName, $CellContext`links] -> Map[{ $CellContext`LinkCoord[#], $CellContext`LinkLength[#]}& , $CellContext`links]]; \ $CellContext`flownames = Thread[Map[$CellContext`FlowName, $CellContext`flows] -> Range[ Length[$CellContext`flows]]]; $CellContext`linksused = Map[$CellContext`LinksUsed, $CellContext`flows]; \ $CellContext`adjacency = Map[ Function[{$CellContext`linkname}, Map[$CellContext`Indicator[ MemberQ[#, $CellContext`linkname]]& , $CellContext`linksused]], Map[First, $CellContext`linknames]]; $CellContext`midpoints = Thread[ $CellContext`Midpoints[ Map[$CellContext`LinkCapacity, $CellContext`links], Map[ Map[$CellContext`FlowRate, $CellContext`flows] #& , \ $CellContext`adjacency]]]; $CellContext`GetMidpoints[ Pattern[$CellContext`links, Blank[List]], Pattern[$CellContext`flownum, Blank[]]] := Map[If[ Not[ StringQ[#]], #, $CellContext`uselink[#, Part[$CellContext`midpoints, ReplaceAll[#, $CellContext`linknames], $CellContext`flownum]]]& \ , $CellContext`links]; $CellContext`loads = Map[Map[$CellContext`FlowRate, $CellContext`flows] #& , \ $CellContext`adjacency]; $CellContext`flowdesc = ReplaceAll[ MapThread[$CellContext`GetMidpoints, { Map[$CellContext`Waypoints, $CellContext`flows], Range[ Length[$CellContext`flows]]}], $CellContext`linkdefs]; \ $CellContext`flowpaths = Map[$CellContext`CleanLine[ Flatten[ $CellContext`DrawFlow[#]]]& , $CellContext`flowdesc]; \ $CellContext`cols = ReplaceAll[ ReplaceAll[$CellContext`FlowStyle, {$CellContext`opts}], \ {$CellContext`FlowStyle -> $CellContext`FlowColours[ Length[$CellContext`flows]]}]; $CellContext`cols = \ $CellContext`Rep[$CellContext`cols, Length[$CellContext`flows]]; $CellContext`plotrange = ReplaceAll[ ReplaceAll[PlotRange, {$CellContext`opts}], { PlotRange -> {{Min[Map[First, Map[$CellContext`LinkCoord, $CellContext`links]] - Map[$CellContext`LinkLength, $CellContext`links]/2] - 1, Max[Map[First, Map[$CellContext`LinkCoord, $CellContext`links]] + Map[$CellContext`LinkLength, $CellContext`links]/2] + 1}, { Min[Map[$CellContext`Second, Map[$CellContext`LinkCoord, $CellContext`links]] - Map[$CellContext`LinkCapacity, $CellContext`links]/2 - 1], Max[Map[$CellContext`Second, Map[$CellContext`LinkCoord, $CellContext`links]] + Map[$CellContext`LinkCapacity, $CellContext`links]/2] + 1}}}]; $CellContext`thicks = Map[Thickness, Map[$CellContext`FlowRate, $CellContext`flows]/( Part[$CellContext`plotrange, 1, 2] - Part[$CellContext`plotrange, 1, 1])]; Show[{ Graphics[ Transpose[{$CellContext`cols, $CellContext`thicks, \ $CellContext`flowpaths}]], Map[$CellContext`DrawLink, $CellContext`links], Graphics[ MapThread[$CellContext`DrawLinkLabel, {$CellContext`links, \ $CellContext`loads}]]}, PlotRange -> $CellContext`plotrange, Apply[Sequence, FilterRules[ FilterRules[{$CellContext`opts}, Options[Graphics]], Except[PlotRange]]]]], $CellContext`LinkName[ $CellContext`link[ Pattern[C, Blank[]], Optional[ Pattern[$CellContext`xy, Blank[]], {0.5, 0}], Optional[ Pattern[$CellContext`L, Blank[]], 1], Optional[ Pattern[$CellContext`name, Blank[]], "link"], Pattern[$CellContext`rest, BlankNullSequence[]]]] := $CellContext`name, $CellContext`LinkCoord[ $CellContext`link[ Pattern[C, Blank[]], Optional[ Pattern[$CellContext`xy, Blank[]], {0.5, 0}], Pattern[$CellContext`rest, BlankNullSequence[]]]] := $CellContext`xy, $CellContext`LinkLength[ $CellContext`link[ Pattern[C, Blank[]], Optional[ Pattern[$CellContext`xy, Blank[]], {0.5, 0}], Optional[ Pattern[$CellContext`L, Blank[]], 1], Pattern[$CellContext`rest, BlankNullSequence[]]]] := $CellContext`L, $CellContext`FlowName[ $CellContext`flow[ Pattern[$CellContext`rate, Blank[]], Pattern[$CellContext`waypoints, Blank[]], Pattern[$CellContext`name, Blank[]]]] := $CellContext`name, $CellContext`LinksUsed[ $CellContext`flow[ Pattern[$CellContext`rate, Blank[]], Pattern[$CellContext`waypoints, Blank[]], Pattern[$CellContext`name, Blank[]]]] := Cases[$CellContext`waypoints, Blank[String]], $CellContext`Indicator[False] = 0, $CellContext`Indicator[True] = 1, $CellContext`Midpoints[ Pattern[$CellContext`c, Blank[]], Pattern[$CellContext`x, Blank[]]] := Condition[ With[{$CellContext`y = $CellContext`x/Apply[ Plus, $CellContext`x]}, $CellContext`c (Drop[ FoldList[Plus, 0, $CellContext`y], 1] - $CellContext`y/ 2) - $CellContext`c/2], And[$CellContext`c >= Apply[Plus, $CellContext`x], Not[ $CellContext`AllZero[$CellContext`x]]]], $CellContext`Midpoints[ Pattern[$CellContext`c, Blank[]], Pattern[$CellContext`x, Blank[]]] := Condition[Drop[ FoldList[Plus, 0, $CellContext`x], 1] - $CellContext`x/ 2 - $CellContext`c/ 2 - (-$CellContext`c + Apply[Plus, $CellContext`x])/ 2, $CellContext`c < Apply[Plus, $CellContext`x]], $CellContext`Midpoints[ Pattern[$CellContext`c, Blank[]], {}] := {}, $CellContext`Midpoints[ Pattern[$CellContext`c, Blank[]], Pattern[$CellContext`x, Blank[]]] := Condition[ Table[0, { Length[$CellContext`x]}], $CellContext`AllZero[$CellContext`x]], $CellContext`LinkCapacity[ $CellContext`link[ Pattern[C, Blank[]], Pattern[$CellContext`rest, BlankNullSequence[]]]] := C, $CellContext`FlowRate[ $CellContext`flow[ Pattern[$CellContext`rate, Blank[]], Pattern[$CellContext`rest, BlankNullSequence[]]]] := $CellContext`rate, $CellContext`Waypoints[ $CellContext`flow[ Pattern[$CellContext`rate, Blank[]], Pattern[$CellContext`waypoints, Blank[]], Pattern[$CellContext`rest, BlankNullSequence[]]]] := $CellContext`waypoints, \ $CellContext`CleanLine[ Pattern[$CellContext`line, Blank[]]] := Module[{$CellContext`s, $CellContext`a, $CellContext`b, \ $CellContext`cleansegment, $CellContext`res, $CellContext`inds}, \ $CellContext`cleansegment[ Pattern[$CellContext`s, Blank[Splines`Spline]]] := Table[ Part[$CellContext`s, 3][$CellContext`x], {$CellContext`x, 0, Length[ First[$CellContext`s]] - 1, 1/10}]; $CellContext`cleansegment[ Line[{ Pattern[$CellContext`a, Blank[]], Pattern[$CellContext`b, Blank[]]}]] := {$CellContext`a, $CellContext`b}; \ $CellContext`res = Flatten[ Map[$CellContext`cleansegment, $CellContext`line], 1]; $CellContext`inds = Prepend[ Select[ Range[ Length[$CellContext`res]], Part[$CellContext`res, #] != Part[$CellContext`res, # - 1]& ], 1]; Line[ Part[$CellContext`res, $CellContext`inds]]], Splines`Spline[ Pattern[Splines`Private`pts, Blank[List]], Pattern[Splines`Private`type, Blank[Symbol]], Pattern[Splines`Private`opts, RepeatedNull[ Alternatives[ Blank[Rule], Blank[RuleDelayed]]]]] := Splines`Spline[Splines`Private`pts, Splines`Private`type, Splines`SplineFit[Splines`Private`pts, Splines`Private`type], Splines`Private`opts], Splines`Spline[ Pattern[Splines`Private`pts, Blank[List]], Pattern[Splines`Private`type, Blank[Symbol]], Splines`SplineFunction[ Pattern[Splines`Private`t, Blank[]], Pattern[Splines`Private`r, Blank[]], Pattern[Splines`Private`cpts, Blank[]], Pattern[Splines`Private`rest, BlankNullSequence[]]], Pattern[Splines`Private`opts, RepeatedNull[ Alternatives[ Blank[Rule], Blank[RuleDelayed]]]]] := Condition[ Splines`Spline[Splines`Private`pts, Splines`Private`type, Splines`SplineFit[Splines`Private`pts, Splines`Private`type], Splines`Private`opts], Or[ Splines`Private`pts != Splines`Private`cpts, Splines`Private`type != Splines`Private`t]], UpSetDelayed[ MakeBoxes[ Splines`Spline[ Pattern[Splines`Private`p, Blank[]], Pattern[Splines`Private`t, Blank[]], Pattern[Splines`Private`b, BlankSequence[]]], Pattern[FormatType, Blank[]]], Format[ Row[{ "Spline[", Splines`Private`p, ",", Splines`Private`t, ",", "<>", "]"}], FormatType]], Format[ Splines`Spline[ Pattern[Splines`Private`p, Blank[]], Pattern[Splines`Private`t, Blank[]], Pattern[Splines`Private`b, BlankSequence[]]]] := Row[{"Spline[", Splines`Private`p, ",", Splines`Private`t, ",", "<>", "]"}], Options[Splines`Spline] = { Splines`SplinePoints -> 25, Splines`SplineDots -> None, MaxBend -> 10., Splines`SplineDivision -> 20.}, TagSet[Splines`Spline, MessageName[Splines`Spline, "args"], "The spline object `` is not a valid 2D spline of the form \ Spline[pts, type, (SplineFunction[...]), (opts)], and cannot be rendered."], TagSet[Splines`Spline, MessageName[Splines`Spline, "sptt"], "Warning: Value of option SplinePoints -> `1` is not an integer >= 3, \ setting to 25."], TagSet[Splines`Spline, MessageName[Splines`Spline, "usage"], "\!\(\*RowBox[{\" Spline \", \"[\", RowBox[{RowBox[{\" {\", \ RowBox[{SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 1\", \" TR \ \"]], \",\", SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 2\", \" \ TR \"]], \",\", StyleBox[\" \[Ellipsis] \", \" TR \"]}], \"}\"}], \",\", \ StyleBox[\" type \", \" TI \"]}], \"]\"}]\) is a two-dimensional graphics \ primitive which represents a spline of type \!\(\*StyleBox[\" type \", \" TI \ \"]\) through (or controlled by) points \ \!\(\*RowBox[{SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 1\", \" \ TR \"]], \",\", \" \", SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" \ 2\", \" TR \"]], \",\", \" \", StyleBox[\" \[Ellipsis] \", \" TR \"]}]\). "], Splines`SplineFit[ PatternTest[ Pattern[Splines`Private`pts, Blank[List]], MatrixQ[#, NumberQ[ N[#]]& ]& ], PatternTest[ Pattern[Splines`Private`type, Blank[Symbol]], MemberQ[{ Splines`Cubic, Splines`Bezier, Splines`CompositeBezier}, #]& ]] := Splines`SplineFunction[Splines`Private`type, {0., N[Length[Splines`Private`pts] - 1]}, Splines`Private`pts, Splines`Private`splineinternal[ Splines`Private`pts, Splines`Private`type]], TagSet[Splines`SplineFit, MessageName[Splines`SplineFit, "cbezlen"], "Points are needed to generate a spline."], TagSet[Splines`SplineFit, MessageName[Splines`SplineFit, "usage"], "\!\(\*RowBox[{\" SplineFit \", \"[\", RowBox[{RowBox[{\" {\", \ RowBox[{SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 1\", \" TR \ \"]], \",\", SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 2\", \" \ TR \"]], \",\", StyleBox[\" \[Ellipsis] \", \" TR \"]}], \"}\"}], \",\", \ StyleBox[\" type \", \" TI \"]}], \"]\"}]\) generates a SplineFunction object \ of the specified \!\(\*StyleBox[\" type \", \" TI \"]\) from the points \ \!\(\*RowBox[{SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 1\", \" \ TR \"]], \",\", SubscriptBox[StyleBox[\" pt \", \" TI \"], StyleBox[\" 2\", \ \" TR \"]], \",\", StyleBox[\" \[Ellipsis] \", \" TR \"]}]\)."], TagSet[Splines`Cubic, MessageName[Splines`Cubic, "usage"], "Cubic is a setting specifying the type of spline generated by Spline \ and SplineFit."], TagSet[Splines`Bezier, MessageName[Splines`Bezier, "usage"], "Bezier is a setting specifying the type of spline generated by \ Spline and SplineFit."], TagSet[Splines`CompositeBezier, MessageName[Splines`CompositeBezier, "usage"], "CompositeBezier is a setting specifying the type of spline generated \ by Spline and SplineFit."], Splines`SplineFunction[ Pattern[Splines`Private`type, Blank[]], { Pattern[Splines`Private`min, Blank[]], Pattern[Splines`Private`max, Blank[]]}, Pattern[Splines`Private`pts, Blank[]], Pattern[Splines`Private`internal, Blank[]]][ PatternTest[ Pattern[Splines`Private`in, Blank[]], NumberQ[ N[#]]& ]] := Module[{Splines`Private`out}, If[ Or[ Splines`Private`in < Splines`Private`min, Splines`Private`in > Splines`Private`max], Message[ MessageName[Splines`SplineFunction, "dmval"], Splines`Private`in]; Splines`Private`out = $Failed, Splines`Private`out = Splines`Private`evalspline[ Which[Splines`Private`in == Splines`Private`max, Min[Splines`Private`max, Splines`Private`in], Splines`Private`in == Splines`Private`min, Max[Splines`Private`min, Splines`Private`in], True, Splines`Private`in], Splines`Private`type, Splines`Private`pts, Splines`Private`internal]]; Condition[Splines`Private`out, Splines`Private`out =!= $Failed]], UpSetDelayed[ MakeBoxes[ Splines`SplineFunction[ Pattern[Splines`Private`t, Blank[]], Pattern[Splines`Private`r, Blank[]], Pattern[Splines`Private`b, BlankSequence[]]], Pattern[FormatType, Blank[]]], Format[ Row[{ "SplineFunction[", Splines`Private`t, ", ", Splines`Private`r, ", ", "<>", "]"}], FormatType]], Format[ Splines`SplineFunction[ Pattern[Splines`Private`t, Blank[]], Pattern[Splines`Private`r, Blank[]], Pattern[Splines`Private`b, BlankSequence[]]]] := Row[{"SplineFunction[", Splines`Private`t, ", ", Splines`Private`r, ", ", "<>", "]"}], TagSet[Splines`SplineFunction, MessageName[Splines`SplineFunction, "dmval"], "Input value `1` lies outside the domain of the spline function."], TagSet[Splines`SplineFunction, MessageName[Splines`SplineFunction, "usage"], "\!\(\*RowBox[{\" SplineFunction \", \"[\", RowBox[{StyleBox[\" type \ \", \" TI \"], \",\", StyleBox[\" domain \", \" TI \"], \",\", StyleBox[\" \ internal \", \" TI \"]}], \"]\"}]\) represents a spline function created by \ the SplineFit function parametrizing a curve with the parameter in the \ specified \!\(\*StyleBox[\" domain \", \" TI \"]\). When given a parameter \ value as an argument it returns the corresponding point on the curve."], Splines`Private`evalspline[ PatternTest[ Pattern[Splines`Private`pt, Blank[]], # == 0& ], Splines`Cubic, Pattern[Splines`Private`pts, Blank[]], Pattern[Splines`Private`internal, Blank[]]] := Part[Splines`Private`internal, 1, All, 1], Splines`Private`evalspline[ Pattern[Splines`Private`pt, Blank[]], Splines`Cubic, Pattern[Splines`Private`pts, Blank[]], Pattern[Splines`Private`internal, Blank[]]] := Module[{Splines`Private`tmp}, Dot[ ({1, #, #^2, #^3}& )[ If[(Splines`Private`tmp = Mod[Splines`Private`pt, 1]) == 0, 1, Splines`Private`tmp]], Transpose[ Part[Splines`Private`internal, Ceiling[Splines`Private`pt]]]]], Splines`Private`evalspline[ Pattern[Splines`Private`pt, Blank[]], Splines`CompositeBezier, Pattern[Splines`Private`pts, Blank[]], Pattern[Splines`Private`internal, Blank[]]] := Module[{Splines`Private`ln = Length[Splines`Private`pts] - 1}, Splines`Private`evalspline[ If[ Splines`Private`ln <= 3, Splines`Private`pt/Splines`Private`ln, Splines`Private`pt (1/2 - If[ OddQ[Splines`Private`ln], 1/(2 Splines`Private`ln), 0])], Splines`Cubic, Splines`Private`pts, Splines`Private`internal]], Splines`Private`evalspline[ Pattern[Splines`Private`pt, Blank[]], Splines`Bezier, Pattern[Splines`Private`pts, Blank[]], Pattern[Splines`Private`internal, Blank[]]] := Splines`Private`internal[ Splines`Private`pt/(Length[Splines`Private`pts] - 1)], Attributes[MakeBoxes] = {HoldAllComplete}, Splines`Private`splineinternal[ Pattern[Splines`Private`pts, Blank[List]], Splines`Cubic] := Transpose[ Map[Splines`Private`splinecoord, Transpose[Splines`Private`pts]]], Splines`Private`splineinternal[ Pattern[Splines`Private`pts, Blank[List]], Splines`CompositeBezier] := Module[{Splines`Private`eqns, Splines`Private`gpts = Splines`Private`pts, Splines`Private`ln = Length[Splines`Private`pts], Splines`Private`end}, If[ Or[Splines`Private`ln < 3, OddQ[Splines`Private`ln]], Which[Splines`Private`ln == 1, Splines`Private`gpts = Flatten[ Table[Splines`Private`gpts, {4}]], Splines`Private`ln == 2, Splines`Private`gpts = { Part[Splines`Private`gpts, 1], Part[Splines`Private`gpts, 1], Part[Splines`Private`gpts, 2], Part[Splines`Private`gpts, 2]}, OddQ[Splines`Private`ln], AppendTo[Splines`Private`gpts, Last[Splines`Private`gpts]], True, Message[ MessageName[Splines`SplineFit, "cbezlen"]]; Return[ InString[$Line]]]]; Splines`Private`end = Take[Splines`Private`gpts, -4]; Splines`Private`gpts = Partition[ Drop[Splines`Private`gpts, -2], 4, 2]; Splines`Private`gpts = Apply[{#, #2, #3 - (#4 - #3), #3}& , Splines`Private`gpts, {1}]; AppendTo[Splines`Private`gpts, Splines`Private`end]; Apply[Transpose[{#, 3 (#2 - #), 3 (#3 - 2 #2 + #), #4 - 3 #3 + 3 #2 - #}]& , Splines`Private`gpts, {1}]], Splines`Private`splineinternal[ Pattern[Splines`Private`pts, Blank[List]], Splines`Bezier] := Module[{Splines`Private`n, Splines`Private`eq, Splines`Private`deg = Length[Splines`Private`pts] - 1}, Splines`Private`eq = Table[#^Splines`Private`n (1 - #)^(Splines`Private`deg - Splines`Private`n), { Splines`Private`n, 0, Splines`Private`deg}]; Evaluate[ Apply[Plus, Splines`Private`pts Table[ Binomial[Splines`Private`deg, Splines`Private`n], { Splines`Private`n, 0, Splines`Private`deg}] Splines`Private`eq]]& ], Splines`Private`splinecoord[ Pattern[Splines`Private`vals, Blank[]]] := Module[{Splines`Private`lst, Splines`Private`ln = Length[Splines`Private`vals], Splines`Private`d, Splines`Private`n}, Splines`Private`lst = Join[{3 (Part[Splines`Private`vals, 2] - Part[ Splines`Private`vals, 1])}, Table[ 3 (Part[Splines`Private`vals, Splines`Private`n + 2] - Part[ Splines`Private`vals, Splines`Private`n]), { Splines`Private`n, Splines`Private`ln - 2}], { 3 (Part[Splines`Private`vals, Splines`Private`ln] - Part[ Splines`Private`vals, Splines`Private`ln - 1])}]; Splines`Private`d = Splines`Private`trisolve[Splines`Private`lst, Splines`Private`ln]; Table[{ Part[Splines`Private`vals, Splines`Private`n], Part[Splines`Private`d, Splines`Private`n], 3 (Part[Splines`Private`vals, Splines`Private`n + 1] - Part[ Splines`Private`vals, Splines`Private`n]) - 2 Part[Splines`Private`d, Splines`Private`n] - Part[ Splines`Private`d, Splines`Private`n + 1], 2 (Part[Splines`Private`vals, Splines`Private`n] - Part[ Splines`Private`vals, Splines`Private`n + 1]) + Part[Splines`Private`d, Splines`Private`n] + Part[Splines`Private`d, Splines`Private`n + 1]}, { Splines`Private`n, 1, Splines`Private`ln - 1}]], Splines`Private`trisolve[ Pattern[Splines`Private`lst, Blank[]], Pattern[Splines`Private`ln, Blank[]]] := Module[{}, LinearSolve[ SparseArray[{Band[{1, 1}] -> Join[{2}, Table[4, {Splines`Private`ln - 2}], {2}], Band[{1, 2}] -> 1, Band[{2, 1}] -> 1}], Splines`Private`lst]], $Line = 477, TagSet[Splines`SplinePoints, MessageName[Splines`SplinePoints, "usage"], "SplinePoints is an option for Spline which determines the number of \ initial samples for rendering a spline. "], TagSet[Splines`SplineDots, MessageName[Splines`SplineDots, "usage"], "SplineDots is an option for Spline that specifies a style for a \ point. "], TagSet[Splines`SplineDivision, MessageName[Splines`SplineDivision, "usage"], "SplineDivision is an option for Spline which specifies the maximum \ number of subdivisions to be used in attempting to generate a smooth \ spline."], $CellContext`DrawFlow[{ $CellContext`point[ Pattern[$CellContext`p1, Blank[]]], $CellContext`uselink[{ Pattern[$CellContext`p2, Blank[]], Pattern[$CellContext`len, Blank[]]}, Pattern[$CellContext`mp, Blank[]]], Pattern[$CellContext`path, BlankSequence[]]}] := { Splines`Spline[{$CellContext`p1, $CellContext`p2 + \ {-$CellContext`len/2 - 0.2, $CellContext`mp}, $CellContext`p2 + {-$CellContext`len/ 2, $CellContext`mp}}, Splines`Bezier], $CellContext`DrawFlow[{ $CellContext`uselink[{$CellContext`p2, $CellContext`len}, \ $CellContext`mp], $CellContext`path}]}, $CellContext`DrawFlow[{ $CellContext`uselink[{ Pattern[$CellContext`p1, Blank[]], Pattern[$CellContext`len1, Blank[]]}, Pattern[$CellContext`mp1, Blank[]]], $CellContext`uselink[{ Pattern[$CellContext`p2, Blank[]], Pattern[$CellContext`len2, Blank[]]}, Pattern[$CellContext`mp2, Blank[]]], Pattern[$CellContext`path, BlankSequence[]]}] := { Line[{$CellContext`p1 + {-$CellContext`len1/ 2, $CellContext`mp1}, $CellContext`p1 + {$CellContext`len1/ 2, $CellContext`mp1}}], Splines`Spline[{$CellContext`p1 + {$CellContext`len1/ 2, $CellContext`mp1}, $CellContext`p1 + {$CellContext`len1/2 + 0.2, $CellContext`mp1}, ($CellContext`p1 + {$CellContext`len1/2 + 0.2, $CellContext`mp1} + $CellContext`p2 + {-$CellContext`len2/ 2 - 0.2, $CellContext`mp2})/ 2, $CellContext`p2 + {-$CellContext`len2/2 - 0.2, $CellContext`mp2}, $CellContext`p2 + {-$CellContext`len2/ 2, $CellContext`mp2}}, Splines`CompositeBezier], $CellContext`DrawFlow[{ $CellContext`uselink[{$CellContext`p2, $CellContext`len2}, \ $CellContext`mp2], $CellContext`path}]}, $CellContext`DrawFlow[{ $CellContext`uselink[{ Pattern[$CellContext`p1, Blank[]], Pattern[$CellContext`len, Blank[]]}, Pattern[$CellContext`mp, Blank[]]], $CellContext`point[ Pattern[$CellContext`p2, Blank[]]]}] := { Line[{$CellContext`p1 + {-$CellContext`len/ 2, $CellContext`mp}, $CellContext`p1 + {$CellContext`len/ 2, $CellContext`mp}}], Splines`Spline[{$CellContext`p1 + {$CellContext`len/ 2, $CellContext`mp}, $CellContext`p1 + {$CellContext`len/2 + 0.2, $CellContext`mp}, $CellContext`p2}, Splines`Bezier]}, $CellContext`DrawFlow[{ $CellContext`uselink[{ Pattern[$CellContext`p1, Blank[]], Pattern[$CellContext`len1, Blank[]]}, Pattern[$CellContext`mp1, Blank[]]], $CellContext`uselink[{ Pattern[$CellContext`p2, Blank[]], Pattern[$CellContext`len2, Blank[]]}, Pattern[$CellContext`mp2, Blank[]]]}] := { Line[{$CellContext`p1 + {-$CellContext`len1/ 2, $CellContext`mp1}, $CellContext`p1 + {$CellContext`len1/ 2, $CellContext`mp1}}], Splines`Spline[{$CellContext`p1 + {$CellContext`len1/ 2, $CellContext`mp1}, $CellContext`p1 + {$CellContext`len1/2 + 0.2, $CellContext`mp1}, ($CellContext`p1 + {$CellContext`len1/2 + 0.2, $CellContext`mp1} + $CellContext`p2 + {-$CellContext`len2/ 2 - 0.2, $CellContext`mp2})/ 2, $CellContext`p2 + {-$CellContext`len2/2 - 0.2, $CellContext`mp2}, $CellContext`p2 + {-$CellContext`len2/ 2, $CellContext`mp2}}, Splines`CompositeBezier], Line[{$CellContext`p2 + {-$CellContext`len2/ 2, $CellContext`mp2}, $CellContext`p2 + {$CellContext`len2/ 2, $CellContext`mp2}}]}, $CellContext`FlowColours[ Pattern[$CellContext`n, Blank[]]] := Table[ ColorData[ "Pastel"][$CellContext`i], {$CellContext`i, 0, 1, 1/($CellContext`n - 1)}], $CellContext`Rep[ Pattern[$CellContext`x, Blank[]], Pattern[$CellContext`n, Blank[]]] := Take[ Flatten[ Table[$CellContext`x, {$CellContext`n}], 1], $CellContext`n], $CellContext`Second[ Pattern[$CellContext`x, Blank[]]] := Part[$CellContext`x, 2], $CellContext`DrawLink[ $CellContext`link[ Pattern[C, Blank[]], Optional[ Pattern[$CellContext`xy, Blank[]], {0.5, 0}], Optional[ Pattern[$CellContext`L, Blank[]], 1], Optional[ Pattern[$CellContext`name, Blank[]], "link"], Pattern[$CellContext`opts, BlankNullSequence[]]]] := If[C == 0, {}, With[{$CellContext`x = Part[$CellContext`xy, 1], $CellContext`y = Part[$CellContext`xy, 2]}, Graphics[{{ GrayLevel[0.8], Opacity[0.5], Rectangle[{$CellContext`x - $CellContext`L/2, $CellContext`y + C/2}, {$CellContext`x + $CellContext`L/2, $CellContext`y - C/ 2}], Disk[{$CellContext`x - $CellContext`L/2, $CellContext`y}, { 0.1 $CellContext`L, C/2}, {Pi/2, 3 (Pi/2)}], Disk[{$CellContext`x + $CellContext`L/2, $CellContext`y}, { 0.1 $CellContext`L, C/2}, {-Pi/2, Pi/2}]}, Circle[{$CellContext`x - $CellContext`L/2, $CellContext`y}, { 0.1 $CellContext`L, C/2}], Circle[{$CellContext`x + $CellContext`L/2, $CellContext`y}, { 0.1 $CellContext`L, C/2}, {-Pi/2, Pi/2}], Line[{{$CellContext`x - $CellContext`L/2, $CellContext`y + C/2}, {$CellContext`x + $CellContext`L/2, $CellContext`y + C/2}}], Line[{{$CellContext`x - $CellContext`L/2, $CellContext`y - C/ 2}, {$CellContext`x + $CellContext`L/2, $CellContext`y - C/ 2}}]}]]], $CellContext`DrawLinkLabel[ $CellContext`link[ Pattern[C, Blank[]], Optional[ Pattern[$CellContext`xy, Blank[]], {0.5, 0}], Optional[ Pattern[$CellContext`L, Blank[]], 1], Optional[ Pattern[$CellContext`name, Blank[]], "link"], Pattern[$CellContext`opts, BlankNullSequence[]]], Pattern[$CellContext`load, Blank[]]] := Module[{$CellContext`label}, $CellContext`labelfunc = ReplaceAll[ ReplaceAll[Label, {$CellContext`opts}], {Label -> None}]; If[$CellContext`labelfunc === None, {}, $CellContext`labelfunc[ C, $CellContext`load, $CellContext`xy]]], $CellContext`labelfunc = \ $CellContext`ShowDrop[$CellContext`drop], $CellContext`ShowDrop[ Pattern[$CellContext`p, Blank[]]][ Pattern[C, Blank[]], Pattern[$CellContext`loads, Blank[]], Pattern[$CellContext`xy, Blank[]]] := Style[ Text[ StringJoin[ ToString[ NumberForm[100 $CellContext`p[C, Apply[Plus, $CellContext`loads]], {3, 1}]], "%"], $CellContext`xy, {0, 0}], "Legend"], $CellContext`drop[ Pattern[C, Blank[]], Pattern[$CellContext`y, Blank[]]] = Max[0, 1 - C/$CellContext`y], $CellContext`ShowLoad[ Pattern[C, Blank[]], Pattern[$CellContext`loads, Blank[]], Pattern[$CellContext`xy, Blank[]]] := Style[ Text[ NumberForm[ 100 Apply[Plus, $CellContext`loads], {3, 1}], $CellContext`xy, {1, 0}], "Legend"], $CellContext`col0 = Hue[0.284, 0.27, 0.65], $CellContext`col1 = Hue[0.582, 0.28, 0.7], $CellContext`col2 = Hue[0.582, 0.08, 0.836], $CellContext`feas[ Pattern[$CellContext`pars, Blank[]], Pattern[$CellContext`x0, Blank[]]] := Module[{$CellContext`vals, $CellContext`y0, $CellContext`y1, \ $CellContext`y2, $CellContext`C1, $CellContext`C2}, {$CellContext`y0, \ $CellContext`y1, $CellContext`y2} = $CellContext`x0; $CellContext`C1 = ReplaceAll[$CellContext`c1, $CellContext`pars]; $CellContext`C2 = ReplaceAll[$CellContext`c2, $CellContext`pars]; $CellContext`cc = Min[$CellContext`C1, $CellContext`C2]; Graphics3D[{ Text[ "\!\(\*SubscriptBox[\(C\), \(1\)]\)", {$CellContext`C1, -2, 0}], Text[ "\!\(\*SubscriptBox[\(C\), \(2\)]\)", {-2, $CellContext`C2, 0}], Text[ "Min(\!\(\*SubscriptBox[\(C\), \(1\)]\),\!\(\*SubscriptBox[\(C\), \ \(2\)]\))", {-2, -2, $CellContext`cc}], { GrayLevel[0.5], Line[{{0, $CellContext`y2, $CellContext`y0}, {$CellContext`y1, \ $CellContext`y2, $CellContext`y0}}], Line[{{$CellContext`y1, 0, $CellContext`y0}, {$CellContext`y1, $CellContext`y2, \ $CellContext`y0}}], Line[{{$CellContext`y1, $CellContext`y2, 0}, {$CellContext`y1, $CellContext`y2, $CellContext`y0}}]}, { Dashing[{0.01, 0.01}], Thickness[0.01], Line[{{$CellContext`C1, 0, 0}, {$CellContext`C1, 1.2 $CellContext`C2, 0}}], Line[{{0, $CellContext`C2, 0}, { 1.2 $CellContext`C1, $CellContext`C2, 0}}]}, FaceForm[ Opacity[0.5]], EdgeForm[Black], Polygon[{{0, 0, 0}, {0, $CellContext`C2, 0}, { 0, $CellContext`C2 - $CellContext`cc, $CellContext`cc}, { 0, 0, $CellContext`cc}}], Polygon[{{0, 0, 0}, {$CellContext`C1, 0, 0}, {$CellContext`C1 - $CellContext`cc, 0, $CellContext`cc}, {0, 0, $CellContext`cc}}], Polygon[{{$CellContext`C1, $CellContext`C2, 0}, {$CellContext`C1 - $CellContext`cc, $CellContext`C2 - \ $CellContext`cc, $CellContext`cc}, {$CellContext`C1 - $CellContext`cc, 0, $CellContext`cc}, {$CellContext`C1, 0, 0}}], Polygon[{{$CellContext`C1, $CellContext`C2, 0}, {$CellContext`C1 - $CellContext`cc, $CellContext`C2 - \ $CellContext`cc, $CellContext`cc}, { 0, $CellContext`C2 - $CellContext`cc, $CellContext`cc}, { 0, $CellContext`C2, 0}}]}, Boxed -> False, AxesLabel -> { "\!\(\*SubscriptBox[\(y\), \(1\)]\)", "\!\(\*SubscriptBox[\(y\), \(2\)]\)", "\!\(\*SubscriptBox[\(y\), \(0\)]\)"}, Axes -> True, AxesEdge -> {{-1, -1}, {-1, -1}, {-1, -1}}, AxesOrigin -> {0, 0, 0}, BoxRatios -> Automatic]], $CellContext`cc = 30, $CellContext`FormatCapacity[ Pattern[$CellContext`x, Blank[]], Optional[ Pattern[$CellContext`suffix, Blank[]], ""]] := StringJoin[ ToString[ NumberForm[$CellContext`x, {3, 0}, NumberPadding -> " ", NumberPoint -> ""]], $CellContext`suffix]}; Typeset`initDone$$ = True), SynchronousInitialization->True, UnsavedVariables:>{Typeset`initDone$$}, UntrackedVariables:>{Typeset`size$$}], "Manipulate", Deployed->True, StripOnInput->False], Manipulate`InterpretManipulate[1]]], "Output", CellChangeTimes->{3.530959854221255*^9}], Cell[CellGroupData[{ Cell["Graphics commands", "Subsection", CellChangeTimes->{{3.437584220640625*^9, 3.437584222671875*^9}, { 3.5009665615302734`*^9, 3.5009665631552734`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"AllZero", "[", RowBox[{"x_", ",", "opts___"}], "]"}], " ", ":=", " ", RowBox[{"And", " ", "@@", " ", RowBox[{"Thread", "[", RowBox[{ RowBox[{"Chop", "[", RowBox[{"x", ",", "opts"}], "]"}], "\[Equal]", "0"}], "]"}]}]}]], "Input", CellChangeTimes->{{3.4385479449332104`*^9, 3.4385479961363354`*^9}}], Cell[BoxData[ RowBox[{"Needs", "[", "\"\\"", "]"}]], "Input", CellChangeTimes->{{3.437585402953125*^9, 3.4375854096875*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Midpoints", "[", RowBox[{"c_", ",", "x_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"y", "=", FractionBox["x", RowBox[{"Plus", " ", "@@", " ", "x"}]]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"c", " ", RowBox[{"(", RowBox[{ RowBox[{"Drop", "[", RowBox[{ RowBox[{"FoldList", "[", RowBox[{"Plus", ",", "0", ",", "y"}], "]"}], ",", "1"}], "]"}], "-", FractionBox["y", "2"]}], ")"}]}], " ", "-", " ", FractionBox["c", "2"]}]}], "]"}], " ", "/;", " ", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"c", "\[GreaterEqual]", RowBox[{"Plus", " ", "@@", " ", "x"}]}], ")"}], " ", "&&", " ", RowBox[{"!", RowBox[{"AllZero", "[", "x", "]"}]}]}], ")"}]}]}]], "Input", CellChangeTimes->{{3.4375734885*^9, 3.437573504609375*^9}, { 3.4375735356875*^9, 3.437573743640625*^9}, {3.4375739571875*^9, 3.437573959765625*^9}, {3.4375739906875*^9, 3.437573994359375*^9}, { 3.437574323671875*^9, 3.437574329*^9}, 3.437574688375*^9, { 3.43757475684375*^9, 3.437574761359375*^9}, {3.43757489165625*^9, 3.437574901890625*^9}, {3.437575083765625*^9, 3.437575105109375*^9}, { 3.43844129251525*^9, 3.438441292749625*^9}, {3.438451047530875*^9, 3.438451081155875*^9}, {3.438451121093375*^9, 3.438451127030875*^9}, { 3.4384512210465*^9, 3.438451221405875*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Midpoints", "[", RowBox[{"c_", ",", "x_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{ RowBox[{"Drop", "[", RowBox[{ RowBox[{"FoldList", "[", RowBox[{"Plus", ",", "0", ",", "x"}], "]"}], ",", "1"}], "]"}], "-", FractionBox["x", "2"], "-", FractionBox["c", "2"], "-", FractionBox[ RowBox[{ RowBox[{"-", "c"}], "+", RowBox[{"Plus", " ", "@@", " ", "x"}]}], "2"]}], " ", "/;", " ", RowBox[{"c", "<", RowBox[{"Plus", " ", "@@", " ", "x"}]}]}]}]], "Input", CellChangeTimes->{{3.437573747953125*^9, 3.437573829171875*^9}, { 3.43757393415625*^9, 3.43757398575*^9}, {3.437574782984375*^9, 3.437574793875*^9}, {3.438441295359*^9, 3.4384412962965*^9}, { 3.438451135749625*^9, 3.43845114826525*^9}, 3.438451225109*^9, { 3.4385479140894604`*^9, 3.4385479175425854`*^9}}], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"Midpoints", "[", RowBox[{"c_", ",", RowBox[{"{", "}"}]}], "]"}], " ", ":=", " ", RowBox[{"{", "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Midpoints", "[", RowBox[{"c_", ",", "x_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"Table", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{"Length", "[", "x", "]"}], "}"}]}], "]"}], " ", "/;", " ", RowBox[{"AllZero", "[", "x", "]"}]}]}]}], "Input", CellChangeTimes->{{3.4384508630465*^9, 3.43845086832775*^9}, { 3.438450937687125*^9, 3.438450960359*^9}, {3.438450993030875*^9, 3.438451029155875*^9}, {3.438451085984*^9, 3.438451087593375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"DrawLink", "[", RowBox[{"link", "[", RowBox[{"C_", ",", RowBox[{"xy_", " ", ":", " ", RowBox[{"{", RowBox[{".5", ",", "0"}], "}"}]}], " ", ",", RowBox[{"L_", " ", ":", " ", "1"}], ",", RowBox[{"name_", " ", ":", " ", "\"\\""}], ",", "opts___"}], "]"}], "]"}], " ", ":=", " ", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"C", "\[Equal]", "0"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "=", RowBox[{ "xy", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], ",", RowBox[{"y", "=", RowBox[{ "xy", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Graphics", "[", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"GrayLevel", "[", ".8", "]"}], ",", RowBox[{"Opacity", "[", ".5", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Rectangle", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "-", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "+", RowBox[{"C", "/", "2"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"x", "+", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "-", RowBox[{"C", "/", "2"}]}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "-", RowBox[{"L", "/", "2"}]}], ",", "y"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{".1", " ", "L"}], ",", RowBox[{"C", "/", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"Pi", "/", "2"}], ",", RowBox[{"3", RowBox[{"Pi", "/", "2"}]}]}], "}"}]}], "]"}], " ", ",", "\[IndentingNewLine]", RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "+", RowBox[{"L", "/", "2"}]}], ",", "y"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{".1", " ", "L"}], ",", RowBox[{"C", "/", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "Pi"}], "/", "2"}], ",", RowBox[{"Pi", "/", "2"}]}], "}"}]}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Circle", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "-", RowBox[{"L", "/", "2"}]}], ",", "y"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{".1", " ", "L"}], ",", RowBox[{"C", "/", "2"}]}], "}"}]}], "]"}], " ", ",", "\[IndentingNewLine]", RowBox[{"Circle", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "+", RowBox[{"L", "/", "2"}]}], ",", "y"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{".1", " ", "L"}], ",", RowBox[{"C", "/", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "Pi"}], "/", "2"}], ",", RowBox[{"Pi", "/", "2"}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "-", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "+", RowBox[{"C", "/", "2"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"x", "+", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "+", RowBox[{"C", "/", "2"}]}]}], "}"}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"x", "-", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "-", RowBox[{"C", "/", "2"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"x", "+", RowBox[{"L", "/", "2"}]}], ",", RowBox[{"y", "-", RowBox[{"C", "/", "2"}]}]}], "}"}]}], "}"}], "]"}]}], "\[IndentingNewLine]", "}"}], "]"}]}], " ", "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.437572441328125*^9, 3.43757251965625*^9}, { 3.437572551359375*^9, 3.437572611859375*^9}, {3.437572651265625*^9, 3.43757272684375*^9}, {3.43757693540625*^9, 3.43757701240625*^9}, { 3.437577042609375*^9, 3.437577051328125*^9}, {3.43757708403125*^9, 3.437577199203125*^9}, {3.43757725471875*^9, 3.437577261109375*^9}, { 3.43842558632775*^9, 3.438425654234*^9}, {3.438426450234*^9, 3.438426455468375*^9}, {3.438453012874625*^9, 3.438453024609*^9}, { 3.4384537095465*^9, 3.43845371351525*^9}, {3.438454445359*^9, 3.438454453624625*^9}, {3.43853781903125*^9, 3.43853782028125*^9}, { 3.43853788553125*^9, 3.4385379571875*^9}, {3.438538255390625*^9, 3.4385382625625*^9}, {3.4385494449019604`*^9, 3.4385495031675854`*^9}, { 3.4385497868863354`*^9, 3.4385497879957104`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"DrawLinkLabel", "[", RowBox[{ RowBox[{"link", "[", RowBox[{"C_", ",", RowBox[{"xy_", " ", ":", " ", RowBox[{"{", RowBox[{".5", ",", "0"}], "}"}]}], ",", RowBox[{"L_:", "1"}], ",", RowBox[{"name_:", "\"\\""}], ",", "opts___"}], "]"}], ",", "load_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", " ", RowBox[{ RowBox[{"{", "label", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"labelfunc", " ", "=", " ", RowBox[{ RowBox[{"Label", " ", "/.", " ", RowBox[{"{", "opts", "}"}]}], " ", "/.", " ", RowBox[{"{", RowBox[{"Label", "\[Rule]", "None"}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"labelfunc", "===", "None"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"labelfunc", "[", RowBox[{"C", ",", "load", ",", "xy"}], "]"}]}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.438538279625*^9, 3.438538329078125*^9}, { 3.43853855178125*^9, 3.438538623875*^9}, {3.438538682265625*^9, 3.438538694265625*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"LinkName", "[", RowBox[{"link", "[", RowBox[{"C_", ",", RowBox[{"xy_", " ", ":", " ", RowBox[{"{", RowBox[{".5", ",", "0"}], "}"}]}], ",", " ", RowBox[{"L_", " ", ":", " ", "1"}], ",", " ", RowBox[{"name_", " ", ":", " ", "\"\\""}], ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "name"}]], "Input", CellChangeTimes->{{3.438426540109*^9, 3.43842655795275*^9}, { 3.43853777934375*^9, 3.438537798015625*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"LinkCapacity", "[", RowBox[{"link", "[", RowBox[{"C_", ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "C"}]], "Input", CellChangeTimes->{{3.438440872624625*^9, 3.438440883609*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"LinkLength", "[", RowBox[{"link", "[", RowBox[{"C_", ",", RowBox[{"xy_", " ", ":", " ", RowBox[{"{", RowBox[{".5", ",", "0"}], "}"}]}], ",", RowBox[{"L_:", "1"}], ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "L"}]], "Input", CellChangeTimes->{{3.438444660984*^9, 3.438444699749625*^9}, { 3.438537787015625*^9, 3.43853780134375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"LinkCoord", "[", RowBox[{"link", "[", RowBox[{"C_", ",", RowBox[{"xy_:", RowBox[{"{", RowBox[{".5", ",", "0"}], "}"}]}], ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "xy"}]], "Input", CellChangeTimes->{{3.438444729655875*^9, 3.438444747843375*^9}, { 3.438537805859375*^9, 3.43853780734375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"FlowName", "[", RowBox[{"flow", "[", RowBox[{"rate_", ",", "waypoints_", ",", "name_"}], "]"}], "]"}], " ", ":=", " ", "name"}]], "Input", CellChangeTimes->{{3.43844040151525*^9, 3.4384404144215*^9}, { 3.438440892593375*^9, 3.438440903968375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"FlowRate", "[", RowBox[{"flow", "[", RowBox[{"rate_", ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "rate"}]], "Input", CellChangeTimes->{{3.438440886437125*^9, 3.438440914484*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"LinksUsed", "[", RowBox[{"flow", "[", RowBox[{"rate_", ",", "waypoints_", ",", "name_"}], "]"}], "]"}], " ", ":=", " ", RowBox[{"Cases", "[", RowBox[{"waypoints", ",", " ", "_String"}], " ", "]"}]}]], "Input", CellChangeTimes->{{3.43842592314025*^9, 3.438425945937125*^9}, { 3.4384260147965*^9, 3.43842601864025*^9}, {3.438440341562125*^9, 3.43844035801525*^9}, 3.438440417468375*^9, {3.43844091732775*^9, 3.438440925593375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Waypoints", "[", RowBox[{"flow", "[", RowBox[{"rate_", ",", "waypoints_", ",", "rest___"}], "]"}], "]"}], " ", ":=", " ", "waypoints"}]], "Input", CellChangeTimes->{{3.438443846999625*^9, 3.438443858484*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Second", "[", "x_", "]"}], " ", ":=", " ", RowBox[{ "x", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}]], "Input", CellChangeTimes->{{3.438441088359*^9, 3.438441093530875*^9}}], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"Indicator", "[", "True", "]"}], " ", "=", " ", "1"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"Indicator", "[", "False", "]"}], " ", "=", " ", "0"}], ";"}]}], "Input", CellChangeTimes->{{3.4384416036715*^9, 3.438441611499625*^9}, { 3.4384417820465*^9, 3.43844178457775*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Spline", " ", "from", " ", "start", " ", "to", " ", "link"}], ",", " ", RowBox[{"line", " ", "through", " ", "link"}], ",", " ", RowBox[{ "spline", " ", "through", " ", "midpoint", " ", "to", " ", "next", " ", "link"}], ",", " ", RowBox[{"line", " ", "through", " ", "link"}], ",", " ", RowBox[{"spline", " ", "to", " ", "end"}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{"Spline", " ", "from", " ", "start", " ", "to", " ", "link"}], ",", " ", RowBox[{"line", " ", "through", " ", "link"}], ",", " ", RowBox[{"spline", " ", "to", " ", "end"}]}], " ", "*)"}]}]], "Input", CellChangeTimes->{{3.438444420734*^9, 3.43844442620275*^9}, { 3.438444798530875*^9, 3.4384448375465*^9}, 3.438445973030875*^9}], Cell[BoxData[ RowBox[{ RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"point", "[", "p1_", "]"}], ",", RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p2_", ",", "len_"}], "}"}], ",", "mp_"}], "]"}], ",", "path__"}], "}"}], "]"}], " ", ":=", " ", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"Spline", "[", RowBox[{ RowBox[{"{", RowBox[{"p1", ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "len"}], "/", "2"}], "-", ".2"}], ",", "mp"}], "}"}]}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len"}], "/", "2"}], ",", "mp"}], "}"}]}]}], "}"}], ",", "Bezier"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p2", ",", "len"}], "}"}], ",", "mp"}], "]"}], ",", "path"}], "}"}], "]"}]}], "}"}]}]], "Input", CellChangeTimes->{{3.43844438382775*^9, 3.438444392937125*^9}, { 3.43844496089025*^9, 3.438445029343375*^9}, {3.43844514739025*^9, 3.43844534795275*^9}, {3.438445385874625*^9, 3.438445387280875*^9}, { 3.438445515874625*^9, 3.438445534030875*^9}, {3.438445583499625*^9, 3.438445601484*^9}, {3.438445641968375*^9, 3.438445646405875*^9}, 3.43844600682775*^9, {3.438446204030875*^9, 3.4384462051715*^9}, { 3.43845282939025*^9, 3.438452833343375*^9}, {3.438454092468375*^9, 3.43845409695275*^9}, {3.43845432514025*^9, 3.438454325749625*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p1_", ",", "len1_"}], "}"}], ",", "mp1_"}], "]"}], ",", RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p2_", ",", "len2_"}], "}"}], ",", "mp2_"}], "]"}], ",", "path__"}], "}"}], "]"}], " ", ":=", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len1"}], "/", "2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len1", "/", "2"}], ",", "mp1"}], "}"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spline", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len1", "/", "2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"len1", "/", "2"}], "+", ".2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{ RowBox[{"(", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"len1", "/", "2"}], "+", ".2"}], ",", "mp1"}], "}"}], "+", "p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], "-", ".2"}], ",", "mp2"}], "}"}]}], ")"}], "/", "2"}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], "-", ".2"}], ",", "mp2"}], "}"}]}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], ",", "mp2"}], "}"}]}]}], "}"}], ",", "CompositeBezier"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p2", ",", "len2"}], "}"}], ",", "mp2"}], "]"}], ",", "path"}], "}"}], "]"}]}], "}"}]}]], "Input", CellChangeTimes->{{3.43844554414025*^9, 3.43844557414025*^9}, { 3.4384456580465*^9, 3.438445785312125*^9}, {3.438445837655875*^9, 3.43844585320275*^9}, 3.438446009530875*^9, {3.43844620976525*^9, 3.438446212234*^9}, {3.438454333937125*^9, 3.438454358030875*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p1_", ",", "len_"}], "}"}], ",", "mp_"}], "]"}], ",", RowBox[{"point", "[", "p2_", "]"}]}], "}"}], "]"}], " ", ":=", " ", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len"}], "/", "2"}], ",", "mp"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len", "/", "2"}], ",", "mp"}], "}"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spline", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len", "/", "2"}], ",", "mp"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"len", "/", "2"}], "+", ".2"}], ",", "mp"}], "}"}]}], ",", "p2"}], "}"}], ",", "Bezier"}], "]"}]}], "}"}]}]], "Input", CellChangeTimes->{{3.4384457917965*^9, 3.438445831030875*^9}, { 3.438445864484*^9, 3.438445887468375*^9}, 3.4384460125465*^9, { 3.43844621507775*^9, 3.438446215968375*^9}, {3.438446423249625*^9, 3.438446426109*^9}, {3.438454126655875*^9, 3.438454130905875*^9}, { 3.438454398984*^9, 3.438454413624625*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"DrawFlow", "[", RowBox[{"{", RowBox[{ RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p1_", ",", "len1_"}], "}"}], ",", "mp1_"}], "]"}], ",", RowBox[{"uselink", "[", RowBox[{ RowBox[{"{", RowBox[{"p2_", ",", "len2_"}], "}"}], ",", "mp2_"}], "]"}]}], "}"}], "]"}], " ", ":=", " ", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len1"}], "/", "2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len1", "/", "2"}], ",", "mp1"}], "}"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spline", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{"len1", "/", "2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"len1", "/", "2"}], "+", ".2"}], ",", "mp1"}], "}"}]}], ",", RowBox[{ RowBox[{"(", RowBox[{"p1", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"len1", "/", "2"}], "+", ".2"}], ",", "mp1"}], "}"}], "+", "p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], "-", ".2"}], ",", "mp2"}], "}"}]}], ")"}], "/", "2"}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], "-", ".2"}], ",", "mp2"}], "}"}]}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], ",", "mp2"}], "}"}]}]}], "}"}], ",", "CompositeBezier"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "len2"}], "/", "2"}], ",", "mp2"}], "}"}]}], ",", RowBox[{"p2", "+", RowBox[{"{", RowBox[{ RowBox[{"len2", "/", "2"}], ",", "mp2"}], "}"}]}]}], "}"}], "]"}]}], " ", "}"}]}]], "Input", CellChangeTimes->{{3.438454665749625*^9, 3.438454689155875*^9}, { 3.438454725359*^9, 3.43845474564025*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"CleanLine", "[", "line_", "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", " ", RowBox[{ RowBox[{"{", RowBox[{ "s", ",", "a", ",", "b", ",", "cleansegment", ",", "res", ",", "inds"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"cleansegment", "[", "s_Spline", "]"}], " ", ":=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"s", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], "[", "x", "]"}], ",", RowBox[{"{", RowBox[{"x", ",", "0", ",", RowBox[{ RowBox[{"Length", "[", RowBox[{"First", "[", "s", "]"}], "]"}], "-", "1"}], ",", RowBox[{"1", "/", "10"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"cleansegment", "[", RowBox[{"Line", "[", RowBox[{"{", RowBox[{"a_", ",", "b_"}], "}"}], "]"}], "]"}], " ", ":=", " ", RowBox[{"{", RowBox[{"a", ",", "b"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"res", " ", "=", " ", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"cleansegment", " ", "/@", " ", "line"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"inds", " ", "=", " ", RowBox[{"Prepend", "[", RowBox[{ RowBox[{"Select", "[", RowBox[{ RowBox[{"Range", "[", RowBox[{"Length", "[", "res", "]"}], "]"}], ",", RowBox[{ RowBox[{ RowBox[{ "res", "\[LeftDoubleBracket]", "#", "\[RightDoubleBracket]"}], "\[NotEqual]", RowBox[{"res", "\[LeftDoubleBracket]", RowBox[{"#", "-", "1"}], "\[RightDoubleBracket]"}]}], "&"}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"Part", "[", RowBox[{"res", ",", "inds"}], "]"}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.437585833421875*^9, 3.43758589234375*^9}, { 3.437586235328125*^9, 3.437586330078125*^9}, {3.437586398078125*^9, 3.437586404046875*^9}, {3.43758650146875*^9, 3.437586634828125*^9}, { 3.437586747359375*^9, 3.4375867524375*^9}, {3.43844623489025*^9, 3.438446237093375*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Rep", "[", RowBox[{"x_", ",", "n_"}], "]"}], " ", ":=", " ", RowBox[{"Take", "[", RowBox[{ RowBox[{"Flatten", "[", RowBox[{ RowBox[{"Table", "[", RowBox[{"x", ",", RowBox[{"{", "n", "}"}]}], "]"}], ",", "1"}], "]"}], ",", "n"}], "]"}]}]], "Input", CellChangeTimes->{{3.5039887164003906`*^9, 3.5039887209160156`*^9}, { 3.5039887727753906`*^9, 3.5039887846035156`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"ShowNetwork", "[", RowBox[{"objects_", ",", "opts___"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", " ", RowBox[{ RowBox[{"{", RowBox[{ "links", ",", "flows", ",", "linknames", ",", "linkdefs", ",", "flownames", ",", "linksused", ",", "adjacency", ",", "midpoints", ",", "GetMidpoints", ",", "flowdesc", ",", "flowpaths", ",", "cols", ",", "thicks", ",", "plotrange", ",", "loads"}], "}"}], ",", "\n", RowBox[{ RowBox[{"links", " ", "=", " ", RowBox[{"Cases", "[", RowBox[{"objects", ",", "_link"}], "]"}]}], ";", "\n", RowBox[{"flows", " ", "=", " ", RowBox[{"Cases", "[", RowBox[{"objects", ",", "_flow"}], "]"}]}], ";", "\n", RowBox[{"linknames", " ", "=", " ", RowBox[{"Thread", "[", RowBox[{"Rule", "[", RowBox[{ RowBox[{"LinkName", " ", "/@", " ", "links"}], ",", RowBox[{"Range", "@", RowBox[{"Length", "@", "links"}]}]}], "]"}], "]"}]}], ";", "\n", RowBox[{"linkdefs", " ", "=", " ", RowBox[{"Thread", "[", RowBox[{"Rule", "[", RowBox[{ RowBox[{"LinkName", " ", "/@", " ", "links"}], ",", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"LinkCoord", "[", "#", "]"}], ",", RowBox[{"LinkLength", "[", "#", "]"}]}], "}"}], "&"}], " ", "/@", " ", "links"}]}], "]"}], "]"}]}], ";", "\n", RowBox[{"flownames", " ", "=", " ", RowBox[{"Thread", "[", RowBox[{"Rule", "[", RowBox[{ RowBox[{"FlowName", " ", "/@", " ", "flows"}], ",", " ", RowBox[{"Range", "@", RowBox[{"Length", "@", "flows"}]}]}], "]"}], "]"}]}], ";", "\n", RowBox[{"linksused", " ", "=", " ", RowBox[{"LinksUsed", " ", "/@", " ", "flows"}]}], ";", "\n", RowBox[{"adjacency", " ", "=", " ", RowBox[{ RowBox[{"Function", "[", RowBox[{ RowBox[{"{", "linkname", "}"}], ",", RowBox[{ RowBox[{ RowBox[{"Indicator", "@", RowBox[{"MemberQ", "[", RowBox[{"#", ",", "linkname"}], "]"}]}], "&"}], " ", "/@", " ", "linksused"}]}], "]"}], " ", "/@", " ", RowBox[{"(", RowBox[{"First", " ", "/@", " ", "linknames"}], ")"}]}]}], ";", "\n", RowBox[{"(*", " ", RowBox[{ "What", " ", "are", " ", "the", " ", "midpoints", " ", "at", " ", "each", " ", RowBox[{"link", "?"}]}], " ", "*)"}], "\n", RowBox[{"midpoints", " ", "=", " ", RowBox[{"Thread", "[", RowBox[{"Midpoints", "[", RowBox[{ RowBox[{"LinkCapacity", " ", "/@", " ", "links"}], ",", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"FlowRate", " ", "/@", " ", "flows"}], " ", "#"}], ")"}], "&"}], " ", "/@", " ", "adjacency"}]}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{"For", " ", "each", " ", "flow"}], ",", " ", RowBox[{ "what", " ", "is", " ", "its", " ", "midpoint", " ", "at", " ", "each", " ", "link", " ", "it", " ", "passes", " ", RowBox[{"through", "?"}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"GetMidpoints", "[", RowBox[{"links_List", ",", "flownum_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"!", RowBox[{"StringQ", "[", "#", "]"}]}], ",", "#", ",", RowBox[{"uselink", "[", RowBox[{"#", ",", RowBox[{"midpoints", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"#", " ", "/.", " ", "linknames"}], ",", "flownum"}], "\[RightDoubleBracket]"}]}], "]"}]}], "]"}], "&"}], " ", "/@", " ", "links"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "What", " ", "is", " ", "the", " ", "load", " ", "at", " ", "each", " ", RowBox[{"link", "?"}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"loads", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"FlowRate", " ", "/@", " ", "flows"}], " ", "#"}], ")"}], "&"}], " ", "/@", " ", "adjacency"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Now", ",", " ", "draw"}], " ", "*)"}], "\n", RowBox[{"flowdesc", " ", "=", " ", RowBox[{ RowBox[{"MapThread", "[", RowBox[{"GetMidpoints", ",", RowBox[{"{", RowBox[{ RowBox[{"Waypoints", " ", "/@", " ", "flows"}], ",", " ", RowBox[{"Range", "@", RowBox[{"Length", "@", "flows"}]}]}], "}"}]}], "]"}], " ", "/.", " ", "linkdefs"}]}], ";", "\[IndentingNewLine]", RowBox[{"flowpaths", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{"CleanLine", "@", RowBox[{"Flatten", "@", RowBox[{"DrawFlow", "[", "#", "]"}]}]}], " ", "&"}], " ", "/@", " ", "flowdesc"}]}], ";", "\n", RowBox[{"cols", " ", "=", " ", RowBox[{ RowBox[{"FlowStyle", " ", "/.", " ", RowBox[{"{", "opts", "}"}]}], " ", "/.", " ", RowBox[{"{", RowBox[{"FlowStyle", "->", RowBox[{"FlowColours", "[", RowBox[{"Length", "@", "flows"}], "]"}]}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"cols", " ", "=", " ", RowBox[{"Rep", "[", RowBox[{"cols", ",", RowBox[{"Length", "@", "flows"}]}], "]"}]}], ";", "\n", RowBox[{"plotrange", " ", "=", " ", RowBox[{ RowBox[{"PlotRange", " ", "/.", " ", RowBox[{"{", "opts", "}"}]}], " ", "/.", " ", RowBox[{"{", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"Min", "[", RowBox[{ RowBox[{"First", " ", "/@", " ", RowBox[{"(", RowBox[{"LinkCoord", " ", "/@", " ", "links"}], ")"}]}], " ", "-", " ", RowBox[{ RowBox[{"(", RowBox[{"LinkLength", " ", "/@", " ", "links"}], ")"}], "/", "2"}]}], "]"}], "-", "1"}], ",", "\n", RowBox[{ RowBox[{"Max", "[", RowBox[{ RowBox[{"First", " ", "/@", " ", RowBox[{"(", RowBox[{"LinkCoord", " ", "/@", " ", "links"}], ")"}]}], " ", "+", " ", RowBox[{ RowBox[{"(", RowBox[{"LinkLength", " ", "/@", " ", "links"}], ")"}], "/", "2"}]}], "]"}], "+", "1"}]}], "}"}], ",", "\n", RowBox[{"{", RowBox[{ RowBox[{"Min", "[", RowBox[{ RowBox[{"Second", " ", "/@", " ", RowBox[{"(", RowBox[{"LinkCoord", " ", "/@", " ", "links"}], ")"}]}], " ", "-", " ", RowBox[{ RowBox[{"(", RowBox[{"LinkCapacity", " ", "/@", " ", "links"}], ")"}], "/", "2"}], "-", "1"}], "]"}], ",", "\n", RowBox[{ RowBox[{"Max", "[", RowBox[{ RowBox[{"Second", " ", "/@", " ", RowBox[{"(", RowBox[{"LinkCoord", " ", "/@", " ", "links"}], ")"}]}], " ", "+", " ", RowBox[{ RowBox[{"(", RowBox[{"LinkCapacity", " ", "/@", " ", "links"}], ")"}], "/", "2"}]}], "]"}], "+", "1"}]}], "}"}]}], "}"}]}], "}"}]}]}], ";", "\n", RowBox[{"thicks", " ", "=", " ", RowBox[{"Thickness", " ", "/@", " ", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"FlowRate", " ", "/@", " ", "flows"}], ")"}], "/", RowBox[{"(", RowBox[{ RowBox[{"plotrange", "\[LeftDoubleBracket]", RowBox[{"1", ",", "2"}], "\[RightDoubleBracket]"}], "-", RowBox[{"plotrange", "\[LeftDoubleBracket]", RowBox[{"1", ",", "1"}], "\[RightDoubleBracket]"}]}], ")"}]}], ")"}]}]}], ";", "\n", RowBox[{"Show", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Graphics", "@", RowBox[{"Transpose", "[", RowBox[{"{", RowBox[{"cols", ",", " ", "thicks", ",", "flowpaths"}], "}"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"DrawLink", " ", "/@", " ", "links"}], ",", "\[IndentingNewLine]", RowBox[{"Graphics", "@", RowBox[{"MapThread", "[", RowBox[{"DrawLinkLabel", ",", RowBox[{"{", RowBox[{"links", ",", "loads"}], "}"}]}], "]"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"PlotRange", "\[Rule]", "plotrange"}], ",", RowBox[{"Sequence", " ", "@@", " ", RowBox[{"FilterRules", "[", RowBox[{ RowBox[{"FilterRules", "[", RowBox[{ RowBox[{"{", "opts", "}"}], ",", RowBox[{"Options", "[", "Graphics", "]"}]}], "]"}], ",", RowBox[{"Except", "[", "PlotRange", "]"}]}], "]"}]}]}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->CompressedData[" 1:eJwtyk8ow2Ecx/GHklqTYdqG1WZlXLhYs5OmtnDavwOaZPnXyuZmh98wyxI1 flKUWpiWyEHJ3wtHoZRMtNjlp0bm4LT6+fc8nx2eXr0/30fr8TsGCwkhdf+P mhVPdPZYxpzl4i1Qb2OKCcgZu9HqPvT4EFrjhV8+WDOGe/MMPIxAPw8NK/hn 2YaRXezpfag9gJ3HuO+dopXnUHWB/eYSdj1gPzM6mDkTlMic7K4vZ3L9SnSx Gh21oINWdDzkYpZOQ+s8U0xCbmMBlvDQcweH85pe8H82ryBgf2cSYrgPUqey j0wSfoYKAZoyuHuZKbdfFqamrhVMtycAR5hLo3PtOwnqbwc1+RpqE4SM2fUz YaHGjjZt1KaGqJ36MSDpoQbW3L1UovR9Lla+mcnqZI6pKZDw1PUrKZRXwFY5 U/Okgo1V2Jdr0VuwvsgGpfC2THRWU3Xf1D8RoUVL "]], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"FlowColours", "[", "n_", "]"}], " ", ":=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"ColorData", "[", "\"\\"", "]"}], "[", "i", "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "0", ",", "1", ",", RowBox[{"1", "/", RowBox[{"(", RowBox[{"n", "-", "1"}], ")"}]}]}], "}"}]}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.4428237133883753`*^9, 3.4428237414665003`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"FormatCapacity", "[", RowBox[{"x_", ",", RowBox[{"suffix_:", "\"\<\>\""}]}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"ToString", "[", RowBox[{"NumberForm", "[", RowBox[{"x", ",", RowBox[{"{", RowBox[{"3", ",", "0"}], "}"}], ",", RowBox[{"NumberPadding", "\[Rule]", "\"\< \>\""}], ",", RowBox[{"NumberPoint", "\[Rule]", "\"\<\>\""}]}], "]"}], "]"}], "<>", "suffix"}]}]], "Input", CellChangeTimes->{ 3.437584298046875*^9, 3.437649164984375*^9, {3.4385529992769604`*^9, 3.4385530239332104`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"FormatWnd", "[", RowBox[{"w_", ",", RowBox[{"suffix_:", "\"\<\>\""}]}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"ToString", "[", RowBox[{"NumberForm", "[", RowBox[{"w", ",", RowBox[{"{", RowBox[{"3", ",", "2"}], "}"}], ",", RowBox[{"NumberPadding", "\[Rule]", "\"\< \>\""}], ",", RowBox[{"NumberPoint", "\[Rule]", "\"\<.\>\""}]}], "]"}], "]"}], " ", "<>", "suffix"}]}]], "Input", CellChangeTimes->{{3.443175667489035*^9, 3.4431757816089225`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"FormatTime", "[", "x_", "]"}], " ", ":=", " ", RowBox[{ RowBox[{"ToString", "[", RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"1000", " ", "x"}], ",", RowBox[{"{", RowBox[{"3", ",", "0"}], "}"}], ",", RowBox[{"NumberPadding", "\[Rule]", "\"\< \>\""}], ",", RowBox[{"NumberPoint", "\[Rule]", "\"\<\>\""}]}], "]"}], "]"}], "<>", "\"\< ms\>\""}]}]], "Input", CellChangeTimes->{{3.4385532836363354`*^9, 3.4385533368863354`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"ShowLoad", "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Style", "[", RowBox[{ RowBox[{"Text", "[", RowBox[{ RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"100", " ", RowBox[{"(", RowBox[{"Plus", " ", "@@", " ", "loads"}], ")"}]}], ",", RowBox[{"{", RowBox[{"3", ",", "1"}], "}"}]}], "]"}], ",", "xy", ",", RowBox[{"{", RowBox[{"1", ",", "0"}], "}"}]}], "]"}], ",", "\"\\""}], "]"}]}]], "Input", CellChangeTimes->{{3.43853870565625*^9, 3.438538720609375*^9}, { 3.43853876040625*^9, 3.4385387659375*^9}, {3.43853887259375*^9, 3.43853887378125*^9}, {3.438538916375*^9, 3.438538919421875*^9}, { 3.438538955796875*^9, 3.438538964875*^9}, {3.444739882921875*^9, 3.444739891171875*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"ShowCapacity", "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Style", "[", RowBox[{ RowBox[{"Text", "[", RowBox[{ RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"N", "[", RowBox[{"100", " ", "C"}], "]"}], ",", RowBox[{"{", RowBox[{"3", ",", "1"}], "}"}]}], "]"}], ",", "xy", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "]"}], ",", "\"\\""}], "]"}]}]], "Input", CellChangeTimes->{{3.500968721676758*^9, 3.500968752223633*^9}, { 3.500968803864258*^9, 3.500968803973633*^9}, {3.500968851161133*^9, 3.500968852926758*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"ShowEachLoad", "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Style", "[", RowBox[{ RowBox[{"Text", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"100", " ", "#"}], ",", RowBox[{"{", RowBox[{"3", ",", "1"}], "}"}]}], "]"}], "&"}], " ", "/@", " ", RowBox[{"Reverse", "@", "loads"}]}], ",", "xy", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "0"}], "}"}]}], "]"}], ",", "\"\\""}], "]"}]}]], "Input", CellChangeTimes->{{3.4428310667946253`*^9, 3.4428311029352503`*^9}, { 3.4428311512165003`*^9, 3.4428311798258753`*^9}, {3.4428312140133753`*^9, 3.4428312238415003`*^9}, {3.4428312666071253`*^9, 3.4428312684196253`*^9}, { 3.444739896609375*^9, 3.444739902421875*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ShowDrop", "[", "p_", "]"}], "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Style", "[", RowBox[{ RowBox[{"Text", "[", RowBox[{ RowBox[{ RowBox[{"ToString", "@", RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"100", " ", RowBox[{"p", "[", RowBox[{"C", ",", RowBox[{"Plus", "@@", "loads"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"3", ",", "1"}], "}"}]}], "]"}]}], "<>", "\"\<%\>\""}], ",", "xy", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "]"}], ",", "\"\\""}], "]"}]}]], "Input", CellChangeTimes->{{3.43853909840625*^9, 3.43853912971875*^9}, { 3.43853917396875*^9, 3.4385391740625*^9}, {3.43853926025*^9, 3.438539263453125*^9}, {3.438539363125*^9, 3.438539368890625*^9}, { 3.444739786515625*^9, 3.44473979790625*^9}, {3.444739858234375*^9, 3.44473986575*^9}, {3.475969993619936*^9, 3.475970017804057*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ShowVal", "[", "v_", "]"}], "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Style", "[", RowBox[{ RowBox[{"Text", "[", RowBox[{ RowBox[{ RowBox[{"ToString", "@", RowBox[{"NumberForm", "[", RowBox[{ RowBox[{"100.", " ", "v"}], ",", RowBox[{"{", RowBox[{"3", ",", "2"}], "}"}]}], "]"}]}], "<>", "\"\<%\>\""}], ",", "xy", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "]"}], ",", "\"\\""}], "]"}]}]], "Input", CellChangeTimes->{{3.47597016574008*^9, 3.4759702007406173`*^9}, { 3.4759707875996313`*^9, 3.4759707892071557`*^9}, {3.4759745859055433`*^9, 3.475974586008045*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"PressedIf", "[", "pressed_", "]"}], " ", "=", " ", RowBox[{"If", "[", RowBox[{"pressed", ",", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}], ",", "\"\\""}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.4428226770446253`*^9, 3.4428227793727503`*^9}, { 3.4428228896071253`*^9, 3.4428228904040003`*^9}, {3.4428230787165003`*^9, 3.4428231841852503`*^9}, 3.4428233695758753`*^9}] }, Closed]], Cell[CellGroupData[{ Cell["General setup", "Subsection", CellChangeTimes->{{3.4375843495625*^9, 3.437584350421875*^9}, 3.438448783030875*^9, {3.438450536530875*^9, 3.43845053764025*^9}, { 3.4385552676519604`*^9, 3.4385552763082104`*^9}, {3.4428278128727503`*^9, 3.4428278130915003`*^9}, {3.444739644234375*^9, 3.444739644671875*^9}, { 3.451046344890625*^9, 3.4510463469375*^9}, {3.4737716746988955`*^9, 3.473771676681426*^9}, {3.4759718746491194`*^9, 3.4759718763078947`*^9}, { 3.47597192126163*^9, 3.4759719250741887`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"drop", "[", RowBox[{"C_", ",", "y_"}], "]"}], " ", "=", " ", RowBox[{"Max", "[", RowBox[{"0", ",", RowBox[{"1", "-", RowBox[{"C", "/", "y"}]}]}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.4759714730101395`*^9, 3.4759714906216598`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"updatemodel", "[", RowBox[{"fm_", ",", "topo_", ",", "pars_", ",", "x0_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", " ", RowBox[{ RowBox[{"{", RowBox[{ "res", ",", "subs", ",", "Vars", ",", "eqs", ",", "eqsi", ",", "n", ",", "terms", ",", "drifts", ",", "d0"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"n", " ", "=", " ", RowBox[{"Length", "[", "fm", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"terms", " ", "=", " ", RowBox[{"fm", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}]}], ";", " ", RowBox[{"drifts", "=", RowBox[{"fm", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"d0", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{"drifts", " ", "/.", " ", "topo"}], " ", "/.", " ", RowBox[{"Thread", "[", RowBox[{"terms", "\[Rule]", "x0"}], "]"}]}], " ", "/.", " ", "pars"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"AllZero", "[", RowBox[{"d0", ",", SuperscriptBox["10", RowBox[{"-", "5"}]]}], "]"}], ",", "\[IndentingNewLine]", "None", ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"subs", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{ "terms", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], "\[Rule]", RowBox[{ RowBox[{"Vars", "[", "i", "]"}], "[", "t", "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "n"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"eqs", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"Vars", "[", "i", "]"}], "'"}], "[", "t", "]"}], "\[Equal]", RowBox[{ "drifts", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "n"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"eqsi", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"Vars", "[", "i", "]"}], "[", "0", "]"}], "\[Equal]", RowBox[{ "x0", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "n"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"res", " ", "=", " ", RowBox[{"First", "@", RowBox[{"NDSolve", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"Join", "[", RowBox[{"eqs", ",", "eqsi"}], "]"}], "/.", " ", "topo"}], " ", "/.", " ", "subs"}], " ", "/.", " ", "pars"}], ",", "\[IndentingNewLine]", RowBox[{"Table", "[", RowBox[{ RowBox[{"Vars", "[", "i", "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "n"}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"t", ",", "0", ",", "10"}], "}"}]}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"terms", " ", "/.", " ", "subs"}], " ", "/.", " ", RowBox[{"{", RowBox[{"t", "\[Rule]", "10"}], "}"}]}], " ", "/.", " ", "res"}]}]}], " ", "]"}]}]}], "]"}]}]], "Input", CellChangeTimes->CompressedData[" 1:eJxTTMoPSmViYGAQB2IQndT2LPLh05eOh9euyQHRX1yKS0D0/8KmChDNvDd8 FohuvxGyEESXqPQuBdH8YcrrQLQeU+w2EM2eqnccRC9iWfUabF7m5C8g+gTf 6/8gWvTDBzD9acEDnkdA+kVuoiKI/mNxUxNE+6d2OILoX0nJniA6RroYTFsd LfAH0U1eM8F0n9/GsyDaxnX2ORCtwapxDSy/Vx9M39n9YsljkD86jJeC6KPn wraD6CtHFoFphgnzP5pJvwLSD6H06x8QWvUXhN76H0wLzGExB/OP84JpgZ98 EPqGJISOlILIx6lB6FwILdCjBaGvQGiFafZgesFcMA0ABZvGyg== "]], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ "cola1", ",", "cola2", ",", "colb1", ",", "colb2", ",", "colc1", ",", "colc2"}], "}"}], " ", "=", " ", RowBox[{"{", RowBox[{ RowBox[{"RGBColor", "[", RowBox[{"0.76", ",", ".47", ",", ".94"}], "]"}], ",", RowBox[{"Lighter", "[", RowBox[{ RowBox[{"RGBColor", "[", RowBox[{".76", ",", ".47", ",", ".94"}], "]"}], ",", ".5"}], "]"}], ",", RowBox[{"RGBColor", "[", RowBox[{".94", ",", ".79", ",", ".59"}], "]"}], ",", RowBox[{"Lighter", "[", RowBox[{ RowBox[{"RGBColor", "[", RowBox[{".94", ",", ".79", ",", ".59"}], "]"}], ",", ".3"}], "]"}], ",", RowBox[{"RGBColor", "[", RowBox[{"0.79", ",", "0.89", ",", "0.83"}], "]"}], ",", RowBox[{"Darker", "[", RowBox[{ RowBox[{"RGBColor", "[", RowBox[{"0.79", ",", "0.89", ",", "0.83"}], "]"}], ",", ".1"}], "]"}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.475975810020218*^9, 3.475975826247967*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"cold", " ", "=", " ", RowBox[{"Lighter", "[", RowBox[{"Blue", ",", ".6"}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.4759758939602566`*^9, 3.47597589611654*^9}}] }, Closed]], Cell[CellGroupData[{ Cell["Code", "Subsection", CellChangeTimes->{{3.5172632785076275`*^9, 3.517263278819628*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"linear2", "=", " ", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"y0", "\[Rule]", RowBox[{ SuperscriptBox["rtt0", "2"], SuperscriptBox["y0", "2"], RowBox[{"(", RowBox[{ FractionBox["2", RowBox[{ SuperscriptBox["y0", "2"], SuperscriptBox["rtt0", "2"]}]], "-", "p1", "-", "p2"}], ")"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"y1", "\[Rule]", RowBox[{ SuperscriptBox["rtt1", "2"], SuperscriptBox["y1", "2"], RowBox[{"(", RowBox[{ FractionBox["2", RowBox[{ SuperscriptBox["y1", "2"], SuperscriptBox["rtt1", "2"]}]], "-", "p1"}], ")"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"y2", "\[Rule]", RowBox[{ SuperscriptBox["rtt2", "2"], SuperscriptBox["y2", "2"], RowBox[{"(", RowBox[{ FractionBox["2", RowBox[{ SuperscriptBox["y2", "2"], SuperscriptBox["rtt2", "2"]}]], "-", "p2"}], ")"}]}]}]}], " ", "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.4737717086506667`*^9, 3.4737717281559663`*^9}, { 3.4737718200011272`*^9, 3.4737719932687883`*^9}, {3.473772026450548*^9, 3.4737720325206413`*^9}, {3.4737729371240435`*^9, 3.4737729510405073`*^9}, {3.4737734728162727`*^9, 3.473773473434308*^9}, { 3.4737735196779537`*^9, 3.473773520284988*^9}, {3.4737744716634035`*^9, 3.4737744734205046`*^9}, {3.473774542022428*^9, 3.4737745995247173`*^9}, { 3.4737747794510083`*^9, 3.4737747799850388`*^9}, {3.4737752933524017`*^9, 3.473775294217451*^9}, {3.475967372359674*^9, 3.475967386614893*^9}, { 3.4759680588227177`*^9, 3.4759680958170357`*^9}, {3.4759686037398376`*^9, 3.4759686047461033`*^9}, {3.4759693601264553`*^9, 3.475969494883525*^9}, { 3.4759717891932063`*^9, 3.47597181550111*^9}, {3.477237393313182*^9, 3.4772374764694586`*^9}, {3.5009667094697266`*^9, 3.5009667189228516`*^9}, {3.5009668833339844`*^9, 3.5009668847265625`*^9}, {3.5009669796484375`*^9, 3.500967071705078*^9}, { 3.5039269059179688`*^9, 3.5039269085273438`*^9}, {3.5039269499804688`*^9, 3.5039270382148438`*^9}, 3.503928874359375*^9, {3.503931020663086*^9, 3.503931060741211*^9}, {3.503931114665039*^9, 3.503931134774414*^9}, { 3.503931195133789*^9, 3.503931199961914*^9}, {3.5172519669679747`*^9, 3.517251969042778*^9}, {3.517252003222438*^9, 3.517252003674839*^9}, { 3.5172520477917166`*^9, 3.5172521360566716`*^9}, {3.517261010504219*^9, 3.51726103962947*^9}, {3.5172610717343264`*^9, 3.517261080953943*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"linear2topo", " ", "=", " ", RowBox[{"{", RowBox[{ RowBox[{"p1", "\[Rule]", RowBox[{"drop", "[", RowBox[{"c1", ",", RowBox[{"y0", "+", "y1"}]}], "]"}]}], ",", RowBox[{"p2", "\[Rule]", RowBox[{"drop", "[", RowBox[{"c2", " ", ",", RowBox[{"y0", "+", "y2"}]}], "]"}]}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.4737717086506667`*^9, 3.4737717281559663`*^9}, { 3.4737718200011272`*^9, 3.4737719932687883`*^9}, {3.473772026450548*^9, 3.4737720325206413`*^9}, {3.4737729371240435`*^9, 3.4737729510405073`*^9}, { 3.4737734728162727`*^9, 3.473773473434308*^9}, {3.4737735196779537`*^9, 3.473773520284988*^9}, {3.4737747250838985`*^9, 3.4737747311992483`*^9}, { 3.473775290397233*^9, 3.473775299281741*^9}, {3.475968611561208*^9, 3.4759686128949785`*^9}, {3.4759695828648767`*^9, 3.475969606762744*^9}, { 3.4759696899177713`*^9, 3.475969696747876*^9}, {3.47596993920535*^9, 3.4759699490992517`*^9}, {3.500967268845703*^9, 3.500967277970703*^9}, { 3.5039270546523438`*^9, 3.5039270794023438`*^9}, {3.503931141477539*^9, 3.503931155118164*^9}, {3.503931202790039*^9, 3.503931204649414*^9}, { 3.5172521411734805`*^9, 3.5172521626547184`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"linear2pars", " ", "=", " ", RowBox[{"{", RowBox[{ RowBox[{"rtt0", "\[Rule]", ".1"}], ",", RowBox[{"rtt1", "\[Rule]", ".1"}], ",", RowBox[{"rtt2", "\[Rule]", ".1"}], ",", RowBox[{"c1", "\[Rule]", "50"}], ",", RowBox[{"c2", "\[Rule]", "30"}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.517252168114728*^9, 3.5172522111552033`*^9}, { 3.5172615540091734`*^9, 3.5172615540871735`*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"X", "=", RowBox[{"{", RowBox[{"20", ",", "20", ",", "20"}], "}"}]}], ";"}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{{3.5039271328085938`*^9, 3.5039271969960938`*^9}, { 3.503931167508789*^9, 3.503931168836914*^9}, {3.503931207868164*^9, 3.503931208774414*^9}, {3.517252230982838*^9, 3.517252231450839*^9}}], Cell[BoxData[ RowBox[{"X", " ", "=", " ", RowBox[{"updatemodel", "[", RowBox[{"linear2", ",", "linear2topo", ",", "linear2pars", ",", "X"}], "]"}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{{3.5039271328085938`*^9, 3.5039271970117188`*^9}, { 3.517252234882845*^9, 3.517252248470469*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ "21.865720174799257`", ",", "34.8017062132135`", ",", "23.560915477794186`"}], "}"}]], "Output", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{{3.5039271566367188`*^9, 3.5039271970117188`*^9}, { 3.5039276111835938`*^9, 3.5039276414335938`*^9}, {3.5039276801054688`*^9, 3.5039276810898438`*^9}, {3.503928047125*^9, 3.503928048875*^9}, { 3.50392888190625*^9, 3.50392888578125*^9}, {3.5039289253125*^9, 3.5039289772822266`*^9}, {3.5039290166103516`*^9, 3.5039290196103516`*^9}, {3.503929125517578*^9, 3.503929143939453*^9}, { 3.503929202283203*^9, 3.503929241330078*^9}, {3.503929303361328*^9, 3.503929306376953*^9}, {3.503929347751953*^9, 3.503929467517578*^9}, 3.503929559173828*^9, {3.503929644126953*^9, 3.503929659955078*^9}, { 3.503929690861328*^9, 3.503929694251953*^9}, {3.503931162290039*^9, 3.503931176024414*^9}, {3.503931214415039*^9, 3.5039312440322266`*^9}, 3.5039418458984375`*^9, 3.5039442220341797`*^9, 3.5039886399414062`*^9, 3.5172522493596706`*^9, {3.5172529935745773`*^9, 3.5172530002357893`*^9}, 3.5309596891885653`*^9, 3.5309598531916533`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ "col2", ",", "col2b", ",", "col1", ",", "col1b", " ", ",", "col0", ",", "col0b", ",", "col3"}], "}"}], "=", RowBox[{"{", RowBox[{ RowBox[{"Hue", "[", RowBox[{".582", ",", ".08", ",", ".836"}], "]"}], ",", RowBox[{"Hue", "[", RowBox[{".582", ",", ".03", ",", ".632"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Hue", "[", RowBox[{".582", ",", ".28", ",", ".7"}], "]"}], ",", RowBox[{"Hue", "[", RowBox[{".582", ",", ".28", ",", ".636"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Hue", "[", RowBox[{".284", ",", ".27", ",", ".65"}], "]"}], ",", RowBox[{"Hue", "[", RowBox[{".284", ",", ".27", ",", ".682"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Hue", "[", RowBox[{"0", ",", ".776", ",", ".882"}], "]"}]}], "}"}]}], ";"}], "\n", RowBox[{"{", RowBox[{ RowBox[{"Style", "[", RowBox[{"\"\<\!\(\*SubscriptBox[\(col\), \(0\)]\)\>\"", ",", "col0b"}], "]"}], ",", RowBox[{"Style", "[", RowBox[{"\"\<\!\(\*SubscriptBox[\(col\), \(1\)]\)\>\"", ",", "col1b"}], "]"}], ",", RowBox[{"Style", "[", RowBox[{"\"\<\!\(\*SubscriptBox[\(col\), \(2\)]\)\>\"", ",", "col2b"}], "]"}]}], "}"}]}], "Input", CellChangeTimes->{{3.5039317062197266`*^9, 3.5039317265791016`*^9}, { 3.5039432667089844`*^9, 3.503943272598633*^9}, {3.517252269358906*^9, 3.5172522727441115`*^9}, {3.5172604731300755`*^9, 3.51726051010214*^9}, { 3.5172605420509963`*^9, 3.517260545436202*^9}, {3.517260586433074*^9, 3.5172606077583113`*^9}, {3.5172607421837473`*^9, 3.5172609009296265`*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ StyleBox["\<\"\\!\\(\\*SubscriptBox[\\(col\\), \\(0\\)]\\)\"\>", StripOnInput->False, LineColor->Hue[0.284, 0.27, 0.682], FrontFaceColor->Hue[0.284, 0.27, 0.682], BackFaceColor->Hue[0.284, 0.27, 0.682], GraphicsColor->Hue[0.284, 0.27, 0.682], FontColor->Hue[0.284, 0.27, 0.682]], ",", StyleBox["\<\"\\!\\(\\*SubscriptBox[\\(col\\), \\(1\\)]\\)\"\>", StripOnInput->False, LineColor->Hue[0.582, 0.28, 0.636], FrontFaceColor->Hue[0.582, 0.28, 0.636], BackFaceColor->Hue[0.582, 0.28, 0.636], GraphicsColor->Hue[0.582, 0.28, 0.636], FontColor->Hue[0.582, 0.28, 0.636]], ",", StyleBox["\<\"\\!\\(\\*SubscriptBox[\\(col\\), \\(2\\)]\\)\"\>", StripOnInput->False, LineColor->Hue[0.582, 0.03, 0.632], FrontFaceColor->Hue[0.582, 0.03, 0.632], BackFaceColor->Hue[0.582, 0.03, 0.632], GraphicsColor->Hue[0.582, 0.03, 0.632], FontColor->Hue[0.582, 0.03, 0.632]]}], "}"}]], "Output", CellChangeTimes->{{3.517260747284957*^9, 3.5172609014444275`*^9}, 3.530959690810968*^9, 3.5309598532852535`*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ShowCaption", "[", RowBox[{"cap_", ",", "size_", ",", RowBox[{"adj_:", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}]}], "]"}], "[", RowBox[{"C_", ",", "loads_", ",", "xy_"}], "]"}], " ", ":=", " ", RowBox[{"Inset", "[", RowBox[{"cap", ",", "xy", ",", "adj", ",", "size"}], "]"}]}]], "Input", CellChangeTimes->{{3.5039326197509766`*^9, 3.5039326981259766`*^9}, { 3.5039327788447266`*^9, 3.5039327866884766`*^9}, {3.5039425626103516`*^9, 3.5039425748320312`*^9}, {3.5039426291220703`*^9, 3.5039426298564453`*^9}, { 3.503942818834961*^9, 3.503942824609375*^9}, {3.503942865633789*^9, 3.503942874192383*^9}}], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"feas", "[", RowBox[{"pars_", ",", "x0_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", " ", RowBox[{ RowBox[{"{", RowBox[{"vals", ",", "y0", ",", "y1", ",", "y2", ",", "C1", ",", "C2"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"y0", ",", "y1", ",", "y2"}], "}"}], "=", "x0"}], ";", "\[IndentingNewLine]", RowBox[{"C1", " ", "=", " ", RowBox[{"c1", " ", "/.", " ", "pars"}]}], ";", "\[IndentingNewLine]", RowBox[{"C2", " ", "=", " ", RowBox[{"c2", " ", "/.", " ", "pars"}]}], ";", "\[IndentingNewLine]", RowBox[{"cc", " ", "=", " ", RowBox[{"Min", "[", RowBox[{"C1", ",", "C2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Graphics3D", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"Text", "[", RowBox[{"\"\<\!\(\*SubscriptBox[\(C\), \(1\)]\)\>\"", ",", RowBox[{"{", RowBox[{"C1", ",", RowBox[{"-", "2"}], ",", "0"}], "}"}]}], "]"}], ",", RowBox[{"Text", "[", RowBox[{"\"\<\!\(\*SubscriptBox[\(C\), \(2\)]\)\>\"", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "C2", ",", "0"}], "}"}]}], "]"}], ",", RowBox[{"Text", "[", RowBox[{ "\"\\"", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", RowBox[{"-", "2"}], ",", "cc"}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"GrayLevel", "[", ".5", "]"}], ",", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "y2", ",", "y0"}], "}"}], ",", RowBox[{"{", RowBox[{"y1", ",", "y2", ",", "y0"}], "}"}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"y1", ",", "0", ",", "y0"}], "}"}], ",", RowBox[{"{", RowBox[{"y1", ",", "y2", ",", "y0"}], "}"}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"y1", ",", "y2", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"y1", ",", "y2", ",", "y0"}], "}"}]}], "}"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"Dashing", "[", RowBox[{"{", RowBox[{".01", ",", ".01"}], "}"}], "]"}], ",", RowBox[{"Thickness", "[", ".01", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"C1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"C1", ",", RowBox[{"1.2", " ", "C2"}], ",", "0"}], "}"}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "C2", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"1.2", " ", "C1"}], ",", "C2", ",", "0"}], "}"}]}], "}"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"FaceForm", "[", RowBox[{"Opacity", "[", ".5", "]"}], "]"}], ",", RowBox[{"EdgeForm", "[", "Black", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Polygon", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "C2", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", RowBox[{"C2", "-", "cc"}], ",", "cc"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "cc"}], "}"}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Polygon", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"C1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"C1", "-", "cc"}], ",", "0", ",", "cc"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "cc"}], "}"}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Polygon", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"C1", ",", "C2", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"C1", "-", "cc"}], ",", RowBox[{"C2", "-", "cc"}], ",", "cc"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"C1", "-", "cc"}], ",", "0", ",", "cc"}], "}"}], ",", RowBox[{"{", RowBox[{"C1", ",", "0", ",", "0"}], "}"}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Polygon", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"C1", ",", "C2", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"C1", "-", "cc"}], ",", RowBox[{"C2", "-", "cc"}], ",", "cc"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", RowBox[{"C2", "-", "cc"}], ",", "cc"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "C2", ",", "0"}], "}"}]}], "}"}], "]"}]}], "\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]", RowBox[{"Boxed", "\[Rule]", "False"}], ",", RowBox[{"AxesLabel", "\[Rule]", RowBox[{"{", RowBox[{ "\"\<\!\(\*SubscriptBox[\(y\), \(1\)]\)\>\"", ",", "\"\<\!\(\*SubscriptBox[\(y\), \(2\)]\)\>\"", ",", "\"\<\!\(\*SubscriptBox[\(y\), \(0\)]\)\>\""}], "}"}]}], ",", RowBox[{"Axes", "\[Rule]", "True"}], ",", RowBox[{"AxesEdge", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}]}], "}"}]}], "}"}]}], ",", RowBox[{"AxesOrigin", "\[Rule]", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], ",", RowBox[{"BoxRatios", "\[Rule]", "Automatic"}]}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", RowBox[{"feas", "[", RowBox[{"linear2pars", ",", "X"}], "]"}]}], "Input", CellChangeTimes->{{3.5172612167833815`*^9, 3.517261651072544*^9}, { 3.517261710524248*^9, 3.5172617794295692`*^9}, {3.5172618157464333`*^9, 3.5172620737084866`*^9}, {3.5172621043781404`*^9, 3.51726216103744*^9}, { 3.5172622214407463`*^9, 3.5172622565252075`*^9}, {3.5172623004236846`*^9, 3.517262303918091*^9}, {3.517262431479515*^9, 3.517262438437127*^9}, { 3.5172625476997185`*^9, 3.5172625504141235`*^9}}], Cell[BoxData[ Graphics3DBox[{ Text3DBox["\<\"\\!\\(\\*SubscriptBox[\\(C\\), \\(1\\)]\\)\"\>", {50, -2, 0}], Text3DBox["\<\"\\!\\(\\*SubscriptBox[\\(C\\), \\(2\\)]\\)\"\>", {-2, 30, 0}], Text3DBox["\<\"Min(\\!\\(\\*SubscriptBox[\\(C\\), \ \\(1\\)]\\),\\!\\(\\*SubscriptBox[\\(C\\), \\(2\\)]\\))\"\>", {-2, -2, 30}], {GrayLevel[0.5], Line3DBox[{{0, 23.560915477794186`, 21.865720174799257`}, { 34.8017062132135, 23.560915477794186`, 21.865720174799257`}}], Line3DBox[{{34.8017062132135, 0, 21.865720174799257`}, {34.8017062132135, 23.560915477794186`, 21.865720174799257`}}], Line3DBox[{{34.8017062132135, 23.560915477794186`, 0}, {34.8017062132135, 23.560915477794186`, 21.865720174799257`}}]}, {Thickness[0.01], Dashing[{0.01, 0.01}], Line3DBox[{{50, 0, 0}, {50, 36., 0}}], Line3DBox[{{0, 30, 0}, {60., 30, 0}}]}, {EdgeForm[GrayLevel[0]], FaceForm[Opacity[0.5], Opacity[0.5]], Polygon3DBox[{{0, 0, 0}, {0, 30, 0}, {0, 0, 30}, {0, 0, 30}}], Polygon3DBox[{{0, 0, 0}, {50, 0, 0}, {20, 0, 30}, {0, 0, 30}}], Polygon3DBox[{{50, 30, 0}, {20, 0, 30}, {20, 0, 30}, {50, 0, 0}}], Polygon3DBox[{{50, 30, 0}, {20, 0, 30}, {0, 0, 30}, {0, 30, 0}}]}}, AutomaticImageSize->True, Axes->True, AxesEdge->{{-1, -1}, {-1, -1}, {-1, -1}}, AxesLabel->{ FormBox[ "\"\\!\\(\\*SubscriptBox[\\(y\\), \\(1\\)]\\)\"", TraditionalForm], FormBox[ "\"\\!\\(\\*SubscriptBox[\\(y\\), \\(2\\)]\\)\"", TraditionalForm], FormBox[ "\"\\!\\(\\*SubscriptBox[\\(y\\), \\(0\\)]\\)\"", TraditionalForm]}, AxesOrigin->{0, 0, 0}, BoxRatios->Automatic, Boxed->False, ImageSize->{342.51548046367685`, 300.9781007225553}, ViewPoint->{2.1944282391715157`, 1.9627435168773035`, 1.66796960106674}, ViewVertical->{0.08200675941141375, 0.15959231018034326`, 2.0497616197137716`}]], "Output", CellChangeTimes->{{3.517261587159232*^9, 3.5172616190144877`*^9}, { 3.5172617550779266`*^9, 3.5172617798975706`*^9}, {3.517261842906081*^9, 3.517261912435403*^9}, {3.5172619444778595`*^9, 3.5172619552418785`*^9}, { 3.517262014802783*^9, 3.517262039825227*^9}, 3.5172620741452875`*^9, 3.5172621614118404`*^9, {3.5172622343419685`*^9, 3.5172622570556087`*^9}, 3.5172623042768917`*^9, 3.517262438936328*^9, 3.5172625040508423`*^9, 3.517262551194125*^9, 3.5309596996717834`*^9, 3.5309598536596537`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"linear2plot", "[", RowBox[{"pars_", ",", "topo_", ",", "x0_"}], "]"}], " ", ":=", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "vals", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"vals", " ", "=", " ", RowBox[{"Thread", "[", RowBox[{ RowBox[{"{", RowBox[{"y0", ",", "y1", ",", "y2"}], "}"}], "\[Rule]", "x0"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"ShowNetwork", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"link", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "3.5"}], "}"}], ",", "1", ",", "\"\\"", ",", RowBox[{"Label", "\[Rule]", "ShowLoad"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "6"}], "}"}], ",", "1", ",", "\"\\"", ",", RowBox[{"Label", "\[Rule]", "ShowLoad"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{"2.5", ",", "6.5"}], "}"}], ",", "1", ",", "\"\\"", ",", RowBox[{"Label", "\[Rule]", "ShowLoad"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{"6", ",", "3.5"}], "}"}], ",", "1", ",", "\"\\""}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{"2", ",", "6"}], "}"}], ",", "1", ",", "\"\\""}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{"6", ",", "6"}], "}"}], ",", "1", ",", "\"\\""}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{ RowBox[{ RowBox[{"c1", "/", "100"}], " ", "/.", " ", "pars"}], ",", RowBox[{"{", RowBox[{"0", ",", "5"}], "}"}], ",", "1", ",", "\"\\"", ",", RowBox[{"Label", "\[Rule]", RowBox[{"ShowDrop", "[", "drop", "]"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"link", "[", RowBox[{ RowBox[{ RowBox[{"c2", "/", "100"}], " ", "/.", " ", "pars"}], ",", RowBox[{"{", RowBox[{"4", ",", "5"}], "}"}], ",", "1", ",", "\"\\"", ",", RowBox[{"Label", "\[Rule]", RowBox[{"ShowDrop", "[", "drop", "]"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"flow", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"y0", "/", "100"}], " ", "/.", " ", "vals"}], " ", "/.", " ", "pars"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", "\"\\""}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"flow", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"y1", "/", "100"}], " ", "/.", " ", "vals"}], " ", "/.", " ", "pars"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", "\"\\""}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"flow", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"y2", "/", "100"}], " ", "/.", " ", "vals"}], " ", "/.", " ", "pars"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", "\"\\""}], "]"}]}], "\[IndentingNewLine]", "}"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "3"}], ",", "7"}], "}"}], ",", RowBox[{"{", RowBox[{"2.5", ",", "7.5"}], "}"}]}], "}"}]}], ",", " ", "\[IndentingNewLine]", RowBox[{"FlowStyle", "\[Rule]", RowBox[{"{", RowBox[{"col0", ",", "col1", ",", "col2"}], "}"}]}]}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}], "\n", RowBox[{"linear2plot", "[", RowBox[{"linear2pars", ",", "linear2topo", ",", "X"}], "]"}]}], "Input", CellChangeTimes->{{3.43853418128125*^9, 3.4385342699375*^9}, { 3.43853784090625*^9, 3.4385378520625*^9}, {3.438538202203125*^9, 3.438538211203125*^9}, {3.4385387315*^9, 3.4385387333125*^9}, { 3.43853913396875*^9, 3.43853916153125*^9}, {3.438539407671875*^9, 3.43853940909375*^9}, {3.438539623125*^9, 3.4385396279375*^9}, { 3.438540183796875*^9, 3.438540184984375*^9}, {3.4385536773394604`*^9, 3.4385536787144604`*^9}, {3.4385543486675854`*^9, 3.4385543539957104`*^9}, {3.4385544864332104`*^9, 3.4385544994488354`*^9}, {3.4385545549332104`*^9, 3.4385545715582104`*^9}, {3.4759687847251177`*^9, 3.475968883337882*^9}, { 3.4759689400650034`*^9, 3.4759689612440786`*^9}, 3.475969009398568*^9, { 3.475969736845992*^9, 3.475969794348125*^9}, {3.4759698634641867`*^9, 3.4759698731930857`*^9}, {3.475969983231026*^9, 3.4759699852898083`*^9}, { 3.4759701067741737`*^9, 3.475970108210446*^9}, {3.4759702085332365`*^9, 3.4759704040199895`*^9}, {3.475970684850553*^9, 3.4759707287562275`*^9}, { 3.4759754786052723`*^9, 3.475975569092681*^9}, {3.4759756169679236`*^9, 3.475975700620782*^9}, {3.4759758396981735`*^9, 3.4759758474745426`*^9}, { 3.477238632108489*^9, 3.4772386363110533`*^9}, {3.477241284780672*^9, 3.477241284950675*^9}, {3.500967096189453*^9, 3.500967260658203*^9}, { 3.500967502908203*^9, 3.500967543986328*^9}, {3.5009677865810547`*^9, 3.5009677885498047`*^9}, {3.5009679114248047`*^9, 3.5009679159560547`*^9}, {3.5009679620185547`*^9, 3.5009679912851562`*^9}, {3.5009681847382812`*^9, 3.5009683164414062`*^9}, {3.5009683604726562`*^9, 3.5009684392382812`*^9}, {3.5009684792226562`*^9, 3.500968698942383*^9}, { 3.500968760520508*^9, 3.500968784020508*^9}, {3.500968814145508*^9, 3.500968817739258*^9}, {3.5009739233466797`*^9, 3.5009739356904297`*^9}, { 3.5039272043085938`*^9, 3.5039272154023438`*^9}, {3.5039272594023438`*^9, 3.5039273724179688`*^9}, {3.5039274342304688`*^9, 3.5039275839804688`*^9}, {3.5039276585898438`*^9, 3.5039276637617188`*^9}, {3.50392855415625*^9, 3.50392868321875*^9}, { 3.50392878446875*^9, 3.503928805453125*^9}, {3.503929765611328*^9, 3.5039297712695312`*^9}, {3.5039299207695312`*^9, 3.5039299274726562`*^9}, {3.5039303938808594`*^9, 3.5039304426308594`*^9}, {3.5039305990058594`*^9, 3.5039306693339844`*^9}, {3.5039307053027344`*^9, 3.5039308044902344`*^9}, {3.5039308356933594`*^9, 3.5039308515214844`*^9}, {3.5039312564072266`*^9, 3.5039315057822266`*^9}, {3.5039315363916016`*^9, 3.5039315552041016`*^9}, {3.5039315924384766`*^9, 3.5039316878447266`*^9}, {3.5039317357353516`*^9, 3.5039317764384766`*^9}, {3.5039322818916016`*^9, 3.5039322832353516`*^9}, {3.503943292866211*^9, 3.5039433034345703`*^9}, { 3.503943477591797*^9, 3.503943507203125*^9}, {3.5039435599726562`*^9, 3.503943561024414*^9}, {3.5039442118935547`*^9, 3.5039442187841797`*^9}, { 3.5039886174882812`*^9, 3.5039886319570312`*^9}, {3.5039888138222656`*^9, 3.5039888463535156`*^9}, {3.5172522936325483`*^9, 3.51725247102046*^9}, { 3.517252508710126*^9, 3.5172526864412384`*^9}, {3.517252734208522*^9, 3.517252855233535*^9}, {3.517252888055992*^9, 3.517252930628467*^9}, { 3.517253041809862*^9, 3.517253073867919*^9}, {3.517260481148489*^9, 3.517260484393295*^9}, {3.5172625345332956`*^9, 3.517262536530099*^9}}], Cell[BoxData[ GraphicsBox[{{ {Hue[0.284, 0.27, 0.65], Thickness[0.02186572017479926], LineBox[NCache[{{Rational[-5, 2], 3.5}, { Rational[-3, 2], 3.5}, {-1.4714375, 3.500082874466808}, {-1.4455, 3.500662995734467}, {-1.4218125, 3.502237610603826}, {-1.4000000000000001`, 3.505303965875736}, {-1.3796875000000002`, 3.5103593083510463`}, {-1.3605, 3.517900884830608}, {-1.3420625, 3.528425942115271}, {-1.324, 3.542431727005886}, {-1.3059375, 3.560415486303302}, {-1.2875, 3.58287446680837}, {-1.2683125000000002`, 3.6103059153219412`}, {-1.248, 3.6432070786448647`}, {-1.2261875, 3.6820752035779902`}, {-1.2025000000000001`, 3.7274075369221693`}, {-1.1765625, 3.779701325478251}, {-1.148, 3.8394538160470866`}, {-1.1164375, 3.907162255429526}, {-1.0815, 3.9833238904264183`}, {-1.0428125000000001`, 4.0684359678386155`}, {-1., 4.162995734466967}, {-0.9557625, 4.257555501095316}, {-0.9131, 4.342667578507514}, {-0.8720875, 4.418829213504407}, {-0.8328, 4.486537652886845}, {-0.7953125, 4.546290143455681}, {-0.7597, 4.5985839320117625`}, {-0.7260375, 4.6439162653559425`}, {-0.6943999999999999, 4.682784390289068}, {-0.6648625, 4.715685553611991}, {-0.6375, 4.743117002125562}, {-0.6123875, 4.76557598263063}, {-0.5896, 4.7835597419280464`}, {-0.5692124999999999, 4.797565526818661}, {-0.5512999999999999, 4.808090584103324}, {-0.5359374999999998, 4.8156321605828865`}, {-0.5231999999999999, 4.820687503058196}, {-0.5131624999999999, 4.823753858330106}, {-0.5058999999999998, 4.825328473199465}, {-0.5014874999999999, 4.825908594467124}, {-0.4999999999999998, 4.825991468933932}, { Rational[1, 2], 4.825991468933933}, {0.5286875000000001, 4.8259949816810375`}, {0.5554999999999999, 4.826019570910772}, { 0.5815625, 4.826086313105763}, {0.608, 4.826216284748641}, { 0.6359374999999999, 4.826430562322035}, {0.6665, 4.826750222308574}, { 0.7008125000000001, 4.827196341190885}, {0.7400000000000001, 4.8277899954515995`}, {0.7851875, 4.828552261573345}, {0.8375, 4.829504216038751}, {0.8980625, 4.830666935330446}, {0.968, 4.832061495931059}, {1.0484375000000001`, 4.833708974323219}, {1.1405, 4.835630446989555}, {1.2453125, 4.837846990412696}, { 1.3639999999999999`, 4.8403796810752695`}, {1.4976874999999998`, 4.843249595459906}, {1.6474999999999997`, 4.846477810049235}, { 1.8145624999999999`, 4.850085401325884}, {1.9999999999999998`, 4.854093445772482}, {2.1868625, 4.858101490219078}, { 2.3579000000000003`, 4.861709081495729}, {2.5137875, 4.864937296085055}, {2.6552, 4.867807210469692}, {2.7828125, 4.870339901132267}, {2.8973, 4.872556444555407}, {2.9993374999999998`, 4.874477917221743}, {3.0896, 4.876125395613903}, { 3.1687624999999997`, 4.877519956214515}, {3.2375, 4.8786826755062105`}, {3.2964874999999996`, 4.8796346299716165`}, { 3.3464, 4.880396896093362}, {3.3879125, 4.880990550354076}, { 3.4216999999999995`, 4.881436669236388}, {3.4484375, 4.881756329222927}, {3.4688000000000003`, 4.881970606796321}, { 3.4834624999999995`, 4.882100578439199}, {3.4930999999999996`, 4.882167320634192}, {3.4983874999999993`, 4.882191909863925}, { 3.499999999999999, 4.88219542261103}, { Rational[9, 2], 4.882195422611029}, {4.5285625000000005`, 4.882109035397116}, {4.5545, 4.881504324899724}, {4.5781875, 4.879862967835373}, {4.6, 4.876666640920585}, {4.620312500000001, 4.87139702087188}, {4.639499999999999, 4.86353578440578}, {4.6579375, 4.852564608238805}, {4.676, 4.837965169087476}, {4.6940625, 4.819219143668315}, {4.7125, 4.79580820869784}, {4.7316875000000005`, 4.767214040892575}, {4.752, 4.732918316969038}, {4.773812500000001, 4.692402713643752}, {4.797499999999999, 4.645148907633237}, { 4.8234375, 4.590638575654015}, {4.852, 4.528353394422606}, {4.8835625, 4.457775040655529}, {4.9185, 4.378385191069308}, {4.9571875, 4.289665522380463}, {5., 4.191097711305513}, {5.0442374999999995`, 4.0925299002305655`}, {5.0869, 4.0038102315417206`}, {5.1279125, 3.9244203819554992`}, {5.1672, 3.853842028188424}, { 5.2046874999999995`, 3.7915568469570142`}, {5.2402999999999995`, 3.7370465149777914`}, {5.2739625, 3.689792708967277}, { 5.305599999999999, 3.6492771056419913`}, {5.335137499999999, 3.6149813817184553`}, {5.3625, 3.5863872139131896`}, {5.3876125, 3.562976278942715}, {5.4104, 3.544230253523553}, {5.4307875, 3.529630814372224}, {5.4487, 3.5186596382052486`}, {5.4640625, 3.5107984017391485`}, {5.4768, 3.505528781690444}, {5.486837499999999, 3.5023324547756562`}, {5.4940999999999995`, 3.5006910977113055`}, { 5.4985124999999995`, 3.5000863872139134`}, {5.499999999999999, 3.5}, { Rational[13, 2], 3.5}}, CompressedData[" 1:eJxVlXlQU9cXxwVZhDyWvJunNBZlccGKaBUDFfEdZaqIooiA7GgEfmKlKiil BZSK4q+CLBWMFUX8iVaGCIpaFCwXRUDcBpRRqJEfW0IEghAWBSz0vSTtTM/M mzuff84795zv+V5L4V7PMO0pU6YkMB97qkOnUn0SoD4/4r85uGw9oZ3yAQsm HaMXMuzVcTnnocUHfHO09pcALQK+uvUopgKP4Hvd2vOzdQj4TzgbI1j0jH4u MSTAfhkTaASfON+4xoEi4ONWNsEwlnjPcCyYQwChvfD49O+H8cuBoB0OKwio i6m4wF88jG/vmdgv8yHgWM+WO7OkQ7j2/ibz8jgCzv7CxhD26M2fXlZAQAhb 34YhfKbLhytvI4DJ1vz8wyDuKCqrXD/XCHzZAnMHcYzzvKaOA0awyvD1pX3O g/hs2nvD8gYjYMtb9lKJT53fQzSuNIZMRTy9PFiJr4YNpi8rNYbrUbsyFZIB bNHe7Nqy2gS6xgsGXrgP4FXGMd1Nb00g48GwTWBxP76iNObx1ppq+teP1904 5S+/YgobHuk752T3Ydles4v39LmQ6IoTzB0V+NuAXrozmAvrpsZy5sh7cML+ sow2MRfc4pIWb7zSje8UL1IIlFx1fdHvcBUaKApfTIL4WlNIzGY5pnOKFw+G khAUWT1R4tSFX7jw6oJPkdA/5OaX7CjDMzmPGxeWk8CtLbtzcq0UV/bFiSUS ElTjCe/Eob2NBYMfScjxvlB47UwHLtBKnDdogsBvRmnDlJZ2vNTWJj7ICoGr 3aTln4J2fCkiVuf2EgQ88zopnd+Gc0tnfhbvhCCMTTevDT9Cv6PlLghkqTYK o4pWfD9Of5PQFQGNdlS9/KYV2ykuWyZvQMCP37HUe0krvhnmIrdyR2DFXpho xQPtJ8bLGP40ycb/capw/u16htX9bKVPalg1755W+mZPR14Dw7Yl59//WtNG VxRyUBPDgenMQM6105nNBj+/Y/jN6KHd9w500KR4fT5nEwKVfPw66bn+gnoX hlVy2Sqli/hO50QMZ5np+BhHyujMOVVpxGYExevafuAVddG3ir6yu8pw7QaH n1ZbvKPH3xto7fNA8OwpG9202+wLJyO2ILVe7vXSx6JD/c96Itgurbd6M9pH /2xdrdD3Qur9qOmnvcJtn5d6I4jexSpOSV+P0j1SvE2Tr3eQTjlcnj7kh2CP SnDD9KOquwmpgQjWswsz8oF2j/nmRXwIggD2voFj9MQzJ94TIQJmOa9HTfuT xlqn6+LDEUyqgz7oKo0V7Ubg+3jpwxuHtGBBur1NybfMfOTN4jGJNvQ+SHu7 MwrBDdybu/JzHcjhh8wuOYig6Dfh4WZnXbB4Znrgf7FIrUcXPQjmmghXxCFw ZgW0SB8cZ1XvPZyAoM7r/tX8CX3I+iLX+rvDCF5VR9onlk4Dn0hdnfk/Mv3w 8pyf52cAQvNwUdYRpNajzABy9y8MrU5C0Lnj4iv7EENQ5FX2VxxF8Id4LDCy 2hDs2zOqko8hcLkW0bKfzwGfPfo7rZIRfM7KMYQDK2LSvUXJmnynOfBQkGXZ w7B5T7uAX8mBV52J7tbHETj97nnasoUD20orQ75muGoNk3CAA7bSihYfhovb 3mWXfOKA4LLMI4jhCVX7OBBod2ll8PG/9UhCgIYj2PGZk3B2rptoHcMq/3Eg YYv8D24B83/lC3ehqQcJo6vpp2NHNfWFk8CZ2C67xfRD5Y9xJEx0LUjcHI9A i02QRsLGJ0l31xxAkMC4UdlFEiKjfUv0IhBsEpoylkZCc2HmCeSPYDZrkDUk GMJnwra1SO2PzSTEjDf5yu009SlIEBWUpeVxESxXGToCKXXV+kgfCYWMmwnN EDRxUhx0q0nY58wYJLPn3T7u3RezSPW8mb3NetAUUB9IwjlWX7sQbOTPEE9j 7q16D/6LIGWBcuxBIxf0fsx2SREjeFy+ddd3SVz1PjYiSDo3l5drw9X0jwe2 oi2ziqtMYUQv5MzGRTx4nZlgUxlsCv3TXT0++fIgI2pzo2yqKYgmMw6NH+HB BQNhkiDMBEQZJj8ICnkw28bMsrDRWL3PDTxIf511f6a3Mbh169hzR3jQWlSY Hys1AlZuP5lRoPv1EsOSo0bAyuu9IwWKJSNf3vnSCMx/lbvabaPghEFDQFwP ofFbCp6GZdX2XCfAnUp1606lIF+Cbo8mEkCp/I8CHV3r0Gx/Ahz4lQEWdymQ HMzmFa8kIEiydmrsEwrMa1bpOczT5HtDwd1UZaz5dAJ29vmvWSWnIG/7UbEn hwDR21PHjykpeNhU21rDvJ/x9Tf9hkcp4KVmeO9m3tfy08yFJyhI4pa4LWLe X/U6U/Dv95r/D/8FgL9hmA== "]]]}, {Hue[0.582, 0.28, 0.7], Thickness[0.034801706213213504`], LineBox[NCache[{{Rational[-5, 2], 6.}, { Rational[-3, 2], 6.}, {-1.4714375, 5.999944333037555}, {-1.4455, 5.999554664300437}, {-1.4218125, 5.998496992013975}, {-1.4000000000000001`, 5.996437314403496}, {-1.3796875000000002`, 5.993041629694328}, {-1.3605, 5.987975936111799}, {-1.3420625, 5.980906231881236}, {-1.324, 5.971498515227967}, {-1.3059375, 5.959418784377322}, {-1.2875, 5.9443330375546255`}, {-1.2683125000000002`, 5.925907272985206}, {-1.248, 5.903807488894392}, {-1.2261875, 5.877699683507511}, {-1.2025000000000001`, 5.84724985504989}, {-1.1765625, 5.812124001746859}, {-1.148, 5.771988121823743}, {-1.1164375, 5.726508213505872}, {-1.0815, 5.675350275018571}, {-1.0428125000000001`, 5.618180304587171}, {-1., 5.554664300436998}, {-0.9557625, 5.491148296286826}, {-0.9131, 5.433978325855424}, {-0.8720875, 5.382820387368125}, {-0.8328, 5.337340479050254}, {-0.7953125, 5.297204599127139}, {-0.7597, 5.262078745824106}, {-0.7260375, 5.231628917366486}, {-0.6943999999999999, 5.205521111979605}, {-0.6648625, 5.183421327888791}, {-0.6375, 5.164995563319372}, {-0.6123875, 5.149909816496676}, {-0.5896, 5.137830085646029}, {-0.5692124999999999, 5.12842236899276}, {-0.5512999999999999, 5.121352664762197}, {-0.5359374999999998, 5.116286971179668}, {-0.5231999999999999, 5.112891286470501}, {-0.5131624999999999, 5.110831608860022}, {-0.5058999999999998, 5.109773936573561}, {-0.5014874999999999, 5.109384267836443}, {-0.4999999999999998, 5.109328600873997}, { Rational[1, 2], 5.109328600873996}, {0.5285625, 5.109384267836441}, { 0.5544999999999999, 5.10977393657356}, {0.5781875, 5.110831608860021}, {0.6, 5.1128912864705}, {0.6203124999999999, 5.116286971179668}, {0.6395, 5.121352664762197}, {0.6579375, 5.12842236899276}, {0.676, 5.137830085646028}, {0.6940624999999999, 5.149909816496676}, {0.7124999999999999, 5.164995563319372}, { 0.7316874999999999, 5.183421327888791}, {0.7519999999999999, 5.205521111979605}, {0.7738125, 5.231628917366486}, {0.7975, 5.262078745824105}, {0.8234375, 5.297204599127138}, {0.852, 5.337340479050253}, {0.8835624999999999, 5.382820387368124}, { 0.9184999999999999, 5.433978325855423}, {0.9571875, 5.491148296286824}, {1., 5.554664300436997}, {1.0442375, 5.618180304587171}, {1.0869, 5.675350275018572}, {1.1279124999999999`, 5.726508213505872}, {1.1672, 5.771988121823743}, { 1.2046875000000001`, 5.812124001746858}, {1.2403000000000002`, 5.84724985504989}, {1.2739624999999999`, 5.877699683507511}, {1.3056, 5.903807488894392}, {1.3351375, 5.925907272985206}, {1.3625, 5.944333037554625}, {1.3876125000000001`, 5.959418784377322}, {1.4104, 5.971498515227967}, {1.4307875, 5.980906231881236}, { 1.4487000000000003`, 5.987975936111799}, {1.4640625, 5.9930416296943285`}, {1.4768000000000001`, 5.9964373144034955`}, { 1.4868375, 5.998496992013975}, {1.4941, 5.999554664300437}, { 1.4985125, 5.999944333037554}, {1.5000000000000002`, 6.}, { Rational[5, 2], 6.}}, CompressedData[" 1:eJxVVHtQVGUUJ0KThBmQu3sbTAIhckSFYSVwGjwfj8EHNQQtGbhgggL5aAWN R8EAEsVIiE4iEJFS6UQi9MAJkOEwgIWOJY9JxAFZWHYXxCX2DYnQ3sv9/ujM 7HxzZu6c/Z3ze3gkyWMO29rY2EitP+5dKbvOlfclsvLOI+0T2/Y42JZa0P4R SdMts0SqvFLT427B8LnVoaXWfkdzb2YHmlFzZGjpoyWWpKZwZUbP04FO8Yss 2S6xlosZfY40aMbmWTL/DjfAhAH7bpqbDCxxsPX5XJxjwvS86caMJyy5ndlx ydXXhIxze2HfBEuKZ6Jb3FRGjIloUaTfZ8lX1VwZMSE6OXj5d5Yc4PBFGjE1 JdTeo5kl1mnDf1kMeLX14Y38Wpa8xwH8xoCR+T83d59myc4Xh747EWzAMzOR WRXJLOHgSQb1WOXvK68FlpzX5kJAoh6vlCgcPxWz5KeMtPPaER2qPVQ9Oo2Y aJ7W6wbe0uFZ/65V5b+Kybku0yZZ0xz2zy6G2OWIhfvN4fgZ15mFQDGJ7H0h uKZiFg3eQRf+MYtIwW7M2xCkxe3KjL5D7SKy6/nstV5TMzhqiHK2LRGRvZ8U +b559TG+UibtlceJVvCdnMatylWp7/qJSMP1Bwcyo6Zwx+bpxEQHEUk4fmvp lzc0mH2xyMNPy5A54964z4LU6CaLdz81wBDnP9payiJUKGvS3x24yRCenpRJ TO3przL+wJCa2EvXrlcpMeNerqmwmiFx7G/9No8msMkuR+pZxpDd25Y9nr0+ gTFVka8VFjGE2XBbBd+P49mOnLGwXIYc5sZ5j2PltZJZlyyGqL/YpHXsUGDd l89uVZ9kCLgc7B48qsDRHxOG8tIZ4pp70D/WT4EFr267kHaCIRu5hR0U2B5o PG5r7ReXuRrDHlHAfYOcEe6pgG6hDy89pnk6rYA24ft9vADHIV+YV1b54bqi ggkYEf6Pv59ECZcFPLx8hpVA8TrxApkEug/Pr6MK6L7ydUWdd+pU0Cjcw8p2 eVeAGui97vKlBnrPMA7fBxqg9+bUkuQ0BZSPtzmA3VNA+eL1XTwNQQKfvL7j HsMWge9Rr9WFFWEz4CbowWqOUa+IJzAi6MVvTcPL8Ye0IBH0NP4x07irbhZ0 gt4EPYJC0OPD9VYCbswB1WvnfvcQXbIOygU9y5bC/tWu1QPV+/7QnVPDDXqg fuD9HWGAi4JffOpd+sIfGID6KXpPbYF3khGo30qK4wfblUagfsz++lvPVpkJ qF//5O9nApngZ0ms3+Z6iRmo36WnvCqXz5mB5sFImo28cNIMNC+y0tc7KrZa gOYJP++YBbYIeVPWetR+4bIFNgp59H5mlJv4jgVoXulD7qX8rbEAzbPZeOvC CxZYI+Tdcyt5CP/PRztC+/8AaLF3SQ== "]]]}, {Hue[0.582, 0.08, 0.836], Thickness[0.023560915477794188`], LineBox[NCache[{{2., 6.5}, {3., 6.5}, {3.0285312500000003`, 6.499913083037555}, {3.0542499999999997`, 6.499304664300437}, { 3.07734375, 6.497653242013975}, {3.098, 6.494437314403496}, { 3.1164062500000003`, 6.489135379694328}, {3.13275, 6.481225936111799}, {3.14721875, 6.470187481881236}, {3.16, 6.455498515227967}, {3.1712812500000003`, 6.436637534377322}, { 3.1812500000000004`, 6.4130830375546255`}, {3.1900937500000004`, 6.384313522985206}, {3.198, 6.349807488894392}, {3.2051562500000004`, 6.309043433507511}, {3.2117500000000003`, 6.26149985504989}, { 3.21796875, 6.206655251746859}, {3.224, 6.143988121823743}, { 3.2300312499999997`, 6.072976963505871}, {3.2362499999999996`, 5.993100275018572}, {3.2428437499999996`, 5.903836554587171}, {3.25, 5.804664300436998}, {3.2585812499999998`, 5.705492046286826}, { 3.2691500000000002`, 5.616228325855425}, {3.2814437499999998`, 5.536351637368125}, {3.2952, 5.465340479050253}, {3.31015625, 5.402673349127139}, {3.32605, 5.347828745824106}, {3.34261875, 5.300285167366486}, {3.3595999999999995`, 5.2595211119796055`}, { 3.37673125, 5.225015077888791}, {3.39375, 5.196245563319372}, { 3.4103937499999994`, 5.172691066496675}, {3.4264, 5.153830085646029}, {3.4415062499999998`, 5.139141118992761}, { 3.4554499999999995`, 5.1281026647621974`}, {3.46796875, 5.120193221179668}, {3.4787999999999997`, 5.114891286470501}, { 3.487681249999999, 5.1116753588600226`}, {3.4943499999999994`, 5.110023936573561}, {3.498543749999999, 5.109415517836442}, { 3.499999999999999, 5.109328600873997}, { Rational[9, 2], 5.109328600873996}, {4.5285625000000005`, 5.109384267836441}, {4.5545, 5.10977393657356}, {4.5781875, 5.110831608860021}, {4.6, 5.1128912864705}, {4.620312500000001, 5.116286971179668}, {4.639499999999999, 5.121352664762197}, { 4.6579375, 5.12842236899276}, {4.676, 5.137830085646028}, {4.6940625, 5.149909816496676}, {4.7125, 5.164995563319372}, {4.7316875000000005`, 5.183421327888791}, {4.752, 5.205521111979605}, {4.773812500000001, 5.231628917366486}, {4.797499999999999, 5.262078745824105}, { 4.8234375, 5.297204599127138}, {4.852, 5.337340479050253}, {4.8835625, 5.382820387368124}, {4.9185, 5.433978325855423}, {4.9571875, 5.491148296286824}, {5., 5.554664300436997}, {5.0442374999999995`, 5.618180304587171}, {5.0869, 5.675350275018572}, {5.1279125, 5.726508213505872}, {5.1672, 5.771988121823743}, {5.2046874999999995`, 5.812124001746858}, {5.2402999999999995`, 5.84724985504989}, { 5.2739625, 5.877699683507511}, {5.305599999999999, 5.903807488894392}, {5.335137499999999, 5.925907272985206}, {5.3625, 5.944333037554625}, {5.3876125, 5.959418784377322}, {5.4104, 5.971498515227967}, {5.4307875, 5.980906231881236}, {5.4487, 5.987975936111799}, {5.4640625, 5.9930416296943285`}, {5.4768, 5.9964373144034955`}, {5.486837499999999, 5.998496992013975}, { 5.4940999999999995`, 5.999554664300437}, {5.4985124999999995`, 5.999944333037554}, {5.499999999999999, 6.}, { Rational[13, 2], 6.}}, CompressedData[" 1:eJxdVH9QTWkYbpPmnnsYOvf77rm3nYtYPwbRqtxrsT1ilO4qmnYplVlSalWK VqnLFG1FKhO6rR9pxVo1YWTWj7YM1YS1FGrYUBrlSqXkjl919xz37P6x78w3 7zzznfPM+7zv835Oa2L919na2NgECEfMUsCaHKUs+w+3+u0piPlKhrwBtdZk UaP+x6oix1gZtpXcvrBEwOFiHJFhys3K28ZBNdaMXjmnol6G7gmGuqXv1YgQ 73tkmBZV1vlkQA1NUNjcJ6MYLAjsMNS9VGPmoy/sU50ZZJfV3U1sU8O7bSsp 92IQNdbkGtOohoNIF8pgXrTpuaZaDTdXITYxCFm+dr7lhBqrBDq/dAbTM/qT s7Ikvv0MZDdm9bqGqxGSe/XNlBIGfver2xLmqZG9ofPDb2cZrA5zP1LHSvVX MTDOmhl7+K4Kxhhux5UbDL794F0Ul6+y6m1mYE4ak3TJR4VjG+fLm9sZPIzU e/W+5dG4VFDcxyD0px8CMg7zUt/kaNvl2PVOK9w/bmXzHeQIz72euqFRiSXV Bo1ushymUlOO3RYlRvqd3rcOctw6qAyZM1GJW3N9G/YGyxHj+HJ2WguFKNc1 WQ7n9uER3x2i6Ho62/HKQTnCzlq0zmEUxW+/7Cj/Q47NSBgwuFIMOQ2aE1rl qNTbdlYzFOdGxJXtHsbCmOMZFNVBrHonsYioaTAO1BPUtpzfmeLNIvOkvvv+ GYJtGl3EokgWgWb9L+mHCXRNtdFumSx0kTG2yTkExRXat1dLWKRV+q503iHx VbEoKM3sUSQTuBROVe2/x6Kp7/dRJxIISt8HR9d2sDjkk2i/Kp4gXSQcYOEV t05zaiNBhE1sqt0gCzenz4vkAh6yiMGihro3vY4lUj85XJNw5N7uFA8Nh0va gWhb4ftpGcoHf2k5bJ84Y996AfeLA1nGoeVUSLMhTqovnMPR/MHawk3E6p9k zlrvFoLPRIIcDjlVSU8WphAYPNxDLxVz8DfqJ6cK+nw/GZpDuV1SwIQ9BGPT u5ZfqOMQfzvlTWohwc+FQjzgrP08KdXXzSH4dP+fjZcJBLYlI2wVGBMcNG5z o9CPPqFAlQKJB3Y4uXQTiHY65qKAbqopNHSENG+9AtPFebtQHKoZdyZ+vfD/ noD62ECKgPbjB2syFWh57edgm0khmH3h7jIFXNvj74RVUgSLfr+nQN8k3b5e M5X6R9D6yY9KmO1XG79xJmjo+bjALkmJV0rvZR9XEuTOujo895wSBZa8bR/S CDqcntX0dQo4b9TW2aUExzNbR+5U8hDlFjYQHBD3xYOHzws7Nwczwa4u/Zb9 a3kE+E8+mqWi0G8/W3Etjcf3xU1uvTqKExcfnt8u7Ifm1+feM1ZQ4V3wZJwq eKveTULd4j7X8VhKs31eZFP4L77QGtfEg2quP/MooSAOlal3nvLQOl5ZNe4i RZzBVB7/kkdIy+JhiTcp3FdcNp9+LfH9TTFdfG+E/VzbE+T59XOK8Wna0UEf eRQ8ys9I76fojGoeShjikXLnXOCbdxSLXtl77rbwuHxAEDxEIXuM9X0C/mRH y799VP3vnVThH1IDGLI= "]]]}}, { {GrayLevel[0.8], Opacity[0.5], RectangleBox[NCache[{Rational[-1, 2], Rational[21, 4]}, {-0.5, 5.25}], NCache[{Rational[1, 2], Rational[19, 4]}, {0.5, 4.75}]], DiskBox[NCache[{Rational[-1, 2], 5}, {-0.5, 5}], NCache[{0.1, Rational[1, 4]}, {0.1, 0.25}], NCache[{Rational[1, 2] Pi, Rational[3, 2] Pi}, {1.5707963267948966`, 4.71238898038469}]], DiskBox[NCache[{Rational[1, 2], 5}, {0.5, 5}], NCache[{0.1, Rational[1, 4]}, {0.1, 0.25}], NCache[{Rational[-1, 2] Pi, Rational[1, 2] Pi}, {-1.5707963267948966`, 1.5707963267948966`}]]}, CircleBox[NCache[{Rational[-1, 2], 5}, {-0.5, 5}], NCache[{0.1, Rational[1, 4]}, {0.1, 0.25}]], CircleBox[NCache[{Rational[1, 2], 5}, {0.5, 5}], NCache[{0.1, Rational[1, 4]}, {0.1, 0.25}], NCache[{Rational[-1, 2] Pi, Rational[1, 2] Pi}, {-1.5707963267948966`, 1.5707963267948966`}]], LineBox[NCache[{{Rational[-1, 2], Rational[21, 4]}, { Rational[1, 2], Rational[21, 4]}}, {{-0.5, 5.25}, {0.5, 5.25}}]], LineBox[NCache[{{Rational[-1, 2], Rational[19, 4]}, { Rational[1, 2], Rational[19, 4]}}, {{-0.5, 4.75}, {0.5, 4.75}}]]}, { {GrayLevel[0.8], Opacity[0.5], RectangleBox[NCache[{Rational[7, 2], Rational[103, 20]}, {3.5, 5.15}], NCache[{Rational[9, 2], Rational[97, 20]}, {4.5, 4.85}]], DiskBox[NCache[{Rational[7, 2], 5}, {3.5, 5}], NCache[{0.1, Rational[3, 20]}, {0.1, 0.15}], NCache[{Rational[1, 2] Pi, Rational[3, 2] Pi}, {1.5707963267948966`, 4.71238898038469}]], DiskBox[NCache[{Rational[9, 2], 5}, {4.5, 5}], NCache[{0.1, Rational[3, 20]}, {0.1, 0.15}], NCache[{Rational[-1, 2] Pi, Rational[1, 2] Pi}, {-1.5707963267948966`, 1.5707963267948966`}]]}, CircleBox[NCache[{Rational[7, 2], 5}, {3.5, 5}], NCache[{0.1, Rational[3, 20]}, {0.1, 0.15}]], CircleBox[NCache[{Rational[9, 2], 5}, {4.5, 5}], NCache[{0.1, Rational[3, 20]}, {0.1, 0.15}], NCache[{Rational[-1, 2] Pi, Rational[1, 2] Pi}, {-1.5707963267948966`, 1.5707963267948966`}]], LineBox[NCache[{{Rational[7, 2], Rational[103, 20]}, { Rational[9, 2], Rational[103, 20]}}, {{3.5, 5.15}, {4.5, 5.15}}]], LineBox[NCache[{{Rational[7, 2], Rational[97, 20]}, { Rational[9, 2], Rational[97, 20]}}, {{3.5, 4.85}, {4.5, 4.85}}]]}, { StyleBox[InsetBox[ TagBox[ InterpretationBox["\<\"21.9\"\>", 21.865720174799257`, AutoDelete->True], NumberForm[#, {3, 1}]& ], {-2, 3.5}, {1, 0}], "Legend", StripOnInput->False], StyleBox[InsetBox[ TagBox[ InterpretationBox["\<\"34.8\"\>", 34.8017062132135, AutoDelete->True], NumberForm[#, {3, 1}]& ], {-2, 6}, {1, 0}], "Legend", StripOnInput->False], StyleBox[InsetBox[ TagBox[ InterpretationBox["\<\"23.6\"\>", 23.560915477794186`, AutoDelete->True], NumberForm[#, {3, 1}]& ], {2.5, 6.5}, {1, 0}], "Legend", StripOnInput->False], {}, {}, {}, StyleBox[InsetBox["\<\"11.8%\"\>", {0, 5}, {0, 0}], "Legend", StripOnInput->False], StyleBox[InsetBox["\<\"34.0%\"\>", {4, 5}, {0, 0}], "Legend", StripOnInput->False]}}, ImageSize->Large, PlotRange->{{-3, 7}, {2.5, 7.5}}]], "Output", CellChangeTimes->{ 3.5172524910976954`*^9, {3.5172525246533537`*^9, 3.5172526871120396`*^9}, { 3.5172527349729233`*^9, 3.5172528558419356`*^9}, {3.5172528888203936`*^9, 3.5172529312212677`*^9}, 3.5172530030437946`*^9, {3.5172530449142675`*^9, 3.51725307436712*^9}, 3.5172604849236956`*^9, 3.517260547745006*^9, 3.5172606109875174`*^9, 3.517262537403701*^9, 3.530959699968184*^9, 3.5309598539716544`*^9}] }, Open ]], Cell[BoxData[""], "Input", CellChangeTimes->{3.517261094962767*^9}], Cell[BoxData[ RowBox[{"Manipulate", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"DynamicModule", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"X", "=", RowBox[{"{", RowBox[{"20", ",", "20", ",", "20"}], "}"}]}], ",", "Xnew"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Dynamic", "[", RowBox[{"Refresh", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"pars", "=", RowBox[{"{", RowBox[{ RowBox[{"c1", "\[Rule]", "cap1"}], ",", RowBox[{"c2", "\[Rule]", "cap2"}], ",", RowBox[{"rtt0", "\[Rule]", RowBox[{"RTT0", "/", "100"}]}], ",", RowBox[{"rtt1", "\[Rule]", RowBox[{"RTT1", "/", "100"}]}], ",", RowBox[{"rtt2", "\[Rule]", RowBox[{"RTT2", "/", "100"}]}]}], "}"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"Xnew", "=", RowBox[{"updatemodel", "[", RowBox[{ "linear2", ",", "linear2topo", ",", "pars", ",", "X"}], "]"}]}], ")"}], "===", "None"}], ",", ",", " ", RowBox[{"X", "=", "Xnew"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"linear2plot", "[", RowBox[{"pars", ",", "linear2topo", ",", "X"}], "]"}], ",", RowBox[{"feas", "[", RowBox[{"pars", ",", "X"}], "]"}]}], "}"}], "]"}]}]}], "\[IndentingNewLine]", "]"}], ",", "\[IndentingNewLine]", RowBox[{"TrackedSymbols", "\[RuleDelayed]", RowBox[{"{", RowBox[{ "cap1", ",", "cap2", ",", "RTT0", ",", "RTT1", ",", "RTT2", ",", "X"}], "}"}]}]}], "]"}], " ", "]"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{"\"\<\!\(\*SubscriptBox[\(C\), \(1\)]\) \>\"", ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"cap1", ",", "50", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "100", ",", "5"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"cap1", " ", "//", " ", "N"}], ",", "\"\< pkt/s\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{"\"\<\!\(\*SubscriptBox[\(C\), \(2\)]\) \>\"", ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"cap2", ",", "50", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "100", ",", "5"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"cap2", " ", "//", " ", "N"}], ",", "\"\< pkt/s\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"Style", "[", RowBox[{ "\"\<\!\(\*SubscriptBox[\(RTT\), \(0\)]\) \>\"", ",", "col0b"}], "]"}], ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"RTT0", ",", "100", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "250", ",", "10"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"RTT0", " ", "//", " ", "N"}], ",", "\"\< ms\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"Style", "[", RowBox[{ "\"\<\!\(\*SubscriptBox[\(RTT\), \(1\)]\) \>\"", ",", "col1b"}], "]"}], ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"RTT1", ",", "100", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "250", ",", "10"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"RTT1", " ", "//", " ", "N"}], ",", "\"\< ms\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"Style", "[", RowBox[{ "\"\<\!\(\*SubscriptBox[\(RTT\), \(2\)]\) \>\"", ",", "col2b"}], "]"}], ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"RTT2", ",", "100", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "250", ",", "10"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"RTT2", " ", "//", " ", "N"}], ",", "\"\< ms\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"ControlPlacement", "\[Rule]", "Top"}], ",", "\[IndentingNewLine]", RowBox[{"SaveDefinitions", "\[Rule]", "True"}], ",", "\[IndentingNewLine]", RowBox[{"SynchronousUpdating", "\[Rule]", "False"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.438536049796875*^9, 3.438536156625*^9}, { 3.438536193828125*^9, 3.438536211625*^9}, {3.438536291203125*^9, 3.43853632078125*^9}, {3.43853642925*^9, 3.4385364329375*^9}, { 3.438536470171875*^9, 3.438536592875*^9}, {3.43853664078125*^9, 3.438536643734375*^9}, {3.438536785515625*^9, 3.43853683709375*^9}, { 3.438536875390625*^9, 3.4385368761875*^9}, {3.438537040359375*^9, 3.43853704109375*^9}, {3.43853714921875*^9, 3.438537180734375*^9}, { 3.43853722209375*^9, 3.438537267203125*^9}, {3.438537330765625*^9, 3.438537331921875*^9}, {3.43853766153125*^9, 3.438537690921875*^9}, { 3.438538995890625*^9, 3.438539000125*^9}, 3.438539063171875*^9, { 3.43853953796875*^9, 3.438539570359375*^9}, {3.43853968*^9, 3.43853972096875*^9}, {3.43854019084375*^9, 3.438540256640625*^9}, { 3.43854042634375*^9, 3.438540475640625*^9}, 3.438540513375*^9, { 3.4385536873394604`*^9, 3.4385536910113354`*^9}, {3.4385538204175854`*^9, 3.4385538237769604`*^9}, {3.4385539890894604`*^9, 3.4385540096832104`*^9}, {3.4385540587925854`*^9, 3.4385541107925854`*^9}, 3.4385541531363354`*^9, {3.4385542043863354`*^9, 3.4385542282769604`*^9}, { 3.4385543690113354`*^9, 3.4385544664019604`*^9}, 3.4385545799175854`*^9, { 3.4385546802300854`*^9, 3.4385547606050854`*^9}, 3.4385548211207104`*^9, { 3.4428269192008753`*^9, 3.4428269602008753`*^9}, {3.4428273958415003`*^9, 3.4428274062477503`*^9}, {3.444737603375*^9, 3.44473760421875*^9}, { 3.44473764940625*^9, 3.444737656578125*^9}, {3.444739597875*^9, 3.444739603640625*^9}, {3.444739951515625*^9, 3.444739956859375*^9}, { 3.4759705241318345`*^9, 3.4759705458934183`*^9}, {3.475970577740158*^9, 3.4759706263784046`*^9}, {3.4759708058449116`*^9, 3.475970827606496*^9}, { 3.475970909386502*^9, 3.4759709339856296`*^9}, {3.4759712588281193`*^9, 3.4759712592506256`*^9}, {3.4759713274976835`*^9, 3.475971329497714*^9}, { 3.475971525606658*^9, 3.4759715267779255`*^9}, {3.475971569497332*^9, 3.4759715709636045`*^9}, {3.4759718451480827`*^9, 3.4759718461830983`*^9}, {3.475975709013666*^9, 3.4759757099461803`*^9}, { 3.47597608167439*^9, 3.4759760976108847`*^9}, {3.4759761732032957`*^9, 3.4759764478020163`*^9}, {3.475976496037757*^9, 3.4759767053784723`*^9}, { 3.4772362198288784`*^9, 3.477236321224186*^9}, {3.4772363562447233`*^9, 3.477236561924133*^9}, {3.4772366590893755`*^9, 3.477236660770651*^9}, { 3.4772376483520985`*^9, 3.4772376787450657`*^9}, {3.477238723252389*^9, 3.4772387347363153`*^9}, 3.477241350586683*^9, {3.500967409986328*^9, 3.500967411048828*^9}, {3.5009737631591797`*^9, 3.5009737664248047`*^9}, { 3.5009738803466797`*^9, 3.5009739101591797`*^9}, {3.5009739513154297`*^9, 3.5009739623623047`*^9}, {3.5039277293242188`*^9, 3.503927865303711*^9}, { 3.50392807478125*^9, 3.503928082375*^9}, {3.503928197296875*^9, 3.503928220671875*^9}, {3.5039282586875*^9, 3.503928295359375*^9}, { 3.503928339734375*^9, 3.503928362625*^9}, {3.5039299641445312`*^9, 3.5039299951601562`*^9}, {3.5039300665976562`*^9, 3.5039301162382812`*^9}, {3.5039308806152344`*^9, 3.5039308807402344`*^9}, {3.5039318208447266`*^9, 3.5039318559853516`*^9}, {3.5039319938916016`*^9, 3.5039320095166016`*^9}, {3.5039320502666016`*^9, 3.5039320520478516`*^9}, {3.5039320932197266`*^9, 3.5039322016416016`*^9}, {3.5039323755634766`*^9, 3.5039323823447266`*^9}, {3.5039324201416016`*^9, 3.5039324308603516`*^9}, 3.5039436036132812`*^9, {3.5039436769902344`*^9, 3.503943677109375*^9}, { 3.503943725786133*^9, 3.5039437340253906`*^9}, {3.5039888623378906`*^9, 3.5039888631660156`*^9}, {3.517252954449709*^9, 3.517252956290512*^9}, { 3.517253089967147*^9, 3.517253094366355*^9}, {3.5172531306364183`*^9, 3.517253275607473*^9}, {3.517259537068471*^9, 3.5172595399388757`*^9}, { 3.5172596102390213`*^9, 3.517259668052723*^9}, {3.5172597572880955`*^9, 3.517259760298901*^9}, {3.5172599956288366`*^9, 3.5172600127732663`*^9}, { 3.517260119961055*^9, 3.5172601201638556`*^9}, {3.5172601552795167`*^9, 3.5172601599283247`*^9}, {3.517260198007992*^9, 3.5172603321058273`*^9}, { 3.517260377267907*^9, 3.517260459901252*^9}, {3.5172605548586187`*^9, 3.5172605609426293`*^9}, {3.5172606161979265`*^9, 3.517260659285202*^9}, { 3.5172609094628415`*^9, 3.517260910976044*^9}, {3.517260962643335*^9, 3.517260967697744*^9}, 3.517261097084371*^9, {3.5172622700660315`*^9, 3.5172622849328575`*^9}, {3.5172626114882307`*^9, 3.517262638975479*^9}, { 3.5172627011727886`*^9, 3.5172627076624002`*^9}}] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Rate-level model of wireless throughput", "Section", CellChangeTimes->{{3.512381734128253*^9, 3.5123817568730927`*^9}, { 3.51238287673666*^9, 3.5123828832886715`*^9}, {3.5172637239508095`*^9, 3.5172637342780275`*^9}}], Cell[CellGroupData[{ Cell["Code", "Subsection", CellChangeTimes->{{3.517263303218071*^9, 3.517263303514471*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"jointjoint", "[", RowBox[{"r_", ",", "\[Beta]_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{ RowBox[{"r", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "<", RowBox[{"Log", "[", RowBox[{"2", ",", RowBox[{"1", "+", RowBox[{"Min", "[", RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "All"}], "\[RightDoubleBracket]"}], "]"}]}]}], "]"}]}], " ", "&&", " ", RowBox[{ RowBox[{"r", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "<", RowBox[{"Log", "[", RowBox[{"2", ",", RowBox[{"1", "+", RowBox[{"Min", "[", RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "All"}], "\[RightDoubleBracket]"}], "]"}]}]}], "]"}]}], " ", "&&", " ", RowBox[{ RowBox[{ RowBox[{"r", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "+", RowBox[{"r", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], "\[LessEqual]", RowBox[{"Log", "[", RowBox[{"1", "+", RowBox[{"Min", "[", RowBox[{ RowBox[{ RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "1"}], "\[RightDoubleBracket]"}], "+", RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}]}], ",", RowBox[{ RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}], "+", RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "2"}], "\[RightDoubleBracket]"}]}]}], "]"}]}], "]"}], " "}]}]}]], "Input", CellChangeTimes->{{3.5124160745341225`*^9, 3.512416278988082*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"sepsep", "[", RowBox[{"r_", ",", "\[Beta]_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"Max", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox["2", RowBox[{"r", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]], "-", "1"}], ")"}], RowBox[{"(", RowBox[{ RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "2"}], "\[RightDoubleBracket]"}], "+", RowBox[{ RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}], RowBox[{"(", RowBox[{ SuperscriptBox["2", RowBox[{ "r", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]], "-", "1"}], ")"}]}]}], ")"}]}], ",", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox["2", RowBox[{"r", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]], "-", "1"}], ")"}], RowBox[{"(", RowBox[{ RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "1"}], "\[RightDoubleBracket]"}], "+", RowBox[{ RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "2"}], "\[RightDoubleBracket]"}], RowBox[{"(", RowBox[{ SuperscriptBox["2", RowBox[{ "r", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]], "-", "1"}], ")"}]}]}], ")"}]}]}], "]"}], "\[LessEqual]", RowBox[{ RowBox[{ RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "1"}], "\[RightDoubleBracket]"}], RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "2"}], "\[RightDoubleBracket]"}]}], "-", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox["2", RowBox[{"r", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]], "-", "1"}], ")"}], RowBox[{"(", RowBox[{ SuperscriptBox["2", RowBox[{"r", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]], "-", "1"}], ")"}], RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "2"}], "\[RightDoubleBracket]"}], RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}]}]}]}]}]], "Input", CellChangeTimes->{{3.512501507111974*^9, 3.512501650164225*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"jointsep", "[", RowBox[{"r_", ",", "\[Beta]_"}], "]"}], ":=", RowBox[{ RowBox[{ FractionBox[ RowBox[{ SuperscriptBox["2", RowBox[{"r", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]], "-", "1"}], RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}]], "\[LessEqual]", "1"}], " ", "&&", " ", RowBox[{ RowBox[{"Max", "[", RowBox[{ FractionBox[ RowBox[{ SuperscriptBox["2", RowBox[{"r", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]], "-", "1"}], RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "1"}], "\[RightDoubleBracket]"}]], ",", FractionBox[ RowBox[{ SuperscriptBox["2", RowBox[{ RowBox[{"r", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "+", RowBox[{ "r", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}]], "-", "1", "-", RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}]}], RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "1"}], "\[RightDoubleBracket]"}]]}], "]"}], "\[LessEqual]", RowBox[{"Min", "[", RowBox[{"1", ",", RowBox[{ RowBox[{"(", RowBox[{ FractionBox[ RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "2"}], "\[RightDoubleBracket]"}], RowBox[{ SuperscriptBox["2", RowBox[{ "r", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]], "-", "1"}]], "-", "1"}], ")"}], "/", RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "2"}], "\[RightDoubleBracket]"}]}]}], "]"}]}]}]}]], "Input", CellChangeTimes->{{3.5125018071317005`*^9, 3.5125019269867115`*^9}, { 3.512901772131838*^9, 3.51290178473666*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"sepjoint", "[", RowBox[{"r_", ",", "\[Beta]_"}], "]"}], ":=", RowBox[{ RowBox[{ FractionBox[ RowBox[{ SuperscriptBox["2", RowBox[{"r", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]], "-", "1"}], RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "2"}], "\[RightDoubleBracket]"}]], "\[LessEqual]", "1"}], " ", "&&", " ", RowBox[{ RowBox[{"Max", "[", RowBox[{ FractionBox[ RowBox[{ SuperscriptBox["2", RowBox[{"r", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]], "-", "1"}], RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "2"}], "\[RightDoubleBracket]"}]], ",", FractionBox[ RowBox[{ SuperscriptBox["2", RowBox[{ RowBox[{"r", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "+", RowBox[{ "r", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}]], "-", "1", "-", RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "2"}], "\[RightDoubleBracket]"}]}], RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "2"}], "\[RightDoubleBracket]"}]]}], "]"}], "\[LessEqual]", RowBox[{"Min", "[", RowBox[{"1", ",", RowBox[{ RowBox[{"(", RowBox[{ FractionBox[ RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"1", ",", "1"}], "\[RightDoubleBracket]"}], RowBox[{ SuperscriptBox["2", RowBox[{ "r", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]], "-", "1"}]], "-", "1"}], ")"}], "/", RowBox[{"\[Beta]", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}]}]}], "]"}]}]}]}]], "Input", CellChangeTimes->{{3.512502164637529*^9, 3.512502249548478*^9}, { 3.5129017955318785`*^9, 3.512901803487893*^9}}], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"apA", "=", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], ";", " ", RowBox[{"apB", "=", RowBox[{"{", RowBox[{"10", ",", "0"}], "}"}]}], ";", RowBox[{"src1", "=", RowBox[{"{", RowBox[{"2", ",", ".8"}], "}"}]}], ";", RowBox[{"src2", "=", RowBox[{"{", RowBox[{"15", ",", ".5"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Manipulate", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"snr1", "=", "100"}], ";", RowBox[{"snr2", "=", "100"}], ";", "\[IndentingNewLine]", RowBox[{"g1", " ", "=", " ", RowBox[{"LocatorPane", "[", RowBox[{ RowBox[{"Dynamic", "[", RowBox[{"{", RowBox[{"apA", ",", "apB", ",", "src1", ",", "src2"}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Dynamic", "@", RowBox[{"Graphics", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"Arrow", "[", RowBox[{"{", RowBox[{"src1", ",", "apA"}], "}"}], "]"}], ",", RowBox[{"Arrow", "[", RowBox[{"{", RowBox[{"src2", ",", "apB"}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Opacity", "[", ".2", "]"}], ",", "Pink", ",", RowBox[{ RowBox[{ RowBox[{"Disk", "[", RowBox[{"src1", ",", SuperscriptBox[ RowBox[{"(", RowBox[{"snr1", " ", SuperscriptBox["10", RowBox[{ RowBox[{"-", "#"}], "/", "10"}]]}], ")"}], RowBox[{"1", "/", "2"}]]}], "]"}], "&"}], " ", "/@", " ", RowBox[{"{", RowBox[{"5", ",", "10", ",", "15", ",", "20"}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"Lighter", "[", RowBox[{"Blue", ",", ".5"}], "]"}], ",", RowBox[{ RowBox[{ RowBox[{"Disk", "[", RowBox[{"src2", ",", SuperscriptBox[ RowBox[{"(", RowBox[{"snr2", " ", SuperscriptBox["10", RowBox[{ RowBox[{"-", "#"}], "/", "10"}]]}], ")"}], RowBox[{"1", "/", "2"}]]}], "]"}], "&"}], " ", "/@", " ", RowBox[{"{", RowBox[{"5", ",", "10", ",", "15", ",", "20"}], "}"}]}]}], "\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "10"}], ",", "20"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "5"}], ",", "15"}], "}"}]}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "Medium"}]}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}], ";", "\n", RowBox[{"g2", " ", "=", " ", RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"\[Beta]", "=", RowBox[{"(", GridBox[{ { FractionBox["snr1", SuperscriptBox[ RowBox[{"Norm", "[", RowBox[{"src1", "-", "apA"}], "]"}], "2"]], FractionBox["snr2", SuperscriptBox[ RowBox[{"Norm", "[", RowBox[{"src1", "-", "apB"}], "]"}], "2"]]}, { FractionBox["snr2", SuperscriptBox[ RowBox[{"Norm", "[", RowBox[{"src2", "-", "apA"}], "]"}], "2"]], FractionBox["snr2", SuperscriptBox[ RowBox[{"Norm", "[", RowBox[{"src2", "-", "apB"}], "]"}], "2"]]} }], " ", ")"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"RegionPlot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"sepsep", "[", RowBox[{ RowBox[{"{", RowBox[{ SubscriptBox["r", "1"], ",", SubscriptBox["r", "2"]}], "}"}], ",", "\[Beta]"}], "]"}], " ", "&&", " ", RowBox[{"MemberQ", "[", RowBox[{"coding", ",", "\"\\""}], "]"}]}], ",", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"jointjoint", "[", RowBox[{ RowBox[{"{", RowBox[{ SubscriptBox["r", "1"], ",", SubscriptBox["r", "2"]}], "}"}], ",", "\[Beta]"}], "]"}], " ", "||", " ", RowBox[{"jointsep", "[", RowBox[{ RowBox[{"{", RowBox[{ SubscriptBox["r", "1"], ",", SubscriptBox["r", "2"]}], "}"}], ",", "\[Beta]"}], "]"}], " ", "||", " ", RowBox[{"sepjoint", "[", RowBox[{ RowBox[{"{", RowBox[{ SubscriptBox["r", "1"], ",", SubscriptBox["r", "2"]}], "}"}], ",", "\[Beta]"}], "]"}]}], ")"}], " ", "&&", " ", RowBox[{"MemberQ", "[", RowBox[{"coding", ",", "\"\\""}], "]"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ SubscriptBox["r", "1"], ",", "0", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{ SubscriptBox["r", "2"], ",", "0", ",", "4"}], "}"}], ",", RowBox[{"ImageSize", "\[Rule]", "Medium"}], ",", RowBox[{"AxesLabel", "\[Rule]", RowBox[{"{", RowBox[{ "\"\<\!\(\*SubscriptBox[\(y\), \(0\)]\)\>\"", ",", "\"\<\!\(\*SubscriptBox[\(y\), \(1\)]\)\>\""}], "}"}]}], ",", RowBox[{"Axes", "\[Rule]", "True"}], ",", RowBox[{"Frame", "\[Rule]", "False"}]}], "]"}]}], "\[IndentingNewLine]", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{"g1", ",", "g2"}], "}"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"coding", ",", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}], ",", "CheckboxBar"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"SynchronousUpdating", "\[Rule]", "False"}], ",", RowBox[{"TrackedSymbols", "\[RuleDelayed]", RowBox[{"{", RowBox[{"src1", ",", "src2", ",", "apA", ",", "apB", ",", "coding"}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"SaveDefinitions", "\[Rule]", "True"}]}], "]"}]}], "Input", CellChangeTimes->CompressedData[" 1:eJwdzVtIU3EAx/GTaDLRCh9UpAeTvMxEhk4TUvSAygTLdbKJ6NPCEi+Z0SEc Dgw9zsQEc9IkMcW1QMF52aC8DJPMPRyvqKldsGVMDoi3lOmcdH7/hx+fpx/f a+pKptiLoiipOMi8pOyqGwI9wMqIwRFdPNQlljugw5rjhO0BZqLR+m0X6sua 9+DGYesxFBgHsdcTH5QvatvouQqjPfsxxGx3AozLvn0L7g4dp8K03EEN/Mi6 tfB8PcwM8+ampqDv1z075L8cEjXF3CwMajDNw+3kjBXIRIWsw7WHj09gCad3 QwUVWf9OdJTvJZYapZK8WIFOlJQTJT53D6Bsx+iCa+zExfui4at+vtDwqe86 XJUuEpnpg0uFokWNustw8PuW6b1coL06ZP2w/2zCDg3ezbPQ5NAtQuU91QqU Fyz9hBra/xfstGj/wiTe4oRnw54nk3cE+p+7rgqywyHP4TOugdiZFc7BgNoH OmjOV76CmSltxKyxzdcwV8XqYe2Fmx2QM4d2wxJa+QFe6e4hutJoG+z6PTQD t8YXlmGU2vCD/N882oSByzV/4PRJxRHMUTSdks7Tce/PovzbeR8Y3aeXQKt8 JxBWV6UHw2SXMwa2jGjlsLCsNRVaxgZoOBP/QgH/A8w2TzA= "]], Cell[BoxData[ TagBox[ StyleBox[ DynamicModuleBox[{$CellContext`coding$$ = {"separate"}, Typeset`show$$ = True, Typeset`bookmarkList$$ = {}, Typeset`bookmarkMode$$ = "Menu", Typeset`animator$$, Typeset`animvar$$ = 1, Typeset`name$$ = "\"untitled\"", Typeset`specs$$ = {{ Hold[$CellContext`coding$$], {"separate", "joint"}}}, Typeset`size$$ = { 726., {182., 186.}}, Typeset`update$$ = 0, Typeset`initDone$$, Typeset`skipInitDone$$ = False, $CellContext`coding$11097$$ = False}, DynamicBox[Manipulate`ManipulateBoxes[ 1, StandardForm, "Variables" :> {$CellContext`coding$$ = "separate"}, "ControllerVariables" :> { Hold[$CellContext`coding$$, $CellContext`coding$11097$$, False]}, "OtherVariables" :> { Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$, Typeset`skipInitDone$$}, "Body" :> ($CellContext`snr1 = 100; $CellContext`snr2 = 100; $CellContext`g1 = LocatorPane[ Dynamic[{$CellContext`apA, $CellContext`apB, $CellContext`src1, \ $CellContext`src2}], Dynamic[ Graphics[{ Arrow[{$CellContext`src1, $CellContext`apA}], Arrow[{$CellContext`src2, $CellContext`apB}], Opacity[0.2], Pink, Map[ Disk[$CellContext`src1, ($CellContext`snr1 10^((-#)/10))^(1/ 2)]& , {5, 10, 15, 20}], Lighter[Blue, 0.5], Map[ Disk[$CellContext`src2, ($CellContext`snr2 10^((-#)/10))^(1/ 2)]& , {5, 10, 15, 20}]}, PlotRange -> {{-10, 20}, {-5, 15}}, ImageSize -> Medium]]]; $CellContext`g2 = With[{$CellContext`\[Beta]$ = {{$CellContext`snr1/ Norm[$CellContext`src1 - $CellContext`apA]^2, $CellContext`snr2/ Norm[$CellContext`src1 - $CellContext`apB]^2}, \ {$CellContext`snr2/ Norm[$CellContext`src2 - $CellContext`apA]^2, $CellContext`snr2/ Norm[$CellContext`src2 - $CellContext`apB]^2}}}, RegionPlot[{ And[ $CellContext`sepsep[{ Subscript[$CellContext`r, 1], Subscript[$CellContext`r, 2]}, $CellContext`\[Beta]$], MemberQ[$CellContext`coding$$, "separate"]], And[ Or[ $CellContext`jointjoint[{ Subscript[$CellContext`r, 1], Subscript[$CellContext`r, 2]}, $CellContext`\[Beta]$], $CellContext`jointsep[{ Subscript[$CellContext`r, 1], Subscript[$CellContext`r, 2]}, $CellContext`\[Beta]$], $CellContext`sepjoint[{ Subscript[$CellContext`r, 1], Subscript[$CellContext`r, 2]}, $CellContext`\[Beta]$]], MemberQ[$CellContext`coding$$, "joint"]]}, { Subscript[$CellContext`r, 1], 0, 4}, { Subscript[$CellContext`r, 2], 0, 4}, ImageSize -> Medium, AxesLabel -> { "\!\(\*SubscriptBox[\(y\), \(0\)]\)", "\!\(\*SubscriptBox[\(y\), \(1\)]\)"}, Axes -> True, Frame -> False]]; Row[{$CellContext`g1, $CellContext`g2}]), "Specifications" :> {{$CellContext`coding$$, {"separate", "joint"}, ControlType -> CheckboxBar}}, "Options" :> { SynchronousUpdating -> False, TrackedSymbols :> {$CellContext`src1, $CellContext`src2, \ $CellContext`apA, $CellContext`apB, $CellContext`coding$$}}, "DefaultOptions" :> {}], ImageSizeCache->{775., {223., 228.}}, SingleEvaluation->True], Deinitialization:>None, DynamicModuleValues:>{}, Initialization:>({$CellContext`snr1 = 100, $CellContext`snr2 = 100, $CellContext`g1 = LocatorPane[ Dynamic[{$CellContext`apA, $CellContext`apB, $CellContext`src1, \ $CellContext`src2}], Dynamic[ Graphics[{ Arrow[{$CellContext`src1, $CellContext`apA}], Arrow[{$CellContext`src2, $CellContext`apB}], Opacity[0.2], Pink, Map[ Disk[$CellContext`src1, ($CellContext`snr1/10^(#/10))^(1/2)]& , { 5, 10, 15, 20}], Lighter[Blue, 0.5], Map[ Disk[$CellContext`src2, ($CellContext`snr2/10^(#/10))^(1/2)]& , { 5, 10, 15, 20}]}, PlotRange -> {{-10, 20}, {-5, 15}}, ImageSize -> Medium]]], $CellContext`apA = {0, 0}, $CellContext`apB = {10, 0}, $CellContext`src1 = {2, 0.8}, $CellContext`src2 = { 15, 0.5}, $CellContext`g2 = Graphics[ GraphicsComplex[CompressedData[" 1:eJx11D8ohHEcx/E7uui6ey6TP11KSVmsLuWchQXp9JwMFrkU5TxdGCSb8aEs BjdYTh1ZTEKXP92xutVmuQFlMKEHw/s3fPQM17f39ur7+z7XNZdLZxsCgcD8 7+9vXt/sZ7ZqhSSzY7ywc+88DdHZdPCw6ryY7vTaN237w3TYPuutOl+mN+ye pXg1mKKdQH7YtkOmF47Lre5zs+nZTOSt4kRSfg6deGg8NB4aD42HxkPj8duD OnTiofHQeGg8NB4aj9876B7UoRMPjYfGQ+Oh8fjdgb6D7kEdOvHQeGg8NB6/ O9Q70HfQPahDJx4aD43H7zvQO9Q70HfQPahDJx4aj993qN+B3qHegb6D7kEd OvH4/Q/od6jfgd6h3oG+g+5BHTrxTAVn7jwvZjw0HhoPjYfGQ+Oh8dDdmbGT xKNlHBO7VwPxW8s41qdf86VTyzjW2ooP3p5lHIXtlkY3ZxnHct1dLSUt4xh8 H61XvqPGEen7DLlHUeNoKB80uf3Rf3uJXEyulIqx1Ejt/DKxGDbeHxI/sfM= "], {{{ EdgeForm[], Directive[{ Opacity[0.2], Hue[0.67, 0.6, 0.6]}], GraphicsGroup[{ Polygon[{{98, 99, 81}}], Polygon[CompressedData[" 1:eJwNw2ebgQAAAGBnnFE0lJBVklSEMpJK9ohs7mx/4P7/t/M+z0u9/7Zvt8vl cj69n24PCHi8YTAQRJEQgEW//TDkDyCw1xcJ+76hCADiGIwkE+EIEYtAcQLD M2kwHMMRlExGsXQKghNxPJbNxIhclohTuUQyTydJJh9P0FQqzRbEcrORzZW4 dKbI5ii+RNECT+dFocBKFbZYlfJMWSxytWqJl+uC2FC4Ur3GC4qcyXLFitRu 2cvjoVrrqLW61mm1rV5b7VtKw9AbTdOoy11NVvSu2hn0DXM60bqjYVcfj/oD e9HRhoOeNZ9Z/cVcNybjwXBpD0er5WjsrCbTzXo2323Hk7UzX+x3UlVtL1en 48I+7FfO+eSsf86/FzR4vTHk7V5mLlcSvT+a5edraj6eZvP13ky/3EDoH+/s PIg= "]], Polygon[{{99, 100, 89, 80, 81}}]}]}, {}, {}, {}, {}, {}, {}}, {{ Hue[0.67, 0.6, 0.6], Line[{2, 1, 10, 19, 28, 37, 46, 55, 64, 73, 82, 83, 84, 85, 86, 87, 88, 89, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 9, 8, 7, 6, 5, 4, 3, 2}]}}}], { AspectRatio -> 1, Axes -> True, AxesLabel -> { "\!\(\*SubscriptBox[\(y\), \(0\)]\)", "\!\(\*SubscriptBox[\(y\), \(1\)]\)"}, ImageSize -> Medium, Method -> {"TransparentPolygonMesh" -> True, "AxesInFront" -> True}, PlotRange -> {{0, 4}, {0, 4}}, PlotRangeClipping -> True, PlotRangePadding -> { Scaled[0.02], Scaled[0.02]}}], $CellContext`sepsep[ Pattern[$CellContext`r, Blank[]], Pattern[$CellContext`\[Beta], Blank[]]] := Max[(2^Part[$CellContext`r, 1] - 1) (Part[$CellContext`\[Beta], 2, 2] + Part[$CellContext`\[Beta], 2, 1] (2^Part[$CellContext`r, 2] - 1)), (2^Part[$CellContext`r, 2] - 1) ( Part[$CellContext`\[Beta], 1, 1] + Part[$CellContext`\[Beta], 1, 2] (2^Part[$CellContext`r, 1] - 1))] <= Part[$CellContext`\[Beta], 1, 1] Part[$CellContext`\[Beta], 2, 2] - ( 2^Part[$CellContext`r, 1] - 1) (2^Part[$CellContext`r, 2] - 1) Part[$CellContext`\[Beta], 1, 2] Part[$CellContext`\[Beta], 2, 1], Attributes[Subscript] = {NHoldRest}, $CellContext`coding$$ = { "separate"}, $CellContext`jointjoint[ Pattern[$CellContext`r, Blank[]], Pattern[$CellContext`\[Beta], Blank[]]] := And[Part[$CellContext`r, 1] < Log[2, 1 + Min[ Part[$CellContext`\[Beta], 1, All]]], Part[$CellContext`r, 2] < Log[2, 1 + Min[ Part[$CellContext`\[Beta], 2, All]]], Part[$CellContext`r, 1] + Part[$CellContext`r, 2] <= Log[1 + Min[ Part[$CellContext`\[Beta], 1, 1] + Part[$CellContext`\[Beta], 2, 1], Part[$CellContext`\[Beta], 2, 1] + Part[$CellContext`\[Beta], 2, 2]]]], $CellContext`jointsep[ Pattern[$CellContext`r, Blank[]], Pattern[$CellContext`\[Beta], Blank[]]] := And[(2^Part[$CellContext`r, 2] - 1)/Part[$CellContext`\[Beta], 2, 1] <= 1, Max[(2^Part[$CellContext`r, 1] - 1)/ Part[$CellContext`\[Beta], 1, 1], ( 2^(Part[$CellContext`r, 1] + Part[$CellContext`r, 2]) - 1 - Part[$CellContext`\[Beta], 2, 1])/ Part[$CellContext`\[Beta], 1, 1]] <= Min[1, (Part[$CellContext`\[Beta], 2, 2]/(2^Part[$CellContext`r, 2] - 1) - 1)/Part[$CellContext`\[Beta], 1, 2]]], $CellContext`sepjoint[ Pattern[$CellContext`r, Blank[]], Pattern[$CellContext`\[Beta], Blank[]]] := And[(2^Part[$CellContext`r, 1] - 1)/Part[$CellContext`\[Beta], 1, 2] <= 1, Max[(2^Part[$CellContext`r, 2] - 1)/ Part[$CellContext`\[Beta], 2, 2], ( 2^(Part[$CellContext`r, 1] + Part[$CellContext`r, 2]) - 1 - Part[$CellContext`\[Beta], 1, 2])/ Part[$CellContext`\[Beta], 2, 2]] <= Min[1, (Part[$CellContext`\[Beta], 1, 1]/(2^Part[$CellContext`r, 1] - 1) - 1)/Part[$CellContext`\[Beta], 2, 1]]]}; Typeset`initDone$$ = True), SynchronousInitialization->True, UnsavedVariables:>{Typeset`initDone$$}, UntrackedVariables:>{Typeset`size$$}], "Manipulate", Deployed->True, StripOnInput->False], Manipulate`InterpretManipulate[1]]], "Output", CellChangeTimes->{{3.530951211849266*^9, 3.5309512371762505`*^9}}] }, Open ]] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Rate-level model of multipath TCP", "Section", CellChangeTimes->{{3.512381734128253*^9, 3.5123817568730927`*^9}, { 3.51238287673666*^9, 3.5123828832886715`*^9}, {3.5172637239508095`*^9, 3.5172637342780275`*^9}, {3.5172658860230074`*^9, 3.51726588767661*^9}, { 3.517268261944805*^9, 3.517268263692008*^9}}], Cell[BoxData[ TagBox[ StyleBox[ DynamicModuleBox[{$CellContext`Ca$$ = 100, $CellContext`Cb$$ = 50, $CellContext`Cc$$ = 70, Typeset`show$$ = True, Typeset`bookmarkList$$ = {}, Typeset`bookmarkMode$$ = "Menu", Typeset`animator$$, Typeset`animvar$$ = 1, Typeset`name$$ = "\"untitled\"", Typeset`specs$$ = {{{ Hold[$CellContext`Ca$$], 50, ""}, 0, 100, 5}, { Hold[ Row[{"\!\(\*SubscriptBox[\(C\), \(a\)]\) ", Manipulate`Place[1], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`Ca$$], " Mb/s"]]}]], Manipulate`Dump`ThisIsNotAControl}, {{ Hold[$CellContext`Cb$$], 50, ""}, 0, 100, 5}, { Hold[ Row[{"\!\(\*SubscriptBox[\(C\), \(b\)]\) ", Manipulate`Place[2], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`Cb$$], " Mb/s"]]}]], Manipulate`Dump`ThisIsNotAControl}, {{ Hold[$CellContext`Cc$$], 50, ""}, 0, 100, 5}, { Hold[ Row[{"\!\(\*SubscriptBox[\(C\), \(c\)]\) ", Manipulate`Place[3], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`Cc$$], " Mb/s"]]}]], Manipulate`Dump`ThisIsNotAControl}}, Typeset`size$$ = { 446., {176., 180.}}, Typeset`update$$ = 0, Typeset`initDone$$, Typeset`skipInitDone$$ = True, $CellContext`Ca$10487$$ = 0, $CellContext`Cb$10488$$ = 0, $CellContext`Cc$10489$$ = 0}, DynamicBox[Manipulate`ManipulateBoxes[ 2, StandardForm, "Variables" :> {$CellContext`Ca$$ = 50, $CellContext`Cb$$ = 50, $CellContext`Cc$$ = 50}, "ControllerVariables" :> { Hold[$CellContext`Ca$$, $CellContext`Ca$10487$$, 0], Hold[$CellContext`Cb$$, $CellContext`Cb$10488$$, 0], Hold[$CellContext`Cc$$, $CellContext`Cc$10489$$, 0]}, "OtherVariables" :> { Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$, Typeset`skipInitDone$$}, "Body" :> ($CellContext`reg1[ Pattern[$CellContext`y1, Blank[]], Pattern[$CellContext`y2, Blank[]], { Pattern[$CellContext`Ca, Blank[]], Pattern[$CellContext`Cb, Blank[]], Pattern[$CellContext`Cc, Blank[]]}] = And[$CellContext`y1 <= $CellContext`Ca, $CellContext`y2 <= \ $CellContext`Cb]; $CellContext`reg2[ Pattern[$CellContext`y1, Blank[]], Pattern[$CellContext`y2, Blank[]], { Pattern[$CellContext`Ca, Blank[]], Pattern[$CellContext`Cb, Blank[]], Pattern[$CellContext`Cc, Blank[]]}] = And[$CellContext`y2 <= $CellContext`Cb, $CellContext`y1 <= \ $CellContext`Ca + Min[$CellContext`Cb, $CellContext`Cc], $CellContext`y1 + \ $CellContext`y2 <= $CellContext`Ca + $CellContext`Cb]; $CellContext`reg3[ Pattern[$CellContext`y1, Blank[]], Pattern[$CellContext`y2, Blank[]], { Pattern[$CellContext`Ca, Blank[]], Pattern[$CellContext`Cb, Blank[]], Pattern[$CellContext`Cc, Blank[]]}] = And[$CellContext`y1 <= $CellContext`Ca + Min[$CellContext`Cb, $CellContext`Cc], $CellContext`y2 <= \ $CellContext`Cb + $CellContext`Cc, 2 $CellContext`y1 + $CellContext`y2 <= 2 $CellContext`Ca + $CellContext`Cb + $CellContext`Cc]; \ $CellContext`p = {$CellContext`Ca$$, $CellContext`Cb$$, $CellContext`Cc$$}; Row[{ RegionPlot[{ $CellContext`reg1[$CellContext`y1, $CellContext`y2, \ $CellContext`p], $CellContext`reg2[$CellContext`y1, $CellContext`y2, \ $CellContext`p], $CellContext`reg3[$CellContext`y1, $CellContext`y2, \ $CellContext`p]}, {$CellContext`y1, 0, 200}, {$CellContext`y2, 0, 200}, PlotPoints -> ControlActive[8, 32], ImageSize -> Medium], Column[{ Image[CompressedData[" 1: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 OjUvwPfaANIG70FWqN88yXl6r/W9Rkj+XemMJ99rA0gbvAdZoNrNpPNieT8t Fpp7Gjc7wPfaANIG70EWJNWxaC+J/rziEfc5hfOeoGzgPUibqw96Y52n2njF gr7XCLOJq225/3DE+9oA0gTvQZooXxYXN+jrzNssLpqTw9wWqAJ4D9JEczXj Yj3Fgb7XB/HEnc3A+etQNvAepEXc+6bQfp/v9UEyceevK//pe20AaYL3IA00 1yMuv6l5/+zpFR/9juLy077XBpAmeA/SIK7vWdx4s8/7+qAx4s4k0r6t77UB pAXeg1ZJqmWhT6+9iNufZV4ZlAm8B60Sd36bXMhc4/aCmk6oAngPWkF9Ccwh Kw9xtUmnxzu8rw0gLfAetAKxXrlgTidUAbwHzZIU6zHHvz2J+51yBi2UCbwH zaIYIOo9UrOMmb/ZnmgWJ70MUHbwHjSDcphxsR41EO1NXC8DeWsoC3gPmiGu /oFYr/3pHv5+5O+W2apQFvAeNEPceyP7eu1PXP6aHj4oC3gP5sob71+OzXEy 16P90RzqqN8tc8WhLOA9mCtx74ua9eF7bdA6I3d2R/5+9XXfawNIA7wHc0F7 d3EzyZjDWQ70e4z6/XIeEZQFvAdzIe4sdbmQepZyoPPV6V2HMoP3YC7oHD1i gXIT17uuWibfawNIA7w3kzfffNPcvn17Gt/rKRJJOU7VuvheH6RDXO+6+vp8 rw0gDfDez8z7779vtm7daj7/+c/r+ZjFd77zHdPbSy1b3HnczLAqH3H1ur7X BZAGVfded3d3pOuikBfPnz/vfc2+0Ex+cpzVQJ9lon7XOpPd99oAWqXK3nv6 6adnuW316tVBbGd58cUXZ/2M73X7Iu69UDP8fa8N0qXnwtPMbIHSUlXvKa8Z 9p3ynVE/q6+7caHvtftA/ehxuS/tB/leH6RL3MwW9nGhDFTRe1evXp3hPDmw kdup5kXxn+/1Z8E//uM/JnLxTrd5tf+bM9D7oOIC32uH9ImbTUCPJpSBKnpP dSpuzYrv9fggym0//elPYzk4Mr/muicdJt134fau6dv7fkyQHpqzGuU9ztqA MlA176k3wY31qlSnYv308ccfm5s3b5rTp0+bvr4+09PTYzZt2jQDfe3YsWNm cHDQXL122XQc+XOzse/JR5yY5P57o9NudB3q+7FCazCrDMpM1bzn7tOpPtP3 evJAHnr48GHgOTlt0aJFwX8PHjxojh8/boaGhszExIQZHx+f5syZM4H3Dhw4 YDZ0rDULF803i5b+wCzd/F2zpufPzYbjT5jN/f/NfPyTH5t/+Id/MJ9++mlA 2IG+Hzs0R9ysMtX0+l4bQKtUzXtuDWej+3rtyieffGIGBgbMqlWrzPLlywPP Kc6zjpKv9DOWv//7vw/4yU9+MoM7b42YoRs7zNGhzWbrrhVm8fIFZuFLPzTr t75g3n777SB+1O10DetA/NfeqEaXnhUoK1XznpvjLGsvujxz7ty5wHVHjhwx b731VqTrrOPkrY8++ijgxz/+ccCHH344zaVbvebM1U5z5lrXNCcubDWHjnSb V155JXgef/SjHwW3dx2I/9qXuLOmmNEJZaBK3lM/guu9Ms4hu3LlSuC7ffv2 BS6Sc1zfhV1nHffBBx8EP6/nKMzpKzvN4OXtZnBsuzkV0Fn7Wqd5+7375t13 3w3cumzZMnPy5MngWq7/3PgP97UPcTM6NZ/V99oAWqVK3gvXtJTJe/KM9uy6 urrMe++9F+k713Wu57T3p9sIeUy88847Afce3DQnR7fNYODSNnPqsu7n3eD2 us4bb7wR7J2qD/LOnTvB9fFf+6K5LMykg7KC9/yvq1W0x9bR0WFu3bqV6DvF YmHXWcfpGsqHCvUpWq5OnA1ymtOMbDX9Nc5dORDcTrfXdXQ9XVc1MXLf5cuX g6/Z+E8xppv7xH3FJm42Nd6DMoD3/K+rFeQ6OU/eCjtPrgn7zrou7DnFa+LB gwczOH/liOk7v2UWl28MBrez19D1rAP17w0bNpj+/v7ga7pvxZhu7If7ig+z qaGsVMl7U493GvWm+V5PK6h2Zdu2bYFPrPPcGM/mM6N8Z13nOu7+/fuzODmy 0xwf3jKL8VuXp2+n61gHWv/pvzt37jSvvfZa8P/d2A/3tQc6dwjvQRmpsve0 H+V7Pc0i5+3duzfwXJTzbIwn38T5LspzLrfv3qw5bnMkd+/dnvGzcf5TzYv8 p6/r33bfT7Go3fPDfcWEMxmgrFTNe+75Cu06o+zGjRtmx44d086LymvaGE97 cHP1neXq+IVI5526uCf2NmH/6f71+eLQoUPB1/Vv2/OA+4pN3JkMeA/anap5 T7nNdt7jszUsNrcZdp6b17TOm6vvLCNXT0R678KV43Vva/1nnbtx48ZgBoy+ HuU+cp7FQz0LnMkAZaRq3gv38LXT+QpyxNq1a4PcpZvbDDvP5jWbifFczlza H+m9K+PDDd3ejf3u3btnVq5cGdR56nuu+8L7fb6fZ5jk+JXFeA9KSdW8J8Jn 7zU6r0xOSTqnL2vUn+f2KmTpPHHi/PZI7928fb3ha7juu379ejDfRbNAcV/x 4SwiKCtV9J7QTGrXffXOndUsrrjcqHKnihstulba+VPNYVFPeriGJSvn3boz Hum8vuGtc76W6749e/aY/fv3B8+PzXnaWhc9Hre/z/drpOqcndiM96CUVNV7 eg8Ou8/mPVWHIc/pv24djMX60b2G/qufdc/2S+uMIzlOs8cUG9n+PLduM23n Jde07G3qem6vxJIlS8zo6GjgPq1Ve5F6HHo8tredvT7/xJ1FNHp3r/e1AbRC Vb0n5Aj3fIZ6yG06q929vVwXFf/NS7FeVOcHqR7SrWNxnSdvpOk8odqVZmta 6rlPnyk6OzuD2S6aaaZ1a89S/YbhOhffr5EqozNmOYMPykiVvWdRXJbkP31v rj3u9ratri0c69k9PTlCX7N1m2k6T5wZ7Yn03uXrZ1q6rtanGhfFfCMjI8Fe 3927dwNvy+HkO4sDZ/BBWcF7M1Hs5tLsdWx+tNV9PvV965wDG+u5e3qKkVrt VYgjrqZl4tbVlq+tdepcwFdffdVcu3YtqNXR121fu2JZYj7/cAYflBW81zrK fdq9QIvd92vFe3rPV6ynmM7GeuE9vSycp3rNuJqWu/fupnIfivEWLlwY7POp D1/Pk813EvMVg7gz+NTf4HttAK2A91rD5kdtXUua3pPP1K/n1rLICTa/aff0 0nSeUH/eXOe0NIPiPe1bqlZV+U7lP219p61xwXv+iPMeZ/BBu4P3msf2Aapv Ify9VvOceq/v6+sLqBfrpekiEVfTMjx2JNX70WNTT+KlS5eC3j5b30nMVwzi zuDDe9Du4L3mSXJbGt7TPDLVO+YZ64m4OS2Xrp9O9X6U31y0aJG5ePFibMzH Pp8/OHsWygreax7rNre3Qag+1NZzNus9xTza23NrOPOI9UT/ha5I743fGkv9 vpTHVe2OG/PJ57a20+3n8/37rhoff/IQ70EpwXvNY2e4aC9PfQ7yn819trK/ p/d41Xvs3r17Rr+ereHMMta7e/d2/NlDd2+nfn+qB9I5RTbmu3nzZvB1xbS2 n49cpz+ivLfjzFPe1wXQCnivNfS+PS/U2654zzpRfprrNfX+rt4FXcPmOG2/ XtaxnmK6KOcpBszi/g4fPhx8Vrhw4UIws1q5T9vPR67TP5y5DmUE76VDq/1+ Lnp/P3jwoDl16tSsHKftUc8i1hPqS4/ynvb8srg/Pcb169cHnxUU46qfLyrX iff8wJnrUEbwXrGwcyl37doVeCDPHKdo5cy9ZlCcpzMahoeHZ+Q69fjCdZ3M 7MyfuDPXP/n0o0zvV6/xNOZHAESB94qF3tcV26i+X/Mro+o4s8pxiqHLBzOZ TxaH4ruXX37ZnDt3LphbNjY2Nl3XqZyu4lz2+PwR570szlxXfK+cd9S8+HlT 826V+/f9nED7g/eKhfWeajmV03S9l/XenhgY2Z1bLadl/vz5gffCe3y2n4FZ 1f7YP/JMLt4L75MnYffQfT830L7gvWJhvbd48eLg86+taXH7F7LKcWoGWZ61 nGHv6b3M9jOob5HaFv+oRz3Ke+9+eCu1+4iaCa9ZEIrtLFHngfl+bqB9wXvF wnpvw4YNwbxme/ZCHjUtmjmdZy2nsL3r1ntubYscb89jx3t+iPOeZpilcX3b 9+P6Lun8Zzcu9P3cQPuC94qF9Z7OVlfOL89azri5nFnVcgp5TjndKO9R0+mf /msrMvOe+l1d58mBjdzOnnvp+7mB9gXvFQvrvZ6eHnPmzJlcvZd3LafQY1yz Zk3gPVvTqfdDvFcMdOZQlPduvzPU8rVVp+LWrPh+rFAd8F6xsN47duxYQJ7e Ozd2ONdaTnH06NGgdjXKe6rfwXt+ifOezqRt5br6/bqxHnUqkCd4r1hY78kB e/bsydV7OmcoynvXb17MzHv79u0znZ2dxHsF5ezE5ky85+7TqT7T9+OEaoH3 ioX1nur4lf/L03txZ6zfujOemfd0Bp/c5+7v4b3iMHJnd6T3rj5orY/OreFs dF8PIC3wXrGw3lP94rJly4KaxjzqOePmUeuM9aycp14FnbmuPT7qOYtJnPf0 9Vau6+Y46UWHvMF7xcL13v79+83AwEAu/Xtx86jVx56V9zSbc926dWZoaCiy f0+Plf49v4zdP5C69/Radr3HHDLIG7xXLFzv6f1fecA8zmLw0cOwffv2YJ/H ei/uTAbmtfhD+3hpey9c04L3IG/wXrGw3tM8SvlOc1s0lzPr+Zyj1wZz72F4 6aWXgnjWes/O59RcUuZzFoM4750e72j6mngPfIP3ioU9c0Dv85pRpjNZlf/L +jyG4bEjkd67dP10Js6z5zBY50WdxyDPcx6DX+K8p/6GZq+J98A3eK942JhP NYyaVaa6zqxrOs+M9uTaw6A5bAcOHJixt8esluKRhfeE673BwUHvjxOqBd4r Hu4en2o6NLulv78/0z0+zeCM8t7N29dTd164niVpb4+aFr9MvDWYufe0x9vK tWydDDNfoFHwXvFwvae9LcU+6mlQnjOLXGfiOQy176XtPeU3NaclLsepn3H3 9vCePzSHM8p7x68sbum67vkKrfrKzZv6fr6gPcB7xcTd41Ou7/Dhw0Gfk811 phnzxZ3DcPLCztSdd+TIkWAumRvr2f6FqBynu7fn+3dSReK8p3MaWrmucptp 7fHhPZgreK+YhHOdivMUJykH6NZ1phHzaQ8vsodhtCdV5ymWW7p06YwaTsV6 4TpOe94sOU7/ZOW9cA9fK+cr4D2YK3ivmLj9DPbsWfXzaV9MOcA0Yz7NnY7y nmo80/SealkOHjw4a1/PjfX0eOR4PV4b6+E9f2TlPRE+e6/ReWVypntOH96D uYL3iovNdaqeUbGPYiA5Q+8PNuZLY5/v4rWTkd7T19NynmZsqycjnN+0+3oT ExOz6ln0uMlx+uXtD65Hem//yDOpXF8zqV331Tt3Vrn+cG407D3Nd9V1FEMK znqAMHivuLi5ThvzKRY6dOhQMMvZre1sxX1xvXtpnT+kWtSOjo4ZzrP5TdVw Ko6NivXIcfrnw5+8Hem93UPfS+X6+twWdp/Ne6rOU57Tf906GEtUvBeOIeca S0I1wHvFJirmU45z27ZtQW2A7edrxX1Z9u6pJ2/lypXTs6et85TftGcv2BpO d1+PWK8YZO09odevez5DPeRJvW7s7cN98G4/oGK9cHwIgPeKTXifTzWO+pwr x6kuUmfT2nxns3t9mj0d5T3VebYa58l56tcL5zflPOU3VctiZ1CHaziJ9fyT h/csel0k+U/fi+pxd70XldO0MSAxH1jwXvEJ9/Opr037e/Lc7t27g/nO+v/N 7vXprKHI3r27t5t2nnrtldt04zx3T0/1m+pRt/lNPR769YrHJ59+FOm97ae+ nen96nXhUu9nk+paFBvOo68dHPBe8XFndir/p5hI+UDt78lzJ06cMOvXr5/u fZuL+9I+d085S50h0dXVNSPGc53n7ulprXocejx2JhmzOItFlPeE73VZ6nmP ek8Ig/fag6h8p+aWaU9MvpFjlFNUX7h1XyP+i+tZb+bcvZMnT5oVK1YE5wbW c57mjto9PXu2LPnNYoL3oGzgvfYhnO+0e33a35NDtF+2Y8cOs2TJkmAfpJFa l9ie9Tmcuyevqade/Xna0wvXbaqGJew89adr3XZPj/xmcSmL98hzggXvtQ9u vtO6z57Fbt0np8gzyjXac36S3NdKz7pqU+S6VatWTc/bjHKefk77eVHO0/qt 88hvFhPt5UV57+NPHnpfm6jnPfVBzJvqDfS9VigGeK+9cPOdce7T+4BqRuy5 BzrfVbUv+rdqJ113zbVnXXUqqqXRebjLly+fPksoKq+p/jzNYlEcamtYdI2w 8+yeHrFeMVHtZpT3VOvpe23C9Z5qPsPft/2B9K+DBe+1H6775AzXfdovU3yn 9wLNQFEtm+Iu9bmr9mXhwoVBLKh/y4O9J14z+090zM5zDvcF/tLP6Ge3bNkS 3FZnAe7atWs6nxn2XTivqftXr4KtYdH6cF570S7eUx5TjhOK8YR1XpQPobrg vfYkXONp9/vsGX3a29PcL9VXKr+omEuxlz7zakam6i3lwUVLnjXPv/iMmT9/ /gxeXrwoyF8qXuzs7DSvv/76dB9e2HXWd26MZ/Oaun+tQ+vRumwNC85rH4ru PdVx2Tym/r/8N28es1ogHrzXvoRznrbOUz0B6odTL7jNeyr20+xn+UheUjym uGxF11+YZzs+Z364YYr1kygODLstznU2vrO+0/3YGE/3r3VoPbZXwd3Pw3nF R7M4o7ynmdW+1xaH/Md8FogD77U3Nu5z53hqzpeb97Sxn94H5CN5SfGf8pBL Ov/EPLfpC2b+xs+bZx0GTh8NvOYix1nkOsV2qlnRdXQ913c2xrN5TfWk214F t24T5xUfnb3Qbt4DSALvtT+u+8J5T8VY9ox213+K/1RrsrjrMfPC1i+a57d8 0SzY/AWzYNMkF0Ymz0B3keOE4jrXdbqOruf6Tven+3VjvHBeE+e1B3gPygbe Kwdh94VjP+2ruWcXKf+o2s7Fu75qXt75FbOo68tmUeeXzYudXzIvdX0tqEcJ I8dpz06eU1ynvTu5ztaIWt/pfnR/ul/dv43xcF57gvegbOC9chEV+9l9P3lI 8ZfyjqoxuXXvqlnx+tfNsu6vm6V7vmaW7P6qWVxj9et/HvTZhbGzEuU59eDJ dXKoXKfr2fhO90OMVx7ivHf/4Yj3tQE0A94rH1Gxn/Wf4i85Sfttt+6PmtUH HzOrDvyxWbn/j80rPX9kVtTYcvR7QewWRo5TjYr1nOI6OVSxnd2/s/Gd7o8Y rxwMXF8T6b0bb/Z5XxtAM+C98hL2n5v/VCx2683zZv2Rx83a3m+YtYe/YdYc esysrvHa4P8MfCYUw9n/bx2nmE6es3GdXKfrWd/Z+8J35QDvQdnAe+XGesf6 z40Brz/oNx3HnzAbxLEnzPqjjwccHV0R+CwKOS7sOV3Lje1c3+G89gfvQdnA e9Uh7MCxe4fNxhNPTtL3iMFrGwOfRWEdZz2H68qF+zu0nLy22rza/81ZXH/j OL9raEvwXvWw72cXbu9y3seenOb8rV0zcqOu21yi3iN9PzZo7rUQlRewnLy6 esbrw6LPTbwGoB3Be9Xl9HhHkK+K+xzfCL4fA8wd+7tTvlq9KKdPnzZ9fX2m p6fHbNq0aQb6Wmf3KrN821+b1d3/3aw//KfTeYHhmzsiPxfx+oCig/eqS/+1 FZH7NhNvDXpfG6SPPKSaJM2Y27Ztm1m0aFHgNs1rPX78eDB3VfMH1Jtp0fkb PQd3mk1dy83y1S+YhYvmm0VLf2CWbX3K9A1vDvZ4w/W74Zom/AdFA+9VF/qR q4GcJNetXbs2OJNY52to/oBb4+vu4VqXqXZJ3HlrxAzd2DHN0aHNNQ8uM0uX v2xWrlwZOFM9LXE9LNT1QtHAe9Wl58LTkd57/6P73tcGrSPPaKacztWQ63QO VLin03pOfrO9nXbGgVC/ys0H582Zq52PuNYVcOuNC8FcukOHDplly5aZEydO zJhZEDenB/+Bb/BedYk7X6Yo52hD82i+juI7nRGsWCxqhoHrOus45UHVo+n2 bN64O2QGL29/xNh2c6rG+L1z072cmmMgt8p/mmEenmPADAMoEnivukQ5T/he FzSP/LJjx45g304zduJ8586ts57TjAI5UshjQudpXL89bE6ObpvF2M2Twc/a 2Qa6jubXae9Q5zZqto+dSy7/McMHigLeqyaffPpRpPN2nHnK+9qgOeSYjo6O 4JwMtw8l7Dsb17mus47TDDr5Smgunbh+67w5cWHrTEa2movXjwU/r9vZuXXW gZphrvyq5pm751AxsxWKAN6rJjorO8p73cPf9742mDuK7eS8qBgvyneu61zP 2Vms2gu0XJ0YNn3nt8ziwtWjM+a2CteBml+uNammRl9zz+jAfeATvFdNVLMZ 5T3VePpeG8wNnQulvKZirfA5HHKeew6HfkYOsnGddZ3rOZ2z4XJl/Jw5Prxl FuevHJlxu6jZ5fq31tbb2zt9JqP86+774T7IG7xXTXSGTJT3jl9Z7H1t0DjK aWo/TR4JO889e9H6zsZ3ru/CngszdmOo5rnNsxgeOzLj56L8Z+O/1157zRw4 cCD4umJBu++H+8AHeK+aaKZwlPc0g9j32qAxFD8pjxjlPJvXdJ1nzxxu1Hdz 9V7YgdZ/dg9wy5YtZmBgIPi61mPdp5gU90Ge4L1qMnp3b6T3Ru7s9r42qI9c oT6FcG7T3cuz+3g2xnPzmY06L8l758YOJ97Ojf90//ramjVrzMWLF4Ov2z0/ 4j7IG7xXTYZvdUZ6b+z+Ae9rg/poz0w9elHOc2tX7D7eXGM8lxs3L0V678xo T0O3d92nOTGrV68O9iT1dTk5zn2+n2MoL3ivmnCmWvui+SiaJR2V27TOayWv mbb3wnlPzfx89dVXze3bt6fd5+73uXWevp9rKCd4r5qofoXZnO2H3KH8ptur YGtY3NxmWs5Ly3th923evDmY62ndZ/f73B4H8p2QFXivmsTNpH73w1ve1wbR yAGqY9FMTHkvD+el6T3XfcpzaqaZ+tvlPn1Na7c9Duz1QZbgvWqyf+SZSO+p n9332iAa9Sx0dXXN2tOzvQpZOC9t77nu27NnT3C+n84+ksu1/yd3R9V4+n7u oVzgvWoSN5Ma7xUTvfcrvylnhOtYbK9CuG6zVd/dvnszcN6l66civTd4cU/w /WaYuH0l8N3ixYvN2NhYcP6tZnu6dS7kOyEr8F41wXvthWZ96byDcH7TrWOx zrt154YZv3U58MuV8WFz8drJaUaungjitDAnzm+PdFs2TM570ayzzTuWmRde +a55sfNLZt2+vzDbj/0/ZtfA35ruM39nhm50Bme6j9zuNg8eXgr2njkjC9IA 71WTOO99+tNPvK8NZvL3//Bjs3bdSnN1fMTcf++SufvORXP7rRFz+dZRc3H8 sDl//aAZGO0K5kXLJY9mieXlsebd13vqVbPghR+aF7Z+0Szq+rJZsvurZkXP H5nVBx8z6448bjYcf8JsPPGkebX/mwH2dbr91LeDPereSwuDnlP138iLmrfu +/cFxQfvVZOtg9/iDKKCoBhG79lXH/QG7+GqtdV7uv1s0nHkz8zCRc+Z87d2 meGJnebc+A5z9nqXOX2lMzgP7+TFbW3mvJnue3nZc2bBusfNwm1fMi/v/IpZ 1v01s3L/H5u1h79h1h993Gzsk/eenOG9JKwTz05sNrffGeI8SZgF3qsmnL2X L4pD5DbFJZoZ4HotCb3Xr9z5V2bD1sVm+GbNeTXvDd3YEZx7rvNfB0a3mf4R nQ20pW29t6lzuVmw4i/N81tqMV/nl81ixXyvf71uzDcXdM6IelYn3hokpwF4 r6JEvTcoBvS9rjKg+E3vr9ZvcbF1I+h9fsmavzUH+jdOei8U6/Vf3Nqmsd4j 9+07vsE8v+jvzHObvhAZ82049sScY74k9PuQAxUL+n6tgB/wXvWIO3NW8Yfv tbUjqgVSjlL5yVYcF8XGvj8xzy+cb87VYrxhG+td65oR69nz8NJ0Xv+Fruma l1MX90b+TN/w1sgamUYYGNk9w30vLJpv5q//2nTMN73Pd+gxs74W83U4MV+a z69e8/iveuC96hF35izeaxzFdIrnlD9L8304HOut6f6OWbnuxchYb/a+3qRH 5CnrlwtXjs+o54zqKbh793ZiP8OtO+OR3jt5YWcq/YFix44dpru72xw/1W1O Du0zZy8erl2/y/SPbjKnrm4zB84vMAdGnjW7zn4vdfcJxeXUilYHvFc98F5z aF9I80vjev6z8N4rXU8F+1/X7h83V+4eNRMPzpnxe+fMtdtnza17V83EnbGg Z+HevbupOSiKuLgwrevrbL7t27ebkZGRoJ9vfHw86GW3szvDfeyqVdF+qWI1 1QL1X1thei483dLzrVid+bTVAO9Vjzjv6f3c99qKiN5jVRuoOsEs/Kb3W8Ub ypPqPVw5U72nv/PBTdPX1xfMsXRns7j9emnNZPHtPT1Ozaq+cOGCuXTpUnBu g+aX6TG6feyNzG95+4Prgb9Oj3c05UL9rn2/5iBb8F710HtqXK7H99qKhPVd Wnt2iqf1HMttel/W+3PS/ev9Xbm/8+fPB+/5dg6nnc2ieWRl8Z768letWhU8 Vp3Pd/Xq1eCcJfXh6/GG57fM5feoOP3+w5GglqXR36U+g1D3WV7wXvXAe/XR ubyt+E6xs95nbT/1XO9f7+2KbbZu3RrEPtZ7yvnZOZxpzuD07T3lNpcuXWqG h4enc52aY6bv6fEqzk3jjCKbq26kh0Tu8/06hGzAe9UjznuafeF7bb5RDNZM bky3UWyouCKNdVjvaSan5lba8/Xs/Gk7kywP5+XhPc3nXLhwYRD3Kdd5+fLl GXt8inPTnFUt/zXy2Ua1S75fk5A+eK96qLcs6m9c8Ynvtfkk7gz6OFTLqXgu i3kg1nua26z9PHnP195eHt4T8+fPn/ae3eO7c+dOENvas/nSPqNBe931Puek 9VkGigPeqx7K8+C9R6ifMe48wrjnKetzCq33Vq5cGezjhWta8tzby8N78lvt vSTwnvb4RkdHZ9W2ZOE9odhPuY6kzzfs9ZULvFc98N4j5K9G9nrs85PXeRXW e6pxVL5P3rNny+Zd05KH93T+7MsvvzzDe/ZMWj3WudZ0zhV5LSnuU1zv+7UK 6YH3qof+htnL+FnQ+9VI7YpigbzPZ7Le09msqvXw7T3NZony3t2U+gZtPaf+ q8drazqt9+x5tFl5T+h3vOPMU5GvAb1OmG9dHvBe9VAdfdTftr7ue22+nwMX 9ev56mPW+7pqF3t7e82JEye8e0+zWaK8p1kuqVz/5EmzYcOGhrzXTC9Do+iz UNzrQXUwvl+3kA54r3pU2XvKZ6k+vZ7ztN/n8yw3673BwcFglknZvXf48GGz ZcsW794TcXu9igXZ5ysHeK96xHmv7J9n69UvWIowr8PmOdXLtnPnztJ7T/35 mtHpM89p0Z5v3GtDs3R8vzagdfBe9VB9RtTfdJlnEzbiPO3hqMfD91qF9Z7q 9xctWlR6773yyivm6NGj3upawsTlBJjtUA7wXvWomvcacZ5qOrPuTZgL1nuq 21dNp2r6ffYxZOk9W8s5NDTkpY8hiqR9Pupb2h+8Vz2q5L1GnOd7Ly8K13ua 2az9L59961l6T3Hepk2bZngvr771JOL6W8h1tj94r3rEeaBs52824jx9v4i1 Cq735Ab1r/ucU5al91THqdod67085pQ1Qtz8HnKd7Q/eqx5x9WrNzE8uKu3s PGG9p9pFvd8vW7Ys8Fx4LnW7e0/xnOZynjlzJnCeCM+lVnyrWFfPQ6tzqeeC ZrWS6ywneK96VMF77ew8i+1l0GzOQ4cOBflOX+cQZeU927dnYz23ljN8DpE9 jyEP51nIdZYTvFc9yu69uP3LdnKesDGfahgV46nmUflNH3t8WXhPsZ7i2P7+ /si9vWbPnU0Tcp3lBO9VjzJ7ryzOE+4en2o6NLdl3759Xvb4BkZ2R3rv5u3r TV/T9qpb59kcZ3hvz0dNiyXuzC5yne0N3qseZfSeXFYm5wl3j085PvnO7vPl nes8M9oT6b0bNy81HevpjKWBgYHIHKfO49PjSvPM2WaJm9lZxvrnqoD3qkfZ vNfuNSxJ2D0+5fiU6zt16pTZtWvXjFxnHjFf2t7r6ekxXV1dM2I999w9H/PJ 4jg93hH7mvL9+oDmwHvVo0zeU99dvXND9f2i9ec1ipvrtDNb1q1bF/R627rO PGK+NL2ntS9dunRGDaf29RTrXblyJajj1BnzvvoXwsTlOjXfpx0/SwHeqyJl 8Z7OjdGZoGV1ngjnOhX7KEco98l1bsyXpfvS8p7WrvOG1Kvu5jdtz54b64Xr OH15T+hsjqjXV1Hm2sHcwHvVowzee/+j+3XPi21351nC9S2q85AjVP+vmCiP fb60vKc6FuU43fymnUtm9/VsrOezniVM3N4xdZ3tCd6rHu3uPZ0bUe+8WO29 lMF5Iirm076X6v91VoNivqzznWl4Tz2IW7duneE8xXq2T/3GjRtBPOju6xUh 1hP3H47EvtaKNNcVGgPvVY929Z5ivP0jzyT6TvRfW1G6fZdwzKd9L/lO57Ef OXIkiI+yzHe26j3t5a1Zs2aW82wti/b81Kduc7d6fEWJ9SxxOXWd3eB7bTA3 8F71aEfvNRLjCdXe+V5rFuh9353fYmd1Ks5TzLd79+7pfGcW7mvFe4rz5Dy3 jsU6z+Y3bS2LHo/tU3fnsxTBe2P3D8TWt9DL1160m/c0M0/vz2F43TVOu3hP MZvmQdXbx7OU/bz4cG2n+tpU+yHXKebTeUVyRxbua8Z7ylmqVyEqt2n39FS/ qR51m9/U47GzOIsU69nXY1wvXxHOKobGaTfvNfoe6NY26H3eRa9RvUe66CyC KJ9aypTDL7r39FzrdxT3HhNGP6f9F9/rzho35lM/m813qp9BnlNvn+IqxU5p u2+u3lN9iupulIeNym2qZ8Hu6al+U2vV47D5TbdfryjeE3Fzy4Q+k/teHzRG 2b2XF2G3JqGai7B3o9yr/awsnkPtf0U9Bl/zJ+Q53bdcN9ffr+rsylK/0ghu jYvtZVfdo/bE5Dj5RGcW7d+/P/BPWu47c2l/pPeu37w462c1f0z9ecpvNuI8 rc/Wb7o96kWK9SzKK8Xl2/XaLdu+clnBe+2D4hrXn3rPT/Jm3HPo89xZuVw9 T/rcrMfQyJ5d3HNRhRgviqj6Tu2JyR1yiHzS3d1tlixZYo4dO5aK+4bHjkR6 b+zG0PTPKN7U7DH1Krjzx6KcZ/v0dDut293TK1p+s9G/H9Guc4F84PN5ajfv xfWPQn1sznfn2ej84bGxxTM8qn38uLyvHBsVs1pcP6f9WaVqMV4U7l5flPvk FO2fbdu2zSxfvjzwUCvuS/Ke6lXWrl0b9NLbsxWinGf382yc147OE4r5kt6H ytRDkyV6H9F7gz5v5+3AdvOeb3dAHjwZ+XV5u6oxXhi77+XWuUS5TzUjZ8+e DWpedL6rakx05p3qSFrx3u4Da8zajS+bF198IdhTtDlN13e2J139eepVsDUs bm7TOi9cx1Jk7wnlLJJew8pHsN+XjPY33OdLn5fzqk9sN+/pudHn/ah9s3oz q6A96Tz9F2bwxrpS1RalQT33Kb8pv6nORf1xirkOHDhgOjo6TO3vNnChzjVS flKOUv4x7Dt9Td87cGSn2dS1wryydqFZ8PyzZsHivzE/XP4ts6NnVaTv3Lym Zsvo/rUOW8MS5bwi1rEkUe/8D6G+Gs3T873WIqLnJfx8ad9Dz2vWz1m7ea8Z 9H4ZztMph1cvPxeGHKt/9LlQdTnKjZBLmlnj6brP1rqorlPn2KknXPlFxVyK veSjgwcPBn0G69evD2ZmqhZl/vz5M9DX9L3Fy58zzy79jvnhij8xP1j3RfOD 9f97wJ7Da2N9Z2M83a/uX+vQerSudneeaOQcEIt62xUj8pp9RJT3ws9ZVjXm VfBeHuhvIKkPIoz6sKO8q/d0XNsY+myoz9NZ1b22C+G4z+73qSdA/XCa46LY TbGWjf0Ux1n/yVPKR8pZrsNcNrz2tPnh+s/NZMPnTHfvuul+PNd3ur4b4+n+ tQ6tR+uK2s9rJ+e5f/eNus+ifL3quqred6zH3ujzlfb8b7zXXoT79l1nqg+g qnlfzS+r8mz8KPepD0494Jp1aWe5qK/d+k81lYrHlIdUzYn24YT1oHWh2Nj9 t+bZjs9NsvHzAfNr9BzrCG6j2+s6up7rO9tHr/vXOrQerasMzrM0cuZxEvps 6/YV6++6CnuDSWfZR6EaGOXp0oiZ8V610Gvt3M3tsZ+rXI/uOvtd7z6bK3J9 VfcBXffZ/j4372nPaNf+mvWf+suVh5Sr5CwbB8pjQvGb2Nzzd+a5TV8IWGDZ /AVzsH/TtOt0HV3P+s7u4+l+bW+e1hPuz2tn57mo5qrRWQuNsm3wz4O/S32u kxvD+SHljeaSZ2qFejXcinuj9ofSrufW5wR9RmglVsZ71UN7Y1GvJ31mdX8u Kn9j//7c3nvNEnP/PubyeUw/G/67Ul6/3lmySSj/qTX5fp59EHafG/uF/ac4 zM4Tsw5UvaX8pVhQLtPsTLH90A/Nwm1fCnhxe43OL5lFnV82R89sm3adrRG1 8Z3rOzfGK6Pz3Nez/o6S+lI3D7T+3m+v8Wq//htd/1wF9Fw38zkX71WPOO9p b9H9Oe2b+d6D0GtauY257qHYx1PVOoKo2M/NfcpHyjuGzzBSnGY9aFFNyq7j C8zLO79iFu/66iS7v2qW1Bi4sCu4nW6v6+h6uq6u7+Y0yxrjxaG/GX2G23Hm Lz34oDoeVHzdzLwNvFc94vLqRT9DU/soignrfZ52Ud6zqnXkrvui/Kc4zHWg 5mNaD6oGRS6zcz5fH1xklu/9ulnx+hQ9f2ReqTF05fXgdq7r3PjO9V1VnCf0 mbGZz2qpk0JsWUSU69Tnimb73fFe9WhX77no87T2NhrZT5H7qjw7Ksp/yjfa /T/Xgaq1lL/UZyCXWQ6eW2JWH3zsEYceM2tqjEwcmOE6XS+cz6yS70SjZ2bl SRq51aLQ6t6ewHvVw52T4KI9Nd9rawbt5dV7nwnvXVaROP9ZB8pX1oPWhZaj F5eb9Ucef8TRSS7f6Z2O6+y1quo75dQbORcZJmsz59qnpX3/tHqW8F71iOsX 1WvR99qaRX8P9fo2fJ03UTSsi8IOdD1oXWjpG1tpOo4/Mc3GvicDrt4/On3b sOuq4juhv6lm+4bs3NyoGsnDl14wr59/2uw8+1cteWbfhf9vTmfGzOUcGYv6 iMI1oPX6MeLORAs/P2n3r+O96qGcX9TrSzGT77W1+riS+qj0+Kre4+7i+ins QRc5rf/qKrPxxJPm1f6ZXHtwPPI6vh9bnijn1mitvn6ulZ51W/+sz3D2TJN6 uX7FVL6foziSvKfnKqueXLxXTeJea77XlQbK/8c9vqrv9SUR5S/LyWurg5r5 MNffOF45z4WpF7PIO/o8luW5znKo7QMKr0f5Qd/PURxaW9TzpT3SLP9O8V41 ift8Woa5Sfp7Sdpn0edk32tsN3ye2Vhk5Jkk5/nspVEfvV7rRZ5jFH5d6TNr Hs8X3qsmcXsRZan51+OI2zNXvrMMfs8TvDebenO2NDvW9xqLjn1dKe7L870H 71WTuNxMlrmYvEk6I433pLmB92aiz01J+2qKW3yvsR1QLbaPWaR4r5pE5dVF 2c51TZp3VtU5ns2A92aStKen77GHXGzwXjWpyvtYXK9i0ff7i0ZVXi+NEDfn TygGJIdefPBeNdF+d9TfrWZh+l5b2sTFtsR8jYP3JknKb2rfuEz7BGUG71WT uDo0fd332tJGPXtx81yI+RoD7yU/D0K1977XB42B96pJXK6mrPvxST19xHz1 wXvJ9ZvtOuOvquC9aqIe1yrFP8pPEfM1T9W9pzqVpDlkfHZqL/BeNVHtcNTf r/q9fa8tK4j56tPMvBbfa84D7XvHvXboiWk/8F41UfwT9TfczrOpG3nMxHwz aXRG58mrq2fN5hR2TlmZZ3MmvW5U41LVs43bGbxXXeI+v/peV5YkxXw++md9 YP2ks4Zu3rxpTp8+bfr6+kxPT4/ZtGnTDPS1Y8eOmW17F5vV3f/drD/8p9Nn MYhr94/NOIuhjOcxJNWyFHkGGMSD96pL3IzOsswqiyLps3vZaxPkoYcPHwae k9MWLVoU/PfgwYPm+PHjZmhoyExMTJjx8fFpzpw5E3hvx2uvmuWrXzALF803 i5b+wCzd/F2zpufPzdjdIzPO34s7k8j3Y2+WpP7PdjqnGWaC96pL3Ozmssc9 STFfGfsX5aSBgQGzatUqs3z58sBzivPcM/fcs/bkMXsGreXGg1Nm6MaOgKND m83WXSvM4uULzOIlL5l9+/aZt99+O4gfww5sd//FzfvRZyf2hNsXvFdd4vq5 Vevpe21Zotq8uN7jMs3bkGfOnTsXuO7IkSPmrbfeinSde866PV/9xz/+ccCH H34YcO3ugDlztXOSa13TXJsYNidPnjSvvPKK6e3tNT/60Y+C27sObFf/Jc1l KWu/T1XAe9UlLu4pY8wTJuk9Tfs5vtfXKleuXAl8p1hMLrLnx1rfhV1nHffB Bx8EP//+++/PYOxWvxm8vH2Sse3mVECnufPGWHC7d999N3DrsmXLAg/qa67/ 3PivHdynzz5x53lQy9L+4L3qovkSUX/XVTmfLmlmdbv2pckz2rPr6uoy7733 XqTvXNe5ntPen24j5DHxzjvvBIyO95mTo9tmMHBpm7l5bzS4nW6v67zxxhum u7vbrF692ty5cye4fjv6r/fSwtK9NuAReK+6xMU8ZYh3GiGpZkH7N+22z6k9 to6ODnPr1q1E3ykWC7vOOk7XUD5UvPnmm9OMXDtmTlzY+oiRraa/xo3bF4Lb 6fa6jnWgamLkvsuXLwdfs/GfYkw391lE9+lsnLjXRZn7W6sE3qsucXOXqlSn llSjrnrXdslnyXVynrwVdp5cE/addV3Yc4rXxIMHD2Zw9tI+03d+yywm7owF t7PX0PWsA/XvDRs2mP7+/uBrum/FmG7sVzT3qZY5rt5XX9esV99rhNbBe9VF f8Nx+xe+15YX9eZPKd/le431UO3Ktm3bAp9Y57kxns1nRvnOus513P3792dx 5lKPOT68ZRbjty5P307XsQ60/tN/d+7caV577bXg/7uxXxHdl3SuHnOnywPe qzZxn23bJc5Jg6TzGoqe95Xz9u7dG3guynk2xpNv4nwX5blZ3huV9zbP4sbN SzN+Ls5/qnmR//R1/dvu+ykWtXt+vt0Xd0ZJ1XIgVQDvVZu42o5229tqlaT6 Thv3Fe0M7Rs3bpgdO3ZMOy8qr2ljPO3BNeO7uXovzn+6f9W7HDp0KPi6/m17 HorgvqQ9PX0mKvMshyqC96pNXA+f3gd8ry1vkvrZbU1DUfZ3bA2LzW2Gnefm Na3zmvFds94L+886d+PGjcEMGH09yn0+cp5xZ5NQv1le8F61iTt3vYp9uYrn 4mbYWNTT5ft9UI5Yu3ZtkLt0c5th59m8ZrMxXhreC8d+9+7dMytXrgzqPPU9 133h/b48nkvVdiXluNthfxfmDt6rNpqrG/X3XtXzCdSvnNTX574f+ppTpf48 t1cha+e16r2w+65fvx7Md9EsUJ/uU+we15suVO9UpX3uKoH3qk1cD5v+5n2v zRd6r0uq6wvXvOTpP81hUU96uIYlS+el4b2w+/bs2WP2799vbt++PZ3ztLUu ejxuf18Wz6P2r+PmstuaZvb0ygveqzZ6j4/72y9aHUee6LH3X1vRkPvs5wTt iWYZH8hxmj2m2Mj257l1m1k5Ly3vWffZNS1ZssSMjo4G7tNatRepx6HHY3vb s9jri5tT5OaymTldbvAexM1o5m9/ss4zaf8nCuVJtW+qvaM016Lzg1QP6dax uM6TN7JwXprec92nOdadnZ3BbBfNNNO6tWepfsNwnUsaz59y2PXieP2u7z8c 8f66g2zBexA3i5AzNSfRPlBSb3s99F6r3jC9nzYbD4ZjPbunJ0foa7ZuMwvn pe096z7VuCjmGxkZCfb67t69G3hbDk8736nnPmkvj9d8tcB7cHq8I/I9oIo1 nUkojxkXG881HlQOVS5UTNjIuUfq+9Y5BzbWc/f0FCOl0auQxMkLOyO9d+vO eNPX1Dp1LuCrr75qrl27FtTq6Ou2r12xbKsxn/boGs1X+67ThfzAexDXs132 88ebQfGacphzzX3WQ7GI4kJ91tA5UPKhjQ31nq9YTzGdjfXCe3pZOi8r7wnF eAsXLgz2+dSHr70+m+9sJeZT3Upcb2rUc09us1rgPdBn4ri9jirXtiQhJyn+ ayX/2eh78mv9883ylS+Z++9dMm+8d9W8+6N75t33H0znN+2eXlbOy9J7QvGe 9i1Vq6p8p/Kftr7T1rg04j25S7mLpDrNqBx0Wc4ZhsbBeyDi3ivSrs0oI6r/ UZyWhQNf7f+mWbHlf5iuvavM8M2d5tzETnP2epc5fbVz8gzYSzvMuSv7zfCV Q2b0+oC5fP10sOcmbt+92Rbe6+vrC3oSL126FPT22frOuJhPntLrUnGx+kga 6beMgjnT1QXvgYjLCWkPyvfa2gnVwOj9OOnc0rl676UVz5hjQ1vMcM15Qzd2 mDPXusypK53Bua/9FyfPw9OZQI/OSZjtp/4LXUFtSsCl/ebitZPTXL95cdqV cXUqWXpP+c1FixaZixcvBjHf0MWj5sKVY+bSeJ8ZHNta83ynOT62zBwcmR88 H60+p/qMV7X5szATvAdC79VR7xFVnduSFooFlQ9tNi7Z0Psts+jl58z5Wqw3 7T3FemPbgzPPdf5rPedlyamLex/5dI7otpPX2WIWL19g5q95wizY/AXzYueX zOLdXzUrXv+6WX3wMbP+yOOm4/gTZuOJJ1vynvL2isuZwQJ4D0Tc3BbtL/le W5nQfqlydMqxqc4wKTeq9/hVu//SrNv08mSOc3zHZI7zymSOc3asl6/z0qRj 61Izf9m3zXObvmBe2PpF8/LOr5hl3V8zqw78sVnb+w2z4Zj13tzdZ33HPh5Y 8B5Y4vqb6F/PHrlQdbXKKytHKh8Ge3tb/0+z7bVXZuY4xzrNQC3W6/cc66XJ tt0rzXNL/9rM3/h58/yWL5pFnV82S1/7mnml54/MmkO1mO/o42Zj39y8p5oV xdr4DsLgPbDEzbKgr8kPquF4fd9u03ey17zx3jVz+60Rc/VOvxm5ccicuryr NLGe2H1gjXl+8f9tnq15b0Et5ntxe3SuM8l7+tymzwy4DuqB98ASd940Z7Hk j51LuWvXrqC3zfbs2T5127tw5+5EUIsydmMoqFEZHjsyvX8WV4tSRF4/ut48 /9L/NM92fC6U6/x6kOtcV/PeBmeP7+DF+cHes52Dg+dgLuA9sKjGLW5/hPeV fJHzVLev+n7Nr7TzWdyePdX6N9wffu/ujJrN0WuD0/Wc58YOz6o56Rvemqv3 Dp7sMAsW/sAs3PSYWb37r8267u+ZriM/ML1n15kTF181IxMHavHuefPx33+Q 6/l8UE7wHrjE9fFV8fx1n1jvaU6Lerhd77nzWbLqUw8T5yvXpXPl5u3rM+5j /vz55ty5c+bChQvBubTqb9A8F9vDnsWsaqgmeA9c4s5f196f77VVCeu9xYsX B7PI5D3NoHbnkmU5n6VR76V5H9Z758+fn+5h1zkNim3TmtcJIPAeuMTlOgW5 zvyw3tuwYUMwr9mevSDv2XMX8vLe3bu3I52nXGha92F71633tKepWdWa3SLH 2/PY8R6kAd6DMHG5TuY65Yf1ns5WV85P3rNzqPP2nmayRHlPdTNp3Yc8p5xu lPf0WO3ZRI3O6gRIAu9BmLhc5/6RZ7yvrSpY7/X09JgzZ86U3nt6jGvWrAm8 Nzw8HMwsu3r1Kt6DTMB7ECYp16mzG3yvrwpY7x07diyg7N47evRoULsa5T3V 7+A9SBO8B1HE5To5izYfrPfkgD179pTee/v27TOdnZ3Ee5ALeA+iiMt10suX D9Z7quNX/s+n9yZuXY303sDI7tTuQ2fwyX3u/h7eg6zAexCF3BZ3pjgxX/ZY 76l+cdmyZUFNo696TvXaRXlP/e1pXF+9CjpzXXt81HNCHuA9iEN+I+bzg+u9 /fv3m4GBAW/9e1l779SpU2bdunVmaGgosn9Pj5X+PUgTvAdxEPP5w/We3v+V B5T3fMxrydp727dvN93d3dPeC89rsX3rzGuBtMB7kAQxnx+s9z799NPAd5rb ormczc7nbIWr4xeivXdpfyrXf+mll4J41npvZGTEjI2NBXNJ7927F3hee5vy np4PvAetgvcgifc/uh/b00DMlx32PAa9z2tG2c6dO4P8X/g8hjxynTrrIcp7 Ovuh1WsrtnvllVemnWdrOa9cuWJu3rwZPD55Xnt7eh70fNjnxvfvCNoXvAf1 0HkvcTGfvOh7fWXFxnyqYdSsMtV1+qjpzNJ7msN24MCBGXt7zGqBrMF7UA+d t550prXv9ZUVd49PNR2a3dLf35/7Hl9W3gvXsyTt7VHTAmmC96AR4mI+zijK Dtd72ttS7KOeBuU588x16oy+KO/p661cV/lNzWmJy3HqZ9y9PbwHaYH3oBFU w7L91LcjvaevU+OSDe4en3J9hw8fNr29vdO5zjxiviy8d+TIkWAumRvr2f6F qBynu7fn+3cC7Q/eg0ZRXBcX8yke9L2+MhLOdSrOU5ykHKBb15llzJe29xTL LV26dEYNp2K9cB2nPW+WHCekDd6DuaD9vDj3Tbw16H19ZcPtZ7Bnz6qfT/ti ygHmEfOdv3Is0nuXrp9u6nqqZTl48OCsfT031tPjkeP1eG2sh/cgLfAezAXV b8b1su8485T55NOPvK+xbNhcp+oZFfsoBpIztm7dOh3zZbnPp/qVKO+p3mWu 19KMbfVkhPObdl9vYmJiVj2LHjc5TkgTvAdzZeTObuo7c8TNddqYT7HQoUOH glnObm1nFu5Ly3uqRe3o6JjhPJvfVA2n4tioWI8cJ6QN3oO58ulPPzE9F56m nz1HomI+5Ti3bdtmBgcHp/v5snDf0OWDkd67Mj7c8DXUk7dy5crp2dPWecpv 2rMXbA2nu69HrAdZgPegGZLOphW33xnyvsYyEd7nU42jah3lONVF6mxam+9M e69PczijvKe5nY3GeXKe+vXC+U05T/lN1bLYGdThGk5iPUgbvAfNMnb/QKz3 mOWSPuF+PvW1aX9Pntu9e3cw31n/P+29vla8p1575TbdOM/d01P9pnrUbX5T j4d+PcgavAetkNTPrjPbqXNJD3dmp/J/iomUD9T+njx34sQJs379+unet7Tc d+rinkjv6TzauNsoZ6kzJLq6umbEeK7z3D09rVWPQ4/HziRjFidkBd6DVtBe X/fw9+nry4mofKfmlmlPLNiLqzlGOUX1hVv3teq/kxd2Rnrv1p3x6J8/edKs WLEiODewnvM0d9Tu6dmzZclvQtbgPWgV5TPjZrmI0+Md3tdYJsL5TrvXp/09 OUT7ZTt27DBLliwJal5arXVp1Hvymnrq1Z+nPb1w3aZqWMLOU3+61m339Mhv Qh7gPUgD1bEk1bmo98H3GsuCm++07rNnsVv3ySnyjHKN9pyfZt134vz2SO/Z 76s2Ra5btWrV9LzNKOfp57SfF+U8rd86j/wmZA3eg7QYvtWZ6L7Ru3u9r7Es uPnOOPdp30w1I/bcA53vqtoX/Vu1k416L8p5rx1aG9TS6Dzc5cuXT58lFJXX VH+eZrEoDrU1LLpu2Hl2T49YD7IG70Ga9F5amOi+G2/2eV9jWXDdJ2e47tN+ meI7OUYzUNQfp7hLfe6qfVm4cGEQC+rf8qAcpVgs7Dx9rbt3ndl9YI3Z1LXC vLJ2oVnw/LPm+Zf/X7Nr167pfGbYd+G8pu5fvQq2hkXrw3ngC7wHaVKvp505 nukSrvG0+332jD7t7Wnul+orlV9UzKXYS3GYZmSq3lIeVI5Ss6Lnz58/A+0R Pv/S02bB4r8xzy79jvnhij8xP1j3RfPipsdnuc76zo3xbF5T9691aD1al61h wXngA7wHaaPehST3qbfv/sMR7+ssC+Gcp63zVE+A+uHUC27znor9NPtZPpKX FI8pLpOr5Kywx/oHe80P139uFi9ufmKW62x8Z32n+7Exnu5f69B6bK+Cu5+H 8yBP8B5kwYc/eTvo30tyHzNd0sPGfe4cT835cvOeNvaTh+QjeUnxn/KQqjlx HWgZOH3UPNvxuZls/LxZ1vXfpl2n2E6313V0Pdd3NsazeU31pNteBbduE+dB nuA9yAq5L6m/gf2+dHHdF857KsayZ7S7/lP8p1oT14GK1+QxcWxwj3lu0xdm sKDGmte+G/yc6zpdR9dzfaf70/26MV44r4nzIG/wHmTJux/equs+zTvzvc6y EHZfOPbTvpp7dpHyj6rtlKu0B6c4Tf7Snpxc1n+22yzc9qUZvLj9S2b74b8L fk4/r9vp9rZG1PpO96P70/3q/m2Ml6bz9Bh03xbfzz+0B3gPskZ7eXFn9tHf lw1RsZ/d95OHFH8p76gaE/f8PvXUWQ+KvqEu8/LOr8xg8a6vmtf6ng9+Tj8v 1+n2uo6uZ+M73U8WMZ7WrbMHP//5z+v9axbf+c53TG9vr/ffARQXvAd5IPfV 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 1IrvWvQhAABAZmTpNwAAAAAAAGg//n+b4JSQ "], "Byte", Sequence[ ColorSpace -> "RGB", ImageSize -> Automatic, Interleaving -> True]], Image[CompressedData[" 1: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 s2fPjv+7adOm6KWXXor2798fnT59OnabZe/evbHzNm7cGD311FPRnL/8y+ix H/4wWn3HHdHLt9wSHTSvnzjxL/5F9NFHH0V/93d/F2NjQtzX//jmj11uaG4E 6kOTnOfWara7j9ev/O3f/m20Z8+eaNGiRdH8+fNjxym+s36Sq/Q9lg8//DDm b/7mb8Zx9bnnokP33x+tNSy4555ozl/8RTQwZUp07H/9rzhu1M/pGtZ/uK// uW7+fTBzE+pIk5zn5jXr2mcux7z22mux57Zt2xa99dZbqZ6zfpOz/vqv/zrm gw8+iHn//ffHcN7Ehmfvuy86N8Ix477Nhscefjh+HX/+85/HP+/6D/f1N6rP ZOYm1JGmOE89B67z6jhb7NixY7Hr1q9fH3tIvnFdl/Sc9dt7770Xf79eoyTv mtfptPGcGB7hjEEOvHrxYuzVefPmRbt3746v5brPjfvwXn/hmzOnuQSh1wbQ C01xXrJ+pU7Ok2O0R7dy5cro3XffTXWd6znXcdrr08+Id955J+bq1aujXNq7 Nzph/GY5aTgl5xm36ud1ncuXL8d7pepzPHfuXHx93NffaN4K/ZhQR3Bef/P2 229Hy5Yti86cOZPpOsVgSc9Zv+kayoEK9SG6nFm9OhoyjnM5LuetWhX/vK6j 6+m6qn+R944cORJ/zcZ9ii3dfCfeqz6+OdM4D/odnNe/yHPynZyV9J08k3Sd 9VzScYrTxKVLl8ZxfN686Kjq1h2OaV/vpZdGr6HrWf/pz0uXLo127doVf02P rdjSjfnwXn/AnGmoI01x3shzHUW9Z6HX0wuqU1m+fHnsEus7N7azOcw011nP uW67ePHiOC4MD0dHjN/SuHD8ePxzuo6u57pP/33uueei559/Pv7/bsyH9/oH nR2E86BuNNV52n8KvZ5uke9efPHF2HFpvrOxnVzjc12a45KceeWV6LDxW5Jj Dz005vt87lN9i9ynr+vPdp9PMajd48N71YWzFaCONMl57jkJ/Tp37OTJk9Gq VatGfZeWy7SxnfbqunGd5ZT5XJDmvBPPPJP6/Un36fH12WLz5s3x1/Vn29eA 96qP72wFnAf9TJOcp3xmP+/p2XoVm89M+s7NZVrfdeM6y/HFi1OdN7x9e+bP WfdZ3/70pz+NZ7vo62neI89ZTXznJXK2AvQzTXJeskevn85JkB8WGwcpX+nm M5O+s7nMbmM7lyMzZ6Y67+zBgy1/1o35Lly4EC1cuDCu59Tfud5L7u+Ffp3h U85PmYLzoHY0yXkieXZeuzPI5JOsc/aKRv13bj9C0b47f+JEqu+OPPBA29dw vXfCXG/BggXxbE+81x9wnhDUkaY5T2i+tOu9VmfGar6WLx+qfKniRYuulXfO VPNV1G+erFcpyndx/cru3anOG5o7t6PruN574YUXog0bNsSvj81z2roWPR+3 fy/0ewR+EV2ZPh3nQe1oovN0/016z+Y6VXMhx+m/bs2LxbrRvYb+q+91z+bL 65wi+U3zxBQT2f47tz6zCN9l1a+cfPbZjq/l9kM8+uij0Ztvvhl7T2vV3qOe h56P7Vtnb68a+M4Tuvrgg8HXBtAtTXSekB/ccxZaIa/pjHX35+W5tLhvQo51 oToDSHWPbs2K6zs5I2/fxfUr5rN8mvNOb9zY1fWs9/R5YsWKFfHMFs0p07q1 R6l+wmRNS+j3SNPR+bCcoQd1o6nOsygey3Kf/q7T/nX7s72uLRnj2T08+UFf s/WZeftOHP3JT9LrVw4c6PqaWp/qWRTrHTx4MN7bO3/+fOxs+ZscZ7XgDD2o I013notiNpdur2Nzor3u66mnW+cV2BjP3cNTbJRHP0IavvoVodksvVxb69S5 fjqL9vjx43Fdjr5ue9YVwxLrVQPO0IM6gvN6Q/lOu/dnsft8vThP93vFeIrl bIyX3MMrwnfCO39lzpx8nGpiu1mzZsX7euqx1+tkc5zEetXBd4aeehhCrw2g W3Be99icqK1hydN5cpn68dy6FfnA5jTtHl7evhOn1q1LdZ72+PJ6DMV52qdU TapynMp52jpOW8+C88Licx5n6EE/g/O6w/b5qTch+Xe95jZ1n9+5c2dMqxgv b98JX/2KXJjXY+i5qefw8OHDce+ereMk1qsOvjP0cB70MzivO7K8lofzNGNM dY1lx3hCOcw056lnL6/HUE5z9uzZ0aFDh7yxHvt6YeHcWKgjOK87rNfc/gWh OlBbt9mt8xTraC/PrdUsK8YTmrWS5rxzJibL83GUu1WdjhvryeW2htPt1wv9 +24iH5nPVDgP6gbO6w47m0V7d+plkPtsvrOX/Tzd31XbsWbNmjH9eLZWs+gY T17rdeZYu6j2R2cN2VhveKQmVLGs7dcjvxmWNOedmDQp+LoAugXndY/u2Tam s65TnGd9KDd1ek3d29WfoGvYvKbtxysjxstr5lg7bNmyJf6c8MYbb8Tzp5Xv tP165DerAWelQ93Aeb3Taz+fi+7tmzZtil555ZVxeU3bf15UjCd8NZsnnnoq 98fSc1yyZEn8OUGxrfr10vKbOC8cnJUOdQPnVQc7Z3L16tWxA8rOawq5reia TYviO521cODAgTH5TT2/ZP0mMzjD4Dsr/WPz+ynycfU+z2M+BEASnFcddE9X TKMafs2jTKvXLDKvKZTDLLpm06K4bs6cOdFrr70WzyI7evToaP2m8riKb9nT C4vPeUWcla7YXrnutPnvE0Zm2CrnH/o1gf4G51UH6zzVbCqP6TqvjL084Tsn Nu+aTctM83hyXnJPz/YsMHc6LMOTJ5fivOTeeBZ23zz0awP9Cc6rDtZ5jzzy SPyZ19avuD0KReY18zgntlvn6R5mexbUl0gdSzVQ/3ma824cOJDbY6TNeNes B8V0lrRzvUK/NtCf4LzqYJ23dOnSePayPUOhrPoV35zNImo2he1Lt85z61jk d3uOOs4Lh895mkuWx/Vtf4/ruqzzm914MPRrA/0JzqsO1nk6E115vrJrNnU2 Xlk1m0KOUx43zXnUblaDi1OnFuY89bS6vpP/2vk5e3Zl6NcG+hOcVx2s89at Wxft3bu3dOfpDPSyajaFnuMTTzwRO8/Wbuo+iPOqg84NSnPee2vW9Hxt1aS4 9Smhnys0A5xXHazzduzYEVO2844vXpzqvOGdOwt5vO0mVlCNaprzVKuD88Lj c57Ok+3luvoduzEeNSlQFjivOljn6f7/wgsvlO4832zpswcPFvJ469evj1as WEGcV2GuTJ9eiPPcfTnVYYZ+ntAccF51sM5Trb5yfmU7r6iz0X3oDD15z93P w3nV4m3z+09z3rsLFvR0XbdWs919PIA8wHnVwTpPdYrz5s2LaxfLqtv0zpae ObOYxzt3Lj4rXXt61G1WF5/z9PVeruvmNekzhzLBedXBdd6GDRuiPXv2lNaf 5+1TeOyxQh5PszaffPLJaP/+/an9eXqu9OeF5505c3J3nt7PrvOYLQZlgvOq g+s83fuV+yvrTIXTW7aU2qfw7LPPxns61nm+sxWYwxIW7dvl7bxk/QrOgzLB edXBOk/zJeU6zWPRnM0y5m2eXLUqvU/BeKmIx3v44YfjONY6z87b1JxR5m1W B5/zLvfQW4DzICQ4rzrYswN0j9fcMZ2nqpxfGecqHDf3ttQ+he3bc38se56C 9V3auQpyPOcqhMfnPPUwdHtNnAchwXnVwsZ6qlXU/DHVb5ZRu+k7T+Gs8VHe j6XZahs3bhyzl8cMlmpShPOE67zBwcHgzxOaA86rFu6enuo3NJNl165dhe/p aY50mvM0dzrPx0nWrmTt5VG/Ep7rAwOFO0/7uj2tcaQmhlku0A44r1q4ztNe lmIe9S0ot1lUfrPM8xSU09T8FV9eU9/j7uXhvLBormaa885PmdLTdd1zEnp1 lZsrDf16QfXBedXD3dNTfm/Lli1xD5PNb+Yd6yl/WcZ5Ctu2bYtnjbkxnu1R SMtrunt5oX8nTcXnPJ230Mt1lc/Ma08P50En4LzqkcxvKr5TfKS8n1u/mVes p3maac5TXUtevlMMN9c41K3VVIyXrNe0Z8WS16wGRTkv2aPXyzkJOA86AedV D7dnwZ4bq3497YMp75d3rKdzE9Kcp/6FvJynupVNmzaN28dzYzw9H/ldz9fG eDgvLEU5TyTPzmt3Bpl86Z6zh/OgE3BeNbH5TdUtKuZR7CNf6L5gY7289vW8 vXk5nSGkednqu0jmNO0+3unTp8fVruh5k9cMz43BwVTnDU+enMv1NV/a9V6r M2OV40/mQ5PO08xWXUexo+DMBnDBedXEzW/aWE8x0ObNm+O5zG4NZ6/e8/bm 5XCGkGpOly1bNsZ3NqepWk3Fr2kxHnnNavDR8HCq807eemsu19fntqT3bK5T 9ZxynP7r1rxY0uK8ZOzYaQwJ9QfnVZe0WE95zeXLl8c1ALZfr1fvaaZmEb15 6rlbuHDh6Bxp6zvlNO0ZCrZW093HI8arDkU7T+g97J6z0Ao5Uu8d+/PJHne3 308xXjIuhGaD86pLcl9PtYz6bCu/qf5R58raHGcve3tHf/KT9N48c1/pJb6T 79SPl8xpynfKaapuxc6TTtZqEuNVgzKcZ9F7I8t9+ru0/nXXeWl5TBv7EeuB wHnVJtmvp7417efJcWvWrIlnNev/97K35zs3r1vfqY9e+Uw3vnP38FSnqf5z m9PU86Efr5p8fO1aqvOGJk4s9HH13nBp9b1ZNSyKCSfQsw4j4Lxq487gVM5P sZBygNrPk+NefvnlaMmSJaO9bZ16T7Fcmu+OPvRQx65TnlJnQaxcuXJMbOf6 zt3D01r1PPR87JwxZmtWjzTnHa1QjWQr51HXCS44r/qk5Tg1i0x7YHKN/KI8 onq+rffadd/ZfftyOTdv9+7d0WPmZ3TuXyvfaY6o3cOz58KS06wuOA/qBM7r D5I5Tru3p/08+UP7Y6tWrYoeffTReM+j3boWXz96u+fmyWnql1f/nfbwkvWZ qldJ+k6951q33cMjp1lt6uI8cpsgcF5/4OY4rffsGerWe/KJHKP8oj2rp5X3 uu1HVx2KPLdo0aLR+ZlpvtP3af8uzXdav/UdOc3qor27NOd9ZN5bodcmWjlP vQ4TRnr/Qq8VwoPz+gc3x+nznv79qz7Enl+gs1lV56I/q0Yy6S5fP/rpjRvH fa9qUlQ3o7Ns58+fP3oeUFouU/13mrGi+NPWq+gaSd/ZPTxivOqiGs1U5w0P B1+bcJ2n2s7k39v+P3rTQeC8/sL1nnzhek/7Y4rrdA/QbBPVqyneUg+76lxm zZoVx4D6sxwYO+qJJ8b57pX7749effHF+Hv0vc8880z8szrLb/Xq1aM5zKTr krlMPb76EWy9itaH7/qPfnGecpfym1BsJ6zv0lwIzQTn9R/JWk67v2fP2NNe nmZ5qY5SOUXFWoq59DlXMy9VVykHKi855957o5kzZ47h4RkzogWzZ8dx4ooV K6Kf/exno312Sc9Z17mxnc1l6vG1Dq1H67L1Kviuv6i681S3ZXOX+v9yn437 JtCXBwlwXn+SzHPaek7V/avfTX3eNtepmE9znOUiOUlxmOIxeerFW26JVpv7 gnjOQXFe0m1pnrNxnXWdHsfGdnp8rUPrsf0I7v4dvusPNFszzXmaPx16bT7k PuauQBo4r3+x8Z47l1Ozu9xcp4359O9fLpKTFPcp96j6knW/+ZvR8+b+tSbB azt3xl6zyG8WeU4xnX5e19H1XNfZ2M7mMtVvbvsR3PpMfNcf6AyFfnMegA+c 19+43kvmOhVb2bPVXfcp7lNdiTy13ty7fmZ40WGtQbGbi/wmFM+5ntN1dD3X dXo8Pa4b2yVzmfiuf8B5UCdwXv+T9F4y5tM+mnv+kHKOquE8tW9ftMXcuzYb Nhk2GjYYtvzjfxzXn7jIb9qjk+MUz2mvTp6ztaDWdXocPZ4eV49vYzt817/g PKgTOK8+pMV8dp9PDlLcpVyj6knkp/O7dkUvm3vXS4Ydhu2GbYadX/5y3Evn YuceynHqsZPn5E9dR9ezcZ0eh9iuXvic9/6GDcHXBtApOK9epMV81n2Ku+Qj 7a8pFruofgRz7xJ7DLsNu7SX9wd/EMdtLvKb6lGs4xTPyZ+6jt2vs3GdHo/Y rj5cmjYt1XnXly4NvjaATsF59STpPjfnqRhMfrq8bFn0mrl37R9hn2Gv4dh/ +k+xzxS76b8W+U2xnBxn4zldR9ezrrOPhevqA86DOoHz6ot1jnWfG/uJq4sX RwfNvesNh9cNwz/4QeyzJPJb0nH2WtZzruvwXT3AeVAncF4zSPPf5XvvjQ6b e9ebDocMl+65J/ZZEus36zg8Vy/c36HLReO8I+Z9keTakiXB1wzQKTivWbj3 ssvTp8f3rsMJrj722KjTXK+5pN0bQz836P69kPw85HLhz/5s3HtEvGPeJ7wH oN/Aec3lku/z+zPPeD/zc3/rb+zvTjlq9Zu8+uqr0c6dO+Oz7Z9++ukx6Gs7 duyItv7oR9GOL30p2nfzzWNyAsoTJD8T8f6AqoPzmgt9V81BDlL9kebGLV++ PJo9e3bsNc1ffemll+I5qpotoN5Li87RkPN+tnhx9OTdd0cP339/9NgPfxg9 //WvR7t/67eii+ZryTrdZP0S7oOqgfOai2+O4o0DB4KvDfJBPpLnFhtv6Txh nZOh2QJuLa+7ZyuH2dpey7tbtkQX7rsv5pDx3hrz33n33BPN//GPY1+qb8XX p0L9LlQNnNdcqj4vH7pHjtGcOJ2dIc/pLKdkz6Z1nO1dsfW56kMR6kkRb5tY 8KzxnOXcCCfXro02b94czZs3L3r55ZfHzCPwzd/BfRAanNdchm66KdV5odcF vaG5OYrrdL6vYrC0+QSu56zflPtUD6bbkykubdgQndY5wiMMj3Bl48b45zSj QF6V+zSPPDmjgPkEUCVwXjP52NyP0nw3NHFi8LVBd8gtq1ativfpNDvH5zp3 Fp11nOYPyI9CDhM6F0Nc2Lo1OmEc53JSuc7nnhudW6DraCad9gp17qJm9tgZ 43Ifs3mgKuC8ZqL8ZZrzlO8MvTboHPll2bJl8XkX7uydpOtsPOd6zvpNc+Xk KqFZc5bzO3dGQ8ZxSc4Yv+nn7Cw66z/NI1dOVbPJ3bOkmMEKVQDnNZMbg4Op zlMtZ+i1QWcoppPv0mK7NNe5nnMdZ2erau/P5cyOHdFR47gkpwcGRuewCtd/ mkWuNal+Rl9zz9rAexASnNdM1I+Q5rxz3/xm8LVB++hsJ+UyFWMlz9OQ79zz NPQ99kwN13Ou33ReRpJh8145YhyX5JRxnv25tDnk+rPWtnXr1tEzFeVed58P 70HZ4LxmolmJac5Tn3rotUF7KI+p/TM5JOk79+xE6zob17muS3NcmvMOG8cl OfnMM6Pfk+Y+G/c9//zz0caNG+OvKwa0+3x4D0KA85rJO3PmpDrvrRkzgq8N WqO4SbnDNN+550W5sV2nrmvlvBOO81xc9+lx5b5nzPfu2bMn/rrWY72nWBTv QZngvGbytvZkUpx39cEHg68NspEn1IuQzGe6e3d2387Gdm4OsxPfZTrvqae8 P+PGfXp8fe2JJ56IDh06FH/d7vER70HZ4Lxmwvkw/Yv2yNSDl+Y7t07F7tt1 E9u5nN23L9V5Q4sWtfxZ13ua//L444/He5D6unzs817o1xjqC85rJuenTEl1 3vsbNgRfG/jR3BPNhU7LZ1rf9ZrLzNN5yVynZng+ZeLDs2fPjnrP3d9z6zlD v9ZQT3BeM/HNl1YPQ+i1QTryhnKabj+CrVdx85l5+i4P5yW991d/9VfxnE7r Pbu/5/YxkOOEosB5zeTUbbcxa7OP0P1fNSvnz5+PnVeW7/Jynus95TY1p0y9 6/Kevqa12z4G9vagSHBeM2G+dH+hvoSVK1eO28Oz/QhF+S5P57nee+GFF+Lz +XR+kTyu/T55O62WM/RrD/UC5zUTn/M+vnYt+NpgLLrvK6cpXyRrVmw/QrI+ MxfXHTgQ++70xo2pzjs2d278922zf3/MOcOpoaHokUceiY4ePRqfXatZnW5N CzlOKAqc10xOTJrEmQp9guZ36dyCZE7TrVmxvrtoYibrFnnm1Nq1Y1B/geKz MRh3pTmtCOwMF80ue/7ee6Mnv/WtaKN53+34whei/X/wB9Ghf/2vo6P/5t9E Z3/wg+jyPfdEV8z3/Hz16nhuEHvNkAc4r5mk+Q7nVQ/FOEsWLIhO790bvf/q q9H1rVvjM1zfWrMmOm9ivzNPPBGdmjcvOjbiEeuUsvzVi/dev//+aJZx2jrz vtss7xl2G/YaDhgOGg4bjoyQnAsrNENBvaZyInl5aAec10xwXjXQmU66X6tH RPfuK9Onj97P9fs4cPPN0cPGDVfM3102XDScN5zRvMv7PjnXZyiA73pxnuu9 +XffHa344hejDea5bjHsNLxi2G94w/Cm4z3fezbJ8OTJ0cWpU6N3zWeFGwcO BP8dQ7XAec0k7V6hfGfoddUV3Xut13Q/9vWKuOg+v/Ff/stoxT33xL67ZLhw 3ydnlevs1pMjvgsR4+XlvNXG54v//b+Pfmae6ybDdsOuNmO9dtGZkOpHlQM/ unQp+HsBwoLzmof+3XN2XnEobtM8U826Gb799q7u09Z5y77//Wjvj36UGuMd D+i7Xp1nf37QOO+RH/4wWmuea56xXhb6vIH/mgvOax6cF5svqq1QTrIXv6Xx 5mc/G80yvruYEePZs+zy9t3QY499WuNi/n+qsx54YHw9TJu43nvYsPLXf300 1rP7evsMrxsO5ey80fjvppvi/UDll0O/h6A8cF7zwHm9c31gIM5RKm+W533Y jfG2f+Ur0U/vvrutfTzrkKM/+cmoV44vXTqmZnN4587x/QMHD7bsWTg/NJTq vKMPPZRLT8SqVauitWZ9B158MXr9qaeio8uXRyeWLIlO/J//E535v/83Ovu9 70Wn77gjOj15cu7eE8rpv7dmTfD3FJQDzmsePudxRnrr101xga/PI2/nrfv9 349W33tv9PbcudFbxgFvPftsdHnjxujC+vXRBeOv86+9Fve6yUl59Z/78MWD eVxbZ+s9a57bQeNf9eudOnUq7lO3szjTetSVPxbaH718113xe1dxWy+vufb8 iPnqD85rHr4z0nGe//XS+fFF+U1z4PTaKz+qe7hqXd7fti16adOmeC6lO3PF 7cfLc9ZKSOftNP7W3Ok33ngjOnz4cHz+gmaS6Tm6PertzGXRHp11YTceVH6a fb56g/OaB85r/3Vqp76yXXQt1bWM9pNl3Ft1b1e+7/XXX4/v93aupp25ohlj dXGeeu4XLVoUP1edrzdk4ladlaQeez3f5FyWTn+P2m/tJD5Xjp9ev/qC85oH zsvmw6NHe4rrtMen11Ju0z6RrtfJ4+u+rphmYGAgjnms85Tns3M1856pGdJ5 ymfOnTs3OnDgwGh+U3M49Xd6vopv8zpnSDF0O79beY85fPUE5zUP3YfT/p0r Bgm9ttDonPhO82H6ftv/1anf0rDO04xNzaG05+PZWdKjc8ZK8l3RztO8zVmz ZsXxnvKbR44cGbOnp/g277nTcp9v5qz7GZD9vfqB85qHzkLHeWORq3znK/lQ 3WYRZ+xa52kGs/bv5LyQe3lFO0/MnDlz1Hl2T+/cuXNxTGvP1sv7rAX5TL/D rN+xcqKh35uQLziveeC8sSjubbfnQLFB0f3M1nkLFy6M9+2S9Stl7+UV7Ty5 zdxHYudpT+/NN98cV8dShPMs8lpWDM/8snqB85qHz3mq+Q69trLRvJR2XafX rYw1WeepllE5PjnPngsbon6laOfp7Ng55vfgOs+eJ6vn2mntZjfovZ+V4wz9 PoX8wHnNQ7UVaf+29fXQayuLdvJa9nO+9vjKXJt1ns5VVV1HFZynmStpzrtg vNTrtW3dpv6r52trN63z7FmyRTpP74esGl161usDzmseTXee8pLtzAlTfV+I mnXd01WjuHXr1ujll1+uhPM0cyXNeXn0w+/evTtaamLodpzXbb9Cu+8LX/2S zmoI/b6FfMB5zaPJztPeTDt9Wsp5hlqjdd7g4GA8o6TuztuyZUv0zDPPBHee UEzve0+wr1cPcF7z8O3Zh7zPl4HuWa1qVfT36l8MuU6b21Sv2nPPPVd756n3 XjM3Q+Y2Lcpx+j4TKRce+j0MvYPzmofqM9P+TZdVoxGCdnwXz52qwPwN6zzV 6M+ePbv2zluwYEG03XzOCFnD4uKra1Lek369/gfnNY+mOa8d3+kzfFXuZ9Z5 qs1X7abq9kP3KhTlPFuzuX///mC9Ckn0PvC9X3SeRuj3B/QGzmseTXJeO76r Wk7XdZ7mL2u/K3RPelHOU3z39NNPj3FeWT3pWfh6F1TXFPr9Ab2B85qHb95g ETNFQtKO76roedd58oJ600PPHivKearXVJ2OdV5Zs8da4ZtJG+c3mcPZ1+C8 5uHrQwpdu5En/eo7YZ2nGkXd6+fNmxc7Ljljut+dpzhOczb37t0b+04kZ0wr rlWMq9chjxnTneCrZdEcntDvEegenNc86u48zc7sV99ZbL+CZm1u3rw5znGG PEuoCOfZvjwb47k1m8mzhOy5CmX5Tvjym8xl6W9wXvOos/NUd9lqXn7VfSds rKdaRcV2qm1UTjPUnl7ezlOMp/h1165dqXt53Z4Zmye+/KYgv9m/4LzmUVfn 1cV3wt3TU/2G5rGsX78+2J7esTlzUp13zjiqm+vZPnTrO5vXTO7lhahfcfHl N/vlfQTjwXnNo47OUz6zLr4T7p6e8npynd3XC5HfHFq0KNV5Z/ft6yrG0zlJ e/bsSc1r6jw9Pa+8z4vtBl+NM/3p/QvOax51c14/16tkYff0lNdTfu+VV16J Vq9ePSa/WVasl6fz1q1bF61cuXJMjOeemxdi5pgP1TJ76zcr0s8JnYHzmked nKd7Uqtzzft1jqib37SzWJ588sm4j9vWb5YV6+XlPK197ty5Y2o1tY+nGO/Y sWNxvabOhg/Vo5Ak7k/3vL/q1tvTFHBe86iL8xS71dV3IpnfVMyjvKC8J8+5 sV7R3svDeVq7zgxSH7qb07Q9eW6Ml6zXDOU84TtzqonnTdYBnNc86uA89Uhl ua7ffWdJ1rKopkN+UI2/YqGy9vXycJ5qVpTXdHOadtaY3cezMV7o2hUX3xnL 9Kf3JzivefSz83TGmW+OjEtd+obTYj3tc6nGX2cuKNYrI8fZq/PUYzgwMDDG d4rxbA/6yZMn4zjQ3cerQown5DVfPqFqc+ugNTivefSr8+JcZquzgMy9qW5z gJOxnva55Dqdo75t27Y4Lio6x9mL87R398QTT4zzna1b0R6fetBtvlbPryox nuXK9Omp7zf1MlDL0l/gvObRb85rN7aTD+tYV6B7vjuXxc7eVHynWG/NmjWj Oc6ivNet8xTfyXduzYr1nc1p2roVPR/bg+7OXamC81Qb7HvfEev1F/3mvBuD g/G9OYnui6Ffy36hX5ynHnN9vm5Vp2J9V+dzrJM1nOpbU52HPKdYT2cOyRtF ea9T5ylPqX6EtHym3cNTnab6z21OU8/HztasUoxnOT9lCrFeDeg357XqO06i c0B1j3fRfVT1DS7vmc/KaS611Ol+WmXn6d6h3KSvVi4NxYB1/8zjxnrqV7M5 TvUsyHHq3VM8pZipCO914jzVoqjGRrnXtHym+hLsHp7qNLVWPQ+b03T78ark vKxZZG/NmBF8fdAedXdeGSgOSXo1C31eTDpXKC83JnYt6Mxun09C9W3ruSo/ pHW1E9O5r3tdalXawa1nsX3qqm/UHpj8Jpfo3KEN5n0k9+TpveOLF6c674xx rft9mimm/jvlNNvxndZn6zTd/vOqxXgWfYb2vR+r8JkRWoPz+gc996x4td24 NOSZscpNy1NaQ9b9oxXDkyfH88ZC//spm7Q6Tu2ByRvyh1yydu3a6NFHH412 7NiRm/dOPPNMqvOGzXtNf684U/PE1I/gzhRL853tw9PPad3uHl4Vc5ouygd5 P4PVPL+eJyFzwf3mvFZ1e+DHuvKkZ27u+e98Z4xD5UBfrld/lxarCrnYdXOe vzPFdlcffDD4v9mQuHt7ad6TT7Rftnz58mj+/Pmxg3r1ns95e4wDFpsYUH3y 9oyENN/Z/Tsb3/Wj7yxZ9VR4rz10D9FneN1HyvZfvzkvtDfqwLEKrKEblPts YmyXxO5zuTUtad5Tfci+ffvi+hadzap6Ep1Zp5qRXpy39Uc/iv7q3nujh+6/ P1r44x+P5jFd19l+c/XfqR/B1qu4+Uzru2TNStWdp71j33kLgs9lrdG/Y/t6 6bXUZ+Wy9uT7zXl6bZQXS9snO3XbbcHvy5Avun8obixqb7NfaeU95TTlNtW0 qP9NsdbGjRujZcuWRebfbOxBnU2knKT8pJxj0nP6mv5O3/PCY49FS+++O/pL 47v53/9+9OTv/3707M03RzvMv8ek69xcpmbG6PG1Dluvkua7KtasZJGV47Qo HmSPLx39e077t657e9H/1vvNed2gXEMyN6eaibS8XFbtSSf1FdCb5xTTqX6T GnA/bi2n6z1b16L6TZ1Dp35v5RQVaynmkos2bdoU9xIsWbIknoGpupOZM2eO QV/T3ylvufR//I9o6Ve/Gq0wv5tV5ncknjO8ZP7NpLnOxnZ6XD2+1qH1aF39 7juLbyZZEu1baw+bz22fkuY8F9X5FfV5oQnOKwPNJ8rqdUji2wvT77ppnlVu Q8/V9ozgufZJxnt2f091/+p303wWxWyKsWzMp/jNuk+OUg5SvnJjtSSbvv3t 2HGW1SO8bOI+/bzrOl3fje30+FqH1qN1pe3f9ZvvLO16z6I9LM2m1vu8yXl6 /Rtv9/NC3nOVcF5/4XpT/25cXyZzvll7DqHQe1gxnPY79ByY0ds7ad5Tn5v6 uzW70s5oUc+6dZ9qJxWHKfeo+hLtuwnrQOtBy5b/+B+jNeb3Z3ne8IJhzwMP xD+v6+h6rutsj7weX+vQerSuuvjOohiul8+m+rcqD7r9SqGfU9Fk9Tr6Piso N5fH/QLnNQcbi176n/8z9X11ZvLkzPpLF/nVF6vqvem6OfTzbgKu92z/npvr tGeraz/Nuk+948o9ylPylY3/5DChuM2y/Tvfidaa98iLDusM+8xnF/28rqPr WdfZfTs9ru2903qS/Xf97juLYjb1z+T5+TDZ96u+9+S/tU5yS72Q/HydRHuX afeJvHvLVBcb7+/3UO+C85qHLx8jj4VeG3RP0ntuzJd0n+IvOyPM+k91lXKX YkB5TLMwLbv+6I+iDeY9IjYaNhk2Gw7OmhX/vK0FtXGd6zo3tquj71x0/69i fqWO6H7VTV8IzmseOK/epMV8br5TLlKuMXkOkeIz60CL6k/E3v/8n6Nt5j0i tht2GF4yHH/kkfjndR1dT9fV9d08Zl1jOx/x/Dzzb4w68mLRZ4tu5mjgvOaB 8+qP67009yn+cv2neZfWgao3kcfs3E5x8L/8l2iXeY+I3YY9hlcMZ+bPH+M5 N65zXdcU3yVRXlC5OPyXH8pvKp7uttYN5zUP1UGlvZdUMxp6bZAvae5TjtHu 97n+U02l3KVeAnnMojzl0He/G+017xGxz7B/hIsLF456TtdL5jCb6ro0VJ+v z5uqV/HNeYds9Nr12ruO85qHr2ZK/w5Drw2Kwec+6z+5yjrQetDl9J/+afS6 eY+INxzefuKJ+OfttXBdZ6j2RZ9BFbdYF9Y9JrRzgzuZSagambx6O3Be8/Cd f6k+gtBrg2KxHkr6z3Wg9aDLue99Lzpk3iPiTYd3nnwy1XO4Lh/c2kn1RKTV TKr3p5NzXbpBzsmq25S3x52/NjiY+dzaiXV1T8q79hvnNQ/fDAR9/gq9NigH 101JB7pYH57/sz+LDpv3SJJrS5aMu07o5wb9QdYZmd3Wp7QDzmsevhkI6gcK vTYIQ5oDXS5OmxYdMe+RJHJe6LVDf5J2plmv9SntgPOaie/zVeh1QTUJeeYi 1JPkeyqP+pR2wHnNxDcfgTm4kAbOg7zRXJm861PaAec1E19tWJPn3oIfnAd5 Y+teyn5cnNdMfDVTzMeENHAe1AWc10zUf552D9Nc99Brg+qB86Au4Lxmwj0M OoH3C9QFnNdM7P5xEp0DFHptUD1wHtQFnNdM1AOTdg/T10OvDaoHzoO6gPOa CWcrQCfgPKgLOK+Z+OZMq1cm9NogDN3MYcF50G/gvGaiPrw056lvL/TaoBza nbkpLqTM27Szx5i1Cf0EzmsmH1+7lj5zc+LE4GuD4rBu0nlBw8PD0auvvhrt 3LkzWrduXfT000+PQV/bsWNHNDg4GO27665o3803jzlTQd7TuQquG/EfVB2c 11w0UzrNe0XOd4UwyEE6+1WOk89mz54d/3fTpk3RSy+9FO3fvz86ffp0dOrU qVH27t0bO2/jxo3R0lmzoofvvz967Ic/jFbfcUf08i23RAcnjD0/z57BwPl5 UGVwXnNh/lj9kY/27NkTLVq0KJo/f37sOMV37pl57jl5OjvWnh/rcvW556IL 990XHTLeW2tYcM890Zy/+IvohTlzorfffjuOG/Vzrv9wH1QRnNdcmD9WX+SY 1157Lfbctm3borfeeivVc+756PZM9A8++CDm/fffH+XKypXRWeM8cW6EY8Z9 L61aFS1YsCDaunVr9POf/zz+edd/uA+qBs5rLtSf15Njx47Frlu/fn3sIXv2 q3Vd0nPWb++99178/devXx/HhRUrotPGc2J4hDOGq4OD0TvvvBN7dd68edHu 3bvja7nuc+M+vAehwXnNxTeL5eqDDwZfG3SOHKM9upUmJnv33XdTXed6znWc 9vr0M0IOE1evXh3l7LPPRieM4ywnDacMV4zj9PO6zuXLl6O1a9dGjz/+eHTu 3Ln4+rgPqgbOay6aM5bmPJ3dGHpt0BnaU1u2bFl05syZTNcpBkt6zvpN11AO VFy5cmUMw8uXR0PGcS7HDRdffjn+eV1H19N1Vf8i7x05ciT+mo37FFu6+U68 ByHAec3lvTVrUp2nMxdCrw3aR56T7+SspO/kmaTrrOeSjlOcJi5dujSOE8Zh RzWvzuGY4cKBA6PX0PWs//TnpUuXRrt27Yq/psdWbOnGfHgPQoDzmssNc7+i L72/UZ3KchODySXWd25sZ3OYaa6znnPddvHixVSOL1oUHTGOS3Ju//7453Qd Xc91n/773HPPRc8//3z8/92YD+9BKHBec1EfXprz6NHrD+S7F198MXZcmu9s bCfX+Fznc1ySIeO8w8ZxLnLeWeM8+z0+96m+Re7T1/Vnu8+nGNTu8eE9KAuc 12xO3nprqvMUA4ZeG2T83k6ejFatWjXqu7Rcpo3ttFfXreuynCfO7ts37nuT 7tPjq7Zl8+bN8df1Z9vXgPegbHBes9FM6dR+hYGB4GuDdGy9is1nJn3n5jKt 77p1XTfOS7rP+vanP/1pPNtFX0/zHnlOKAOc12yuTJ+e6jz1MYReG4xHfli8 eHGcr3TzmUnf2VxmL7Fdr85LxnwXLlyIFi5cGNdz6u9c7yX390K/zlBfcF6z eXfBAmo3+wj137n9CGX4rhfnJb134sSJeG6LZnviPQgBzms2NwYHqd3sEzRf Rf3myXqVon3Xq/OS3nvhhReiDRs2RGfPnh3Nc9q6Fj0ft38v9GsO9QPnNRvf mULUblYL+U3zxBQT2f47tz6zSN/l4TzrPbumRx99NHrzzTdj72mt2nvU89Dz sX3r7O1BEeA8ODFpErWbFUdnAKnu0a1ZcX0nZxTlu7yc53pPM6lXrFgRz2zR nDKtW3uU6idM1rSEfu2hXuA8oHaz2iRjPLuHJz/oa7Y+syjf5ek86z3VsyjW O3jwYLy3d/78+djZ8jc5TigSnAear5nmPNV0hl4b/CLu6dZ5BTbGc/fwFBvl 1Y+QxdGHHkp13vmhoa6up3XqXL+nnnoqOn78eFyXo6/bnnXFsMR6UAQ4D3R2 UJrzhidPDr62pqP7vWI8xXI2xkvu4RXtuyKcJxTbzZo1K97XU4+99vZsjpNY D4oC58FHw8Opzhu66SbqWAIjl6kfz61bkQ9sTtPu4RXpu6KcJxTnaZ9SNanK cSrnaes4bT0LzoM8wXkghiZOTK9jGRwMvramovv8zp07Y1rFeEX6rkjn6bmp 5/Dw4cNx756t4yTWg6LAeSDUg57mPJ2xF3ptTUX3eM0YU11jyBivSOcppzl7 9uzo0KFD3liPfT3IE5wHwnd+LPNYwqFYR3t5bq1miBivSOcJ5W5Vp+PGenK5 reF0+/VC/06g/8F5ID7Yvj3VeTp3IfTamoju76rtWLNmzZh+PFurWWaMV7Tz dOaCzhqysd7w8HD8dcWytl+P/CbkBc4DoVoV1aykeU81LqHX1zR0b1d/gnq3 bV7T9uOVHeMV7bwtW7ZEAwMD0RtvvBHPn1a+0/brkd+EvMF5YFFvAr3p1UD3 9k2bNkWvvPLKuLym7T8vK8YTR2bOTHfeiRM9X1vPccmSJdHrr78ex7bq10vL b+I8yAOcBxbfuUIXp04NvrYmYedMrl69OnZA6LymSPOdyOPaiu901sKBAwfG 5Df1/JL1m8zghF7BeWDx7enRp1cuuqcrplENv+ZRptVrlpnXLNp5iuvmzJkT vfbaa/EssqNHj47WbyqPq/iWPT3IC5wHLr550+Q3y8M6TzWbymO6zguxl1e0 88TMmTNj5yX39GzPAnOnIS9wHrj4Zm9qDnXotTUF67xHHnkk3s+y9Stuj0KZ ec0ynac9PduzoL5E6lggb3AeuGTmN69dC76+JmCdt3Tp0nj2sj1DIVT9yoXh 4VTfHXnggVyub/vSrfPcOhb53Z6jjvMgD3AeJPHmN809OPTamoB1ns5EV54v dM2m+hHSnKf+hTyuL8cpj5vmPGo3IW9wHiTx5TfP3nln8LU1Aeu8devWRXv3 7q298/Qcn3jiidh5tnZzyDwmzoMiwHmQxJffjPvTzb029PrqjnXejh07Yuru vO3m/aYa1TTnqVYH50Ge4DxIw5ff5BzZ4rHO0/3/hRdeqL3z1q9fH61YsYI4 D0oB50Eavv501bIQ6xWLdZ5q9ZXzC+28swcPpjrv2Jw5uVxfZ+jJe+5+Hs6D osB5kIa85stvvm3ud6HXV2es81SnOG/evLh2MWTd5tl9+1KdN7RoUc/XVj+C zkrXnh51m1AGOA98+M7UU96TuSzF4Tpvw4YN0Z49e4L25xXpPM3afPLJJ6P9 +/en9ufpudKfB3mC88DHjQMHvLEeZ8kWh+s83fuV+wt5pkKRznv22Wfjs4Ss 83xnKzCHBfIC50EWxHrlY52n+ZJyneaxaM5mqHmbZ0wslua844sX93zthx9+ OI5jrfPsvE3NGWXeJhQBzoMsiPXKx54doHu85o7pPFXl/EKdqzC8fXuq8048 80xP17XnKVjfpZ2rIMdzrgLkCc6DVvjO1YtjPeaRFYKN9VSrqPljqt8MVbtZ lPM0W23jxo1j9vKYwQJFg/OgFe+tWeON9S5NmxZ8fXXE3dNT/YZmsuzatSvI nl4RzkvWrmTt5VG/AnmC86Adhm+/3es9zW0Jvb664TpPe1mKedS3oNxm2fnN 01u2pDrv1Nq1XV9TOU3NX/HlNfU97l4ezoO8wHnQDln7eqduu416lgJw9/SU 39ti3LN169bR/GZZsZ7clqfztm3bFs8ac2M826OQltd09/JC/06g/8F50C5v zZjh9Z7+LvT66kYyv6n4TvGR8n5u/WbRsV6ezlMMN3fu3DG1morxkvWa9qxY 8pqQNzgP2kWx3Mlbb/XOJFMsGHqNdcLtWbDnxqpfT/tgyvuVFev5nHd648aO r6W6lU2bNo3bx3NjPD0f+V3P18Z4OA/yAudBJ7y/YYM31lN9JznOfLH5TdUt KuZR7CNfDAwMjMZ6Re/rnVy1KtV5qm3p5Dqal62+i2RO0+7jnT59elztip43 eU3IE5wHnXJx6lSv9zh3IV/c/KaN9RQDbd68OZ7L7NZwFuU91Wf26jzVnC5b tmyM72xOU7Wail/TYjzympA3OA86RfOnhyZO9HpPvQ2h11gn0mI95TWXL18e DQ4OjvbrFeU9r/N27mzr59Vzt3DhwtE50tZ3ymnaMxRsraa7j0eMB0WA86Ab ri9d6nWe9vY+PHo0+BrrQnJfT7WMqmmU31T/qHNlbY6ziL09n/M0h7Od+E6+ Uz9eMqcp3ymnqboVO086WatJjAd5g/OgW7JynHH/AjNaciPZr6e+Ne3nyXFr TFytWc36/0Xs7WmWdDfOUx+98plufOfu4alOU/3nNqep50M/HhQNzoNuUb2K 3ObznuZTh15jXXBncCrnp1hIOUDt58lxL7/8crRkyZLR3rY8ved13sGDqd+v PKXOgli5cuWY2M71nbuHp7Xqeej52DljzNaEosB50AvKYWbt7TGHOj/Scpya RaY9MLlGflEeUT3f1nt5uG9o7txU550fGhr3vbt3744ee+yx+Ny/Vr7THFG7 h2fPhSWnCUWD86BXsuZxiusDA8HXWBeSOU67t6f9PPlD+2OrVq2KHn300bi+ JY+6lqMPPdTSeXKa+uXVf6c9vGR9pupVkr5T77nWbffwyGlCGeA8yAP1KGTV tKivL/Qa64Cb47Tes2eoW+/JJ3KM8ov2rJ5evOdznv5OdSjy3KJFi0bnZ6b5 Tt+n/bs032n91nfkNKFocB7kxdk778z0HrOo88HNcfq8p30y1YfY8wt0Nqvq XPRn1Uh24rwjDzwwxnXbf/SjaMD8V2fZzp8/f/Q8oLRcpvrvNGNF8aetV9E1 k76ze3jEeFA0OA/yQn17vtlksfcmTmQ+WU643pMvXO9pf0xxnfyi2Sbqf1O8 pR521bnMmjUrjgH1ZzlQflIMNi6+M1/T3201jlttvLf07rujvzT/f+6f/3n0 5B/+4WgOM+m6ZC5Tj69+BFuvovXhOwgFzoM8aVXTor+jdy8fkrWcdn/PnrGn vTzN8lIdpXKKirUUcyn+0sxL1VXKgcpLau7zzJkzx6CvLVq4MJr//e9Hi77x jWjpV78arTDx+irze3z+llvGeM66zo3tbC5Tj691aD1al61XwXcQApwHeaNY Lst7igU/MvfB0OusA8k8p63nVN2/+t3U521znYr5NMdZLpKTFIcpHpOn5Kuk w8SrL74YPWd+Z0nWjjjPes7GddZ1ehwb2+nxtQ6tx/YjuPt3+A7KBOdBEahm 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 AAAA6B/+f9xX6Rk= "], "Byte", Sequence[ ColorSpace -> "RGB", ImageSize -> Automatic, Interleaving -> True]], Image[CompressedData[" 1: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 /u7vWjq75Gy0ubF5HuXdngf2eB87AHQjtMxTT4rbn+J7PD6k5drf/u3fZtr/ xf33ZJ6c7js99/m+nxMAdCKkzNP+A7fGC6knxbLpww8/jK5cuRKdOHEiGh0d jfbu3Rs9//zz8+htR44cicbHx6NLZy9F/T/fH/U37nX90PW5XHTz0/dzBYAs IWWeuy6nPkzf4ymDMuiDDz6IM055tmzZsvi/w8PD0auvvhqdPHkympmZid56 6605k5OTcebt378/2rRmU7T00aXRsj9dFq34/RXR2l9aG21sbIyeu++56MPv fhj9zd/8TfTxxx/Hkvnn+7kDQFJImef2ana6jterPvroo+j48ePR2rVro1Wr VsUZp/rO8klZpY8xP/jBD2J//dd/Pc+1kWvRa32vRYcfPRy9+OiL0VN/9lS0 9P8tjTb+z43Rd77znbhu1OfpMSz/yD4AVRVS5rnzmnXdZ66MmZqainPu0KFD 0bvvvpuac5Zvyqw7d+7Evv/978du37495/WNr0cn+k7MmeybjEYfHY0ODByI Vq9eHX8fv/vd78af7+Yf2QegikLJPO05cDOvjmeLTU9Px1k3NDQU55Dyxs26 ZM5Zvn3ve9+LP17fo6SJJRPR8b7j0Xjf+JyJvonoO299J7p582acqytXrozG xsbix3Kzz637yD0AVRBK5iX7V+qUecoYrdENDg5G77//fmrWuTnnZpzW+vQ5 ogyT9957L3Z9+np0rO/YPGN9Y9H4X45H77/3fvz5epxvfetb8Vqp9jm+/fbb 8eOTfQCqiMzrbVpT27x5c3T16tWWWacaLJlzlm96DM2BivYhmukD09Fo3+ic o31HY1PrpuLP0+frcfR4elz1vyj3Lly4EL/N6j7Vlu58J7kHwBcyr3cp55R3 yqxk3ilnkllnOZfMONVpcuPGjXlOD5yOXu179R7nXzkff549hh7P8k9/7u/v j44dOxa/TV9btaVb85F7AHwJJfNmn+sc7T3zPZ7FUJ/Kli1b4iyxvHNrO5vD TMs6yzk33775zW/eY+yJsehI35E5lnlvnnxz7vP0OJZ/ln367/bt26OdO3fG /9+t+cg9AD6Fmnlaf/I9noVS3u3ZsyfOuLS8s9pOWZOVdWkZ57p2+dq8vHO9 c+WdeR+blX3qb1H26e36s63zqQa1NT5yD0CZQso8956EXj137M0334y2bds2 l3dpc5lW22nNrdusM5fGLqXm3fjT45mfk8w+fX39bnHgwIH47fqz7Wsg9wD4 EFLmaT6zl9f0rF/F5jOTeefOZVredZt15uyOs6mZd2bbmbafa9lnefvss8/G Z7vo7Wm5xzwngLKElHnJPXq9dE+C8mHDhg3xfKU7n5nMO5vLXEht55rcMJma edOj0x19vlvzXb9+PVqzZk3cz6n3ubmXXN/z/X0GUG8hZZ4k787r9Awy5Umr e/aKpv137n6EIvNORpeMpmbelfNXOn4MN/cuX74cn9uisz3JPQC+hJZ5ovOl 3dxrd2esztfKmg/VfKnqRaPHynvOVOeraL95sl+lqLy7eulqat69+pevdv1Y bu7t2rUr2rdvX/z9sXlO62vR83H37/n+GQFQTyFmnl5/k7lnc53quVDG6b9u z4uxbHQfQ//Vx7p38+V1T5HyTeeJqSay/Xduf2beedeqf2XimYkFPZ67H2LF ihXR66+/Hueexqq1Rz0PPR/bt87aHoCihJh5onxw71loR7mmO9bdz1fOpdV9 jRz7QnUHkPoe3Z4VN++UGXnmnahPZaH9K+1yT79PbN26NT6zReeUadxao9R+ wmRPi++fEQD1E2rmGdVjrbJP7+t2/7p97mLHlqzxbA1P+aC3WX9mnnknJ9ae SM28CyMXFvW4Gp/6WVTrnT17Nl7be+edd+LMVn4zxwmgaKFnnks1m2uhj2Nz ootd19Oebt1XYDWeu4an2mix+xGyZPWvzJydWfRja5y61++5556L3njjjbgv R2+3PeuqYan1ABSFzFsczXfa2p+xdb7FZJ5e71XjqZazGi+5hldE3qkvM6t/ 5Z1r7+TyNVTbLV26NF7X0x57fZ9sjpNaD0CRyLyFszlR62HJM/OUZdqP5/at KA9sTtPW8PLMO9H+u27PX1kI1Xlap1RPquY4NedpfZzWz0LmAcgbmbcwts9P exOS71vs3KZe50dHR2Ptarw8c0iy+ldOvXgq16+j56Y9h+fPn4/37lkfJ7Ue gCKReQvTKtfyyDydMaa+xjJrPMk6f+X8/vO5fh3NaS5btiw6d+5cZq3Huh6A vJF5C2O55u5fEPWBWt/mQjNPtY7W8txezTJqPDn2+LHUzHvr1Fu5fy3N3apP x631lOXWw+nu1/P99w2gHsi8hbGzWbR2p70Myj6b71zMep5e39XbsWPHjnn7 8axXs8gaT3cEdXp/UB7U+6O7hqzWu3Ll7rlmqmVtvx7zmwDyROYtnF6zG4l9 66rzLA+VTd0+pl7btT9Bj2HzmrYfr+gaT7VcWt6p9ivi642MjMS/J5w5cyY+ f1rznbZfj/lNAEUg8xZvsfv5XHptHx4ejiYmJu6Z17T950XUeKI952mZpzW+ Ir6enuOmTZvi3xNU22q/Xtr8JpkHIC9kXnXYOZMvv/xynAFlzmvKYu7MWwjV d7pr4dSpU/PmN/X8kv2bnMEZFv2c53E+BJBE5lWHXtNV06iHX+dRpvVrFjWv Ka/1v1bImWNZVNctX748mpqais8iu3jx4lz/puZxVd+yphcO1faa6047/70x e4at5vx9jxO9jcyrDss89WxqHtPNvKLX8uT48uOl9WyaJUuWxJmXXNOzPQuc Ox2G5Np4K7Zu7nvM6E1kXnVY5j311FPx77zWv+LuUShqXlPnipXZs5nMPL2G 2Z4F7UukjyUcaWe866wH1XQm7V4v3+NGbyLzqsMyr7+/Pz572e5QKKN/RedH l9mzKbYv3TLP7WNRvts96mRefdn+HjfrWt3f7NaDvseO3kTmVYdlnu5E1zxf mT2bWedsFtWzKco4zeOmZR69m/WnPa1u3in/Ovk8u7vS9/jRm8i86rDM27t3 bzQ5OVlq5pXdsyl6juvXr48zz3o39TpI5oVBPSluf4rv8SAMZF51WOYdOXIk VmbmnXzuZKk9m3L48OG4RzUt89SrQ+bVl/6O3RqPnhSUhcyrDss8vf7v2rWr 1MzTXUFpmXd54nJhmTc0NBRt3bqVOi9A7rqc+jB9jwfhIPOqwzJPvfqa8ysz 87LuRr966Wphmac79JR77noemRcGt1ez03U8IA9kXnVY5qlPceXKlXHvYhl9 m1lnS+tu9KLyTvsRdFe61vTo2wyPO6/JPnOUicyrDjfz9u3bFx0/fryU/XlZ Z0trj3pRmaezNjdu3BidPHkydX+eniv78+pJP89u5nG2GMpE5lWHm3l67dfc Xxl3KvjYp/DSSy/FazqWeVl3K3AOS/0k+1fIPJSJzKsOyzydL6ms03ksOmez 6PM2X9/7eun7FJ588sm4jrXMs/M2dc4o523WG5kHn8i86rC7A/Qar3PHdJ+q 5vyKvlfh1IunUjPv/P7zheSd3adgeZd2r4IynnsV6onMg09kXrVYradeRZ0/ pv7Nons3T6w9Ueo+BZ2ttn///nlreZzBEhY388bHx72PB+Eg86rFXdNT/4bO ZDl27Fiha3o6UzMt866cv5J73iV7V1qt5dG/Ul9u5mlddzGPZT0xnOWCTpB5 1eJmntayVPNo34LmNouY32x5n8K1/O9T0Jymzl/JmtfUx7hreWRePbn3JCw2 q9y5Ut/PC9VH5lWPu6an+b2RkZF4D5PNb+ZZ62Xep/DEsdzz7tChQ/FZY26N Z3sU0uY13bU8338nyJfmM/Na0yPz0A0yr3qS85uq71Qfad7P7d/Mo9bTml1a 5mmNL8+8Uw339NNPz+vVVI2X7Ne0u2KZ16y35B69xdyTQOahG2Re9bh7Fuze WO3X0zqY5v3yrPV0hnRa5qmXM8/MU9/K8PDwPet4bo2n56N81/O1Go/Mq6/k 3XmdnkGmvHTv2SPz0A0yr5psflN9i6p5VPsoL/S6YLVeHut653afS808vT2v vNN52dp3kZzTtHW8mZmZe3pX9LyZ16w/nS/t5l67O2M1x5+cD01mns5s1eOo dhTubICLzKsmd37Taj3VQAcOHIjPZXZ7OBeTe1l78/K6Q0g9p5s3b56Xdzan qV5N1a9pNR7zmmHQ723J3LO5TvVzKuP0X7fnxaTVecnasdsaEvVH5lVXWq2n ec0tW7bEPQC2X28xuVfk3jztuVuzZs3cOdKWd5rTtDsUrFfTXcejxguLfobd exbaUUbqZ8c+P7nH3d3vpxovWRcibGRedSXX9dTLqN9tlW/qf9S9sjbHudC1 PZ0jnZZ56udcbH2nvNN+vOScpvJOc5rqW7HzpJO9mtR44dHPRqvs0/vS9q+7 mZc2j2m1H7UehMyrtuR+Pe1b03qeMm7Hjh3xWc36/wtd29N9Qal7864sfG+e 9tFrPtOt79w1PPVpav+5zWnq+bAfDy79bLjafWyrHhbVhA32rGMWmVdt7hmc mvNTLaQ5QK3nKeOOHj0abdq0aW5vWze5l/e9eZqn1F0Qg4OD82o7N+/cNTyN Vc9Dz8fOGeNsTXSrXebR1wkXmVd9aXOcOotMa2DKGuWL5hG159tyr5Psy9qP vpB788bGxqJnnnkmvvevXd7pHFFbw7N7YZnTxEKReegGmdcbknOctran9Tzl h9bHtm3bFq1YsSJe8+ikryVrP3o39+Yp07RfXvvvtIaX7M9Uv0oy77T3XOO2 NTzmNLEYnWYec5sQMq83uHOclnt2h7rlnvJEGaP5Rburp1XuLWY/uvpQlHNr 166dOz8zLe/0cVq/S8s7jd/yjjlNLFS7zNNeh8bs3j/fY4V/ZF7vcOc4s3JP //7VH2L3F+huVvW56M/qkXRzq9v96OpJUd+M7rJdtWrV3H1AaXOZ2n+nM1ZU f1q/ih4jmXe2hkeNh4VyM0+9ncn32/4/9qZDyLze4uae8sLNPa2Pqa7Ta4DO NlG/muot7WFXn8vSpUvjGlB/VgYe3HQwGnp06N65zaG7/Zb6GH3siy++GH+u 7vJ7+eWX5+Ywk1mXnMvU19d+BOtX0fjIO+TNnbtUvolqO7G8S8tChInM6z3J Xk5b37M79rSWp7O81EepOUXVWqq59HuuzrxUX6UycNn/WRY9/rXHoyVLlsyz fOnyeM5SdeLWrVujV155ZW6fXTLnLOvc2s7mMvX1NQ6NR+OyfhXyDnlS35bN Xer/K/saDc5gQToyrzcl5zmtn1N9/9rvpn3eNtepmk/nOCuLlEmqw1SPrfpH q6K/bPzlnL9o/EVsZPPIPbmWlXNW11nW6etYbaevr3FoPLYfwV2/I+9QFGUf 564gDZnXu6zec8/l1Nld7lyn1Xz6968sUiap7tPc4/JfXh4taSyJ/qrxV/Mc 33s8zjSX8s0o51TTqT9Fj6PHc7POajuby9R+c9uP4PZnkncAykbm9TY395Jz naqt7G51N/tU96mv5MmfeTJ6vPF49FjjsZjyT86cvFu7uZRvonrOzTk9jh7P zTp9PX1dt7ZLzmWSdwB8IPN6XzL3kjWf1tHc+4c056gezicbT0bLGsuiJxpP REsbS6NvNL4RPfETT8S9J0nKN63RKeNUz2mtTjlnvaCWdfo6+nr6uvr6VtuR dwCqgMyrj7Saz9b5lEGquzTXqH6Sq1NXo5WNldHTjaejpxpPRcsby2Nr//7a eB9dkp17qIzTHjvlnPJTOafHs7pOX4faDkBVkXn1klbzWfap7lIeaX3t6tGr 0ZrGmmh1Y3X0TOOZaFVjVZyBz//m83HNlqR8Uz+KZZzqOeWnajpbr7O6Tl+P 2g5AFZF59ZTMPnfOUzXYlf1Xog2NDdG6xrrY2sba2I7f2xFnmah2s/9v+aZa Thln9ZxyTo9nWWdfi6wDUEVkXn1Z5lj2ubXf5RcuR5sam6KNjY0x5Z8c+uND cZalUb4lM06P5dZ0btaRdwCqhswLQzL/LjxzIepv9N/j+P84HmdZGss3yzhy rl7cv8NO+R4z0C0yLyz2WnW673S0ubH5Hqf+/NS8+VA311y8/vW+tL/DtL/r LPwMoBeReWGaeHgierbx7D2Z98amN/gdv8bs705z1NpvcuLEiWh0dDS+2/75 55+fR287cuRIfDeV9qdofbdVrU+9j15A5oVp9CujceYlzQzMeB8b8qcMUv+R zo3bsmVLtGzZsjjXdP7qq6++Gp+jqrMFlG1G92go83R/hs4m130aOmdc9wNr r4rWdJN9usn+JbIPVUPmhWn4i8OpmXfj8A3vY0N+lEfKuQ0bNsT3CeueDJ0t 4Pbyumu2lmPqU0qj/Zn79u2L1qxZE1Neat9K1j4V+ndRNWRemPY8sCc1825d vOV9bFg8ZYzOidP9GMo53eWU3LNpGacss72bdn6BaE9Kkr1PH6ez5g4cOBCt XLkyOnr06LzzCLLO3yH74BuZF6btn92emnl3btzxPjYsjs7NUV2n+31Vg6Wd T+DmnOWb5j61B9Pdk5nF3aupMwqUq8o+nUeePKOA8wlQJWRemNLyTnyPCwun bNm2bVu8Tqezc7Kyzj2LzjJO/SnKR1GGie7FSLL32cfauQV6HJ1Jp7VC3buo M3vsjHFlH2fzoCrIvPB89MFHqXk3eP+g97FhYZQvmzdvju+7cPeaJLPO6jk3 5yzfdK6cskp01lwW+xh9vOWgm386j1xzqjqb3L1LijNYUQVkXnhuX7mdmnk7 P7/T+9jQPdV0yru02i4t69ycczPOzlbV2l87yXNYxc0/9bpoTOqf0dvcuzbI PfhE5oVHvZlpmadeTt9jQ3d0t5PmMlVjJe/TUN6592noY5Q/Vs9ZzrlZpj0I nUpmYPIccv1ZYzt48ODcnYrKXnedj9xD2ci88Fzfdz018w4/eNj72NA5zWNq /UwZksw79+5Eyzqr69ys6ybjOsk/N/us7tu5c2e8x09vVw1o63zkHnwg88Jz uf9yauaNPTTmfWzojOomzR2m5Z3NZbp5Z/cF5511Wfln2Wdrfi+++GJ0/Pjx +O0aj+WealFyD2Ui88Jz7rFzqZl3pu+M97GhPeWE9iIk5zPdtTtbt7Pazp3D LDLv0uo+fX29TWe4nDt3Ln67rfFR76FsZF54pr42lZp5F5Zf8D42tKc1Mu3B S8s7t0/F1u3KqO3a1Xwah85/WbduXbwGqbcrj7Nyz/f3GPVF5oVHc5hpmac5 T99jQ2s690TnQqfNZ1relT2X2c1cp87w1Nmd165dm8s9d33P7ef0/b1GPZF5 4VGvCmdt9h7lhuY03f0I1q/izmdWKe/Scu+FF16Iz+m03LP1PXcfA3OcKAqZ F56s86VvnrrpfWxIp9d/9azojEtlXi/lXTL3NLepc8q0d125p7dp7LaPgbU9 FInMC8/QF4ZSM0971X2PDem0L2FwcPCeNTzbj1D1vEvm3q5du+L7+XR/kXJc 633K7bReTt/fe9QLmReerPOlybxq0uu+5jSVF8meFduPkOzPXGw2Xbt8Lbr8 2uVcvXnyzdjM6Zk463Qf38WLF+O7a3VWp9vTwhwnikLmhYfM6y06v0v3FiTn NN2eFcu7qxevzmXL9Oh0dG73uTlnd5yNTqw9cY/RJaPRkb4jpXm179XY83/+ fPT4Hz4efaPxjWj9r62PtvzzLdH239se7foXu6LXHnktmvqzqejMkjPRNw99 M15r5p4r5IHMC09W5n384cfex4b5fvD+D6INqzZElyYuRdcPXY/eOfhOdG3k WnR+8/no7Iaz0en1p6OxJWPRaN/oXJaUmV+Lyb2RR0eir//516Pmq0j0ROOJ aHljebSysTJa01gTrW+sjzY2Nkb9jf5oc2NzzH5OB+4biNekR740Eu8p1R4b ZaLOTvf994XqI/PC88JnXuAeoYpQ7aLX6+nV0/Hrt3pq9Xpuv5ds+ulN0dJH l0an+k5FU31T0cm+k9Fk32Q00TcRHe87Hh3rO9Zzeefm3vJHlkdLfmVJ9Hjj 8WhZY1m0orEieqbxTLSusS7a0NiQmnmtWB5OfnUyurbjGvdB4h5kXni4O69c qj+Ua6pHdB6Am2mt6HV+9T9ZHfX/Wf9c3r3W91p0ou9ENN43Ho31jUVH+47O ZZ7vDFuI5x59Lnrs3zwWPdZ4LFraWNpxrdcN3ReiPakzAzPMZYDMC1Da64Jq P9/jqgPVbXpttWzLqqk7odf4FX+yItr/F/trV+OZoUeHosf/9PFoSSO91ssj 85I/58o/1YC+f1bgB5kXlqz7YlV3+B5bL1Lfj+YlNSe5mHxL0//p/ujxv3g8 zjplXlqNV0TeHXv8WGqvS16OLz8+7+t9o+8b0V/97F/dU+utbayN5zc3NTbN 5V6e31/9zJN94SHzwpJ1XyyZ1znVcqrjNGeW52twssZb++trozWPrOmqxpt4 ZmIuW85sOzOvbzNt/8A7V97xvmdv27Zt0e7du6Mjm5p5+9yxaHLLZJy7R//3 0Wj8/45H+/7Nvmjf7++Ltn12W+65J6rH6QkNB5kXFjJvYbQOpPNIs/bzF5F5 z/yzZ6Ln+p6LLm26FF3cdDGa2TcTvbn/zeiNoTeiq6evRjNTM9FbJ9+Krr99 3XtuLYbu1nvppZeis2fPxvv13nrrrXifup3Fmdyjrr4UrY+qRlPfz+hXRqM9 D+xZ1PdbNTrnzYaBzAtLVubptdz32KpIr6/qAVQ/YBHZptda1RmaG9Xrt+ZJ 9Xr+3tR70ejoaHwupXvmirsfr6pnrXRLz1PnTp85cyY6f/58fP+CziTTc3T3 qHdyLsu74+/G2TXx8MSCclB/175/5lAsMi8sej3Nmt/xPbYqsazLa41OdbS+ x8o1vSbrtbnV19dru+b7Tp8+Hb/e27maduaKzhirS+Zpz/3atWvj56r79S5d uhTflaQ99nq+yXNZuvl7VH1+fd/1uG+l079L/f5Bf2d9kXlhIfPa0526i8k6 1cx6jbW90t1+fb2uq6YZGBiIax7LPM3z2bmaVT5Ts1uaz3z66aejU6dOzc1v 6mwyvU/PV/VtHvcM2fx0J/tElHu+fw5RDDIvLFmZpzMtfI/NN9VeC5kP0+eo JlQ9kcc4LPN0xqbOobT78ewsaTtnzHdW5UXnbS5dujSu9zS/eeHChXlreqpv 8zx3WtnXye816lPy/TOJ/JF5YdHesbR/36pLfI/Np6y747OoZ1N1XBHnfFjm 6Qxmrd8p8+q6lmeWLFkyl3m2pvf222/HNa3drZf3XQta2273O05ev8egOsi8 sGhuh8z7hPYrZt0nmPV9KvqeQcu8NWvWxOt2yf6VOq3libKt+ToSZ57W9F5/ /fV7+liKyDxRzac5jla/27C2Vy9kXljIvE8ouzpZ27HvT1n3TljmqZdRc3zK PLsXtm79K6K7Y5cvXz4v8+w+WT3Xbns3u6VMa1XvqZ73/bOK/JB5YdG/X9Yu fhjv7eqkT0U1QNl3LFnm6V5V9XXUPfOsb1P/1fO13k3LPLtLtqjME/0dD94/ mPozoJ8TzqquDzIvLOqVT/t3rbf7Hpvv74FL+/F87VHWa7p6FA8ePBgdPXq0 9pk3NjYW9ff3d5R5C9mv0Cn9HpT186CeF98/t8gHmReWkDNPc1jqQW+Xd1rf 83kXm2Xe+Ph4fEZJ3TNvZGQkevHFF71nnmSt7aoGZF2vHsi8sGRlXt1/j23X q2CqcA6HzW1qr9r27dtrn3nae68zN33ObRqt8Wb9bOiMHN8/G1g8Mi8s6sVI +/dc57MGO8k7rdloH4fvsYplnnr0ly1bVvvMW716dXT48GFvPSxJWXMBnNtQ D2ReWELLvE7yTr2bRe8/6IZlnnrz1bupvv267lWwns2TJ0962auQptW6Hr0s vY/MC0tImddJ3vleu0vjZp7OX9Z6V133pKu+e/755+dlXll70lvJ2sPC/Gbv I/PCkpUBdbs7s5O80/ur2JfgZp5yQXvT63r2mPo11adjmVfG2WOdyDqXh/nN 3kfmhSWrL20hZyFXVS/nnVjmqUdRr/UrV66MMy55xrTvvFos1XE6Z3NycjLO O0meMa26VjWuvg+LPWO6Gzp7lfnNeiLzwhJC5vVy3hnbr6CzNg8cOBDPcdbt LiHbl2c1ntuzmbxLyO5VKCPvDPOb9UTmhaXumZe1XtlLeSdW66lXUbWdehs1 p1mXNT3VeKpfjx07lrqWt9A7Y/PE/GY9kXlhqXPm1SXvxF3TU/+GzmMZGhqq zZqe7UO3vLN5zeRano/+FZN17xbzm72NzAtLHTNPOVanvBN3TU/zeso6W9fr 9flN1Xi6J+n48eOp85q6T0/PK8/7Yhcq6wzOOvY5h4LMC0vdMq/X+1VasTU9 zetpfm9iYiJ6+eWX581v9mKtt3fv3mhwcHBejefem+fjzLEsEw9PZP5M+f75 wMKQeWGpU+ZpX127Oz/1/qrtv+uUO79pZ7Fs3Lgx3sdt/Zu9Vutp7E8//fS8 Xk2t46nGm56ejvs1dTe8rz0KSVnzmzq3pxd/jwKZF5q6ZJ7uftF9nnXNO0nO b6rm0bygck8559Z6vZB7GrvuDNI+dHdO0/bkuTVesl/TV+aJ7thI+/mqyll1 6A6ZF5Y6ZN6ti7fa3vXa63lnkr0s6ulQPqjHX7VQL63rqWdF85runKadNWbr eFbj+exdScpaK6Z/szeReWHp9czT/Q/t7nrVWksd8k7Saj2tc6nHX3cuqNbr hTlO7TEcGBiYl3eq8WwP+ptvvhnXge46XhVqPLm+73rmz1qVzmlFZ8i8sPRq 5qm2G/rCUMusk9GvjNZunSVZ62mdS1mne9QPHToU10VVnuPU2t369evvyTvr W9Ean/ag23ytnl9VajyTNY+uOxh8jw3dIfPC0ouZ10ltJ+qx8z3WIug13z2X xc7eVH2nWm/Hjh1zc5xVyz3Vd8o7t2fF8s7mNK1vRc/H9qC7565UIfMuLL+Q 2cvCXr3e0kuZpzPw9NqcxM9c53ol81Sr6Yyndut2pu73vCd7OLVvTX0eyjnV erpzSLlRldzTPKX2I6TNZ9oanvo0tf/c5jT1fOxszSrVePbzmLVXrwr3DKNz vZR5nb7+uX0Meo136edTr48u3SmQlqWmTnP2Vc88fa/1d5T1+pKkj9N6i+9x F82t9bRfzeY4tWdBGae9e6qnVDP5zj31oqjHRnOvafOZ2pdga3jq09RY9Txs TtPdj1eVzJOss8hEv4/7Hh86U+fMK0syV1tRf0Uyc9NyV+tXRXwPtd6V9hx8 nSuhjNPXVs51+/erfrq69Kp0wu1nsX3q6m/UGpjyTVmie4f27dsXZ4+P3NOZ Ytp/pznNTvJO47M+TXf/eZVqPKP5pKw5dv3s1m0dua7IvN6gesbNTr3et8rM rO+hzztjlePa06Tfl/UcOlmjy/pehFDbpUnr49QamHJD+aEs2b17d7RixYro yJEjpeWe6kydJ6b9CO6ZYml5Z/vw9Hkat7uGV7U5zU7//Uivnvfjg8/vUy9l XtbeULRn87xZc4aH/ujQvAzVmn3WXK/yNa1WNW425/17Smi1XRp3bS8t95Qn Wi/bsmVLtGrVqjiDiso99aZs2LAh3idvdySk5Z2t31l914t5J6r1Wr0O1Wmf TJH0OqLXBv2uXXb+9VLm+c4N+KPMDrW2S7J1LrenJS331B/y2muvxf0tuptV /SS6s049I4ut6bZt2xY9+eST8RqizWO6WWf7zbX/TvsRrF/Fnc+0vEv2rFQ5 80RzFa1+VvV7Jet7rWnOx/1+6XflsnoReynz9H3R7/lp62TtzqFCb9LvzVXp r6mSdrmnOU1lm3patP9Ntdb+/fujzZs3R81/s3EO6m4i5ZfySXOOyWzT2/Q+ fYw+VvOWyk7VdDt37pybw0xmnTuXqTNj9PU1DutXScu7KvastNLuHg/R3hmd ked7rFWk70vy+6W1Dn1fi/6e9VLmLYR6JJJzc5q3azcnl8S8anlU0+nviNeL 1txeTjf3rK9F/Zu6h077vTWnqFpLNZeyaHh4ON5LsGnTpvgMTPWdLFmyZB69 Te9Txm3dujV65ZVX4vxLy7lk1lltp6+rr69xaDwaV6/nnXRyn4fRvnXVhsx5 fiIt85Lfs6J+16175pVBP/+t9jokaY91WuaqpzK0nNXvdraHRPvxyLnuJOs9 W99T37/2u+l8FtVsqrGs5lP9ZtmnjNIcpPIqmWGdsP12btbp8d3aTl9f49B4 NK609bteyjv3332nuef+PqcertD3Fet71+n3K++zvMm83pHck+/mpTKj6nO9 WrO2vRrqgylqP0Zo0nJP+9y0v1tnV9oZLdqzbtmn3knVYZp7VH+J1t3EMtBy MMnep4+zz9Hn63H0eG7W2R55fX2NQ+PRuOqQd6aT+4pb0e+17r5h/bsOYS2w 1R30Wa8dmvvJo1Ym88Khn7OT//tk6s/UKw+80vFcr+YdWvVturnMfE453Nyz /XvuXKfdra71NMs+7R3X3KNySnll9Z8yTFS3Jdn7rJ6znNPj6PEs62zdTl/X 9t5pPMn9d72cdy71V3V6jkK3eWiS/840X9TN/NJitOvV1u+yaa8Vefdt63ui 3w8WUyOTeWFRb3Daz5J+V/U9NixOMvfcmi+Zfaq/7Iwwyz/1VSq7VAMqx3QW ZpLervfr4/TxlnPWC2p1nZt1bm1Xx7wz+v1O/44Wuu8U3dH3eiFnZJF5YcnK PK0l+h4b8pFW87nzncoizTUm7yFSfWYZaNR/Yty36+P08fo8fb4eR4+nx9Xj u/OYda3tsqgGUe2Td92H+fT9XchZGmReWLLm0bn/sl7c3EvLPtVfbv7pvEvL QPWbKMfs3E5jb9P7LeP0eW7OuXWdm3Wh5J1La33qv1A9Qv7lR/Ob+p1ioXvZ ybywkHlhScs+zTHaep+bf+qpVHZpL4FyzGie0v2z3q+P08e7OafHS85hhph1 WTQPpz4MZaD6EX1nRy/SnsfF9ruSeWHRv7u0nyX9G/Q9NhQnK/ss/5RVloGW g1nsYyzj9Pn2WGRdd9Sjqfk597yNup8rrOfX7V4s9cjk1edN5oUlay+ofg59 jw3FsxxK5p+bgZaDWdyPs89N5hxZt3jJfb9ZZ2moj7qbu10WIus+GKM53GSv Z7s9F1n3miV/F897bzqZF5asvaDqNfM9NpTHzaZkBros09xcc6U9ju/nht6Q da+ZLLQ/pRNkXniyfs58jwv+pGVXp3yPHb0pbS//YvtTOkHmhSdrvSDks5AA lCuZeXn0p3SCzAtP1rlknHUJoCw6dzTv/pROkHnhyVo75s4eAGWxvpeyvy6Z Fx71eaVlHneyAqg7Mi88WefAF9UnBQBVQeaFx+bRk7T/x/fYAKBIZF541Auc lnl6u++xAUCRyLzwZN2toHupfI8NAIpE5oVH9z+mZZ56W3yPDQCKROaFR+fg pWXe0BeGvI8N/nAGC0JA5oVHZx1wzjQ6PXMzCxmIXkTmhYkzN8Nk2aS7gK5c uRKdOHEiGh0djfbu3Rs9//zz8+htR44cicbHx6O33norvkev1Z0K3KuAXkDm hSnrzE3OH6snZZAySxmnPFu2bFn83+Hh4ejVV1+NTp48Gc3MzMTZZiYnJ+PM 279/f/Tcc89FTz31VLR+/fo4I99+++347jz3/ryse4V8P3fAReaFSWt3aZnX 7s4r9Bbl0fHjx6O1a9dGq1atijNO9Z17Z557N57lmO6DTaOsGxkZibNv5cqV 0dDQUPSd73wnrhuT+Uf2oYrIvDBlnT+mnk7fY8PiKWOmpqbinDt06FD07rvv puacez+63YP+/e9/P3b79u172Pv0cd/61reisbGxaPXq1dHBgwej7373u3P3 qFv+kX2oGjIvTNqLx1ks9TQ9PR1nnWow5ZDd/WpZl8w5y7fvfe978cffunWr LX2cPl6fd/PmzThXVfcpA/U2N/vcuo/cg29kXpjOPXYuNfN0LpnvsWFhlDFa oxscHIzef//91Kxzc87NOK316XNEGSbvvffePex99rH6PMtA1X27d++O1q1b F8+B6vHJPlQNmRemrLNYdP6077Ghe1pT27x5c3T16tWWWacaLJlzlm96DM2B yre//e1M9jH6eMtBN//U/6Lcu3DhQvw2q/tUW7rzneQefCDzwqR7q9IyT3fr +R4buqOcU94pg5J5p5xJZp3lXDLjVKfJjRs32rKPTWag5Z/+3N/fHx07dix+ m762aku35iP34AOZFybdS5yWeYP3D3ofGzqnPpUtW7bEWWJ559Z2NoeZlnWW c26WffOb3+yKm4GWf5Z9+u/27dujnTt3xv/frfnIPfhC5oXrhc+8kJp7H33w kfexoT3l3Z49e+KMS8s7q+2UNVlZ123Gtcu/tOxTf4uyT2/Xn22dTzWorfGR eygLmReuPQ/sYY9ej3rzzTejbdu2zeVd2lym1XZacysy69pln76+elsOHDgQ v11/tn0N5B7KRuaFK2uP3vTqae9jQzbrV7H5zGTeuXOZlndlZF1W9lnePvvs s/HZLnp7Wu4xz4kykHnhyrovnXv0qkv5sGHDhni+0p3PTOadzWWWVdt1UvNd v349WrNmTdzPqfe5uZdc3/P9fUZ9kXnhmhmY4R69HqP9d+5+hCrnXVruXb58 OT63RWd7knvwgcwL181TN1Mzb+fnd3ofG+6l81W03zzZr1LlvEvLvV27dkX7 9u2Lrl27NjfPaX0tej7u/j3f33PUD5kXLvVnZt0p9PGHH3sfH5y/q2a+6Twx 1US2/87tz6xy3rm5Z2NasWJF9Prrr8e5p7Fq7VHPQ8/H9q2ztocikHlh0368 tMxTDeh7bPiE7gBS36Pbs+LmnTKjynmXzD2dSb1169b4zBadU6Zxa41S+wmT PS2+v/eoFzIvbCNfGknNPK31+R4b7krWeLaGp3zQ26w/s+p55+ae+llU6509 ezZe23vnnXfizFZ+M8eJIpF5YZt4eILezYrTnm7dV2A1nruGp9rI536ExeSe 7vXTXbRvvPFG3Jejt9ueddWw1HooApkXtqyzprVf3ffYcPcePNV4quWsxkuu 4fVa3hnVdkuXLo3X9bTHXmt7NsdJrYeikHlhu33ldmrm6Vwy+lj8U5ZpP57b t6I8sDlNW8PrtbwzqvO0TqmeVM1xas7T+jitn4XMQ57IPGz/7PbU3NPdC77H FjK9zo+Ojsba1Xi+s2uh9Ny05/D8+fPx3j3r46TWQ1HIPGSdQXam74z3sYVM r/E6Y0x9jXWs8URzmsuWLYvOnTuXWeuxroc8kXm4sPwC57FUkGodreW5vZp1 qvGM5m7Vp+PWespy6+F09+v5/jtB7yPzkHUey8B9A97HFiq9vqu3Y8eOHfP2 41mvZh1qPKM7F3TXkNV6V65cid+uWtb26zG/ibyQeRDlG3vTq0Ov7dqfoL3b Nq9p+/HqVOPJyMhINDAwEJ05cyY+f1rznbZfj/lN5I3Mgwx/cTg187SXwffY QqTX9uHh4WhiYuKeeU3bf16HGk/0HDdt2hSdPn06rm21Xy9tfpPMQx7IPIj6 VdIyT+e0+B5baOycyZdffjnOgDrPa4rqO921cOrUqXnzm3p+yf5NzuDEYpF5 EN2NnrVP786NO97HFxK9pqumUQ+/zqNM69esy7ymqK5bvnx5NDU1FZ9FdvHi xbn+Tc3jqr5lTQ95IfNgsvbpcW96uSzz1LOpeUw38+q2lmeWLFkSZ15yTc/2 LHDuNPJC5sFk3ZuutT7fYwuJZd5TTz0Vr2dZ/4q7R6Eu85rJzNOanu1Z0L5E +liQNzIPJmt+U5jfLI9lXn9/f3z2st2hUMf+FbF96ZZ5bh+L8t3uUSfzkAcy D66s+c1zj53zPrZQWObpTnTN89W5Z1OUcZrHTcs8ejeRNzIPrqz5zaEvDHkf Wygs8/bu3RtNTk7WPvP0HNevXx9nnvVuXrp0icxDIcg8uFrNb+oOBt/jC4Fl 3pEjR2J1z7zDhw/HPappmadeHTIPeSLzkJQ1v8k9suWwzNPr/65du2qfeUND Q9HWrVup81AKMg9JWfOb7NUrh2WeevU151f3zNMdeso9dz2PzENRyDwkKdeU b9R6fljmqU9x5cqVce9iXfs2tR9Bd6VrTY++TZSBzEMaZRu1nh9u5u3bty86 fvx4bffn6azNjRs3RidPnkzdn6fnyv485InMQxpqPX/czNNrv+b+6nqnwksv vRTfJWSZl3W3AuewIC9kHrJQ6/lhmafzJZV1Oo9F52zW8bzNJ598Mq5jLfPs vE2dM8p5mygCmYcsty7eyty3QK1XHLs7QK/xOndM96lqzq9u9yrYfQqWd2n3 KijjuVcBeSLz0MrhBw9n1nrKRN/jqyur9dSrqPPH1L9Zt95Nna22f//+eWt5 nMGCopF5aEX3pGfVepw9XRx3TU/9GzqT5dixY7VZ00v2rrRay6N/BXki89BO Vq3HPUPFcTNPa1mqebRvQXObdZjf1Jymzl/JmtfUx7hreWQe8kLmoR31qwzc N5CaeXo7/SzFcNf0NL83MjISHTx4cG5+s1drvUOHDsVnjbk1nu1RSJvXdNfy fP+doPeReeiE6rmsWk91oO/x1VFyflP1neojzfu5/Zu9VOuphnv66afn9Wqq xkv2a9pdscxrIm9kHjql9bus3JsZmPE+vrpx9yzYvbHar6d1MM379WKtp76V 4eHhe9bx3BpPz0f5rudrNR6Zh7yQeeiU+jSz9qkP3j8YffTBR97HWDc2v6m+ RdU8qn2UFwMDA3O1Xq+s6+m8bO27SM5p2jrezMzMPb0ret7MayJPZB66cabv DH2cJXLnN63WUw104MCB+Fxmt4ezyrmnntPNmzfPyzub01SvpurXtBqPeU3k jcxDNz7+8ONozwN72KteorRaT/OaW7ZsicbHx+f261U197Tnbs2aNXPnSFve aU7T7lCwXk13HY8aD0Ug89CtVvfKyrUd17yPsU6S63rqZVRPo/JN/Y+6V9bm OKu2tqf6Tnmn/XjJOU3lneY01bdi50knezWp8ZA3Mg8LcWH5hczM44yW/CX3 62nfmtbzlHE7duyIz2rW/6/S2p720Ws+063v3DU89Wlq/7nNaer5sB8PRSPz sFCt9qrrrnV6WvLjnsGpOT/VQpoD1HqeMu7o0aPRpk2b5va2+cw9zVPqLojB wcF5tZ2bd+4ansaq56HnY+eMcbYmikLmYaG0trfz8zvZt1eStDlOnUWmNTBl jfJF84ja8225V3b2jY2NRc8880x871+7vNM5oraGZ/fCMqeJopF5WAzNYWad 0SITD094H2OdJOc4bW1P63nKD62Pbdu2LVqxYkXc31JWX4syTfvltf9Oa3jJ /kz1qyTzTnvPNW5bw2NOE2Ug87BY6llp1dOi/Q2+x1gX7hyn5Z7doW65pzxR xmh+0e7qKSr31IeinFu7du3c+ZlpeaeP0/pdWt5p/JZ3zGmiaGQe8jD1tamW uXfusXPex1gX7hxnVu5pnUz9IXZ/ge5mVZ+L/qweycXknHpS1Deju2xXrVo1 dx9Q2lym9t/pjBXVn9avosdI5p2t4VHjoWhkHvIy8qWRlrl3uf+y9zHWhZt7 ygs397Q+prpO+aKzTbT/TfWW9rCrz2Xp0qVxDag/KwOVT6rBktmmt+l9+hh9 7Isvvhh/ru7ye/nll+fmMJNZl5zL1NfXfgTrV9H4yDv4QuYhL+32q3MuZ76S vZy2vmd37GktT2d5qY9Sc4qqtVRzqf7SmZfqq1QGal5S5z4vWbJkHr1N71Od uHXr1uiVV16Z22eXzDnLOre2s7lMfX2NQ+PRuKxfhbyDD2Qe8qT9Ca1yT3v3 ru+77n2cdZGc57R+TvX9a7+b9nnbXKdqPp3jrCxSJqkOUz2mnFJeJTOsE5Zz VtdZ1unrWG2nr69xaDy2H8FdvyPvUCYyD3m7feV2vD+vVe5xVkt+rN5zz+XU 2V3uXKfVfMogZZEySXWf5h7VX+Lmn1GeJbnv18erptPn63H0eG7WWW1nc5na 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 ecpC32MDQkDmAeXJOn9TPZ2+xwaEgMwDytNqTe/2ldvexwfUHZkHlGv4i8Ps 0wM8IfOAck19bSo18849ds772IC6I/OAcmXds8DedKB4ZB5QLt0Vm5Z5umfP 99iAuiPzgHLduXGH3k3AEzIPKF9W7yZ3yALFIvOA8u15YA9nkAEekHlA+bLO IGO/AlAsMg8o3+RXJ9mvAHhA5gHlm149zX4FwAMyDyhf1l167FcAikXmAeW7 dfFWauZt/+x272MD6ozMA8qns6bZoweUj8wD/EjLPPE9LqDOyDzADzIPKB+Z B/ihtbu0zNO8p++xAXVF5gF+ZGUed8cCxSHzAD/IPKB8ZB7gR9Z96WQeUBwy D/AjK/NuHL7hfWxAXZF5gB8jXxoh84CSkXmAHzpbk8wDykXmAX6QeUD5yDzA DzIPKB+ZB/iRdW8smQcUh8wD/KBvEygfmQf4QeYB5SPzAD/IPKB8ZB7gR1bm 3Tx10/vYgLoi8wA/dn5+J2ePASUj8wA/OGMaKB+ZB/hB5gHlI/MAP8g8oHxk HuDHC595ITXzPvrgI+9jA+qKzAP8SMs78T0uoM7IPKBYex7Yk5lvabSHwYx+ ZTQ603cmml497f15AHVA5gHFurbjWleZl2ZmYMb78wDqgMwDipe1F68TqhN9 jx+oCzIPKN6F5RcWnHmqE32PH6gLMg8o3scffhwN3j/Ydd4NfWHI+9iBOiHz gHIspNbj7E0gX2QeUA7VegP3DXScd7pT1veYgboh84DyTH51khoP8IjMA8pz 58adzPNXXMpG32MF6ojMA8rVrtZTJiobfY8TqCMyDyiXzpCmxgP8IPOA8qk/ JS3vtJ+BGg8oDpkHlE/9KWmZp/0MvscG1BmZB/iRrPVU42k/g+9xAXVG5gF+ XN93fV7mcXcCUDwyD/DH7hniHGmgHGQe4I/dM8Q50kA5yDzAr7GHxryPAQgF mQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgF mQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgF mQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgF mQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgF mQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgF mQcACEUzp/5b039p+ndNf9D0T5t+ncwDANRNM6ceavpPTX/U9K+afns28+5v +pluM6/pJ2Y/7xebfq3pt5p+v+kPm/7DbL7qa/7X2bz9EwAACqSsUeYoe5RB yiJlkrJJGaWsUmYpu5RhnWbej85+/E83/ULT55r+cdPvNv3bpgdnv9ZXmv7z 7Nf+YwAACqSsUeYoe5RByiJl0u827mbU5xp3M0vZpQxTlnWaeT/e9FNNP9f0 K02/0bg7X/ovZ7+GsvWPZr+m5lP/PQAABVLWKHOUPcogZZEySdmkjFJWKbOU XcqwTjLvR2Y/7seafrLpvsbdNcFfbfrN2cdWpqqW1BzqHzTu9swAAFC0P2jc zR5lkLJImaRs+tXG3axSZim7lGHKsh9pZGRexpqeakTl5i/PPqayVDWk5k5/ e/br/Q4AACVQ5ih7lEHKImWSskkZpayyec2Wa3ltar2fmX0sZahqx8817q4V /oPG3T4Z+YcAABTI8kbZowz6XONuJimblFHKqo5rvBbrenoMZefPNv184+4a oXpj7p/9WgAAlEXZowxSFimTlE3KKGVV23W8FrWe5Z4y8ydmH++nZh9befr3 AADwQBmkLFImKZuUUVbfxXnX6DDzMnLv07OP9+Ozj20+AwBAidwMUiYpm5RR C8q7lNyz7LP8M58GAMADN4ssn+Yyq9u8a5F9SZ8CAKBEmZm0mKxbZBYCAFCI IrMNAAAAANA7/j/7KxqG "], "Byte", Sequence[ ColorSpace -> "RGB", ImageSize -> Automatic, Interleaving -> True]]}]}]), "Specifications" :> {{{$CellContext`Ca$$, 50, ""}, 0, 100, 5, ControlPlacement -> 1}, Row[{"\!\(\*SubscriptBox[\(C\), \(a\)]\) ", Manipulate`Place[1], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`Ca$$], " Mb/s"]]}], {{$CellContext`Cb$$, 50, ""}, 0, 100, 5, ControlPlacement -> 2}, Row[{"\!\(\*SubscriptBox[\(C\), \(b\)]\) ", Manipulate`Place[2], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`Cb$$], " Mb/s"]]}], {{$CellContext`Cc$$, 50, ""}, 0, 100, 5, ControlPlacement -> 3}, Row[{"\!\(\*SubscriptBox[\(C\), \(c\)]\) ", Manipulate`Place[3], Dynamic[ $CellContext`FormatCapacity[ N[$CellContext`Cc$$], " Mb/s"]]}]}, "Options" :> { TrackedSymbols :> {$CellContext`Ca$$, $CellContext`Cb$$, \ $CellContext`Cc$$}, SynchronousUpdating -> Automatic}, "DefaultOptions" :> {}], ImageSizeCache->{495., {249., 254.}}, SingleEvaluation->True], Deinitialization:>None, DynamicModuleValues:>{}, SynchronousInitialization->True, UnsavedVariables:>{Typeset`initDone$$}, UntrackedVariables:>{Typeset`size$$}], "Manipulate", Deployed->True, StripOnInput->False], Manipulate`InterpretManipulate[1]]], "Output", CellChangeTimes->{{3.517268702302378*^9, 3.5172687338612337`*^9}, { 3.5172688079301634`*^9, 3.517268848022234*^9}, {3.5172690357217636`*^9, 3.517269048778987*^9}, 3.5172709283856816`*^9, 3.517270978040569*^9}], Cell[CellGroupData[{ Cell["Code", "Subsection", CellChangeTimes->{{3.5172709933285956`*^9, 3.517270993624996*^9}}], Cell[BoxData[ RowBox[{"Manipulate", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"reg1", "[", RowBox[{"y1_", ",", "y2_", ",", RowBox[{"{", RowBox[{"Ca_", ",", "Cb_", ",", "Cc_"}], "}"}]}], "]"}], " ", "=", " ", RowBox[{ RowBox[{"y1", "\[LessEqual]", "Ca"}], " ", "&&", " ", RowBox[{"y2", "\[LessEqual]", "Cb"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"reg2", "[", RowBox[{"y1_", ",", "y2_", ",", RowBox[{"{", RowBox[{"Ca_", ",", "Cb_", ",", "Cc_"}], "}"}]}], "]"}], " ", "=", " ", RowBox[{ RowBox[{"y2", "\[LessEqual]", "Cb"}], " ", "&&", " ", RowBox[{"y1", "\[LessEqual]", RowBox[{"Ca", "+", RowBox[{"Min", "[", RowBox[{"Cb", ",", "Cc"}], "]"}]}]}], " ", "&&", " ", RowBox[{ RowBox[{"y1", "+", "y2"}], "\[LessEqual]", RowBox[{"Ca", "+", "Cb"}]}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"reg3", "[", RowBox[{"y1_", ",", "y2_", ",", RowBox[{"{", RowBox[{"Ca_", ",", "Cb_", ",", "Cc_"}], "}"}]}], "]"}], " ", "=", " ", RowBox[{ RowBox[{"y1", "\[LessEqual]", RowBox[{"Ca", "+", RowBox[{"Min", "[", RowBox[{"Cb", ",", "Cc"}], "]"}]}]}], " ", "&&", " ", RowBox[{"y2", "\[LessEqual]", RowBox[{"Cb", "+", "Cc"}]}], " ", "&&", " ", RowBox[{ RowBox[{ RowBox[{"2", "y1"}], "+", "y2"}], "\[LessEqual]", RowBox[{ RowBox[{"2", "Ca"}], "+", "Cb", "+", "Cc"}]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"p", " ", "=", " ", RowBox[{"{", RowBox[{"Ca", ",", "Cb", ",", "Cc"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"RegionPlot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"reg1", "[", RowBox[{"y1", ",", "y2", ",", "p"}], "]"}], ",", RowBox[{"reg2", "[", RowBox[{"y1", ",", "y2", ",", "p"}], "]"}], ",", RowBox[{"reg3", "[", RowBox[{"y1", ",", "y2", ",", "p"}], "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"y1", ",", "0", ",", "200"}], "}"}], ",", RowBox[{"{", RowBox[{"y2", ",", "0", ",", "200"}], "}"}], ",", RowBox[{"PlotPoints", "\[Rule]", RowBox[{"ControlActive", "[", RowBox[{"8", ",", "32"}], "]"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "Medium"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Column", "[", RowBox[{"{", RowBox[{ GraphicsBox[ TagBox[RasterBox[CompressedData[" 1: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 OjUvwPfaANIG70FWqN88yXl6r/W9Rkj+XemMJ99rA0gbvAdZoNrNpPNieT8t Fpp7Gjc7wPfaANIG70EWJNWxaC+J/rziEfc5hfOeoGzgPUibqw96Y52n2njF gr7XCLOJq225/3DE+9oA0gTvQZooXxYXN+jrzNssLpqTw9wWqAJ4D9JEczXj Yj3Fgb7XB/HEnc3A+etQNvAepEXc+6bQfp/v9UEyceevK//pe20AaYL3IA00 1yMuv6l5/+zpFR/9juLy077XBpAmeA/SIK7vWdx4s8/7+qAx4s4k0r6t77UB pAXeg1ZJqmWhT6+9iNufZV4ZlAm8B60Sd36bXMhc4/aCmk6oAngPWkF9Ccwh Kw9xtUmnxzu8rw0gLfAetAKxXrlgTidUAbwHzZIU6zHHvz2J+51yBi2UCbwH zaIYIOo9UrOMmb/ZnmgWJ70MUHbwHjSDcphxsR41EO1NXC8DeWsoC3gPmiGu /oFYr/3pHv5+5O+W2apQFvAeNEPceyP7eu1PXP6aHj4oC3gP5sob71+OzXEy 16P90RzqqN8tc8WhLOA9mCtx74ua9eF7bdA6I3d2R/5+9XXfawNIA7wHc0F7 d3EzyZjDWQ70e4z6/XIeEZQFvAdzIe4sdbmQepZyoPPV6V2HMoP3YC7oHD1i gXIT17uuWibfawNIA7w3kzfffNPcvn17Gt/rKRJJOU7VuvheH6RDXO+6+vp8 rw0gDfDez8z7779vtm7daj7/+c/r+ZjFd77zHdPbSy1b3HnczLAqH3H1ur7X BZAGVfded3d3pOuikBfPnz/vfc2+0Ex+cpzVQJ9lon7XOpPd99oAWqXK3nv6 6adnuW316tVBbGd58cUXZ/2M73X7Iu69UDP8fa8N0qXnwtPMbIHSUlXvKa8Z 9p3ynVE/q6+7caHvtftA/ehxuS/tB/leH6RL3MwW9nGhDFTRe1evXp3hPDmw kdup5kXxn+/1Z8E//uM/JnLxTrd5tf+bM9D7oOIC32uH9ImbTUCPJpSBKnpP dSpuzYrv9fggym0//elPYzk4Mr/muicdJt134fau6dv7fkyQHpqzGuU9ztqA MlA176k3wY31qlSnYv308ccfm5s3b5rTp0+bvr4+09PTYzZt2jQDfe3YsWNm cHDQXL122XQc+XOzse/JR5yY5P57o9NudB3q+7FCazCrDMpM1bzn7tOpPtP3 evJAHnr48GHgOTlt0aJFwX8PHjxojh8/boaGhszExIQZHx+f5syZM4H3Dhw4 YDZ0rDULF803i5b+wCzd/F2zpufPzYbjT5jN/f/NfPyTH5t/+Id/MJ9++mlA 2IG+Hzs0R9ysMtX0+l4bQKtUzXtuDWej+3rtyieffGIGBgbMqlWrzPLlywPP Kc6zjpKv9DOWv//7vw/4yU9+MoM7b42YoRs7zNGhzWbrrhVm8fIFZuFLPzTr t75g3n777SB+1O10DetA/NfeqEaXnhUoK1XznpvjLGsvujxz7ty5wHVHjhwx b731VqTrrOPkrY8++ijgxz/+ccCHH344zaVbvebM1U5z5lrXNCcubDWHjnSb V155JXgef/SjHwW3dx2I/9qXuLOmmNEJZaBK3lM/guu9Ms4hu3LlSuC7ffv2 BS6Sc1zfhV1nHffBBx8EP6/nKMzpKzvN4OXtZnBsuzkV0Fn7Wqd5+7375t13 3w3cumzZMnPy5MngWq7/3PgP97UPcTM6NZ/V99oAWqVK3gvXtJTJe/KM9uy6 urrMe++9F+k713Wu57T3p9sIeUy88847Afce3DQnR7fNYODSNnPqsu7n3eD2 us4bb7wR7J2qD/LOnTvB9fFf+6K5LMykg7KC9/yvq1W0x9bR0WFu3bqV6DvF YmHXWcfpGsqHCvUpWq5OnA1ymtOMbDX9Nc5dORDcTrfXdXQ9XVc1MXLf5cuX g6/Z+E8xppv7xH3FJm42Nd6DMoD3/K+rFeQ6OU/eCjtPrgn7zrou7DnFa+LB gwczOH/liOk7v2UWl28MBrez19D1rAP17w0bNpj+/v7ga7pvxZhu7If7ig+z qaGsVMl7U493GvWm+V5PK6h2Zdu2bYFPrPPcGM/mM6N8Z13nOu7+/fuzODmy 0xwf3jKL8VuXp2+n61gHWv/pvzt37jSvvfZa8P/d2A/3tQc6dwjvQRmpsve0 H+V7Pc0i5+3duzfwXJTzbIwn38T5LspzLrfv3qw5bnMkd+/dnvGzcf5TzYv8 p6/r33bfT7Go3fPDfcWEMxmgrFTNe+75Cu06o+zGjRtmx44d086LymvaGE97 cHP1neXq+IVI5526uCf2NmH/6f71+eLQoUPB1/Vv2/OA+4pN3JkMeA/anap5 T7nNdt7jszUsNrcZdp6b17TOm6vvLCNXT0R678KV43Vva/1nnbtx48ZgBoy+ HuU+cp7FQz0LnMkAZaRq3gv38LXT+QpyxNq1a4PcpZvbDDvP5jWbifFczlza H+m9K+PDDd3ejf3u3btnVq5cGdR56nuu+8L7fb6fZ5jk+JXFeA9KSdW8J8Jn 7zU6r0xOSTqnL2vUn+f2KmTpPHHi/PZI7928fb3ha7juu379ejDfRbNAcV/x 4SwiKCtV9J7QTGrXffXOndUsrrjcqHKnihstulba+VPNYVFPeriGJSvn3boz Hum8vuGtc76W6749e/aY/fv3B8+PzXnaWhc9Hre/z/drpOqcndiM96CUVNV7 eg8Ou8/mPVWHIc/pv24djMX60b2G/qufdc/2S+uMIzlOs8cUG9n+PLduM23n Jde07G3qem6vxJIlS8zo6GjgPq1Ve5F6HHo8tredvT7/xJ1FNHp3r/e1AbRC Vb0n5Aj3fIZ6yG06q929vVwXFf/NS7FeVOcHqR7SrWNxnSdvpOk8odqVZmta 6rlPnyk6OzuD2S6aaaZ1a89S/YbhOhffr5EqozNmOYMPykiVvWdRXJbkP31v rj3u9ratri0c69k9PTlCX7N1m2k6T5wZ7Yn03uXrZ1q6rtanGhfFfCMjI8Fe 3927dwNvy+HkO4sDZ/BBWcF7M1Hs5tLsdWx+tNV9PvV965wDG+u5e3qKkVrt VYgjrqZl4tbVlq+tdepcwFdffdVcu3YtqNXR121fu2JZYj7/cAYflBW81zrK fdq9QIvd92vFe3rPV6ynmM7GeuE9vSycp3rNuJqWu/fupnIfivEWLlwY7POp D1/Pk813EvMVg7gz+NTf4HttAK2A91rD5kdtXUua3pPP1K/n1rLICTa/aff0 0nSeUH/eXOe0NIPiPe1bqlZV+U7lP219p61xwXv+iPMeZ/BBu4P3msf2Aapv Ify9VvOceq/v6+sLqBfrpekiEVfTMjx2JNX70WNTT+KlS5eC3j5b30nMVwzi zuDDe9Du4L3mSXJbGt7TPDLVO+YZ64m4OS2Xrp9O9X6U31y0aJG5ePFibMzH Pp8/OHsWygreax7rNre3Qag+1NZzNus9xTza23NrOPOI9UT/ha5I743fGkv9 vpTHVe2OG/PJ57a20+3n8/37rhoff/IQ70EpwXvNY2e4aC9PfQ7yn819trK/ p/d41Xvs3r17Rr+ereHMMta7e/d2/NlDd2+nfn+qB9I5RTbmu3nzZvB1xbS2 n49cpz+ivLfjzFPe1wXQCnivNfS+PS/U2654zzpRfprrNfX+rt4FXcPmOG2/ XtaxnmK6KOcpBszi/g4fPhx8Vrhw4UIws1q5T9vPR67TP5y5DmUE76VDq/1+ Lnp/P3jwoDl16tSsHKftUc8i1hPqS4/ynvb8srg/Pcb169cHnxUU46qfLyrX iff8wJnrUEbwXrGwcyl37doVeCDPHKdo5cy9ZlCcpzMahoeHZ+Q69fjCdZ3M 7MyfuDPXP/n0o0zvV6/xNOZHAESB94qF3tcV26i+X/Mro+o4s8pxiqHLBzOZ TxaH4ruXX37ZnDt3LphbNjY2Nl3XqZyu4lz2+PwR570szlxXfK+cd9S8+HlT 826V+/f9nED7g/eKhfWeajmV03S9l/XenhgY2Z1bLadl/vz5gffCe3y2n4FZ 1f7YP/JMLt4L75MnYffQfT830L7gvWJhvbd48eLg86+taXH7F7LKcWoGWZ61 nGHv6b3M9jOob5HaFv+oRz3Ke+9+eCu1+4iaCa9ZEIrtLFHngfl+bqB9wXvF wnpvw4YNwbxme/ZCHjUtmjmdZy2nsL3r1ntubYscb89jx3t+iPOeZpilcX3b 9+P6Lun8Zzcu9P3cQPuC94qF9Z7OVlfOL89azri5nFnVcgp5TjndKO9R0+mf /msrMvOe+l1d58mBjdzOnnvp+7mB9gXvFQvrvZ6eHnPmzJlcvZd3LafQY1yz Zk3gPVvTqfdDvFcMdOZQlPduvzPU8rVVp+LWrPh+rFAd8F6xsN47duxYQJ7e Ozd2ONdaTnH06NGgdjXKe6rfwXt+ifOezqRt5br6/bqxHnUqkCd4r1hY78kB e/bsydV7OmcoynvXb17MzHv79u0znZ2dxHsF5ezE5ky85+7TqT7T9+OEaoH3 ioX1nur4lf/L03txZ6zfujOemfd0Bp/c5+7v4b3iMHJnd6T3rj5orY/OreFs dF8PIC3wXrGw3lP94rJly4KaxjzqOePmUeuM9aycp14FnbmuPT7qOYtJnPf0 9Vau6+Y46UWHvMF7xcL13v79+83AwEAu/Xtx86jVx56V9zSbc926dWZoaCiy f0+Plf49v4zdP5C69/Radr3HHDLIG7xXLFzv6f1fecA8zmLw0cOwffv2YJ/H ei/uTAbmtfhD+3hpey9c04L3IG/wXrGw3tM8SvlOc1s0lzPr+Zyj1wZz72F4 6aWXgnjWes/O59RcUuZzFoM4750e72j6mngPfIP3ioU9c0Dv85pRpjNZlf/L +jyG4bEjkd67dP10Js6z5zBY50WdxyDPcx6DX+K8p/6GZq+J98A3eK942JhP NYyaVaa6zqxrOs+M9uTaw6A5bAcOHJixt8esluKRhfeE673BwUHvjxOqBd4r Hu4en2o6NLulv78/0z0+zeCM8t7N29dTd164niVpb4+aFr9MvDWYufe0x9vK tWydDDNfoFHwXvFwvae9LcU+6mlQnjOLXGfiOQy176XtPeU3NaclLsepn3H3 9vCePzSHM8p7x68sbum67vkKrfrKzZv6fr6gPcB7xcTd41Ou7/Dhw0Gfk811 phnzxZ3DcPLCztSdd+TIkWAumRvr2f6FqBynu7fn+3dSReK8p3MaWrmucptp 7fHhPZgreK+YhHOdivMUJykH6NZ1phHzaQ8vsodhtCdV5ymWW7p06YwaTsV6 4TpOe94sOU7/ZOW9cA9fK+cr4D2YK3ivmLj9DPbsWfXzaV9MOcA0Yz7NnY7y nmo80/SealkOHjw4a1/PjfX0eOR4PV4b6+E9f2TlPRE+e6/ReWVypntOH96D uYL3iovNdaqeUbGPYiA5Q+8PNuZLY5/v4rWTkd7T19NynmZsqycjnN+0+3oT ExOz6ln0uMlx+uXtD65Hem//yDOpXF8zqV331Tt3Vrn+cG407D3Nd9V1FEMK znqAMHivuLi5ThvzKRY6dOhQMMvZre1sxX1xvXtpnT+kWtSOjo4ZzrP5TdVw Ko6NivXIcfrnw5+8Hem93UPfS+X6+twWdp/Ne6rOU57Tf906GEtUvBeOIeca S0I1wHvFJirmU45z27ZtQW2A7edrxX1Z9u6pJ2/lypXTs6et85TftGcv2BpO d1+PWK8YZO09odevez5DPeRJvW7s7cN98G4/oGK9cHwIgPeKTXifTzWO+pwr x6kuUmfT2nxns3t9mj0d5T3VebYa58l56tcL5zflPOU3VctiZ1CHaziJ9fyT h/csel0k+U/fi+pxd70XldO0MSAxH1jwXvEJ9/Opr037e/Lc7t27g/nO+v/N 7vXprKHI3r27t5t2nnrtldt04zx3T0/1m+pRt/lNPR769YrHJ59+FOm97ae+ nen96nXhUu9nk+paFBvOo68dHPBe8XFndir/p5hI+UDt78lzJ06cMOvXr5/u fZuL+9I+d085S50h0dXVNSPGc53n7ulprXocejx2JhmzOItFlPeE73VZ6nmP ek8Ig/fag6h8p+aWaU9MvpFjlFNUX7h1XyP+i+tZb+bcvZMnT5oVK1YE5wbW c57mjto9PXu2LPnNYoL3oGzgvfYhnO+0e33a35NDtF+2Y8cOs2TJkmAfpJFa l9ie9Tmcuyevqade/Xna0wvXbaqGJew89adr3XZPj/xmcSmL98hzggXvtQ9u vtO6z57Fbt0np8gzyjXac36S3NdKz7pqU+S6VatWTc/bjHKefk77eVHO0/qt 88hvFhPt5UV57+NPHnpfm6jnPfVBzJvqDfS9VigGeK+9cPOdce7T+4BqRuy5 BzrfVbUv+rdqJ113zbVnXXUqqqXRebjLly+fPksoKq+p/jzNYlEcamtYdI2w 8+yeHrFeMVHtZpT3VOvpe23C9Z5qPsPft/2B9K+DBe+1H6775AzXfdovU3yn 9wLNQFEtm+Iu9bmr9mXhwoVBLKh/y4O9J14z+090zM5zDvcF/tLP6Ge3bNkS 3FZnAe7atWs6nxn2XTivqftXr4KtYdH6cF570S7eUx5TjhOK8YR1XpQPobrg vfYkXONp9/vsGX3a29PcL9VXKr+omEuxlz7zakam6i3lwUVLnjXPv/iMmT9/ /gxeXrwoyF8qXuzs7DSvv/76dB9e2HXWd26MZ/Oaun+tQ+vRumwNC85rH4ru PdVx2Tym/r/8N28es1ogHrzXvoRznrbOUz0B6odTL7jNeyr20+xn+UheUjym uGxF11+YZzs+Z364YYr1kygODLstznU2vrO+0/3YGE/3r3VoPbZXwd3Pw3nF R7M4o7ynmdW+1xaH/Md8FogD77U3Nu5z53hqzpeb97Sxn94H5CN5SfGf8pBL Ov/EPLfpC2b+xs+bZx0GTh8NvOYix1nkOsV2qlnRdXQ913c2xrN5TfWk214F t24T5xUfnb3Qbt4DSALvtT+u+8J5T8VY9ox213+K/1RrsrjrMfPC1i+a57d8 0SzY/AWzYNMkF0Ymz0B3keOE4jrXdbqOruf6Tven+3VjvHBeE+e1B3gPygbe Kwdh94VjP+2ruWcXKf+o2s7Fu75qXt75FbOo68tmUeeXzYudXzIvdX0tqEcJ I8dpz06eU1ynvTu5ztaIWt/pfnR/ul/dv43xcF57gvegbOC9chEV+9l9P3lI 8ZfyjqoxuXXvqlnx+tfNsu6vm6V7vmaW7P6qWVxj9et/HvTZhbGzEuU59eDJ dXKoXKfr2fhO90OMVx7ivHf/4Yj3tQE0A94rH1Gxn/Wf4i85Sfttt+6PmtUH HzOrDvyxWbn/j80rPX9kVtTYcvR7QewWRo5TjYr1nOI6OVSxnd2/s/Gd7o8Y rxwMXF8T6b0bb/Z5XxtAM+C98hL2n5v/VCx2683zZv2Rx83a3m+YtYe/YdYc esysrvHa4P8MfCYUw9n/bx2nmE6es3GdXKfrWd/Z+8J35QDvQdnAe+XGesf6 z40Brz/oNx3HnzAbxLEnzPqjjwccHV0R+CwKOS7sOV3Lje1c3+G89gfvQdnA e9Uh7MCxe4fNxhNPTtL3iMFrGwOfRWEdZz2H68qF+zu0nLy22rza/81ZXH/j OL9raEvwXvWw72cXbu9y3seenOb8rV0zcqOu21yi3iN9PzZo7rUQlRewnLy6 esbrw6LPTbwGoB3Be9Xl9HhHkK+K+xzfCL4fA8wd+7tTvlq9KKdPnzZ9fX2m p6fHbNq0aQb6Wmf3KrN821+b1d3/3aw//KfTeYHhmzsiPxfx+oCig/eqS/+1 FZH7NhNvDXpfG6SPPKSaJM2Y27Ztm1m0aFHgNs1rPX78eDB3VfMH1Jtp0fkb PQd3mk1dy83y1S+YhYvmm0VLf2CWbX3K9A1vDvZ4w/W74Zom/AdFA+9VF/qR q4GcJNetXbs2OJNY52to/oBb4+vu4VqXqXZJ3HlrxAzd2DHN0aHNNQ8uM0uX v2xWrlwZOFM9LXE9LNT1QtHAe9Wl58LTkd57/6P73tcGrSPPaKacztWQ63QO VLin03pOfrO9nXbGgVC/ys0H582Zq52PuNYVcOuNC8FcukOHDplly5aZEydO zJhZEDenB/+Bb/BedYk7X6Yo52hD82i+juI7nRGsWCxqhoHrOus45UHVo+n2 bN64O2QGL29/xNh2c6rG+L1z072cmmMgt8p/mmEenmPADAMoEnivukQ5T/he FzSP/LJjx45g304zduJ8586ts57TjAI5UshjQudpXL89bE6ObpvF2M2Twc/a 2Qa6jubXae9Q5zZqto+dSy7/McMHigLeqyaffPpRpPN2nHnK+9qgOeSYjo6O 4JwMtw8l7Dsb17mus47TDDr5Smgunbh+67w5cWHrTEa2movXjwU/r9vZuXXW gZphrvyq5pm751AxsxWKAN6rJjorO8p73cPf9742mDuK7eS8qBgvyneu61zP 2Vms2gu0XJ0YNn3nt8ziwtWjM+a2CteBml+uNammRl9zz+jAfeATvFdNVLMZ 5T3VePpeG8wNnQulvKZirfA5HHKeew6HfkYOsnGddZ3rOZ2z4XJl/Jw5Prxl FuevHJlxu6jZ5fq31tbb2zt9JqP86+774T7IG7xXTXSGTJT3jl9Z7H1t0DjK aWo/TR4JO889e9H6zsZ3ru/CngszdmOo5rnNsxgeOzLj56L8Z+O/1157zRw4 cCD4umJBu++H+8AHeK+aaKZwlPc0g9j32qAxFD8pjxjlPJvXdJ1nzxxu1Hdz 9V7YgdZ/dg9wy5YtZmBgIPi61mPdp5gU90Ge4L1qMnp3b6T3Ru7s9r42qI9c oT6FcG7T3cuz+3g2xnPzmY06L8l758YOJ97Ojf90//ramjVrzMWLF4Ov2z0/ 4j7IG7xXTYZvdUZ6b+z+Ae9rg/poz0w9elHOc2tX7D7eXGM8lxs3L0V678xo T0O3d92nOTGrV68O9iT1dTk5zn2+n2MoL3ivmnCmWvui+SiaJR2V27TOayWv mbb3wnlPzfx89dVXze3bt6fd5+73uXWevp9rKCd4r5qofoXZnO2H3KH8ptur YGtY3NxmWs5Ly3th923evDmY62ndZ/f73B4H8p2QFXivmsTNpH73w1ve1wbR yAGqY9FMTHkvD+el6T3XfcpzaqaZ+tvlPn1Na7c9Duz1QZbgvWqyf+SZSO+p n9332iAa9Sx0dXXN2tOzvQpZOC9t77nu27NnT3C+n84+ksu1/yd3R9V4+n7u oVzgvWoSN5Ma7xUTvfcrvylnhOtYbK9CuG6zVd/dvnszcN6l66civTd4cU/w /WaYuH0l8N3ixYvN2NhYcP6tZnu6dS7kOyEr8F41wXvthWZ96byDcH7TrWOx zrt154YZv3U58MuV8WFz8drJaUaungjitDAnzm+PdFs2TM570ayzzTuWmRde +a55sfNLZt2+vzDbj/0/ZtfA35ruM39nhm50Bme6j9zuNg8eXgr2njkjC9IA 71WTOO99+tNPvK8NZvL3//Bjs3bdSnN1fMTcf++SufvORXP7rRFz+dZRc3H8 sDl//aAZGO0K5kXLJY9mieXlsebd13vqVbPghR+aF7Z+0Szq+rJZsvurZkXP H5nVBx8z6448bjYcf8JsPPGkebX/mwH2dbr91LeDPereSwuDnlP138iLmrfu +/cFxQfvVZOtg9/iDKKCoBhG79lXH/QG7+GqtdV7uv1s0nHkz8zCRc+Z87d2 meGJnebc+A5z9nqXOX2lMzgP7+TFbW3mvJnue3nZc2bBusfNwm1fMi/v/IpZ 1v01s3L/H5u1h79h1h993Gzsk/eenOG9JKwTz05sNrffGeI8SZgF3qsmnL2X L4pD5DbFJZoZ4HotCb3Xr9z5V2bD1sVm+GbNeTXvDd3YEZx7rvNfB0a3mf4R nQ20pW29t6lzuVmw4i/N81tqMV/nl81ixXyvf71uzDcXdM6IelYn3hokpwF4 r6JEvTcoBvS9rjKg+E3vr9ZvcbF1I+h9fsmavzUH+jdOei8U6/Vf3Nqmsd4j 9+07vsE8v+jvzHObvhAZ82049sScY74k9PuQAxUL+n6tgB/wXvWIO3NW8Yfv tbUjqgVSjlL5yVYcF8XGvj8xzy+cb87VYrxhG+td65oR69nz8NJ0Xv+Fruma l1MX90b+TN/w1sgamUYYGNk9w30vLJpv5q//2nTMN73Pd+gxs74W83U4MV+a z69e8/iveuC96hF35izeaxzFdIrnlD9L8304HOut6f6OWbnuxchYb/a+3qRH 5CnrlwtXjs+o54zqKbh793ZiP8OtO+OR3jt5YWcq/YFix44dpru72xw/1W1O Du0zZy8erl2/y/SPbjKnrm4zB84vMAdGnjW7zn4vdfcJxeXUilYHvFc98F5z aF9I80vjev6z8N4rXU8F+1/X7h83V+4eNRMPzpnxe+fMtdtnza17V83EnbGg Z+HevbupOSiKuLgwrevrbL7t27ebkZGRoJ9vfHw86GW3szvDfeyqVdF+qWI1 1QL1X1thei483dLzrVid+bTVAO9Vjzjv6f3c99qKiN5jVRuoOsEs/Kb3W8Ub ypPqPVw5U72nv/PBTdPX1xfMsXRns7j9emnNZPHtPT1Ozaq+cOGCuXTpUnBu g+aX6TG6feyNzG95+4Prgb9Oj3c05UL9rn2/5iBb8F710HtqXK7H99qKhPVd Wnt2iqf1HMttel/W+3PS/ev9Xbm/8+fPB+/5dg6nnc2ieWRl8Z768letWhU8 Vp3Pd/Xq1eCcJfXh6/GG57fM5feoOP3+w5GglqXR36U+g1D3WV7wXvXAe/XR ubyt+E6xs95nbT/1XO9f7+2KbbZu3RrEPtZ7yvnZOZxpzuD07T3lNpcuXWqG h4enc52aY6bv6fEqzk3jjCKbq26kh0Tu8/06hGzAe9UjznuafeF7bb5RDNZM bky3UWyouCKNdVjvaSan5lba8/Xs/Gk7kywP5+XhPc3nXLhwYRD3Kdd5+fLl GXt8inPTnFUt/zXy2Ua1S75fk5A+eK96qLcs6m9c8Ynvtfkk7gz6OFTLqXgu i3kg1nua26z9PHnP195eHt4T8+fPn/ae3eO7c+dOENvas/nSPqNBe931Puek 9VkGigPeqx7K8+C9R6ifMe48wrjnKetzCq33Vq5cGezjhWta8tzby8N78lvt vSTwnvb4RkdHZ9W2ZOE9odhPuY6kzzfs9ZULvFc98N4j5K9G9nrs85PXeRXW e6pxVL5P3rNny+Zd05KH93T+7MsvvzzDe/ZMWj3WudZ0zhV5LSnuU1zv+7UK 6YH3qof+htnL+FnQ+9VI7YpigbzPZ7Le09msqvXw7T3NZony3t2U+gZtPaf+ q8drazqt9+x5tFl5T+h3vOPMU5GvAb1OmG9dHvBe9VAdfdTftr7ue22+nwMX 9ev56mPW+7pqF3t7e82JEye8e0+zWaK8p1kuqVz/5EmzYcOGhrzXTC9Do+iz UNzrQXUwvl+3kA54r3pU2XvKZ6k+vZ7ztN/n8yw3673BwcFglknZvXf48GGz ZcsW794TcXu9igXZ5ysHeK96xHmv7J9n69UvWIowr8PmOdXLtnPnztJ7T/35 mtHpM89p0Z5v3GtDs3R8vzagdfBe9VB9RtTfdJlnEzbiPO3hqMfD91qF9Z7q 9xctWlR6773yyivm6NGj3upawsTlBJjtUA7wXvWomvcacZ5qOrPuTZgL1nuq 21dNp2r6ffYxZOk9W8s5NDTkpY8hiqR9Pupb2h+8Vz2q5L1GnOd7Ly8K13ua 2az9L59961l6T3Hepk2bZngvr771JOL6W8h1tj94r3rEeaBs52824jx9v4i1 Cq735Ab1r/ucU5al91THqdod67085pQ1Qtz8HnKd7Q/eqx5x9WrNzE8uKu3s PGG9p9pFvd8vW7Ys8Fx4LnW7e0/xnOZynjlzJnCeCM+lVnyrWFfPQ6tzqeeC ZrWS6ywneK96VMF77ew8i+1l0GzOQ4cOBflOX+cQZeU927dnYz23ljN8DpE9 jyEP51nIdZYTvFc9yu69uP3LdnKesDGfahgV46nmUflNH3t8WXhPsZ7i2P7+ /si9vWbPnU0Tcp3lBO9VjzJ7ryzOE+4en2o6NLdl3759Xvb4BkZ2R3rv5u3r TV/T9qpb59kcZ3hvz0dNiyXuzC5yne0N3qseZfSeXFYm5wl3j085PvnO7vPl nes8M9oT6b0bNy81HevpjKWBgYHIHKfO49PjSvPM2WaJm9lZxvrnqoD3qkfZ vNfuNSxJ2D0+5fiU6zt16pTZtWvXjFxnHjFf2t7r6ekxXV1dM2I999w9H/PJ 4jg93hH7mvL9+oDmwHvVo0zeU99dvXND9f2i9ec1ipvrtDNb1q1bF/R627rO PGK+NL2ntS9dunRGDaf29RTrXblyJajj1BnzvvoXwsTlOjXfpx0/SwHeqyJl 8Z7OjdGZoGV1ngjnOhX7KEco98l1bsyXpfvS8p7WrvOG1Kvu5jdtz54b64Xr OH15T+hsjqjXV1Hm2sHcwHvVowzee/+j+3XPi21351nC9S2q85AjVP+vmCiP fb60vKc6FuU43fymnUtm9/VsrOezniVM3N4xdZ3tCd6rHu3uPZ0bUe+8WO29 lMF5Iirm076X6v91VoNivqzznWl4Tz2IW7duneE8xXq2T/3GjRtBPOju6xUh 1hP3H47EvtaKNNcVGgPvVY929Z5ivP0jzyT6TvRfW1G6fZdwzKd9L/lO57Ef OXIkiI+yzHe26j3t5a1Zs2aW82wti/b81Kduc7d6fEWJ9SxxOXWd3eB7bTA3 8F71aEfvNRLjCdXe+V5rFuh9353fYmd1Ks5TzLd79+7pfGcW7mvFe4rz5Dy3 jsU6z+Y3bS2LHo/tU3fnsxTBe2P3D8TWt9DL1160m/c0M0/vz2F43TVOu3hP MZvmQdXbx7OU/bz4cG2n+tpU+yHXKebTeUVyRxbua8Z7ylmqVyEqt2n39FS/ qR51m9/U47GzOIsU69nXY1wvXxHOKobGaTfvNfoe6NY26H3eRa9RvUe66CyC KJ9aypTDL7r39FzrdxT3HhNGP6f9F9/rzho35lM/m813qp9BnlNvn+IqxU5p u2+u3lN9iupulIeNym2qZ8Hu6al+U2vV47D5TbdfryjeE3Fzy4Q+k/teHzRG 2b2XF2G3JqGai7B3o9yr/awsnkPtf0U9Bl/zJ+Q53bdcN9ffr+rsylK/0ghu jYvtZVfdo/bE5Dj5RGcW7d+/P/BPWu47c2l/pPeu37w462c1f0z9ecpvNuI8 rc/Wb7o96kWK9SzKK8Xl2/XaLdu+clnBe+2D4hrXn3rPT/Jm3HPo89xZuVw9 T/rcrMfQyJ5d3HNRhRgviqj6Tu2JyR1yiHzS3d1tlixZYo4dO5aK+4bHjkR6 b+zG0PTPKN7U7DH1Krjzx6KcZ/v0dDut293TK1p+s9G/H9Guc4F84PN5ajfv xfWPQn1sznfn2ej84bGxxTM8qn38uLyvHBsVs1pcP6f9WaVqMV4U7l5flPvk FO2fbdu2zSxfvjzwUCvuS/Ke6lXWrl0b9NLbsxWinGf382yc147OE4r5kt6H ytRDkyV6H9F7gz5v5+3AdvOeb3dAHjwZ+XV5u6oxXhi77+XWuUS5TzUjZ8+e DWpedL6rakx05p3qSFrx3u4Da8zajS+bF198IdhTtDlN13e2J139eepVsDUs bm7TOi9cx1Jk7wnlLJJew8pHsN+XjPY33OdLn5fzqk9sN+/pudHn/ah9s3oz q6A96Tz9F2bwxrpS1RalQT33Kb8pv6nORf1xirkOHDhgOjo6TO3vNnChzjVS flKOUv4x7Dt9Td87cGSn2dS1wryydqFZ8PyzZsHivzE/XP4ts6NnVaTv3Lym Zsvo/rUOW8MS5bwi1rEkUe/8D6G+Gs3T873WIqLnJfx8ad9Dz2vWz1m7ea8Z 9H4ZztMph1cvPxeGHKt/9LlQdTnKjZBLmlnj6brP1rqorlPn2KknXPlFxVyK veSjgwcPBn0G69evD2ZmqhZl/vz5M9DX9L3Fy58zzy79jvnhij8xP1j3RfOD 9f97wJ7Da2N9Z2M83a/uX+vQerSudneeaOQcEIt62xUj8pp9RJT3ws9ZVjXm VfBeHuhvIKkPIoz6sKO8q/d0XNsY+myoz9NZ1b22C+G4z+73qSdA/XCa46LY TbGWjf0Ux1n/yVPKR8pZrsNcNrz2tPnh+s/NZMPnTHfvuul+PNd3ur4b4+n+ tQ6tR+uK2s9rJ+e5f/eNus+ifL3quqred6zH3ujzlfb8b7zXXoT79l1nqg+g qnlfzS+r8mz8KPepD0494Jp1aWe5qK/d+k81lYrHlIdUzYn24YT1oHWh2Nj9 t+bZjs9NsvHzAfNr9BzrCG6j2+s6up7rO9tHr/vXOrQerasMzrM0cuZxEvps 6/YV6++6CnuDSWfZR6EaGOXp0oiZ8V610Gvt3M3tsZ+rXI/uOvtd7z6bK3J9 VfcBXffZ/j4372nPaNf+mvWf+suVh5Sr5CwbB8pjQvGb2Nzzd+a5TV8IWGDZ /AVzsH/TtOt0HV3P+s7u4+l+bW+e1hPuz2tn57mo5qrRWQuNsm3wz4O/S32u kxvD+SHljeaSZ2qFejXcinuj9ofSrufW5wR9RmglVsZ71UN7Y1GvJ31mdX8u Kn9j//7c3nvNEnP/PubyeUw/G/67Ul6/3lmySSj/qTX5fp59EHafG/uF/ac4 zM4Tsw5UvaX8pVhQLtPsTLH90A/Nwm1fCnhxe43OL5lFnV82R89sm3adrRG1 8Z3rOzfGK6Pz3Nez/o6S+lI3D7T+3m+v8Wq//htd/1wF9Fw38zkX71WPOO9p b9H9Oe2b+d6D0GtauY257qHYx1PVOoKo2M/NfcpHyjuGzzBSnGY9aFFNyq7j C8zLO79iFu/66iS7v2qW1Bi4sCu4nW6v6+h6uq6u7+Y0yxrjxaG/GX2G23Hm Lz34oDoeVHzdzLwNvFc94vLqRT9DU/soignrfZ52Ud6zqnXkrvui/Kc4zHWg 5mNaD6oGRS6zcz5fH1xklu/9ulnx+hQ9f2ReqTF05fXgdq7r3PjO9V1VnCf0 mbGZz2qpk0JsWUSU69Tnimb73fFe9WhX77no87T2NhrZT5H7qjw7Ksp/yjfa /T/Xgaq1lL/UZyCXWQ6eW2JWH3zsEYceM2tqjEwcmOE6XS+cz6yS70SjZ2bl SRq51aLQ6t6ewHvVw52T4KI9Nd9rawbt5dV7nwnvXVaROP9ZB8pX1oPWhZaj F5eb9Ucef8TRSS7f6Z2O6+y1quo75dQbORcZJmsz59qnpX3/tHqW8F71iOsX 1WvR99qaRX8P9fo2fJ03UTSsi8IOdD1oXWjpG1tpOo4/Mc3GvicDrt4/On3b sOuq4juhv6lm+4bs3NyoGsnDl14wr59/2uw8+1cteWbfhf9vTmfGzOUcGYv6 iMI1oPX6MeLORAs/P2n3r+O96qGcX9TrSzGT77W1+riS+qj0+Kre4+7i+ins QRc5rf/qKrPxxJPm1f6ZXHtwPPI6vh9bnijn1mitvn6ulZ51W/+sz3D2TJN6 uX7FVL6foziSvKfnKqueXLxXTeJea77XlQbK/8c9vqrv9SUR5S/LyWurg5r5 MNffOF45z4WpF7PIO/o8luW5znKo7QMKr0f5Qd/PURxaW9TzpT3SLP9O8V41 ift8Woa5Sfp7Sdpn0edk32tsN3ye2Vhk5Jkk5/nspVEfvV7rRZ5jFH5d6TNr Hs8X3qsmcXsRZan51+OI2zNXvrMMfs8TvDebenO2NDvW9xqLjn1dKe7L870H 71WTuNxMlrmYvEk6I433pLmB92aiz01J+2qKW3yvsR1QLbaPWaR4r5pE5dVF 2c51TZp3VtU5ns2A92aStKen77GHXGzwXjWpyvtYXK9i0ff7i0ZVXi+NEDfn TygGJIdefPBeNdF+d9TfrWZh+l5b2sTFtsR8jYP3JknKb2rfuEz7BGUG71WT uDo0fd332tJGPXtx81yI+RoD7yU/D0K1977XB42B96pJXK6mrPvxST19xHz1 wXvJ9ZvtOuOvquC9aqIe1yrFP8pPEfM1T9W9pzqVpDlkfHZqL/BeNVHtcNTf r/q9fa8tK4j56tPMvBbfa84D7XvHvXboiWk/8F41UfwT9TfczrOpG3nMxHwz aXRG58mrq2fN5hR2TlmZZ3MmvW5U41LVs43bGbxXXeI+v/peV5YkxXw++md9 YP2ks4Zu3rxpTp8+bfr6+kxPT4/ZtGnTDPS1Y8eOmW17F5vV3f/drD/8p9Nn MYhr94/NOIuhjOcxJNWyFHkGGMSD96pL3IzOsswqiyLps3vZaxPkoYcPHwae k9MWLVoU/PfgwYPm+PHjZmhoyExMTJjx8fFpzpw5E3hvx2uvmuWrXzALF803 i5b+wCzd/F2zpufPzdjdIzPO34s7k8j3Y2+WpP7PdjqnGWaC96pL3Ozmssc9 STFfGfsX5aSBgQGzatUqs3z58sBzivPcM/fcs/bkMXsGreXGg1Nm6MaOgKND m83WXSvM4uULzOIlL5l9+/aZt99+O4gfww5sd//FzfvRZyf2hNsXvFdd4vq5 Vevpe21Zotq8uN7jMs3bkGfOnTsXuO7IkSPmrbfeinSde866PV/9xz/+ccCH H34YcO3ugDlztXOSa13TXJsYNidPnjSvvPKK6e3tNT/60Y+C27sObFf/Jc1l KWu/T1XAe9UlLu4pY8wTJuk9Tfs5vtfXKleuXAl8p1hMLrLnx1rfhV1nHffB Bx8EP//+++/PYOxWvxm8vH2Sse3mVECnufPGWHC7d999N3DrsmXLAg/qa67/ 3PivHdynzz5x53lQy9L+4L3qovkSUX/XVTmfLmlmdbv2pckz2rPr6uoy7733 XqTvXNe5ntPen24j5DHxzjvvBIyO95mTo9tmMHBpm7l5bzS4nW6v67zxxhum u7vbrF692ty5cye4fjv6r/fSwtK9NuAReK+6xMU8ZYh3GiGpZkH7N+22z6k9 to6ODnPr1q1E3ykWC7vOOk7XUD5UvPnmm9OMXDtmTlzY+oiRraa/xo3bF4Lb 6fa6jnWgamLkvsuXLwdfs/GfYkw391lE9+lsnLjXRZn7W6sE3qsucXOXqlSn llSjrnrXdslnyXVynrwVdp5cE/addV3Yc4rXxIMHD2Zw9tI+03d+yywm7owF t7PX0PWsA/XvDRs2mP7+/uBrum/FmG7sVzT3qZY5rt5XX9esV99rhNbBe9VF f8Nx+xe+15YX9eZPKd/le431UO3Ktm3bAp9Y57kxns1nRvnOus513P3792dx 5lKPOT68ZRbjty5P307XsQ60/tN/d+7caV577bXg/7uxXxHdl3SuHnOnywPe qzZxn23bJc5Jg6TzGoqe95Xz9u7dG3guynk2xpNv4nwX5blZ3huV9zbP4sbN SzN+Ls5/qnmR//R1/dvu+ykWtXt+vt0Xd0ZJ1XIgVQDvVZu42o5229tqlaT6 Thv3Fe0M7Rs3bpgdO3ZMOy8qr2ljPO3BNeO7uXovzn+6f9W7HDp0KPi6/m17 HorgvqQ9PX0mKvMshyqC96pNXA+f3gd8ry1vkvrZbU1DUfZ3bA2LzW2Gnefm Na3zmvFds94L+886d+PGjcEMGH09yn0+cp5xZ5NQv1le8F61iTt3vYp9uYrn 4mbYWNTT5ft9UI5Yu3ZtkLt0c5th59m8ZrMxXhreC8d+9+7dMytXrgzqPPU9 133h/b48nkvVdiXluNthfxfmDt6rNpqrG/X3XtXzCdSvnNTX574f+ppTpf48 t1cha+e16r2w+65fvx7Md9EsUJ/uU+we15suVO9UpX3uKoH3qk1cD5v+5n2v zRd6r0uq6wvXvOTpP81hUU96uIYlS+el4b2w+/bs2WP2799vbt++PZ3ztLUu ejxuf18Wz6P2r+PmstuaZvb0ygveqzZ6j4/72y9aHUee6LH3X1vRkPvs5wTt iWYZH8hxmj2m2Mj257l1m1k5Ly3vWffZNS1ZssSMjo4G7tNatRepx6HHY3vb s9jri5tT5OaymTldbvAexM1o5m9/ss4zaf8nCuVJtW+qvaM016Lzg1QP6dax uM6TN7JwXprec92nOdadnZ3BbBfNNNO6tWepfsNwnUsaz59y2PXieP2u7z8c 8f66g2zBexA3i5AzNSfRPlBSb3s99F6r3jC9nzYbD4ZjPbunJ0foa7ZuMwvn pe096z7VuCjmGxkZCfb67t69G3hbDk8736nnPmkvj9d8tcB7cHq8I/I9oIo1 nUkojxkXG881HlQOVS5UTNjIuUfq+9Y5BzbWc/f0FCOl0auQxMkLOyO9d+vO eNPX1Dp1LuCrr75qrl27FtTq6Ou2r12xbKsxn/boGs1X+67ThfzAexDXs132 88ebQfGacphzzX3WQ7GI4kJ91tA5UPKhjQ31nq9YTzGdjfXCe3pZOi8r7wnF eAsXLgz2+dSHr70+m+9sJeZT3Upcb2rUc09us1rgPdBn4ri9jirXtiQhJyn+ ayX/2eh78mv9883ylS+Z++9dMm+8d9W8+6N75t33H0znN+2eXlbOy9J7QvGe 9i1Vq6p8p/Kftr7T1rg04j25S7mLpDrNqBx0Wc4ZhsbBeyDi3ivSrs0oI6r/ UZyWhQNf7f+mWbHlf5iuvavM8M2d5tzETnP2epc5fbVz8gzYSzvMuSv7zfCV Q2b0+oC5fP10sOcmbt+92Rbe6+vrC3oSL126FPT22frOuJhPntLrUnGx+kga 6beMgjnT1QXvgYjLCWkPyvfa2gnVwOj9OOnc0rl676UVz5hjQ1vMcM15Qzd2 mDPXusypK53Bua/9FyfPw9OZQI/OSZjtp/4LXUFtSsCl/ebitZPTXL95cdqV cXUqWXpP+c1FixaZixcvBjHf0MWj5sKVY+bSeJ8ZHNta83ynOT62zBwcmR88 H60+p/qMV7X5szATvAdC79VR7xFVnduSFooFlQ9tNi7Z0Psts+jl58z5Wqw3 7T3FemPbgzPPdf5rPedlyamLex/5dI7otpPX2WIWL19g5q95wizY/AXzYueX zOLdXzUrXv+6WX3wMbP+yOOm4/gTZuOJJ1vynvL2isuZwQJ4D0Tc3BbtL/le W5nQfqlydMqxqc4wKTeq9/hVu//SrNv08mSOc3zHZI7zymSOc3asl6/z0qRj 61Izf9m3zXObvmBe2PpF8/LOr5hl3V8zqw78sVnb+w2z4Zj13tzdZ33HPh5Y 8B5Y4vqb6F/PHrlQdbXKKytHKh8Ge3tb/0+z7bVXZuY4xzrNQC3W6/cc66XJ tt0rzXNL/9rM3/h58/yWL5pFnV82S1/7mnml54/MmkO1mO/o42Zj39y8p5oV xdr4DsLgPbDEzbKgr8kPquF4fd9u03ey17zx3jVz+60Rc/VOvxm5ccicuryr NLGe2H1gjXl+8f9tnq15b0Et5ntxe3SuM8l7+tymzwy4DuqB98ASd940Z7Hk j51LuWvXrqC3zfbs2T5127tw5+5EUIsydmMoqFEZHjsyvX8WV4tSRF4/ut48 /9L/NM92fC6U6/x6kOtcV/PeBmeP7+DF+cHes52Dg+dgLuA9sKjGLW5/hPeV fJHzVLev+n7Nr7TzWdyePdX6N9wffu/ujJrN0WuD0/Wc58YOz6o56Rvemqv3 Dp7sMAsW/sAs3PSYWb37r8267u+ZriM/ML1n15kTF181IxMHavHuefPx33+Q 6/l8UE7wHrjE9fFV8fx1n1jvaU6Lerhd77nzWbLqUw8T5yvXpXPl5u3rM+5j /vz55ty5c+bChQvBubTqb9A8F9vDnsWsaqgmeA9c4s5f196f77VVCeu9xYsX B7PI5D3NoHbnkmU5n6VR76V5H9Z758+fn+5h1zkNim3TmtcJIPAeuMTlOgW5 zvyw3tuwYUMwr9mevSDv2XMX8vLe3bu3I52nXGha92F71633tKepWdWa3SLH 2/PY8R6kAd6DMHG5TuY65Yf1ns5WV85P3rNzqPP2nmayRHlPdTNp3Yc8p5xu lPf0WO3ZRI3O6gRIAu9BmLhc5/6RZ7yvrSpY7/X09JgzZ86U3nt6jGvWrAm8 Nzw8HMwsu3r1Kt6DTMB7ECYp16mzG3yvrwpY7x07diyg7N47evRoULsa5T3V 7+A9SBO8B1HE5To5izYfrPfkgD179pTee/v27TOdnZ3Ee5ALeA+iiMt10suX D9Z7quNX/s+n9yZuXY303sDI7tTuQ2fwyX3u/h7eg6zAexCF3BZ3pjgxX/ZY 76l+cdmyZUFNo696TvXaRXlP/e1pXF+9CjpzXXt81HNCHuA9iEN+I+bzg+u9 /fv3m4GBAW/9e1l779SpU2bdunVmaGgosn9Pj5X+PUgTvAdxEPP5w/We3v+V B5T3fMxrydp727dvN93d3dPeC89rsX3rzGuBtMB7kAQxnx+s9z799NPAd5rb ormczc7nbIWr4xeivXdpfyrXf+mll4J41npvZGTEjI2NBXNJ7927F3hee5vy np4PvAetgvcgifc/uh/b00DMlx32PAa9z2tG2c6dO4P8X/g8hjxynTrrIcp7 Ovuh1WsrtnvllVemnWdrOa9cuWJu3rwZPD55Xnt7eh70fNjnxvfvCNoXvAf1 0HkvcTGfvOh7fWXFxnyqYdSsMtV1+qjpzNJ7msN24MCBGXt7zGqBrMF7UA+d t550prXv9ZUVd49PNR2a3dLf35/7Hl9W3gvXsyTt7VHTAmmC96AR4mI+zijK Dtd72ttS7KOeBuU588x16oy+KO/p661cV/lNzWmJy3HqZ9y9PbwHaYH3oBFU w7L91LcjvaevU+OSDe4en3J9hw8fNr29vdO5zjxiviy8d+TIkWAumRvr2f6F qBynu7fn+3cC7Q/eg0ZRXBcX8yke9L2+MhLOdSrOU5ykHKBb15llzJe29xTL LV26dEYNp2K9cB2nPW+WHCekDd6DuaD9vDj3Tbw16H19ZcPtZ7Bnz6qfT/ti ygHmEfOdv3Is0nuXrp9u6nqqZTl48OCsfT031tPjkeP1eG2sh/cgLfAezAXV b8b1su8485T55NOPvK+xbNhcp+oZFfsoBpIztm7dOh3zZbnPp/qVKO+p3mWu 19KMbfVkhPObdl9vYmJiVj2LHjc5TkgTvAdzZeTObuo7c8TNddqYT7HQoUOH glnObm1nFu5Ly3uqRe3o6JjhPJvfVA2n4tioWI8cJ6QN3oO58ulPPzE9F56m nz1HomI+5Ti3bdtmBgcHp/v5snDf0OWDkd67Mj7c8DXUk7dy5crp2dPWecpv 2rMXbA2nu69HrAdZgPegGZLOphW33xnyvsYyEd7nU42jah3lONVF6mxam+9M e69PczijvKe5nY3GeXKe+vXC+U05T/lN1bLYGdThGk5iPUgbvAfNMnb/QKz3 mOWSPuF+PvW1aX9Pntu9e3cw31n/P+29vla8p1575TbdOM/d01P9pnrUbX5T j4d+PcgavAetkNTPrjPbqXNJD3dmp/J/iomUD9T+njx34sQJs379+unet7Tc d+rinkjv6TzauNsoZ6kzJLq6umbEeK7z3D09rVWPQ4/HziRjFidkBd6DVtBe X/fw9+nry4mofKfmlmlPLNiLqzlGOUX1hVv3teq/kxd2Rnrv1p3x6J8/edKs WLEiODewnvM0d9Tu6dmzZclvQtbgPWgV5TPjZrmI0+Md3tdYJsL5TrvXp/09 OUT7ZTt27DBLliwJal5arXVp1Hvymnrq1Z+nPb1w3aZqWMLOU3+61m339Mhv Qh7gPUgD1bEk1bmo98H3GsuCm++07rNnsVv3ySnyjHKN9pyfZt134vz2SO/Z 76s2Ra5btWrV9LzNKOfp57SfF+U8rd86j/wmZA3eg7QYvtWZ6L7Ru3u9r7Es uPnOOPdp30w1I/bcA53vqtoX/Vu1k416L8p5rx1aG9TS6Dzc5cuXT58lFJXX VH+eZrEoDrU1LLpu2Hl2T49YD7IG70Ga9F5amOi+G2/2eV9jWXDdJ2e47tN+ meI7OUYzUNQfp7hLfe6qfVm4cGEQC+rf8qAcpVgs7Dx9rbt3ndl9YI3Z1LXC vLJ2oVnw/LPm+Zf/X7Nr167pfGbYd+G8pu5fvQq2hkXrw3ngC7wHaVKvp505 nukSrvG0+332jD7t7Wnul+orlV9UzKXYS3GYZmSq3lIeVI5Ss6Lnz58/A+0R Pv/S02bB4r8xzy79jvnhij8xP1j3RfPipsdnuc76zo3xbF5T9691aD1al61h wXngA7wHaaPehST3qbfv/sMR7+ssC+Gcp63zVE+A+uHUC27znor9NPtZPpKX FI8pLpOr5Kywx/oHe80P139uFi9ufmKW62x8Z32n+7Exnu5f69B6bK+Cu5+H 8yBP8B5kwYc/eTvo30tyHzNd0sPGfe4cT835cvOeNvaTh+QjeUnxn/KQqjlx HWgZOH3UPNvxuZls/LxZ1vXfpl2n2E6313V0Pdd3NsazeU31pNteBbduE+dB nuA9yAq5L6m/gf2+dHHdF857KsayZ7S7/lP8p1oT14GK1+QxcWxwj3lu0xdm sKDGmte+G/yc6zpdR9dzfaf70/26MV44r4nzIG/wHmTJux/equs+zTvzvc6y EHZfOPbTvpp7dpHyj6rtlKu0B6c4Tf7Snpxc1n+22yzc9qUZvLj9S2b74b8L fk4/r9vp9rZG1PpO96P70/3q/m2Ml6bz9Bh03xbfzz+0B3gPskZ7eXFn9tHf lw1RsZ/d95OHFH8p76gaE/f8PvXUWQ+KvqEu8/LOr8xg8a6vmtf6ng9+Tj8v 1+n2uo6uZ+M73U8WMZ7WrbMHP//5z+v9axbf+c53TG9vr/ffARQXvAd5IPfV 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 1IrvWvQhAABAZmTpNwAAAAAAAGg//n+b4JSQ "], {{0, 563}, {446, 0}}, {0, 255}, ColorFunction->RGBColor], BoxForm`ImageTag[ "Byte", ColorSpace -> "RGB", ImageSize -> Automatic, Interleaving -> True, Magnification -> Automatic], Selectable->False], BaseStyle->"ImageGraphics", ImageSize->Automatic, ImageSizeRaw->{446, 563}, PlotRange->{{0, 446}, {0, 563}}], ",", GraphicsBox[ TagBox[RasterBox[CompressedData[" 1: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 s2fPjv+7adOm6KWXXor2798fnT59OnabZe/evbHzNm7cGD311FPRnL/8y+ix H/4wWn3HHdHLt9wSHTSvnzjxL/5F9NFHH0V/93d/F2NjQtzX//jmj11uaG4E 6kOTnOfWara7j9ev/O3f/m20Z8+eaNGiRdH8+fNjxym+s36Sq/Q9lg8//DDm b/7mb8Zx9bnnokP33x+tNSy4555ozl/8RTQwZUp07H/9rzhu1M/pGtZ/uK// uW7+fTBzE+pIk5zn5jXr2mcux7z22mux57Zt2xa99dZbqZ6zfpOz/vqv/zrm gw8+iHn//ffHcN7Ehmfvuy86N8Ix477Nhscefjh+HX/+85/HP+/6D/f1N6rP ZOYm1JGmOE89B67z6jhb7NixY7Hr1q9fH3tIvnFdl/Sc9dt7770Xf79eoyTv mtfptPGcGB7hjEEOvHrxYuzVefPmRbt3746v5brPjfvwXn/hmzOnuQSh1wbQ C01xXrJ+pU7Ok2O0R7dy5cro3XffTXWd6znXcdrr08+Id955J+bq1aujXNq7 Nzph/GY5aTgl5xm36ud1ncuXL8d7pepzPHfuXHx93NffaN4K/ZhQR3Bef/P2 229Hy5Yti86cOZPpOsVgSc9Zv+kayoEK9SG6nFm9OhoyjnM5LuetWhX/vK6j 6+m6qn+R944cORJ/zcZ9ii3dfCfeqz6+OdM4D/odnNe/yHPynZyV9J08k3Sd 9VzScYrTxKVLl8ZxfN686Kjq1h2OaV/vpZdGr6HrWf/pz0uXLo127doVf02P rdjSjfnwXn/AnGmoI01x3shzHUW9Z6HX0wuqU1m+fHnsEus7N7azOcw011nP uW67ePHiOC4MD0dHjN/SuHD8ePxzuo6u57pP/33uueei559/Pv7/bsyH9/oH nR2E86BuNNV52n8KvZ5uke9efPHF2HFpvrOxnVzjc12a45KceeWV6LDxW5Jj Dz005vt87lN9i9ynr+vPdp9PMajd48N71YWzFaCONMl57jkJ/Tp37OTJk9Gq VatGfZeWy7SxnfbqunGd5ZT5XJDmvBPPPJP6/Un36fH12WLz5s3x1/Vn29eA 96qP72wFnAf9TJOcp3xmP+/p2XoVm89M+s7NZVrfdeM6y/HFi1OdN7x9e+bP WfdZ3/70pz+NZ7vo62neI89ZTXznJXK2AvQzTXJeskevn85JkB8WGwcpX+nm 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 B5/zLvfQW4DzICQ4rzrYswN0j9fcMZ2nqpxfGecqHDf3ttQ+he3bc38se56C 9V3auQpyPOcqhMfnPPUwdHtNnAchwXnVwsZ6qlXU/DHVb5ZRu+k7T+Gs8VHe j6XZahs3bhyzl8cMlmpShPOE67zBwcHgzxOaA86rFu6enuo3NJNl165dhe/p aY50mvM0dzrPx0nWrmTt5VG/Ep7rAwOFO0/7uj2tcaQmhlku0A44r1q4ztNe lmIe9S0ot1lUfrPM8xSU09T8FV9eU9/j7uXhvLBormaa885PmdLTdd1zEnp1 lZsrDf16QfXBedXD3dNTfm/Lli1xD5PNb+Yd6yl/WcZ5Ctu2bYtnjbkxnu1R SMtrunt5oX8nTcXnPJ230Mt1lc/Ma08P50En4LzqkcxvKr5TfKS8n1u/mVes p3maac5TXUtevlMMN9c41K3VVIyXrNe0Z8WS16wGRTkv2aPXyzkJOA86AedV D7dnwZ4bq3497YMp75d3rKdzE9Kcp/6FvJynupVNmzaN28dzYzw9H/ldz9fG eDgvLEU5TyTPzmt3Bpl86Z6zh/OgE3BeNbH5TdUtKuZR7CNf6L5gY7289vW8 vXk5nSGkednqu0jmNO0+3unTp8fVruh5k9cMz43BwVTnDU+enMv1NV/a9V6r M2OV40/mQ5PO08xWXUexo+DMBnDBedXEzW/aWE8x0ObNm+O5zG4NZ6/e8/bm 5XCGkGpOly1bNsZ3NqepWk3Fr2kxHnnNavDR8HCq807eemsu19fntqT3bK5T 9ZxynP7r1rxY0uK8ZOzYaQwJ9QfnVZe0WE95zeXLl8c1ALZfr1fvaaZmEb15 6rlbuHDh6Bxp6zvlNO0ZCrZW093HI8arDkU7T+g97J6z0Ao5Uu8d+/PJHne3 308xXjIuhGaD86pLcl9PtYz6bCu/qf5R58raHGcve3tHf/KT9N48c1/pJb6T 79SPl8xpynfKaapuxc6TTtZqEuNVgzKcZ9F7I8t9+ru0/nXXeWl5TBv7EeuB wHnVJtmvp7417efJcWvWrIlnNev/97K35zs3r1vfqY9e+Uw3vnP38FSnqf5z m9PU86Efr5p8fO1aqvOGJk4s9HH13nBp9b1ZNSyKCSfQsw4j4Lxq487gVM5P sZBygNrPk+NefvnlaMmSJaO9bZ16T7Fcmu+OPvRQx65TnlJnQaxcuXJMbOf6 zt3D01r1PPR87JwxZmtWjzTnHa1QjWQr51HXCS44r/qk5Tg1i0x7YHKN/KI8 onq+rffadd/ZfftyOTdv9+7d0WPmZ3TuXyvfaY6o3cOz58KS06wuOA/qBM7r D5I5Tru3p/08+UP7Y6tWrYoeffTReM+j3boWXz96u+fmyWnql1f/nfbwkvWZ qldJ+k6951q33cMjp1lt6uI8cpsgcF5/4OY4rffsGerWe/KJHKP8oj2rp5X3 uu1HVx2KPLdo0aLR+ZlpvtP3af8uzXdav/UdOc3qor27NOd9ZN5bodcmWjlP vQ4TRnr/Qq8VwoPz+gc3x+nznv79qz7Enl+gs1lV56I/q0Yy6S5fP/rpjRvH fa9qUlQ3o7Ns58+fP3oeUFouU/13mrGi+NPWq+gaSd/ZPTxivOqiGs1U5w0P B1+bcJ2n2s7k39v+P3rTQeC8/sL1nnzhek/7Y4rrdA/QbBPVqyneUg+76lxm zZoVx4D6sxwYO+qJJ8b57pX7749effHF+Hv0vc8880z8szrLb/Xq1aM5zKTr krlMPb76EWy9itaH7/qPfnGecpfym1BsJ6zv0lwIzQTn9R/JWk67v2fP2NNe nmZ5qY5SOUXFWoq59DlXMy9VVykHKi855957o5kzZ47h4RkzogWzZ8dx4ooV K6Kf/exno312Sc9Z17mxnc1l6vG1Dq1H67L1Kviuv6i681S3ZXOX+v9yn437 JtCXBwlwXn+SzHPaek7V/avfTX3eNtepmE9znOUiOUlxmOIxeerFW26JVpv7 gnjOQXFe0m1pnrNxnXWdHsfGdnp8rUPrsf0I7v4dvusPNFszzXmaPx16bT7k PuauQBo4r3+x8Z47l1Ozu9xcp4359O9fLpKTFPcp96j6knW/+ZvR8+b+tSbB azt3xl6zyG8WeU4xnX5e19H1XNfZ2M7mMtVvbvsR3PpMfNcf6AyFfnMegA+c 19+43kvmOhVb2bPVXfcp7lNdiTy13ty7fmZ40WGtQbGbi/wmFM+5ntN1dD3X dXo8Pa4b2yVzmfiuf8B5UCdwXv+T9F4y5tM+mnv+kHKOquE8tW9ftMXcuzYb Nhk2GjYYtvzjfxzXn7jIb9qjk+MUz2mvTp6ztaDWdXocPZ4eV49vYzt817/g PKgTOK8+pMV8dp9PDlLcpVyj6knkp/O7dkUvm3vXS4Ydhu2GbYadX/5y3Evn YuceynHqsZPn5E9dR9ezcZ0eh9iuXvic9/6GDcHXBtApOK9epMV81n2Ku+Qj 7a8pFruofgRz7xJ7DLsNu7SX9wd/EMdtLvKb6lGs4xTPyZ+6jt2vs3GdHo/Y rj5cmjYt1XnXly4NvjaATsF59STpPjfnqRhMfrq8bFn0mrl37R9hn2Gv4dh/ +k+xzxS76b8W+U2xnBxn4zldR9ezrrOPhevqA86DOoHz6ot1jnWfG/uJq4sX RwfNvesNh9cNwz/4QeyzJPJb0nH2WtZzruvwXT3AeVAncF4zSPPf5XvvjQ6b e9ebDocMl+65J/ZZEus36zg8Vy/c36HLReO8I+Z9keTakiXB1wzQKTivWbj3 ssvTp8f3rsMJrj722KjTXK+5pN0bQz836P69kPw85HLhz/5s3HtEvGPeJ7wH oN/Aec3lku/z+zPPeD/zc3/rb+zvTjlq9Zu8+uqr0c6dO+Oz7Z9++ukx6Gs7 duyItv7oR9GOL30p2nfzzWNyAsoTJD8T8f6AqoPzmgt9V81BDlL9kebGLV++ PJo9e3bsNc1ffemll+I5qpotoN5Li87RkPN+tnhx9OTdd0cP339/9NgPfxg9 //WvR7t/67eii+ZryTrdZP0S7oOqgfOai2+O4o0DB4KvDfJBPpLnFhtv6Txh nZOh2QJuLa+7ZyuH2dpey7tbtkQX7rsv5pDx3hrz33n33BPN//GPY1+qb8XX p0L9LlQNnNdcqj4vH7pHjtGcOJ2dIc/pLKdkz6Z1nO1dsfW56kMR6kkRb5tY 8KzxnOXcCCfXro02b94czZs3L3r55ZfHzCPwzd/BfRAanNdchm66KdV5odcF vaG5OYrrdL6vYrC0+QSu56zflPtUD6bbkykubdgQndY5wiMMj3Bl48b45zSj QF6V+zSPPDmjgPkEUCVwXjP52NyP0nw3NHFi8LVBd8gtq1ativfpNDvH5zp3 Fp11nOYPyI9CDhM6F0Nc2Lo1OmEc53JSuc7nnhudW6DraCad9gp17qJm9tgZ 43Ifs3mgKuC8ZqL8ZZrzlO8MvTboHPll2bJl8XkX7uydpOtsPOd6zvpNc+Xk KqFZc5bzO3dGQ8ZxSc4Yv+nn7Cw66z/NI1dOVbPJ3bOkmMEKVQDnNZMbg4Op zlMtZ+i1QWcoppPv0mK7NNe5nnMdZ2erau/P5cyOHdFR47gkpwcGRuewCtd/ mkWuNal+Rl9zz9rAexASnNdM1I+Q5rxz3/xm8LVB++hsJ+UyFWMlz9OQ79zz NPQ99kwN13Ou33ReRpJh8145YhyX5JRxnv25tDnk+rPWtnXr1tEzFeVed58P 70HZ4LxmolmJac5Tn3rotUF7KI+p/TM5JOk79+xE6zob17muS3NcmvMOG8cl OfnMM6Pfk+Y+G/c9//zz0caNG+OvKwa0+3x4D0KA85rJO3PmpDrvrRkzgq8N WqO4SbnDNN+550W5sV2nrmvlvBOO81xc9+lx5b5nzPfu2bMn/rrWY72nWBTv QZngvGbytvZkUpx39cEHg68NspEn1IuQzGe6e3d2387Gdm4OsxPfZTrvqae8 P+PGfXp8fe2JJ56IDh06FH/d7vER70HZ4Lxmwvkw/Yv2yNSDl+Y7t07F7tt1 E9u5nN23L9V5Q4sWtfxZ13ua//L444/He5D6unzs817o1xjqC85rJuenTEl1 3vsbNgRfG/jR3BPNhU7LZ1rf9ZrLzNN5yVynZng+ZeLDs2fPjnrP3d9z6zlD v9ZQT3BeM/HNl1YPQ+i1QTryhnKabj+CrVdx85l5+i4P5yW991d/9VfxnE7r Pbu/5/YxkOOEosB5zeTUbbcxa7OP0P1fNSvnz5+PnVeW7/Jynus95TY1p0y9 6/Kevqa12z4G9vagSHBeM2G+dH+hvoSVK1eO28Oz/QhF+S5P57nee+GFF+Lz +XR+kTyu/T55O62WM/RrD/UC5zUTn/M+vnYt+NpgLLrvK6cpXyRrVmw/QrI+ MxfXHTgQ++70xo2pzjs2d278922zf3/MOcOpoaHokUceiY4ePRqfXatZnW5N CzlOKAqc10xOTJrEmQp9guZ36dyCZE7TrVmxvrtoYibrFnnm1Nq1Y1B/geKz MRh3pTmtCOwMF80ue/7ee6Mnv/WtaKN53+34whei/X/wB9Ghf/2vo6P/5t9E Z3/wg+jyPfdEV8z3/Hz16nhuEHvNkAc4r5mk+Q7nVQ/FOEsWLIhO790bvf/q q9H1rVvjM1zfWrMmOm9ivzNPPBGdmjcvOjbiEeuUsvzVi/dev//+aJZx2jrz vtss7xl2G/YaDhgOGg4bjoyQnAsrNENBvaZyInl5aAec10xwXjXQmU66X6tH RPfuK9Onj97P9fs4cPPN0cPGDVfM3102XDScN5zRvMv7PjnXZyiA73pxnuu9 +XffHa344hejDea5bjHsNLxi2G94w/Cm4z3fezbJ8OTJ0cWpU6N3zWeFGwcO BP8dQ7XAec0k7V6hfGfoddUV3Xut13Q/9vWKuOg+v/Ff/stoxT33xL67ZLhw 3ydnlevs1pMjvgsR4+XlvNXG54v//b+Pfmae6ybDdsOuNmO9dtGZkOpHlQM/ unQp+HsBwoLzmof+3XN2XnEobtM8U826Gb799q7u09Z5y77//Wjvj36UGuMd D+i7Xp1nf37QOO+RH/4wWmuea56xXhb6vIH/mgvOax6cF5svqq1QTrIXv6Xx 5mc/G80yvruYEePZs+zy9t3QY499WuNi/n+qsx54YHw9TJu43nvYsPLXf300 1rP7evsMrxsO5ey80fjvppvi/UDll0O/h6A8cF7zwHm9c31gIM5RKm+W533Y jfG2f+Ur0U/vvrutfTzrkKM/+cmoV44vXTqmZnN4587x/QMHD7bsWTg/NJTq vKMPPZRLT8SqVauitWZ9B158MXr9qaeio8uXRyeWLIlO/J//E535v/83Ovu9 70Wn77gjOj15cu7eE8rpv7dmTfD3FJQDzmsePudxRnrr101xga/PI2/nrfv9 349W33tv9PbcudFbxgFvPftsdHnjxujC+vXRBeOv86+9Fve6yUl59Z/78MWD eVxbZ+s9a57bQeNf9eudOnUq7lO3szjTetSVPxbaH718113xe1dxWy+vufb8 iPnqD85rHr4z0nGe//XS+fFF+U1z4PTaKz+qe7hqXd7fti16adOmeC6lO3PF 7cfLc9ZKSOftNP7W3Ok33ngjOnz4cHz+gmaS6Tm6PertzGXRHp11YTceVH6a fb56g/OaB85r/3Vqp76yXXQt1bWM9pNl3Ft1b1e+7/XXX4/v93aupp25ohlj dXGeeu4XLVoUP1edrzdk4ladlaQeez3f5FyWTn+P2m/tJD5Xjp9ev/qC85oH zsvmw6NHe4rrtMen11Ju0z6RrtfJ4+u+rphmYGAgjnms85Tns3M1856pGdJ5 ymfOnTs3OnDgwGh+U3M49Xd6vopv8zpnSDF0O79beY85fPUE5zUP3YfT/p0r Bgm9ttDonPhO82H6ftv/1anf0rDO04xNzaG05+PZWdKjc8ZK8l3RztO8zVmz ZsXxnvKbR44cGbOnp/g277nTcp9v5qz7GZD9vfqB85qHzkLHeWORq3znK/lQ 3WYRZ+xa52kGs/bv5LyQe3lFO0/MnDlz1Hl2T+/cuXNxTGvP1sv7rAX5TL/D rN+xcqKh35uQLziveeC8sSjubbfnQLFB0f3M1nkLFy6M9+2S9Stl7+UV7Ty5 zdxHYudpT+/NN98cV8dShPMs8lpWDM/8snqB85qHz3mq+Q69trLRvJR2XafX rYw1WeepllE5PjnPngsbon6laOfp7Ng55vfgOs+eJ6vn2mntZjfovZ+V4wz9 PoX8wHnNQ7UVaf+29fXQayuLdvJa9nO+9vjKXJt1ns5VVV1HFZynmStpzrtg vNTrtW3dpv6r52trN63z7FmyRTpP74esGl161usDzmseTXee8pLtzAlTfV+I mnXd01WjuHXr1ujll1+uhPM0cyXNeXn0w+/evTtaamLodpzXbb9Cu+8LX/2S zmoI/b6FfMB5zaPJztPeTDt9Wsp5hlqjdd7g4GA8o6TuztuyZUv0zDPPBHee UEzve0+wr1cPcF7z8O3Zh7zPl4HuWa1qVfT36l8MuU6b21Sv2nPPPVd756n3 XjM3Q+Y2Lcpx+j4TKRce+j0MvYPzmofqM9P+TZdVoxGCdnwXz52qwPwN6zzV 6M+ePbv2zluwYEG03XzOCFnD4uKra1Lek369/gfnNY+mOa8d3+kzfFXuZ9Z5 qs1X7abq9kP3KhTlPFuzuX///mC9Ckn0PvC9X3SeRuj3B/QGzmseTXJeO76r Wk7XdZ7mL2u/K3RPelHOU3z39NNPj3FeWT3pWfh6F1TXFPr9Ab2B85qHb95g ETNFQtKO76roedd58oJ600PPHivKearXVJ2OdV5Zs8da4ZtJG+c3mcPZ1+C8 5uHrQwpdu5En/eo7YZ2nGkXd6+fNmxc7Ljljut+dpzhOczb37t0b+04kZ0wr rlWMq9chjxnTneCrZdEcntDvEegenNc86u48zc7sV99ZbL+CZm1u3rw5znGG PEuoCOfZvjwb47k1m8mzhOy5CmX5Tvjym8xl6W9wXvOos/NUd9lqXn7VfSds rKdaRcV2qm1UTjPUnl7ezlOMp/h1165dqXt53Z4Zmye+/KYgv9m/4LzmUVfn 1cV3wt3TU/2G5rGsX78+2J7esTlzUp13zjiqm+vZPnTrO5vXTO7lhahfcfHl N/vlfQTjwXnNo47OUz6zLr4T7p6e8npynd3XC5HfHFq0KNV5Z/ft6yrG0zlJ e/bsSc1r6jw9Pa+8z4vtBl+NM/3p/QvOax51c14/16tkYff0lNdTfu+VV16J Vq9ePSa/WVasl6fz1q1bF61cuXJMjOeemxdi5pgP1TJ76zcr0s8JnYHzmked nKd7Uqtzzft1jqib37SzWJ588sm4j9vWb5YV6+XlPK197ty5Y2o1tY+nGO/Y sWNxvabOhg/Vo5Ak7k/3vL/q1tvTFHBe86iL8xS71dV3IpnfVMyjvKC8J8+5 sV7R3svDeVq7zgxSH7qb07Q9eW6Ml6zXDOU84TtzqonnTdYBnNc86uA89Uhl ua7ffWdJ1rKopkN+UI2/YqGy9vXycJ5qVpTXdHOadtaY3cezMV7o2hUX3xnL 9Kf3JzivefSz83TGmW+OjEtd+obTYj3tc6nGX2cuKNYrI8fZq/PUYzgwMDDG d4rxbA/6yZMn4zjQ3cerQown5DVfPqFqc+ugNTivefSr8+JcZquzgMy9qW5z gJOxnva55Dqdo75t27Y4Lio6x9mL87R398QTT4zzna1b0R6fetBtvlbPryox nuXK9Omp7zf1MlDL0l/gvObRb85rN7aTD+tYV6B7vjuXxc7eVHynWG/NmjWj Oc6ivNet8xTfyXduzYr1nc1p2roVPR/bg+7OXamC81Qb7HvfEev1F/3mvBuD g/G9OYnui6Ffy36hX5ynHnN9vm5Vp2J9V+dzrJM1nOpbU52HPKdYT2cOyRtF ea9T5ylPqX6EtHym3cNTnab6z21OU8/HztasUoxnOT9lCrFeDeg357XqO06i c0B1j3fRfVT1DS7vmc/KaS611Ol+WmXn6d6h3KSvVi4NxYB1/8zjxnrqV7M5 TvUsyHHq3VM8pZipCO914jzVoqjGRrnXtHym+hLsHp7qNLVWPQ+b03T78ark vKxZZG/NmBF8fdAedXdeGSgOSXo1C31eTDpXKC83JnYt6Mxun09C9W3ruSo/ pHW1E9O5r3tdalXawa1nsX3qqm/UHpj8Jpfo3KEN5n0k9+TpveOLF6c674xx rft9mimm/jvlNNvxndZn6zTd/vOqxXgWfYb2vR+r8JkRWoPz+gc996x4td24 NOSZscpNy1NaQ9b9oxXDkyfH88ZC//spm7Q6Tu2ByRvyh1yydu3a6NFHH412 7NiRm/dOPPNMqvOGzXtNf684U/PE1I/gzhRL853tw9PPad3uHl4Vc5ouygd5 P4PVPL+eJyFzwf3mvFZ1e+DHuvKkZ27u+e98Z4xD5UBfrld/lxarCrnYdXOe vzPFdlcffDD4v9mQuHt7ad6TT7Rftnz58mj+/Pmxg3r1ns95e4wDFpsYUH3y 9oyENN/Z/Tsb3/Wj7yxZ9VR4rz10D9FneN1HyvZfvzkvtDfqwLEKrKEblPts YmyXxO5zuTUtad5Tfci+ffvi+hadzap6Ep1Zp5qRXpy39Uc/iv7q3nujh+6/ P1r44x+P5jFd19l+c/XfqR/B1qu4+Uzru2TNStWdp71j33kLgs9lrdG/Y/t6 6bXUZ+Wy9uT7zXl6bZQXS9snO3XbbcHvy5Avun8obixqb7NfaeU95TTlNtW0 qP9NsdbGjRujZcuWRebfbOxBnU2knKT8pJxj0nP6mv5O3/PCY49FS+++O/pL 47v53/9+9OTv/3707M03RzvMv8ek69xcpmbG6PG1Dluvkua7KtasZJGV47Qo HmSPLx39e077t657e9H/1vvNed2gXEMyN6eaibS8XFbtSSf1FdCb5xTTqX6T GnA/bi2n6z1b16L6TZ1Dp35v5RQVaynmkos2bdoU9xIsWbIknoGpupOZM2eO QV/T3ylvufR//I9o6Ve/Gq0wv5tV5ncknjO8ZP7NpLnOxnZ6XD2+1qH1aF39 7juLbyZZEu1baw+bz22fkuY8F9X5FfV5oQnOKwPNJ8rqdUji2wvT77ppnlVu Q8/V9ozgufZJxnt2f091/+p303wWxWyKsWzMp/jNuk+OUg5SvnJjtSSbvv3t 2HGW1SO8bOI+/bzrOl3fje30+FqH1qN1pe3f9ZvvLO16z6I9LM2m1vu8yXl6 /Rtv9/NC3nOVcF5/4XpT/25cXyZzvll7DqHQe1gxnPY79ByY0ds7ad5Tn5v6 uzW70s5oUc+6dZ9qJxWHKfeo+hLtuwnrQOtBy5b/+B+jNeb3Z3ne8IJhzwMP xD+v6+h6rutsj7weX+vQerSuuvjOohiul8+m+rcqD7r9SqGfU9Fk9Tr6Piso N5fH/QLnNQcbi176n/8z9X11ZvLkzPpLF/nVF6vqvem6OfTzbgKu92z/npvr tGeraz/Nuk+948o9ylPylY3/5DChuM2y/Tvfidaa98iLDusM+8xnF/28rqPr WdfZfTs9ru2903qS/Xf97juLYjb1z+T5+TDZ96u+9+S/tU5yS72Q/HydRHuX afeJvHvLVBcb7+/3UO+C85qHLx8jj4VeG3RP0ntuzJd0n+IvOyPM+k91lXKX YkB5TLMwLbv+6I+iDeY9IjYaNhk2Gw7OmhX/vK0FtXGd6zo3tquj71x0/69i fqWO6H7VTV8IzmseOK/epMV8br5TLlKuMXkOkeIz60CL6k/E3v/8n6Nt5j0i tht2GF4yHH/kkfjndR1dT9fV9d08Zl1jOx/x/Dzzb4w68mLRZ4tu5mjgvOaB 8+qP67009yn+cv2neZfWgao3kcfs3E5x8L/8l2iXeY+I3YY9hlcMZ+bPH+M5 N65zXdcU3yVRXlC5OPyXH8pvKp7uttYN5zUP1UGlvZdUMxp6bZAvae5TjtHu 97n+U02l3KVeAnnMojzl0He/G+017xGxz7B/hIsLF456TtdL5jCb6ro0VJ+v z5uqV/HNeYds9Nr12ruO85qHr2ZK/w5Drw2Kwec+6z+5yjrQetDl9J/+afS6 eY+INxzefuKJ+OfttXBdZ6j2RZ9BFbdYF9Y9JrRzgzuZSagambx6O3Be8/Cd f6k+gtBrg2KxHkr6z3Wg9aDLue99Lzpk3iPiTYd3nnwy1XO4Lh/c2kn1RKTV TKr3p5NzXbpBzsmq25S3x52/NjiY+dzaiXV1T8q79hvnNQ/fDAR9/gq9NigH 101JB7pYH57/sz+LDpv3SJJrS5aMu07o5wb9QdYZmd3Wp7QDzmsevhkI6gcK vTYIQ5oDXS5OmxYdMe+RJHJe6LVDf5J2plmv9SntgPOaie/zVeh1QTUJeeYi 1JPkeyqP+pR2wHnNxDcfgTm4kAbOg7zRXJm861PaAec1E19tWJPn3oIfnAd5 Y+teyn5cnNdMfDVTzMeENHAe1AWc10zUf552D9Nc99Brg+qB86Au4Lxmwj0M OoH3C9QFnNdM7P5xEp0DFHptUD1wHtQFnNdM1AOTdg/T10OvDaoHzoO6gPOa CWcrQCfgPKgLOK+Z+OZMq1cm9NogDN3MYcF50G/gvGaiPrw056lvL/TaoBza nbkpLqTM27Szx5i1Cf0EzmsmH1+7lj5zc+LE4GuD4rBu0nlBw8PD0auvvhrt 3LkzWrduXfT000+PQV/bsWNHNDg4GO27665o3803jzlTQd7TuQquG/EfVB2c 11w0UzrNe0XOd4UwyEE6+1WOk89mz54d/3fTpk3RSy+9FO3fvz86ffp0dOrU qVH27t0bO2/jxo3R0lmzoofvvz967Ic/jFbfcUf08i23RAcnjD0/z57BwPl5 UGVwXnNh/lj9kY/27NkTLVq0KJo/f37sOMV37pl57jl5OjvWnh/rcvW556IL 990XHTLeW2tYcM890Zy/+IvohTlzorfffjuOG/Vzrv9wH1QRnNdcmD9WX+SY 1157Lfbctm3borfeeivVc+756PZM9A8++CDm/fffH+XKypXRWeM8cW6EY8Z9 L61aFS1YsCDaunVr9POf/zz+edd/uA+qBs5rLtSf15Njx47Frlu/fn3sIXv2 q3Vd0nPWb++99178/devXx/HhRUrotPGc2J4hDOGq4OD0TvvvBN7dd68edHu 3bvja7nuc+M+vAehwXnNxTeL5eqDDwZfG3SOHKM9upUmJnv33XdTXed6znWc 9vr0M0IOE1evXh3l7LPPRieM4ywnDacMV4zj9PO6zuXLl6O1a9dGjz/+eHTu 3Ln4+rgPqgbOay6aM5bmPJ3dGHpt0BnaU1u2bFl05syZTNcpBkt6zvpN11AO VFy5cmUMw8uXR0PGcS7HDRdffjn+eV1H19N1Vf8i7x05ciT+mo37FFu6+U68 ByHAec3lvTVrUp2nMxdCrw3aR56T7+SspO/kmaTrrOeSjlOcJi5dujSOE8Zh RzWvzuGY4cKBA6PX0PWs//TnpUuXRrt27Yq/psdWbOnGfHgPQoDzmssNc7+i L72/UZ3KchODySXWd25sZ3OYaa6znnPddvHixVSOL1oUHTGOS3Ju//7453Qd Xc91n/773HPPRc8//3z8/92YD+9BKHBec1EfXprz6NHrD+S7F198MXZcmu9s bCfX+Fznc1ySIeO8w8ZxLnLeWeM8+z0+96m+Re7T1/Vnu8+nGNTu8eE9KAuc 12xO3nprqvMUA4ZeG2T83k6ejFatWjXqu7Rcpo3ttFfXreuynCfO7ts37nuT 7tPjq7Zl8+bN8df1Z9vXgPegbHBes9FM6dR+hYGB4GuDdGy9is1nJn3n5jKt 77p1XTfOS7rP+vanP/1pPNtFX0/zHnlOKAOc12yuTJ+e6jz1MYReG4xHfli8 eHGcr3TzmUnf2VxmL7Fdr85LxnwXLlyIFi5cGNdz6u9c7yX390K/zlBfcF6z eXfBAmo3+wj137n9CGX4rhfnJb134sSJeG6LZnviPQgBzms2NwYHqd3sEzRf Rf3myXqVon3Xq/OS3nvhhReiDRs2RGfPnh3Nc9q6Fj0ft38v9GsO9QPnNRvf mULUblYL+U3zxBQT2f47tz6zSN/l4TzrPbumRx99NHrzzTdj72mt2nvU89Dz sX3r7O1BEeA8ODFpErWbFUdnAKnu0a1ZcX0nZxTlu7yc53pPM6lXrFgRz2zR nDKtW3uU6idM1rSEfu2hXuA8oHaz2iRjPLuHJz/oa7Y+syjf5ek86z3VsyjW O3jwYLy3d/78+djZ8jc5TigSnAear5nmPNV0hl4b/CLu6dZ5BTbGc/fwFBvl 1Y+QxdGHHkp13vmhoa6up3XqXL+nnnoqOn78eFyXo6/bnnXFsMR6UAQ4D3R2 UJrzhidPDr62pqP7vWI8xXI2xkvu4RXtuyKcJxTbzZo1K97XU4+99vZsjpNY D4oC58FHw8Opzhu66SbqWAIjl6kfz61bkQ9sTtPu4RXpu6KcJxTnaZ9SNanK cSrnaes4bT0LzoM8wXkghiZOTK9jGRwMvramovv8zp07Y1rFeEX6rkjn6bmp 5/Dw4cNx756t4yTWg6LAeSDUg57mPJ2xF3ptTUX3eM0YU11jyBivSOcppzl7 9uzo0KFD3liPfT3IE5wHwnd+LPNYwqFYR3t5bq1miBivSOcJ5W5Vp+PGenK5 reF0+/VC/06g/8F5ID7Yvj3VeTp3IfTamoju76rtWLNmzZh+PFurWWaMV7Tz dOaCzhqysd7w8HD8dcWytl+P/CbkBc4DoVoV1aykeU81LqHX1zR0b1d/gnq3 bV7T9uOVHeMV7bwtW7ZEAwMD0RtvvBHPn1a+0/brkd+EvMF5YFFvAr3p1UD3 9k2bNkWvvPLKuLym7T8vK8YTR2bOTHfeiRM9X1vPccmSJdHrr78ex7bq10vL b+I8yAOcBxbfuUIXp04NvrYmYedMrl69OnZA6LymSPOdyOPaiu901sKBAwfG 5Df1/JL1m8zghF7BeWDx7enRp1cuuqcrplENv+ZRptVrlpnXLNp5iuvmzJkT vfbaa/EssqNHj47WbyqPq/iWPT3IC5wHLr550+Q3y8M6TzWbymO6zguxl1e0 88TMmTNj5yX39GzPAnOnIS9wHrj4Zm9qDnXotTUF67xHHnkk3s+y9Stuj0KZ ec0ynac9PduzoL5E6lggb3AeuGTmN69dC76+JmCdt3Tp0nj2sj1DIVT9yoXh 4VTfHXnggVyub/vSrfPcOhb53Z6jjvMgD3AeJPHmN809OPTamoB1ns5EV54v dM2m+hHSnKf+hTyuL8cpj5vmPGo3IW9wHiTx5TfP3nln8LU1Aeu8devWRXv3 7q298/Qcn3jiidh5tnZzyDwmzoMiwHmQxJffjPvTzb029PrqjnXejh07Yuru vO3m/aYa1TTnqVYH50Ge4DxIw5ff5BzZ4rHO0/3/hRdeqL3z1q9fH61YsYI4 D0oB50Eavv501bIQ6xWLdZ5q9ZXzC+28swcPpjrv2Jw5uVxfZ+jJe+5+Hs6D osB5kIa85stvvm3ud6HXV2es81SnOG/evLh2MWTd5tl9+1KdN7RoUc/XVj+C zkrXnh51m1AGOA98+M7UU96TuSzF4Tpvw4YN0Z49e4L25xXpPM3afPLJJ6P9 +/en9ufpudKfB3mC88DHjQMHvLEeZ8kWh+s83fuV+wt5pkKRznv22Wfjs4Ss 83xnKzCHBfIC50EWxHrlY52n+ZJyneaxaM5mqHmbZ0wslua844sX93zthx9+ OI5jrfPsvE3NGWXeJhQBzoMsiPXKx54doHu85o7pPFXl/EKdqzC8fXuq8048 80xP17XnKVjfpZ2rIMdzrgLkCc6DVvjO1YtjPeaRFYKN9VSrqPljqt8MVbtZ lPM0W23jxo1j9vKYwQJFg/OgFe+tWeON9S5NmxZ8fXXE3dNT/YZmsuzatSvI nl4RzkvWrmTt5VG/AnmC86Adhm+/3es9zW0Jvb664TpPe1mKedS3oNxm2fnN 01u2pDrv1Nq1XV9TOU3NX/HlNfU97l4ezoO8wHnQDln7eqduu416lgJw9/SU 39ti3LN169bR/GZZsZ7clqfztm3bFs8ac2M826OQltd09/JC/06g/8F50C5v zZjh9Z7+LvT66kYyv6n4TvGR8n5u/WbRsV6ezlMMN3fu3DG1morxkvWa9qxY 8pqQNzgP2kWx3Mlbb/XOJFMsGHqNdcLtWbDnxqpfT/tgyvuVFev5nHd648aO r6W6lU2bNo3bx3NjPD0f+V3P18Z4OA/yAudBJ7y/YYM31lN9JznOfLH5TdUt KuZR7CNfDAwMjMZ6Re/rnVy1KtV5qm3p5Dqal62+i2RO0+7jnT59elztip43 eU3IE5wHnXJx6lSv9zh3IV/c/KaN9RQDbd68OZ7L7NZwFuU91Wf26jzVnC5b tmyM72xOU7Wail/TYjzympA3OA86RfOnhyZO9HpPvQ2h11gn0mI95TWXL18e DQ4OjvbrFeU9r/N27mzr59Vzt3DhwtE50tZ3ymnaMxRsraa7j0eMB0WA86Ab ri9d6nWe9vY+PHo0+BrrQnJfT7WMqmmU31T/qHNlbY6ziL09n/M0h7Od+E6+ Uz9eMqcp3ymnqboVO086WatJjAd5g/OgW7JynHH/AjNaciPZr6e+Ne3nyXFr TFytWc36/0Xs7WmWdDfOUx+98plufOfu4alOU/3nNqep50M/HhQNzoNuUb2K 3ObznuZTh15jXXBncCrnp1hIOUDt58lxL7/8crRkyZLR3rY8ved13sGDqd+v PKXOgli5cuWY2M71nbuHp7Xqeej52DljzNaEosB50AvKYWbt7TGHOj/Scpya RaY9MLlGflEeUT3f1nt5uG9o7txU550fGhr3vbt3744ee+yx+Ny/Vr7THFG7 h2fPhSWnCUWD86BXsuZxiusDA8HXWBeSOU67t6f9PPlD+2OrVq2KHn300bi+ JY+6lqMPPdTSeXKa+uXVf6c9vGR9pupVkr5T77nWbffwyGlCGeA8yAP1KGTV tKivL/Qa64Cb47Tes2eoW+/JJ3KM8ov2rJ5evOdznv5OdSjy3KJFi0bnZ6b5 Tt+n/bs032n91nfkNKFocB7kxdk778z0HrOo88HNcfq8p30y1YfY8wt0Nqvq XPRn1Uh24rwjDzwwxnXbf/SjaMD8V2fZzp8/f/Q8oLRcpvrvNGNF8aetV9E1 k76ze3jEeFA0OA/yQn17vtlksfcmTmQ+WU643pMvXO9pf0xxnfyi2Sbqf1O8 pR521bnMmjUrjgH1ZzlQflIMNi6+M1/T3201jlttvLf07rujvzT/f+6f/3n0 5B/+4WgOM+m6ZC5Tj69+BFuvovXhOwgFzoM8aVXTor+jdy8fkrWcdn/PnrGn vTzN8lIdpXKKirUUcyn+0sxL1VXKgcpLau7zzJkzx6CvLVq4MJr//e9Hi77x jWjpV78arTDx+irze3z+llvGeM66zo3tbC5Tj691aD1al61XwXcQApwHeaNY Lst7igU/MvfB0OusA8k8p63nVN2/+t3U521znYr5NMdZLpKTFIcpHpOn5Kuk w8SrL74YPWd+Z0nWjjjPes7GddZ1ehwb2+nxtQ6tx/YjuPt3+A7KBOdBEahm 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 AAAA6B/+f9xX6Rk= "], {{0, 563}, {445, 0}}, {0, 255}, ColorFunction->RGBColor], BoxForm`ImageTag[ "Byte", ColorSpace -> "RGB", ImageSize -> Automatic, Interleaving -> True, Magnification -> Automatic], Selectable->False], BaseStyle->"ImageGraphics", ImageSize->Automatic, ImageSizeRaw->{445, 563}, PlotRange->{{0, 445}, {0, 563}}], ",", GraphicsBox[ TagBox[RasterBox[CompressedData[" 1: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 /u7vWjq75Gy0ubF5HuXdngf2eB87AHQjtMxTT4rbn+J7PD6k5drf/u3fZtr/ xf33ZJ6c7js99/m+nxMAdCKkzNP+A7fGC6knxbLpww8/jK5cuRKdOHEiGh0d jfbu3Rs9//zz8+htR44cicbHx6NLZy9F/T/fH/U37nX90PW5XHTz0/dzBYAs IWWeuy6nPkzf4ymDMuiDDz6IM055tmzZsvi/w8PD0auvvhqdPHkympmZid56 6605k5OTcebt378/2rRmU7T00aXRsj9dFq34/RXR2l9aG21sbIyeu++56MPv fhj9zd/8TfTxxx/Hkvnn+7kDQFJImef2ana6jterPvroo+j48ePR2rVro1Wr VsUZp/rO8klZpY8xP/jBD2J//dd/Pc+1kWvRa32vRYcfPRy9+OiL0VN/9lS0 9P8tjTb+z43Rd77znbhu1OfpMSz/yD4AVRVS5rnzmnXdZ66MmZqainPu0KFD 0bvvvpuac5Zvyqw7d+7Evv/978du37495/WNr0cn+k7MmeybjEYfHY0ODByI Vq9eHX8fv/vd78af7+Yf2QegikLJPO05cDOvjmeLTU9Px1k3NDQU55Dyxs26 ZM5Zvn3ve9+LP17fo6SJJRPR8b7j0Xjf+JyJvonoO299J7p582acqytXrozG xsbix3Kzz637yD0AVRBK5iX7V+qUecoYrdENDg5G77//fmrWuTnnZpzW+vQ5 ogyT9957L3Z9+np0rO/YPGN9Y9H4X45H77/3fvz5epxvfetb8Vqp9jm+/fbb 8eOTfQCqiMzrbVpT27x5c3T16tWWWacaLJlzlm96DM2BivYhmukD09Fo3+ic o31HY1PrpuLP0+frcfR4elz1vyj3Lly4EL/N6j7Vlu58J7kHwBcyr3cp55R3 yqxk3ilnkllnOZfMONVpcuPGjXlOD5yOXu179R7nXzkff549hh7P8k9/7u/v j44dOxa/TV9btaVb85F7AHwJJfNmn+sc7T3zPZ7FUJ/Kli1b4iyxvHNrO5vD TMs6yzk33775zW/eY+yJsehI35E5lnlvnnxz7vP0OJZ/ln367/bt26OdO3fG /9+t+cg9AD6Fmnlaf/I9noVS3u3ZsyfOuLS8s9pOWZOVdWkZ57p2+dq8vHO9 c+WdeR+blX3qb1H26e36s63zqQa1NT5yD0CZQso8956EXj137M0334y2bds2 l3dpc5lW22nNrdusM5fGLqXm3fjT45mfk8w+fX39bnHgwIH47fqz7Wsg9wD4 EFLmaT6zl9f0rF/F5jOTeefOZVredZt15uyOs6mZd2bbmbafa9lnefvss8/G Z7vo7Wm5xzwngLKElHnJPXq9dE+C8mHDhg3xfKU7n5nMO5vLXEht55rcMJma edOj0x19vlvzXb9+PVqzZk3cz6n3ubmXXN/z/X0GUG8hZZ4k787r9Awy5Umr e/aKpv137n6EIvNORpeMpmbelfNXOn4MN/cuX74cn9uisz3JPQC+hJZ5ovOl 3dxrd2esztfKmg/VfKnqRaPHynvOVOeraL95sl+lqLy7eulqat69+pevdv1Y bu7t2rUr2rdvX/z9sXlO62vR83H37/n+GQFQTyFmnl5/k7lnc53quVDG6b9u z4uxbHQfQ//Vx7p38+V1T5HyTeeJqSay/Xduf2beedeqf2XimYkFPZ67H2LF ihXR66+/Hueexqq1Rz0PPR/bt87aHoCihJh5onxw71loR7mmO9bdz1fOpdV9 jRz7QnUHkPoe3Z4VN++UGXnmnahPZaH9K+1yT79PbN26NT6zReeUadxao9R+ wmRPi++fEQD1E2rmGdVjrbJP7+t2/7p97mLHlqzxbA1P+aC3WX9mnnknJ9ae SM28CyMXFvW4Gp/6WVTrnT17Nl7be+edd+LMVn4zxwmgaKFnnks1m2uhj2Nz ootd19Oebt1XYDWeu4an2mix+xGyZPWvzJydWfRja5y61++5556L3njjjbgv R2+3PeuqYan1ABSFzFsczXfa2p+xdb7FZJ5e71XjqZazGi+5hldE3qkvM6t/ 5Z1r7+TyNVTbLV26NF7X0x57fZ9sjpNaD0CRyLyFszlR62HJM/OUZdqP5/at KA9sTtPW8PLMO9H+u27PX1kI1Xlap1RPquY4NedpfZzWz0LmAcgbmbcwts9P exOS71vs3KZe50dHR2Ptarw8c0iy+ldOvXgq16+j56Y9h+fPn4/37lkfJ7Ue gCKReQvTKtfyyDydMaa+xjJrPMk6f+X8/vO5fh3NaS5btiw6d+5cZq3Huh6A vJF5C2O55u5fEPWBWt/mQjNPtY7W8txezTJqPDn2+LHUzHvr1Fu5fy3N3apP x631lOXWw+nu1/P99w2gHsi8hbGzWbR2p70Myj6b71zMep5e39XbsWPHjnn7 8axXs8gaT3cEdXp/UB7U+6O7hqzWu3Ll7rlmqmVtvx7zmwDyROYtnF6zG4l9 66rzLA+VTd0+pl7btT9Bj2HzmrYfr+gaT7VcWt6p9ivi642MjMS/J5w5cyY+ f1rznbZfj/lNAEUg8xZvsfv5XHptHx4ejiYmJu6Z17T950XUeKI952mZpzW+ Ir6enuOmTZvi3xNU22q/Xtr8JpkHIC9kXnXYOZMvv/xynAFlzmvKYu7MWwjV d7pr4dSpU/PmN/X8kv2bnMEZFv2c53E+BJBE5lWHXtNV06iHX+dRpvVrFjWv Ka/1v1bImWNZVNctX748mpqais8iu3jx4lz/puZxVd+yphcO1faa6047/70x e4at5vx9jxO9jcyrDss89WxqHtPNvKLX8uT48uOl9WyaJUuWxJmXXNOzPQuc Ox2G5Np4K7Zu7nvM6E1kXnVY5j311FPx77zWv+LuUShqXlPnipXZs5nMPL2G 2Z4F7UukjyUcaWe866wH1XQm7V4v3+NGbyLzqsMyr7+/Pz572e5QKKN/RedH l9mzKbYv3TLP7WNRvts96mRefdn+HjfrWt3f7NaDvseO3kTmVYdlnu5E1zxf mT2bWedsFtWzKco4zeOmZR69m/WnPa1u3in/Ovk8u7vS9/jRm8i86rDM27t3 bzQ5OVlq5pXdsyl6juvXr48zz3o39TpI5oVBPSluf4rv8SAMZF51WOYdOXIk VmbmnXzuZKk9m3L48OG4RzUt89SrQ+bVl/6O3RqPnhSUhcyrDss8vf7v2rWr 1MzTXUFpmXd54nJhmTc0NBRt3bqVOi9A7rqc+jB9jwfhIPOqwzJPvfqa8ysz 87LuRr966Wphmac79JR77noemRcGt1ez03U8IA9kXnVY5qlPceXKlXHvYhl9 m1lnS+tu9KLyTvsRdFe61vTo2wyPO6/JPnOUicyrDjfz9u3bFx0/fryU/XlZ Z0trj3pRmaezNjdu3BidPHkydX+eniv78+pJP89u5nG2GMpE5lWHm3l67dfc Xxl3KvjYp/DSSy/FazqWeVl3K3AOS/0k+1fIPJSJzKsOyzydL6ms03ksOmez 6PM2X9/7eun7FJ588sm4jrXMs/M2dc4o523WG5kHn8i86rC7A/Qar3PHdJ+q 5vyKvlfh1IunUjPv/P7zheSd3adgeZd2r4IynnsV6onMg09kXrVYradeRZ0/ pv7Nons3T6w9Ueo+BZ2ttn///nlreZzBEhY388bHx72PB+Eg86rFXdNT/4bO ZDl27Fiha3o6UzMt866cv5J73iV7V1qt5dG/Ul9u5mlddzGPZT0xnOWCTpB5 1eJmntayVPNo34LmNouY32x5n8K1/O9T0Jymzl/JmtfUx7hreWRePbn3JCw2 q9y5Ut/PC9VH5lWPu6an+b2RkZF4D5PNb+ZZ62Xep/DEsdzz7tChQ/FZY26N Z3sU0uY13bU8338nyJfmM/Na0yPz0A0yr3qS85uq71Qfad7P7d/Mo9bTml1a 5mmNL8+8Uw339NNPz+vVVI2X7Ne0u2KZ16y35B69xdyTQOahG2Re9bh7Fuze WO3X0zqY5v3yrPV0hnRa5qmXM8/MU9/K8PDwPet4bo2n56N81/O1Go/Mq6/k 3XmdnkGmvHTv2SPz0A0yr5psflN9i6p5VPsoL/S6YLVeHut653afS808vT2v vNN52dp3kZzTtHW8mZmZe3pX9LyZ16w/nS/t5l67O2M1x5+cD01mns5s1eOo dhTubICLzKsmd37Taj3VQAcOHIjPZXZ7OBeTe1l78/K6Q0g9p5s3b56Xdzan qV5N1a9pNR7zmmHQ723J3LO5TvVzKuP0X7fnxaTVecnasdsaEvVH5lVXWq2n ec0tW7bEPQC2X28xuVfk3jztuVuzZs3cOdKWd5rTtDsUrFfTXcejxguLfobd exbaUUbqZ8c+P7nH3d3vpxovWRcibGRedSXX9dTLqN9tlW/qf9S9sjbHudC1 PZ0jnZZ56udcbH2nvNN+vOScpvJOc5rqW7HzpJO9mtR44dHPRqvs0/vS9q+7 mZc2j2m1H7UehMyrtuR+Pe1b03qeMm7Hjh3xWc36/wtd29N9Qal7864sfG+e 9tFrPtOt79w1PPVpav+5zWnq+bAfDy79bLjafWyrHhbVhA32rGMWmVdt7hmc mvNTLaQ5QK3nKeOOHj0abdq0aW5vWze5l/e9eZqn1F0Qg4OD82o7N+/cNTyN Vc9Dz8fOGeNsTXSrXebR1wkXmVd9aXOcOotMa2DKGuWL5hG159tyr5Psy9qP vpB788bGxqJnnnkmvvevXd7pHFFbw7N7YZnTxEKReegGmdcbknOctran9Tzl h9bHtm3bFq1YsSJe8+ikryVrP3o39+Yp07RfXvvvtIaX7M9Uv0oy77T3XOO2 NTzmNLEYnWYec5sQMq83uHOclnt2h7rlnvJEGaP5Rburp1XuLWY/uvpQlHNr 166dOz8zLe/0cVq/S8s7jd/yjjlNLFS7zNNeh8bs3j/fY4V/ZF7vcOc4s3JP //7VH2L3F+huVvW56M/qkXRzq9v96OpJUd+M7rJdtWrV3H1AaXOZ2n+nM1ZU f1q/ih4jmXe2hkeNh4VyM0+9ncn32/4/9qZDyLze4uae8sLNPa2Pqa7Ta4DO NlG/muot7WFXn8vSpUvjGlB/VgYe3HQwGnp06N65zaG7/Zb6GH3siy++GH+u 7vJ7+eWX5+Ywk1mXnMvU19d+BOtX0fjIO+TNnbtUvolqO7G8S8tChInM6z3J Xk5b37M79rSWp7O81EepOUXVWqq59HuuzrxUX6UycNn/WRY9/rXHoyVLlsyz fOnyeM5SdeLWrVujV155ZW6fXTLnLOvc2s7mMvX1NQ6NR+OyfhXyDnlS35bN Xer/K/saDc5gQToyrzcl5zmtn1N9/9rvpn3eNtepmk/nOCuLlEmqw1SPrfpH q6K/bPzlnL9o/EVsZPPIPbmWlXNW11nW6etYbaevr3FoPLYfwV2/I+9QFGUf 564gDZnXu6zec8/l1Nld7lyn1Xz6968sUiap7tPc4/JfXh4taSyJ/qrxV/Mc 33s8zjSX8s0o51TTqT9Fj6PHc7POajuby9R+c9uP4PZnkncAykbm9TY395Jz naqt7G51N/tU96mv5MmfeTJ6vPF49FjjsZjyT86cvFu7uZRvonrOzTk9jh7P zTp9PX1dt7ZLzmWSdwB8IPN6XzL3kjWf1tHc+4c056gezicbT0bLGsuiJxpP REsbS6NvNL4RPfETT8S9J0nKN63RKeNUz2mtTjlnvaCWdfo6+nr6uvr6VtuR dwCqgMyrj7Saz9b5lEGquzTXqH6Sq1NXo5WNldHTjaejpxpPRcsby2Nr//7a eB9dkp17qIzTHjvlnPJTOafHs7pOX4faDkBVkXn1klbzWfap7lIeaX3t6tGr 0ZrGmmh1Y3X0TOOZaFVjVZyBz//m83HNlqR8Uz+KZZzqOeWnajpbr7O6Tl+P 2g5AFZF59ZTMPnfOUzXYlf1Xog2NDdG6xrrY2sba2I7f2xFnmah2s/9v+aZa Thln9ZxyTo9nWWdfi6wDUEVkXn1Z5lj2ubXf5RcuR5sam6KNjY0x5Z8c+uND cZalUb4lM06P5dZ0btaRdwCqhswLQzL/LjxzIepv9N/j+P84HmdZGss3yzhy rl7cv8NO+R4z0C0yLyz2WnW673S0ubH5Hqf+/NS8+VA311y8/vW+tL/DtL/r LPwMoBeReWGaeHgierbx7D2Z98amN/gdv8bs705z1NpvcuLEiWh0dDS+2/75 55+fR287cuRIfDeV9qdofbdVrU+9j15A5oVp9CujceYlzQzMeB8b8qcMUv+R zo3bsmVLtGzZsjjXdP7qq6++Gp+jqrMFlG1G92go83R/hs4m130aOmdc9wNr r4rWdJN9usn+JbIPVUPmhWn4i8OpmXfj8A3vY0N+lEfKuQ0bNsT3CeueDJ0t 4Pbyumu2lmPqU0qj/Zn79u2L1qxZE1Neat9K1j4V+ndRNWRemPY8sCc1825d vOV9bFg8ZYzOidP9GMo53eWU3LNpGacss72bdn6BaE9Kkr1PH6ez5g4cOBCt XLkyOnr06LzzCLLO3yH74BuZF6btn92emnl3btzxPjYsjs7NUV2n+31Vg6Wd T+DmnOWb5j61B9Pdk5nF3aupMwqUq8o+nUeePKOA8wlQJWRemNLyTnyPCwun bNm2bVu8Tqezc7Kyzj2LzjJO/SnKR1GGie7FSLL32cfauQV6HJ1Jp7VC3buo M3vsjHFlH2fzoCrIvPB89MFHqXk3eP+g97FhYZQvmzdvju+7cPeaJLPO6jk3 5yzfdK6cskp01lwW+xh9vOWgm386j1xzqjqb3L1LijNYUQVkXnhuX7mdmnk7 P7/T+9jQPdV0yru02i4t69ycczPOzlbV2l87yXNYxc0/9bpoTOqf0dvcuzbI PfhE5oVHvZlpmadeTt9jQ3d0t5PmMlVjJe/TUN6592noY5Q/Vs9ZzrlZpj0I nUpmYPIccv1ZYzt48ODcnYrKXnedj9xD2ci88Fzfdz018w4/eNj72NA5zWNq /UwZksw79+5Eyzqr69ys6ybjOsk/N/us7tu5c2e8x09vVw1o63zkHnwg88Jz uf9yauaNPTTmfWzojOomzR2m5Z3NZbp5Z/cF5511Wfln2Wdrfi+++GJ0/Pjx +O0aj+WealFyD2Ui88Jz7rFzqZl3pu+M97GhPeWE9iIk5zPdtTtbt7Pazp3D LDLv0uo+fX29TWe4nDt3Ln67rfFR76FsZF54pr42lZp5F5Zf8D42tKc1Mu3B S8s7t0/F1u3KqO3a1Xwah85/WbduXbwGqbcrj7Nyz/f3GPVF5oVHc5hpmac5 T99jQ2s690TnQqfNZ1relT2X2c1cp87w1Nmd165dm8s9d33P7ef0/b1GPZF5 4VGvCmdt9h7lhuY03f0I1q/izmdWKe/Scu+FF16Iz+m03LP1PXcfA3OcKAqZ F56s86VvnrrpfWxIp9d/9azojEtlXi/lXTL3NLepc8q0d125p7dp7LaPgbU9 FInMC8/QF4ZSM0971X2PDem0L2FwcPCeNTzbj1D1vEvm3q5du+L7+XR/kXJc 633K7bReTt/fe9QLmReerPOlybxq0uu+5jSVF8meFduPkOzPXGw2Xbt8Lbr8 2uVcvXnyzdjM6Zk463Qf38WLF+O7a3VWp9vTwhwnikLmhYfM6y06v0v3FiTn NN2eFcu7qxevzmXL9Oh0dG73uTlnd5yNTqw9cY/RJaPRkb4jpXm179XY83/+ fPT4Hz4efaPxjWj9r62PtvzzLdH239se7foXu6LXHnktmvqzqejMkjPRNw99 M15r5p4r5IHMC09W5n384cfex4b5fvD+D6INqzZElyYuRdcPXY/eOfhOdG3k WnR+8/no7Iaz0en1p6OxJWPRaN/oXJaUmV+Lyb2RR0eir//516Pmq0j0ROOJ aHljebSysTJa01gTrW+sjzY2Nkb9jf5oc2NzzH5OB+4biNekR740Eu8p1R4b ZaLOTvf994XqI/PC88JnXuAeoYpQ7aLX6+nV0/Hrt3pq9Xpuv5ds+ulN0dJH l0an+k5FU31T0cm+k9Fk32Q00TcRHe87Hh3rO9Zzeefm3vJHlkdLfmVJ9Hjj 8WhZY1m0orEieqbxTLSusS7a0NiQmnmtWB5OfnUyurbjGvdB4h5kXni4O69c qj+Ua6pHdB6Am2mt6HV+9T9ZHfX/Wf9c3r3W91p0ou9ENN43Ho31jUVH+47O ZZ7vDFuI5x59Lnrs3zwWPdZ4LFraWNpxrdcN3ReiPakzAzPMZYDMC1Da64Jq P9/jqgPVbXpttWzLqqk7odf4FX+yItr/F/trV+OZoUeHosf/9PFoSSO91ssj 85I/58o/1YC+f1bgB5kXlqz7YlV3+B5bL1Lfj+YlNSe5mHxL0//p/ujxv3g8 zjplXlqNV0TeHXv8WGqvS16OLz8+7+t9o+8b0V/97F/dU+utbayN5zc3NTbN 5V6e31/9zJN94SHzwpJ1XyyZ1znVcqrjNGeW52twssZb++trozWPrOmqxpt4 ZmIuW85sOzOvbzNt/8A7V97xvmdv27Zt0e7du6Mjm5p5+9yxaHLLZJy7R//3 0Wj8/45H+/7Nvmjf7++Ltn12W+65J6rH6QkNB5kXFjJvYbQOpPNIs/bzF5F5 z/yzZ6Ln+p6LLm26FF3cdDGa2TcTvbn/zeiNoTeiq6evRjNTM9FbJ9+Krr99 3XtuLYbu1nvppZeis2fPxvv13nrrrXifup3Fmdyjrr4UrY+qRlPfz+hXRqM9 D+xZ1PdbNTrnzYaBzAtLVubptdz32KpIr6/qAVQ/YBHZptda1RmaG9Xrt+ZJ 9Xr+3tR70ejoaHwupXvmirsfr6pnrXRLz1PnTp85cyY6f/58fP+CziTTc3T3 qHdyLsu74+/G2TXx8MSCclB/175/5lAsMi8sej3Nmt/xPbYqsazLa41OdbS+ x8o1vSbrtbnV19dru+b7Tp8+Hb/e27maduaKzhirS+Zpz/3atWvj56r79S5d uhTflaQ99nq+yXNZuvl7VH1+fd/1uG+l079L/f5Bf2d9kXlhIfPa0526i8k6 1cx6jbW90t1+fb2uq6YZGBiIax7LPM3z2bmaVT5Ts1uaz3z66aejU6dOzc1v 6mwyvU/PV/VtHvcM2fx0J/tElHu+fw5RDDIvLFmZpzMtfI/NN9VeC5kP0+eo JlQ9kcc4LPN0xqbOobT78ewsaTtnzHdW5UXnbS5dujSu9zS/eeHChXlreqpv 8zx3WtnXye816lPy/TOJ/JF5YdHesbR/36pLfI/Np6y747OoZ1N1XBHnfFjm 6Qxmrd8p8+q6lmeWLFkyl3m2pvf222/HNa3drZf3XQta2273O05ev8egOsi8 sGhuh8z7hPYrZt0nmPV9KvqeQcu8NWvWxOt2yf6VOq3libKt+ToSZ57W9F5/ /fV7+liKyDxRzac5jla/27C2Vy9kXljIvE8ouzpZ27HvT1n3TljmqZdRc3zK PLsXtm79K6K7Y5cvXz4v8+w+WT3Xbns3u6VMa1XvqZ73/bOK/JB5YdG/X9Yu fhjv7eqkT0U1QNl3LFnm6V5V9XXUPfOsb1P/1fO13k3LPLtLtqjME/0dD94/ mPozoJ8TzqquDzIvLOqVT/t3rbf7Hpvv74FL+/F87VHWa7p6FA8ePBgdPXq0 9pk3NjYW9ff3d5R5C9mv0Cn9HpT186CeF98/t8gHmReWkDNPc1jqQW+Xd1rf 83kXm2Xe+Ph4fEZJ3TNvZGQkevHFF71nnmSt7aoGZF2vHsi8sGRlXt1/j23X q2CqcA6HzW1qr9r27dtrn3nae68zN33ObRqt8Wb9bOiMHN8/G1g8Mi8s6sVI +/dc57MGO8k7rdloH4fvsYplnnr0ly1bVvvMW716dXT48GFvPSxJWXMBnNtQ D2ReWELLvE7yTr2bRe8/6IZlnnrz1bupvv267lWwns2TJ0962auQptW6Hr0s vY/MC0tImddJ3vleu0vjZp7OX9Z6V133pKu+e/755+dlXll70lvJ2sPC/Gbv I/PCkpUBdbs7s5O80/ur2JfgZp5yQXvT63r2mPo11adjmVfG2WOdyDqXh/nN 3kfmhSWrL20hZyFXVS/nnVjmqUdRr/UrV66MMy55xrTvvFos1XE6Z3NycjLO O0meMa26VjWuvg+LPWO6Gzp7lfnNeiLzwhJC5vVy3hnbr6CzNg8cOBDPcdbt LiHbl2c1ntuzmbxLyO5VKCPvDPOb9UTmhaXumZe1XtlLeSdW66lXUbWdehs1 p1mXNT3VeKpfjx07lrqWt9A7Y/PE/GY9kXlhqXPm1SXvxF3TU/+GzmMZGhqq zZqe7UO3vLN5zeRano/+FZN17xbzm72NzAtLHTNPOVanvBN3TU/zeso6W9fr 9flN1Xi6J+n48eOp85q6T0/PK8/7Yhcq6wzOOvY5h4LMC0vdMq/X+1VasTU9 zetpfm9iYiJ6+eWX581v9mKtt3fv3mhwcHBejefem+fjzLEsEw9PZP5M+f75 wMKQeWGpU+ZpX127Oz/1/qrtv+uUO79pZ7Fs3Lgx3sdt/Zu9Vutp7E8//fS8 Xk2t46nGm56ejvs1dTe8rz0KSVnzmzq3pxd/jwKZF5q6ZJ7uftF9nnXNO0nO b6rm0bygck8559Z6vZB7GrvuDNI+dHdO0/bkuTVesl/TV+aJ7thI+/mqyll1 6A6ZF5Y6ZN6ti7fa3vXa63lnkr0s6ulQPqjHX7VQL63rqWdF85runKadNWbr eFbj+exdScpaK6Z/szeReWHp9czT/Q/t7nrVWksd8k7Saj2tc6nHX3cuqNbr hTlO7TEcGBiYl3eq8WwP+ptvvhnXge46XhVqPLm+73rmz1qVzmlFZ8i8sPRq 5qm2G/rCUMusk9GvjNZunSVZ62mdS1mne9QPHToU10VVnuPU2t369evvyTvr W9Ean/ag23ytnl9VajyTNY+uOxh8jw3dIfPC0ouZ10ltJ+qx8z3WIug13z2X xc7eVH2nWm/Hjh1zc5xVyz3Vd8o7t2fF8s7mNK1vRc/H9qC7565UIfMuLL+Q 2cvCXr3e0kuZpzPw9NqcxM9c53ol81Sr6Yyndut2pu73vCd7OLVvTX0eyjnV erpzSLlRldzTPKX2I6TNZ9oanvo0tf/c5jT1fOxszSrVePbzmLVXrwr3DKNz vZR5nb7+uX0Meo136edTr48u3SmQlqWmTnP2Vc88fa/1d5T1+pKkj9N6i+9x F82t9bRfzeY4tWdBGae9e6qnVDP5zj31oqjHRnOvafOZ2pdga3jq09RY9Txs TtPdj1eVzJOss8hEv4/7Hh86U+fMK0syV1tRf0Uyc9NyV+tXRXwPtd6V9hx8 nSuhjNPXVs51+/erfrq69Kp0wu1nsX3q6m/UGpjyTVmie4f27dsXZ4+P3NOZ Ytp/pznNTvJO47M+TXf/eZVqPKP5pKw5dv3s1m0dua7IvN6gesbNTr3et8rM rO+hzztjlePa06Tfl/UcOlmjy/pehFDbpUnr49QamHJD+aEs2b17d7RixYro yJEjpeWe6kydJ6b9CO6ZYml5Z/vw9Hkat7uGV7U5zU7//Uivnvfjg8/vUy9l XtbeULRn87xZc4aH/ujQvAzVmn3WXK/yNa1WNW425/17Smi1XRp3bS8t95Qn Wi/bsmVLtGrVqjiDiso99aZs2LAh3idvdySk5Z2t31l914t5J6r1Wr0O1Wmf TJH0OqLXBv2uXXb+9VLm+c4N+KPMDrW2S7J1LrenJS331B/y2muvxf0tuptV /SS6s049I4ut6bZt2xY9+eST8RqizWO6WWf7zbX/TvsRrF/Fnc+0vEv2rFQ5 80RzFa1+VvV7Jet7rWnOx/1+6XflsnoReynz9H3R7/lp62TtzqFCb9LvzVXp r6mSdrmnOU1lm3patP9Ntdb+/fujzZs3R81/s3EO6m4i5ZfySXOOyWzT2/Q+ fYw+VvOWyk7VdDt37pybw0xmnTuXqTNj9PU1DutXScu7KvastNLuHg/R3hmd ked7rFWk70vy+6W1Dn1fi/6e9VLmLYR6JJJzc5q3azcnl8S8anlU0+nviNeL 1txeTjf3rK9F/Zu6h077vTWnqFpLNZeyaHh4ON5LsGnTpvgMTPWdLFmyZB69 Te9Txm3dujV65ZVX4vxLy7lk1lltp6+rr69xaDwaV6/nnXRyn4fRvnXVhsx5 fiIt85Lfs6J+16175pVBP/+t9jokaY91WuaqpzK0nNXvdraHRPvxyLnuJOs9 W99T37/2u+l8FtVsqrGs5lP9ZtmnjNIcpPIqmWGdsP12btbp8d3aTl9f49B4 NK609bteyjv3332nuef+PqcertD3Fet71+n3K++zvMm83pHck+/mpTKj6nO9 WrO2vRrqgylqP0Zo0nJP+9y0v1tnV9oZLdqzbtmn3knVYZp7VH+J1t3EMtBy MMnep4+zz9Hn63H0eG7W2R55fX2NQ+PRuOqQd6aT+4pb0e+17r5h/bsOYS2w 1R30Wa8dmvvJo1Ym88Khn7OT//tk6s/UKw+80vFcr+YdWvVturnMfE453Nyz /XvuXKfdra71NMs+7R3X3KNySnll9Z8yTFS3Jdn7rJ6znNPj6PEs62zdTl/X 9t5pPMn9d72cdy71V3V6jkK3eWiS/840X9TN/NJitOvV1u+yaa8Vefdt63ui 3w8WUyOTeWFRb3Daz5J+V/U9NixOMvfcmi+Zfaq/7Iwwyz/1VSq7VAMqx3QW ZpLervfr4/TxlnPWC2p1nZt1bm1Xx7wz+v1O/44Wuu8U3dH3eiFnZJF5YcnK PK0l+h4b8pFW87nzncoizTUm7yFSfWYZaNR/Yty36+P08fo8fb4eR4+nx9Xj u/OYda3tsqgGUe2Td92H+fT9XchZGmReWLLm0bn/sl7c3EvLPtVfbv7pvEvL QPWbKMfs3E5jb9P7LeP0eW7OuXWdm3Wh5J1La33qv1A9Qv7lR/Ob+p1ioXvZ ybywkHlhScs+zTHaep+bf+qpVHZpL4FyzGie0v2z3q+P08e7OafHS85hhph1 WTQPpz4MZaD6EX1nRy/SnsfF9ruSeWHRv7u0nyX9G/Q9NhQnK/ss/5RVloGW g1nsYyzj9Pn2WGRdd9Sjqfk597yNup8rrOfX7V4s9cjk1edN5oUlay+ofg59 jw3FsxxK5p+bgZaDWdyPs89N5hxZt3jJfb9ZZ2moj7qbu10WIus+GKM53GSv Z7s9F1n3miV/F897bzqZF5asvaDqNfM9NpTHzaZkBros09xcc6U9ju/nht6Q da+ZLLQ/pRNkXniyfs58jwv+pGVXp3yPHb0pbS//YvtTOkHmhSdrvSDks5AA lCuZeXn0p3SCzAtP1rlknHUJoCw6dzTv/pROkHnhyVo75s4eAGWxvpeyvy6Z Fx71eaVlHneyAqg7Mi88WefAF9UnBQBVQeaFx+bRk7T/x/fYAKBIZF541Auc lnl6u++xAUCRyLzwZN2toHupfI8NAIpE5oVH9z+mZZ56W3yPDQCKROaFR+fg pWXe0BeGvI8N/nAGC0JA5oVHZx1wzjQ6PXMzCxmIXkTmhYkzN8Nk2aS7gK5c uRKdOHEiGh0djfbu3Rs9//zz8+htR44cicbHx6O33norvkev1Z0K3KuAXkDm hSnrzE3OH6snZZAySxmnPFu2bFn83+Hh4ejVV1+NTp48Gc3MzMTZZiYnJ+PM 279/f/Tcc89FTz31VLR+/fo4I99+++347jz3/ryse4V8P3fAReaFSWt3aZnX 7s4r9Bbl0fHjx6O1a9dGq1atijNO9Z17Z557N57lmO6DTaOsGxkZibNv5cqV 0dDQUPSd73wnrhuT+Uf2oYrIvDBlnT+mnk7fY8PiKWOmpqbinDt06FD07rvv puacez+63YP+/e9/P3b79u172Pv0cd/61reisbGxaPXq1dHBgwej7373u3P3 qFv+kX2oGjIvTNqLx1ks9TQ9PR1nnWow5ZDd/WpZl8w5y7fvfe978cffunWr LX2cPl6fd/PmzThXVfcpA/U2N/vcuo/cg29kXpjOPXYuNfN0LpnvsWFhlDFa oxscHIzef//91Kxzc87NOK316XNEGSbvvffePex99rH6PMtA1X27d++O1q1b F8+B6vHJPlQNmRemrLNYdP6077Ghe1pT27x5c3T16tWWWacaLJlzlm96DM2B yre//e1M9jH6eMtBN//U/6Lcu3DhQvw2q/tUW7rzneQefCDzwqR7q9IyT3fr +R4buqOcU94pg5J5p5xJZp3lXDLjVKfJjRs32rKPTWag5Z/+3N/fHx07dix+ m762aku35iP34AOZFybdS5yWeYP3D3ofGzqnPpUtW7bEWWJ559Z2NoeZlnWW c26WffOb3+yKm4GWf5Z9+u/27dujnTt3xv/frfnIPfhC5oXrhc+8kJp7H33w kfexoT3l3Z49e+KMS8s7q+2UNVlZ123Gtcu/tOxTf4uyT2/Xn22dTzWorfGR eygLmReuPQ/sYY9ej3rzzTejbdu2zeVd2lym1XZacysy69pln76+elsOHDgQ v11/tn0N5B7KRuaFK2uP3vTqae9jQzbrV7H5zGTeuXOZlndlZF1W9lnePvvs s/HZLnp7Wu4xz4kykHnhyrovnXv0qkv5sGHDhni+0p3PTOadzWWWVdt1UvNd v349WrNmTdzPqfe5uZdc3/P9fUZ9kXnhmhmY4R69HqP9d+5+hCrnXVruXb58 OT63RWd7knvwgcwL181TN1Mzb+fnd3ofG+6l81W03zzZr1LlvEvLvV27dkX7 9u2Lrl27NjfPaX0tej7u/j3f33PUD5kXLvVnZt0p9PGHH3sfH5y/q2a+6Twx 1US2/87tz6xy3rm5Z2NasWJF9Prrr8e5p7Fq7VHPQ8/H9q2ztocikHlh0368 tMxTDeh7bPiE7gBS36Pbs+LmnTKjynmXzD2dSb1169b4zBadU6Zxa41S+wmT PS2+v/eoFzIvbCNfGknNPK31+R4b7krWeLaGp3zQ26w/s+p55+ae+llU6509 ezZe23vnnXfizFZ+M8eJIpF5YZt4eILezYrTnm7dV2A1nruGp9rI536ExeSe 7vXTXbRvvPFG3Jejt9ueddWw1HooApkXtqyzprVf3ffYcPcePNV4quWsxkuu 4fVa3hnVdkuXLo3X9bTHXmt7NsdJrYeikHlhu33ldmrm6Vwy+lj8U5ZpP57b t6I8sDlNW8PrtbwzqvO0TqmeVM1xas7T+jitn4XMQ57IPGz/7PbU3NPdC77H FjK9zo+Ojsba1Xi+s2uh9Ny05/D8+fPx3j3r46TWQ1HIPGSdQXam74z3sYVM r/E6Y0x9jXWs8URzmsuWLYvOnTuXWeuxroc8kXm4sPwC57FUkGodreW5vZp1 qvGM5m7Vp+PWespy6+F09+v5/jtB7yPzkHUey8B9A97HFiq9vqu3Y8eOHfP2 41mvZh1qPKM7F3TXkNV6V65cid+uWtb26zG/ibyQeRDlG3vTq0Ov7dqfoL3b Nq9p+/HqVOPJyMhINDAwEJ05cyY+f1rznbZfj/lN5I3Mgwx/cTg187SXwffY QqTX9uHh4WhiYuKeeU3bf16HGk/0HDdt2hSdPn06rm21Xy9tfpPMQx7IPIj6 VdIyT+e0+B5baOycyZdffjnOgDrPa4rqO921cOrUqXnzm3p+yf5NzuDEYpF5 EN2NnrVP786NO97HFxK9pqumUQ+/zqNM69esy7ymqK5bvnx5NDU1FZ9FdvHi xbn+Tc3jqr5lTQ95IfNgsvbpcW96uSzz1LOpeUw38+q2lmeWLFkSZ15yTc/2 LHDuNPJC5sFk3ZuutT7fYwuJZd5TTz0Vr2dZ/4q7R6Eu85rJzNOanu1Z0L5E +liQNzIPJmt+U5jfLI9lXn9/f3z2st2hUMf+FbF96ZZ5bh+L8t3uUSfzkAcy D66s+c1zj53zPrZQWObpTnTN89W5Z1OUcZrHTcs8ejeRNzIPrqz5zaEvDHkf Wygs8/bu3RtNTk7WPvP0HNevXx9nnvVuXrp0icxDIcg8uFrNb+oOBt/jC4Fl 3pEjR2J1z7zDhw/HPappmadeHTIPeSLzkJQ1v8k9suWwzNPr/65du2qfeUND Q9HWrVup81AKMg9JWfOb7NUrh2WeevU151f3zNMdeso9dz2PzENRyDwkKdeU b9R6fljmqU9x5cqVce9iXfs2tR9Bd6VrTY++TZSBzEMaZRu1nh9u5u3bty86 fvx4bffn6azNjRs3RidPnkzdn6fnyv485InMQxpqPX/czNNrv+b+6nqnwksv vRTfJWSZl3W3AuewIC9kHrJQ6/lhmafzJZV1Oo9F52zW8bzNJ598Mq5jLfPs vE2dM8p5mygCmYcsty7eyty3QK1XHLs7QK/xOndM96lqzq9u9yrYfQqWd2n3 KijjuVcBeSLz0MrhBw9n1nrKRN/jqyur9dSrqPPH1L9Zt95Nna22f//+eWt5 nMGCopF5aEX3pGfVepw9XRx3TU/9GzqT5dixY7VZ00v2rrRay6N/BXki89BO Vq3HPUPFcTNPa1mqebRvQXObdZjf1Jymzl/JmtfUx7hreWQe8kLmoR31qwzc N5CaeXo7/SzFcNf0NL83MjISHTx4cG5+s1drvUOHDsVnjbk1nu1RSJvXdNfy fP+doPeReeiE6rmsWk91oO/x1VFyflP1neojzfu5/Zu9VOuphnv66afn9Wqq xkv2a9pdscxrIm9kHjql9bus3JsZmPE+vrpx9yzYvbHar6d1MM379WKtp76V 4eHhe9bx3BpPz0f5rudrNR6Zh7yQeeiU+jSz9qkP3j8YffTBR97HWDc2v6m+ RdU8qn2UFwMDA3O1Xq+s6+m8bO27SM5p2jrezMzMPb0ret7MayJPZB66cabv DH2cJXLnN63WUw104MCB+Fxmt4ezyrmnntPNmzfPyzub01SvpurXtBqPeU3k jcxDNz7+8ONozwN72KteorRaT/OaW7ZsicbHx+f261U197Tnbs2aNXPnSFve aU7T7lCwXk13HY8aD0Ug89CtVvfKyrUd17yPsU6S63rqZVRPo/JN/Y+6V9bm OKu2tqf6Tnmn/XjJOU3lneY01bdi50knezWp8ZA3Mg8LcWH5hczM44yW/CX3 62nfmtbzlHE7duyIz2rW/6/S2p720Ws+063v3DU89Wlq/7nNaer5sB8PRSPz sFCt9qrrrnV6WvLjnsGpOT/VQpoD1HqeMu7o0aPRpk2b5va2+cw9zVPqLojB wcF5tZ2bd+4ansaq56HnY+eMcbYmikLmYaG0trfz8zvZt1eStDlOnUWmNTBl jfJF84ja8225V3b2jY2NRc8880x871+7vNM5oraGZ/fCMqeJopF5WAzNYWad 0SITD094H2OdJOc4bW1P63nKD62Pbdu2LVqxYkXc31JWX4syTfvltf9Oa3jJ /kz1qyTzTnvPNW5bw2NOE2Ug87BY6llp1dOi/Q2+x1gX7hyn5Z7doW65pzxR xmh+0e7qKSr31IeinFu7du3c+ZlpeaeP0/pdWt5p/JZ3zGmiaGQe8jD1tamW uXfusXPex1gX7hxnVu5pnUz9IXZ/ge5mVZ+L/qweycXknHpS1Deju2xXrVo1 dx9Q2lym9t/pjBXVn9avosdI5p2t4VHjoWhkHvIy8qWRlrl3uf+y9zHWhZt7 ygs397Q+prpO+aKzTbT/TfWW9rCrz2Xp0qVxDag/KwOVT6rBktmmt+l9+hh9 7Isvvhh/ru7ye/nll+fmMJNZl5zL1NfXfgTrV9H4yDv4QuYhL+32q3MuZ76S vZy2vmd37GktT2d5qY9Sc4qqtVRzqf7SmZfqq1QGal5S5z4vWbJkHr1N71Od uHXr1uiVV16Z22eXzDnLOre2s7lMfX2NQ+PRuKxfhbyDD2Qe8qT9Ca1yT3v3 ru+77n2cdZGc57R+TvX9a7+b9nnbXKdqPp3jrCxSJqkOUz2mnFJeJTOsE5Zz VtdZ1unrWG2nr69xaDy2H8FdvyPvUCYyD3m7feV2vD+vVe5xVkt+rN5zz+XU 2V3uXKfVfMogZZEySXWf5h7VX+Lmn1GeJbnv18erptPn63H0eG7WWW1nc5na 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 ecpC32MDQkDmAeXJOn9TPZ2+xwaEgMwDytNqTe/2ldvexwfUHZkHlGv4i8Ps 0wM8IfOAck19bSo18849ds772IC6I/OAcmXds8DedKB4ZB5QLt0Vm5Z5umfP 99iAuiPzgHLduXGH3k3AEzIPKF9W7yZ3yALFIvOA8u15YA9nkAEekHlA+bLO IGO/AlAsMg8o3+RXJ9mvAHhA5gHlm149zX4FwAMyDyhf1l167FcAikXmAeW7 dfFWauZt/+x272MD6ozMA8qns6bZoweUj8wD/EjLPPE9LqDOyDzADzIPKB+Z B/ihtbu0zNO8p++xAXVF5gF+ZGUed8cCxSHzAD/IPKB8ZB7gR9Z96WQeUBwy D/AjK/NuHL7hfWxAXZF5gB8jXxoh84CSkXmAHzpbk8wDykXmAX6QeUD5yDzA DzIPKB+ZB/iRdW8smQcUh8wD/KBvEygfmQf4QeYB5SPzAD/IPKB8ZB7gR1bm 3Tx10/vYgLoi8wA/dn5+J2ePASUj8wA/OGMaKB+ZB/hB5gHlI/MAP8g8oHxk HuDHC595ITXzPvrgI+9jA+qKzAP8SMs78T0uoM7IPKBYex7Yk5lvabSHwYx+ ZTQ603cmml497f15AHVA5gHFurbjWleZl2ZmYMb78wDqgMwDipe1F68TqhN9 jx+oCzIPKN6F5RcWnHmqE32PH6gLMg8o3scffhwN3j/Ydd4NfWHI+9iBOiHz gHIspNbj7E0gX2QeUA7VegP3DXScd7pT1veYgboh84DyTH51khoP8IjMA8pz 58adzPNXXMpG32MF6ojMA8rVrtZTJiobfY8TqCMyDyiXzpCmxgP8IPOA8qk/ JS3vtJ+BGg8oDpkHlE/9KWmZp/0MvscG1BmZB/iRrPVU42k/g+9xAXVG5gF+ XN93fV7mcXcCUDwyD/DH7hniHGmgHGQe4I/dM8Q50kA5yDzAr7GHxryPAQgF mQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgF mQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgF mQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgF mQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgF mQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgFmQcACAWZBwAIBZkHAAgF mQcACEUzp/5b039p+ndNf9D0T5t+ncwDANRNM6ceavpPTX/U9K+afns28+5v +pluM6/pJ2Y/7xebfq3pt5p+v+kPm/7DbL7qa/7X2bz9EwAACqSsUeYoe5RB yiJlkrJJGaWsUmYpu5RhnWbej85+/E83/ULT55r+cdPvNv3bpgdnv9ZXmv7z 7Nf+YwAACqSsUeYoe5RByiJl0u827mbU5xp3M0vZpQxTlnWaeT/e9FNNP9f0 K02/0bg7X/ovZ7+GsvWPZr+m5lP/PQAABVLWKHOUPcogZZEySdmkjFJWKbOU XcqwTjLvR2Y/7seafrLpvsbdNcFfbfrN2cdWpqqW1BzqHzTu9swAAFC0P2jc zR5lkLJImaRs+tXG3axSZim7lGHKsh9pZGRexpqeakTl5i/PPqayVDWk5k5/ e/br/Q4AACVQ5ih7lEHKImWSskkZpayyec2Wa3ltar2fmX0sZahqx8817q4V /oPG3T4Z+YcAABTI8kbZowz6XONuJimblFHKqo5rvBbrenoMZefPNv184+4a oXpj7p/9WgAAlEXZowxSFimTlE3KKGVV23W8FrWe5Z4y8ydmH++nZh9befr3 AADwQBmkLFImKZuUUVbfxXnX6DDzMnLv07OP9+Ozj20+AwBAidwMUiYpm5RR C8q7lNyz7LP8M58GAMADN4ssn+Yyq9u8a5F9SZ8CAKBEmZm0mKxbZBYCAFCI IrMNAAAAANA7/j/7KxqG "], {{0, 563}, {445, 0}}, {0, 255}, ColorFunction->RGBColor], BoxForm`ImageTag[ "Byte", ColorSpace -> "RGB", ImageSize -> Automatic, Interleaving -> True, Magnification -> Automatic], Selectable->False], BaseStyle->"ImageGraphics", ImageSize->Automatic, ImageSizeRaw->{445, 563}, PlotRange->{{0, 445}, {0, 563}}]}], "}"}], "]"}]}], "}"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{"\"\<\!\(\*SubscriptBox[\(C\), \(a\)]\) \>\"", ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"Ca", ",", "50", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "100", ",", "5"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"Ca", " ", "//", " ", "N"}], ",", "\"\< Mb/s\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{"\"\<\!\(\*SubscriptBox[\(C\), \(b\)]\) \>\"", ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"Cb", ",", "50", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "100", ",", "5"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"Cb", " ", "//", " ", "N"}], ",", "\"\< Mb/s\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "[", RowBox[{"{", RowBox[{"\"\<\!\(\*SubscriptBox[\(C\), \(c\)]\) \>\"", ",", RowBox[{"Control", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"Cc", ",", "50", ",", "\"\<\>\""}], "}"}], ",", "0", ",", "100", ",", "5"}], "}"}], "]"}], ",", RowBox[{"Dynamic", "@", RowBox[{"FormatCapacity", "[", RowBox[{ RowBox[{"Cc", " ", "//", " ", "N"}], ",", "\"\< Mb/s\>\""}], "]"}]}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"TrackedSymbols", "\[RuleDelayed]", RowBox[{"{", RowBox[{"Ca", ",", "Cb", ",", "Cc"}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"SynchronousUpdating", "\[Rule]", "Automatic"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.517268325202916*^9, 3.517268375497404*^9}, { 3.5172684075866604`*^9, 3.517268522792863*^9}, {3.5172685597337275`*^9, 3.5172687332216325`*^9}, {3.5172688047789583`*^9, 3.5172688473358326`*^9}, { 3.5172690246925445`*^9, 3.517269060896284*^9}, {3.517270811338676*^9, 3.517270863286767*^9}, {3.517270957729333*^9, 3.517270962066141*^9}}] }, Closed]] }, Closed]] }, WindowSize->{900, 601}, WindowMargins->{{29, Automatic}, {Automatic, 18}}, ShowSelection->True, FrontEndVersion->"8.0 for Microsoft Windows (32-bit) (February 23, 2011)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[567, 22, 231, 5, 71, "Section"], Cell[801, 29, 45079, 1009, 392, "Output"], Cell[CellGroupData[{ Cell[45905, 1042, 158, 2, 36, "Subsection"], Cell[46066, 1046, 366, 10, 31, "Input"], Cell[46435, 1058, 137, 2, 31, "Input"], Cell[46575, 1062, 1536, 38, 79, "Input"], Cell[48114, 1102, 881, 22, 47, "Input"], Cell[48998, 1126, 697, 18, 52, "Input"], Cell[49698, 1146, 5791, 150, 252, "Input"], Cell[55492, 1298, 1189, 32, 92, "Input"], Cell[56684, 1332, 499, 12, 31, "Input"], Cell[57186, 1346, 229, 6, 31, "Input"], Cell[57418, 1354, 412, 11, 31, "Input"], Cell[57833, 1367, 368, 10, 31, "Input"], Cell[58204, 1379, 297, 7, 31, "Input"], Cell[58504, 1388, 231, 6, 31, "Input"], Cell[58738, 1396, 495, 11, 31, "Input"], Cell[59236, 1409, 256, 6, 31, "Input"], Cell[59495, 1417, 227, 5, 31, "Input"], Cell[59725, 1424, 354, 10, 52, "Input"], Cell[60082, 1436, 870, 20, 72, "Input"], Cell[60955, 1458, 1713, 45, 72, "Input"], Cell[62671, 1505, 2695, 81, 112, "Input"], Cell[65369, 1588, 1511, 43, 72, "Input"], Cell[66883, 1633, 2653, 84, 112, "Input"], Cell[69539, 1719, 2339, 59, 152, "Input"], Cell[71881, 1780, 453, 13, 31, "Input"], Cell[72337, 1795, 10108, 248, 632, "Input"], Cell[82448, 2045, 490, 13, 31, "Input"], Cell[82941, 2060, 593, 16, 31, "Input"], Cell[83537, 2078, 541, 14, 31, "Input"], Cell[84081, 2094, 515, 13, 31, "Input"], Cell[84599, 2109, 869, 22, 31, "Input"], Cell[85471, 2133, 697, 19, 31, "Input"], Cell[86171, 2154, 907, 23, 31, "Input"], Cell[87081, 2179, 1061, 27, 31, "Input"], Cell[88145, 2208, 783, 22, 31, "Input"], Cell[88931, 2232, 499, 11, 31, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[89467, 2248, 525, 7, 28, "Subsection"], Cell[89995, 2257, 315, 9, 31, "Input"], Cell[90313, 2268, 4208, 107, 299, "Input"], Cell[94524, 2377, 1074, 30, 72, "Input"], Cell[95601, 2409, 211, 5, 31, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[95849, 2419, 94, 1, 28, "Subsection"], Cell[95946, 2422, 2387, 48, 117, "Input"], Cell[98336, 2472, 1291, 24, 31, "Input"], Cell[99630, 2498, 471, 11, 31, "Input"], Cell[CellGroupData[{ Cell[100126, 2513, 436, 9, 31, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}], Cell[100565, 2524, 397, 8, 31, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}], Cell[100965, 2534, 1153, 18, 30, "Output", CellGroupingRules->{GroupTogetherGrouping, 10000.}] }, Open ]], Cell[CellGroupData[{ Cell[102155, 2557, 1702, 41, 112, "Input"], Cell[103860, 2600, 1110, 25, 30, "Output"] }, Open ]], Cell[104985, 2628, 699, 15, 31, "Input"], Cell[CellGroupData[{ Cell[105709, 2647, 4298, 102, 312, "Input"], Cell[110010, 2751, 1255, 22, 248, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[111302, 2778, 7369, 153, 312, "Input"], Cell[118674, 2933, 15697, 262, 303, "Output"] }, Open ]], Cell[134386, 3198, 9838, 195, 352, "Input"] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[144273, 3399, 233, 5, 71, "Section"], Cell[144509, 3406, 47813, 1069, 416, "Output"], Cell[CellGroupData[{ Cell[192347, 4479, 158, 2, 36, "Subsection"], Cell[192508, 4483, 366, 10, 31, "Input"], Cell[192877, 4495, 137, 2, 31, "Input"], Cell[193017, 4499, 1536, 38, 79, "Input"], Cell[194556, 4539, 881, 22, 47, "Input"], Cell[195440, 4563, 697, 18, 52, "Input"], Cell[196140, 4583, 5791, 150, 252, "Input"], Cell[201934, 4735, 1189, 32, 92, "Input"], Cell[203126, 4769, 499, 12, 31, "Input"], Cell[203628, 4783, 229, 6, 31, "Input"], Cell[203860, 4791, 412, 11, 31, "Input"], Cell[204275, 4804, 368, 10, 31, "Input"], Cell[204646, 4816, 297, 7, 31, "Input"], Cell[204946, 4825, 231, 6, 31, "Input"], Cell[205180, 4833, 495, 11, 31, "Input"], Cell[205678, 4846, 256, 6, 31, "Input"], Cell[205937, 4854, 227, 5, 31, "Input"], Cell[206167, 4861, 354, 10, 52, "Input"], Cell[206524, 4873, 870, 20, 72, "Input"], Cell[207397, 4895, 1713, 45, 72, "Input"], Cell[209113, 4942, 2695, 81, 112, "Input"], Cell[211811, 5025, 1511, 43, 72, "Input"], Cell[213325, 5070, 2653, 84, 112, "Input"], Cell[215981, 5156, 2339, 59, 152, "Input"], Cell[218323, 5217, 453, 13, 31, "Input"], Cell[218779, 5232, 10108, 248, 632, "Input"], Cell[228890, 5482, 490, 13, 31, "Input"], Cell[229383, 5497, 593, 16, 31, "Input"], Cell[229979, 5515, 541, 14, 31, "Input"], Cell[230523, 5531, 515, 13, 31, "Input"], Cell[231041, 5546, 869, 22, 31, "Input"], Cell[231913, 5570, 697, 19, 31, "Input"], Cell[232613, 5591, 907, 23, 31, "Input"], Cell[233523, 5616, 1061, 27, 31, "Input"], Cell[234587, 5645, 783, 22, 31, "Input"], Cell[235373, 5669, 499, 11, 31, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[235909, 5685, 525, 7, 28, "Subsection"], Cell[236437, 5694, 315, 9, 31, "Input"], Cell[236755, 5705, 4208, 107, 299, "Input"], Cell[240966, 5814, 1074, 30, 52, "Input"], Cell[242043, 5846, 211, 5, 31, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[242291, 5856, 94, 1, 28, "Subsection"], Cell[242388, 5859, 2675, 58, 157, "Input"], Cell[245066, 5919, 1269, 24, 31, "Input"], Cell[246338, 5945, 463, 11, 31, "Input"], Cell[CellGroupData[{ Cell[246826, 5960, 396, 8, 31, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}], Cell[247225, 5970, 343, 7, 31, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}], Cell[247571, 5979, 1183, 19, 30, "Output", CellGroupingRules->{GroupTogetherGrouping, 10000.}] }, Open ]], Cell[CellGroupData[{ Cell[248791, 6003, 1702, 41, 112, "Input"], Cell[250496, 6046, 1110, 25, 30, "Output"] }, Open ]], Cell[251621, 6074, 699, 15, 31, "Input"], Cell[CellGroupData[{ Cell[252345, 6093, 7750, 189, 472, "Input"], Cell[260098, 6284, 2403, 44, 316, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[262538, 6333, 8161, 173, 372, "Input"], Cell[270702, 6508, 21353, 352, 303, "Output"] }, Open ]], Cell[292070, 6863, 68, 1, 31, "Input"], Cell[292141, 6866, 9992, 204, 352, "Input"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[302182, 7076, 229, 3, 41, "Section"], Cell[CellGroupData[{ Cell[302436, 7083, 92, 1, 36, "Subsection"], Cell[302531, 7086, 1750, 43, 52, "Input"], Cell[304284, 7131, 2461, 66, 55, "Input"], Cell[306748, 7199, 2021, 55, 52, "Input"], Cell[308772, 7256, 2020, 55, 52, "Input"], Cell[CellGroupData[{ Cell[310817, 7315, 7497, 187, 492, "Input"], Cell[318317, 7504, 9773, 198, 468, "Output"] }, Open ]] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[328151, 7709, 319, 4, 41, "Section"], Cell[328473, 7715, 94195, 1590, 520, "Output"], Cell[CellGroupData[{ Cell[422693, 9309, 94, 1, 36, "Subsection"], Cell[422790, 9312, 94451, 1608, 428, "Input"] }, Closed]] }, Closed]] } ] *) (* End of internal cache information *)